Créée le, 19/06/2015

 Mise à jour le, 19/05/2019

Visiteurs N°  




Accueil
Nouveau Blog Nouveautés Moteur de Recherche Votre Caddie Pour Vos Achats Votre Espace Membre Vos Signets et Vos Jeux Préférés Page de Bienvenue Statique Site en Français Site en Anglais
Sommaires
Électronique Fondamentale Technologie Fondamentale Testez vos Connaissances Électronique Théorique Digitale Électronique Pratique Digitale Lexique Électronique Numérique Data book TTL Data book CMOS Dépannage TVC Mathématique
Micro-ordinateurs
Théorique des Micro-ordinateurs Testez vos Connaissances Pratique des Micro-ordinateurs Glossaires sur les Ordinateurs
Physique
La lumière Champ d'action Rayonnement Électromagnétique
Technologies
Classification des Résistances Identification des Résistances Classification des Condensateurs Identification des Condensateurs
Formulaires Mathématiques
Géométrie Physique 1. - Électronique 1. 2. - Électronique 1. 3. - Électrotechnique 1. 4. - Électromagnétisme
Accès à tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages N. B. M. - Tome I - 201 Pages E. T. M. - Tome I - 554 Pages Business à Domicile Ouvrages 34 pages gratuits Nos E-books Logiciel Géométrie Logiciel Composants Électroniques
Aperçu de tous nos Produits
E. T. F. - Tome I - 257 Pages E. T. F. - Tome II - 451 Pages E. T. F. - Tome III - 611 Pages E. T. D. - Tome I - 610 Pages E. T. M. - Tome I - 554 Pages Logiciel Géométrie Logiciel Composants Électroniques
Nos Leçons aux Formats PDF
Électronique Fondamentale Technologie Fondamentale Électronique Théorique Digitale Électronique Pratique Digitale Théorique des Micro-ordinateurs Mathématiques
Informatique
Dépannage Win98 et WinXP et autres Dépannage PC Glossaire HTML et Programmes PHP et Programmes JavaScript (en cours de travaux) Création de plusieurs Sites
Forums
Forum Électronique et Infos Forum Électronique et Poésie
Divers et autres
Formulaire des pages perso News XML Statistiques CountUs Éditeur JavaScript Nos Partenaires et nos Liens Utiles Gestionnaire de Partenariat Nos Partenaires MyCircle Sondages 1er Livre d'Or 2ème livre d'Or

Signets :
  Leçons suivantes        Leçons précédentes     Bas de page
  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet

Implémentation d'un Caddie (3ème partie) :


Implémentation du Caddie :

La fonctionnalité du caddie fait intervenir une variable de session appelée $cart. Il s'agit d'un tableau associatif contenant des codes ISBN comme clés, et des quantités comme valeurs. Par exemple, si j'ajoute un exemplaire de ce livre dans mon caddie, celui-ci contiendra :

    920003 => 1

C'est-à-dire un exemplaire du livre dont le code ISBN est 920003. Lorsque l'utilisateur ajoute des livres dans son caddie, ceux-ci sont ajoutés dans le tableau. Lorsque nous affichons le contenu du caddie, nous nous servons du tableau $cart pour afficher les détails des livres à l'aide de la base de données.

Nous nous servons également de deux autres variables de session pour contrôler l'affichage de l'en-tête dans les colonnes Total Article et Total Prix. Ces variables sont appelées respectivement $items et $total_price.

Utiliser le script show_cart.php :

Intéressons-nous maintenant à l'implémentation du caddie, en examinant le script show_cart.php. Il s'agit du script qui affiche la page sur laquelle nous arrivons si nous cliquons sur les liens Votre Panier ou Ajouter au panier. Si nous appelons show_cart.php sans aucun paramètre, nous obtenons le contenu de notre caddie. Si nous l'appelons avec un code ISBN en paramètre, le livre correspondant à ce code est ajouté au caddie.

Pour mieux comprendre ce script, examinons la figure 6.


Caddie_Vide.png

Dans ce cas, nous avons cliqué sur le lien Votre Panier lorsque notre caddie était vide, c'est-à-dire que nous n'avions sélectionné aucun article à acheter.

La figure 7 représente notre caddie après avoir choisi trois livres. Dans ce cas, nous sommes arrivés sur cette page, en cliquant sur le lien Ajouter au panier de la page show_book.php correspondant à ce livre, Électroniques Théoriques Fondamentales - Tome I. Si vous examinez avec attention la barre contenant l'URL, vous constaterez que, cette fois-ci, le script a été appelé avec un paramètre. Ce paramètre est appelé new, et il possède la valeur 920003, qui correspond au code ISBN du livre que nous venons d'ajouter dans le caddie.


Caddie_Non_Vide.png

A partir de cette page, vous pouvez constater que nous avons deux autres options. Nous pouvons nous servir du bouton Sauvegarder les modifications pour modifier la quantité d'un article dans le caddie. Pour cela, il suffit de modifier directement la quantité et de cliquer sur le bouton Sauvegarder les modifications. Il s'agit en fait un bouton d'envoi qui nous ramène au script show_cart.php, pour mettre à jour le caddie.

De plus, l'utilisateur peut cliquer sur le bouton Aller à la caisse lorsqu'il a terminé ses achats. Nous y reviendrons dans un instant.

Pour l'instant, voici le code du script show_cart.php du Listing 9.


Listing 9. : show_cart.php - Ce script contrôle le caddie.

Ce script peut être décomposé en trois parties principales : l'affichage du caddie, l'ajout d'articles dans le caddie, et l'enregistrement des modifications apportées au caddie. Nous allons les étudier dans les trois prochaines sections.

Afficher le caddie :

Quelle que soit la page d'où nous venons, nous pouvons afficher le contenu du caddie. Dans la configuration de base, lorsqu'un utilisateur vient de cliquer sur Votre Panier, voici la seule partie du code qui sera exécutée.

        // Afficher le panier.

    if (isset($_SESSION['cart']) && (array_count_values($_SESSION['cart']))) {

    display_cart($_SESSION['cart']) ;

    }else {

    echo "<BR /><BR />&nbsp;&nbsp;&nbsp;&nbsp;Il n'y a aucun objet dans votre panier.<BR /><BR /> <HR COLOR = '#888888' />" ;

    }

Comme vous pouvez le constater, si le caddie contient des articles, nous appelons la fonction display_cart(). En revanche, si le caddie est vide, nous pouvons afficher un message personnalisé.

La fonction display_cart() se contente d'afficher le contenu du caddie, en format HTML, comme vous pouvez le voir dans les Listings 6 et 7 à cette adresse, en cliquant ici. Le code de cette fonction se trouve dans output_fns.php, et vous pouvez le retrouver dans le Listing 10. Bien qu'il s'agisse d'une fonction d'affichage, elle est suffisamment complexe pour mériter de figurer ici.


Listing 10. : La fonction display_cart.php de output_fns.php - Cette fonction formate et affiche le contenu du caddie.


Voici l'architecture de cette fonction :

  1. Parcourir tous les articles du caddie, et passer le code ISBN de chaque article à la fonction get_book_details(), pour pouvoir résumer les détails de chaque livre.
  2. Afficher l'image de chaque livre, si elle existe. Nous nous servons des étiquettes d'image HTML, height et width pour réduire un peu la taille de l'image. Cela signifie que les images seront un peu déformées, mais elles sont suffisamment petites pour que cela ne pose pas de problème. Si cela vous gêne, vous pouvez toujours modifier leur taille avec la bibliothèque gd que nous avons présentée dans une de nos leçons PHP, ou générer manuellement des images plus petites pour chaque produit.
  3. Transformer chaque entrée du caddie en un lien vers le livre correspondant, c'est-à-dire vers show_book.php avec le code ISBN comme paramètre.
  4. Si nous appelons la fonction et si le paramètre $change vaut true (ou s'il n'est pas défini, puisqu'il vaut true par défaut), nous affichons les cases contenant les quantités d'articles dans un formulaire se terminant par le bouton Sauvegarder les modifications. Lorsque nous nous servirons à nouveau de cette fonction après être sorti du magasin, l'utilisateur ne devra pas pouvoir modifier sa commande.

Cette fonction n'est pas très complexe, mais elle s'occupe de plusieurs points importants, c'est pourquoi il peut être très intéressant de la lire avec attention.

Ajouter des articles dans le caddie :

Si un utilisateur vient de la page show_cart.php, en ayant cliqué sur le bouton Ajouter au panier, il faut s'occuper de sa dernière commande avant d'afficher le contenu de son caddie.

Tout d'abord, si l'utilisateur n'avait pas encore ajouté d'article dans son caddie, nous devons créer un nouveau caddie :

            // Si le panier est vide, créer un nouveau caddie

        if (!isset($_SESSION['cart']))

    {

        $_SESSION['cart'] = array() ;

        $_SESSION['items'] = 0 ;

        $_SESSION['total_price'] = 0.00 ;

    }

Pour commencer, le caddie est vide.

Ensuite, après avoir configuré le caddie, nous pouvons y ajouter l'article :

            // Nombre de livres

        if (isset($_SESSION['cart'][$new]))

    {

        $_SESSION['cart'][$new] ++ ;

    }else {

        $_SESSION['cart'][$new] = 1 ;

    }

Dans cette partie du code, nous vérifions si l'article a déjà été ajouté dans le caddie. Si c'est le cas, nous incrémentons la quantité de cet article. Dans le cas contraire, nous ajoutons le nouvel article dans le caddie.

Ensuite, nous devons calculer le montant total de la commande et le nombre total d'articles dans le caddie. Pour cela, nous faisons appel aux fonctions calculate_price() et calculate_items() :

        $_SESSION['total_price'] = calculate_price($_SESSION["cart"]) ;

        $_SESSION['items'] = calculate_items($_SESSION['cart']) ;

Ces fonctions se trouvent dans la bibliothèque book_fns.php. Leur code est présenté dans les Listings 11 et 12, respectivement.


Listing 11. : La fonction calculate_price() de book_fns.php - Cette fonction calcule et renvoie le montant total de la commande du client.


Comme vous pouvez le constater, la fonction calculate_price() va chercher le prix de chaque article du caddie dans la base de données. Cette approche est un peu lente, c'est pourquoi nous enregistrons les prix et le nombre total d'articles dans des variables de session, et que nous ne les recalculons que lorsque le contenu du caddie est modifié.


Listing 12. : La fonction calculate_items() de book_fns.php - Cette fonction calcule et renvoie le nombre total d'articles du caddie.


La fonction calculate_items() est plus simple. Elle se contente de parcourir le caddie et d'ajouter les quantités des différents articles pour obtenir le nombre total d'articles.

Enregistrer le caddie modifié :

Si l'utilisateur a cliqué sur le bouton Sauvegarder les modifications dans le script show_cart.php, le processus est un peu différent. Dans ce cas, nous venons d'un formulaire d'envoi. Si vous examinez le code attentivement, vous verrez que le bouton Sauvegarder les modifications est en fait le bouton d'envoi d'un formulaire. Ce formulaire contient la variable cachée save. Si cette variable est définie, nous savons que nous sommes arrivés sur ce script avec le bouton Sauvegarder les modifications. Cela signifie que l'utilisateur a probablement modifié des quantités dans son caddie, et que nous devons les mettre à jour.

Si vous revenez aux champs de texte dans la partie de ce script consacrée au formulaire Sauvegarder les modifications, vous constaterez que leur nom provient du code ISBN de l'article qu'ils représentent :

    echo "<input type=\"text\" name=\"" . $isbn . "\" value=\"" . $qty."\" STYLE = 'background-color: #D3DDE2; color: #000000; font-weight: bold; border-width: 2px; font-size:10pt' size=\"3\">" ;

Intéressons-nous maintenant à la partie du script qui enregistre les modifications :

            // Enregistrer les informations

        if (isset($_POST['save']))

    {

        foreach ($_SESSION['cart'] as $isbn => $qty)

    {

        if ($_POST[$isbn] == 0)

    {

        unset($_SESSION['cart'][$isbn]) ;

        } else {

        $_SESSION['cart'][$isbn] = $_POST[$isbn] ;

    }

  }

        $_SESSION['total_price'] = calculate_price($_SESSION['cart']) ;

        $_SESSION['items'] = calculate_items($_SESSION['cart']) ;

    }

Vous pouvez constater que nous parcourons le caddie, et que pour chaque variable $isbn du caddie, nous vérifions la variable possédant ce nom. Il s'agit des champs provenant du formulaire Sauvegarder les modifications.

Si l'un de ces champs vaut 0, nous supprimons l'article correspondant du caddie à l'aide de la fonction unset(). Sinon, nous mettons à jour le caddie, en fonction des champs du formulaire comme ceci :

        if ($_POST[$isbn] == 0)

    {

        unset($_SESSION['cart'][$isbn]) ;

    } else {

        $_SESSION['cart'][$isbn] = $_POST[$isbn] ;

    }

Après ces mises à jour, nous appelons une fois de plus les fonctions calculate_price() et calculate_items() pour déterminer les valeurs des variables de session $total_price et $items.

Afficher la barre d'en-tête :

Vous avez déjà remarqué que la barre d'en-tête de chaque page contient un résumé du contenu du caddie. En effet, nous affichons la valeur des variables de session $total_price et $items dans cette barre, à l'aide de la fonction do_html_header().

Ces variables sont enregistrées lors de la première visite de l'utilisateur sur la page show_cart.php. Nous devons également gérer le cas où l'utilisateur n'a pas encore visité cette page. Le code correspondant se trouve aussi dans la fonction do_html_header() :

        $_SESSION['items'] = 0 ;

        $_SESSION['total_price'] = 0.00 ;

Sortir du magasin :

Lorsque l'utilisateur clique sur le bouton Aller à la caisse de son caddie, il active le script checkout.php. A partir de cette page, il commencera activer la connexion qui doit être effectuée via SSL, que l'on verra par la suite de nos leçons lors du paiement, bien qu'il soit nécessaire de se connecter pour une petite application si vous voulez vendre.

La page de sortie est présentée à la figure 8.


Formulaire_du_Caddie.png

Ce script demande au client de saisir son adresse principale (et adresse de livraison si elle est différente). Il s'agit d'un script très simple, que vous retrouverez dans le Listing 13.


Listing 13. : Le script checkout.php demande au client de saisir diverses informations.


Ce script ne contient aucune surprise particulière. Si le caddie est vide, le script avertit le client et le formulaire ne peut être affiché. Dans le cas contraire, il affiche le formulaire de la figure 8.

Si l'utilisateur clique sur le bouton Achat en bas du formulaire. Il arrive sur le script purchase.php. La figure 9 représente la sortie de ce script.


Formulaire_de_Carte_de_Credit_du_Caddie.png

Le code de ce script est légèrement plus compliqué que celui de checkout.php. Vous le trouverez dans le Listing 14.


Listing 14. : Le script purchase.php - Ce script enregistre les détails de la commande dans la base de données et récupère les détails de paiement.


Sa structure est assez simple : nous vérifions si l'utilisateur à correctement rempli le formulaire, et nous ajoutons ses informations dans la base de données sauf les informations de la carte bancaire pour des raisons de sécurité, en appelant la fonction insert_order(). Il s'agit d'une petite fonction qui se contente d'ajouter les détails du client dans la base de données (uniquement le formulaire de la figure 8). Son code se trouve dans le Listing 15.


Listing 15. : La fonction insert_order() de order_fns.php - Cette fonction ajoute tous les détails de la commande du client dans la base de données.


Cette fonction est assez longue, parce que nous devons insérer les détails du client, les détails de la commande et les détails de chaque livre commandé.

A noter : Dans le fichier order_fns.php. Vous devez changer les paramètres de la fonction mail() par votre Mail y compris l'URL de votre site. Quant au paiement, on verra par la suite sur une de nos leçons suivantes (4ème partie), et on aura l'occasion de vous expliquer lors de l'implémentation du paiement. Par ailleurs, nous avons mis des commentaires dans le fichier order_fns.php pour en faciliter votre tâche.

Nous déterminons ensuite les frais d'envoi, en fonction de l'adresse du client, et nous les affichons avec les lignes suivantes (voir le fichier book_fns.php) :

        function calculate_shipping_cost()

    {

        return 1.50 ;

    }

La fonction calculate_shipping_cost() renvoie toujours la même somme,1.50 €. Pour un site réel, vous devez choisir un moyen d'expédition, vous devez déterminer combien il vous coûtera pour les différentes destinations, et calculer les frais d'envoi en conséquence.

Nous affichons ensuite un formulaire (figure 9) permettant au client de saisir les informations de sa carte de crédit, grâce à la fonction display_card_form() de la bibliothèque de output_fns.php.

Nous terminons ainsi ce troisième chapitre de cette leçon, et nous verrons dans le prochain, L'implémentation du paiement.



  Cliquez ici pour la leçon suivante ou dans le sommaire prévu à cet effet.   Haut de page
  Page précédente   Page suivante







Nombre de pages vues, à partir de cette date : le 23 MAI 2019

compteur de visite

    




Envoyez un courrier électronique à Administrateur Web Société pour toute question ou remarque concernant ce site Web. 

Version du site : 10. 5. 14 - Site optimisation 1280 x 1024 pixels - Faculté de Nanterre - Dernière modification : 19 MAI 2019.   

Ce site Web a été Créé le, 14 Mars 1999 et ayant Rénové, en MAI 2019.