Panier d'achat pour une boutique en ligne à l'avant ou Écriture de javascript modulaire. Panier pour une boutique en ligne en façade ou Ecriture d'un module Php javascript modulaire pour un panier d'achat

Chers visiteurs du site qui posent des questions telles que « Comment attacher votre panier au site ? et ainsi de suite. Je ne fais pas de solutions toutes faites, je décris la logique de mise en œuvre, pour chaque site individuel, vous devrez dans tous les cas ajouter certaines choses, donc si vous avez vraiment besoin de visser ou d'attacher quelque chose, je propose des services de conseil payants et gratuits et développement de sites Web. Écrivez au formulaire de commentaires en haut de la page, je répondrai à tout le monde.


Boutique en ligne. Panier d'achat AJAX. Partie 1 : Fonctions PHP.

Il n'y a pas si longtemps, j'ai décidé de mettre à jour légèrement ma série d'articles sur la création d'un panier pour une boutique en ligne. En général, il y a quelques défauts, inexactitudes et endroits que j'aimerais modifier, mais l'essentiel est de faire fonctionner le bouton « Ajouter au panier » sans recharger la page. Pour quoi? Il n’y a pas de limite à la perfection… à mon avis, c’est pratique. Nous devons d’abord comprendre ce dont nous avons besoin pour créer un panier de boutique en ligne à l’aide d’AJAX :

  • Un ensemble de fonctions PHP pour travailler avec le panier lui-même : ajouter, supprimer, mettre à jour la quantité, etc.
  • Un ensemble de fonctions JavaScript qui seront responsables des boutons d'ajout, de suppression et d'édition (j'ai généralement peur quand j'entends le mot JavaScript, mais il n'y aura rien de compliqué ici)
  • fichiers backend qui seront responsables du fonctionnement du panier sans recharger la page
  • Si ce n’est pas encore le cas, un tableau dans la base de données contenant les produits du magasin.
  • Bibliothèque jQuery. Je l'utiliserai (peut-être qu'un jour je décrirai comment faire la même chose en utilisant JsHttpRequest), car il est plus simple et plus intuitif pour travailler avec la technologie AJAX
  • Pour plus de clarté, j'ai réalisé des fichiers exemples, vous pouvez télécharger
  • La première étape sera de développer des fonctions PHP pour le panier. Donc:

  • Ajouter l'article au panier. L'identifiant du produit lui est envoyé. Je vais changer la structure du tableau lui-même, contenant les éléments ajoutés au panier dans la session, ce sera désormais comme suit :

    $_SESSION["products"] – un tableau responsable des produits dans le panier, dont la structure sera la suivante :

    $_SESSION["products"]=array("product_identifier_1"=>array("cost"=>"product_1_price", "count"=>"product_1_quantity_in_cart"), "product_identifier_2"=>array("cost"=>"product_price_1 ", "count"=>"quantity_of_product_2_in_cart"), // etc. La variable $_SESSION["products_incart"] sera responsable du nombre de produits dans le panier, et la variable $_SESSION["cart_cost"] sera responsable pour le prix du chariot. Il est plus facile de travailler avec une telle organisation de la gamme de marchandises dans le panier, à savoir supprimer, modifier et compter le nombre de marchandises. Ainsi, nous écrivons la fonction elle-même : /** * paramètres : * $product_id – identifiant du produit * $count – quantité de produit à ajouter, par défaut 1, */ function add_to_cart($product_id, $count=1)) ( / /vérifier si le produit a été ajouté au panier plus tôt : if (!empty($_SESSION["products"][$product_id]) ( //augmenter la quantité de un si le produit a déjà été ajouté : $_SESSION[" products"][$product_id][ "count"]++; ) else ( //créez un tableau vide, juste au cas où vous pourriez vous en passer. $_SESSION["products"][$product_id]=array() ; //récupère le prix du produit dans la base de données : $q=”SELECT price FROM product_table WHERE id="$product_id"”; //divise le résultat de la requête dans un tableau : $add_product=mysql_fetch_assoc(mysql_query($q) ); //ajouter le produit au panier : $_SESSION["products" ][$product_id]["cost"]=$add_product["price"]; $_SESSION["products"][$product_id]["count "]=$count; ) /* appeler des fonctions pour calculer le coût du panier et la quantité marchandises. Ici, je vais encore faire un changement, nous ne compterons pas le nombre de marchandises dans le panier, mais le nombre de marchandises elles-mêmes, c'est-à-dire s'il y a 5 unités de l'article 1 dans le panier, et 2 unités de l'article 2, alors il y a 2 articles dans le panier, pas 7. Et encore une chose, il est préférable de combiner le calcul du montant du panier et du nombre des éléments qu'il contient en une seule fonction : update_cart() */ update_cart(); ) La fonction d'ajout d'un article au panier est prête.

  • La fonction update_cart() comptera le coût du panier et le nombre de produits qu'il contient : function update_cart() ( //on compte le nombre de produits dans le panier comme le nombre d'éléments dans le //$_SESSION["products "] en utilisant la fonction PHP standard count() : $ _SESSION["products_incart"]=count($_SESSION["products"]); //réinitialisez d'abord le coût : $_SESSION["cart_cost"]=0; // coût du panier (multipliez les prix par quantité et ajoutez) : foreach ($ _SESSION["products"] as $key=>$value) ( ​​​​$_SESSION["cart_cost"]+=$_SESSION["products"][$key ]["coût"]* $_SESSION["produits"][$ clé]["compte"]; ) )
  • Une fonction qui va changer la quantité de marchandises dans le panier : /** * prend les mêmes paramètres que la fonction add_to_cart() */ function update_product_count($product_id, $count) ( $_SESSION["products"][$product_id] [" count"]=$count; //appelez update_cart() pour recalculer le coût. update_cart(); )
  • Eh bien, la dernière chose dont nous avons besoin est de supprimer un produit du panier : function remove_from_cart($product_id) ( unset($_SESSION["products"][$product_id]); update_cart(); )
  • C'est tout, les fonctions pour travailler avec le panier sont prêtes, il ne reste plus qu'à afficher la liste des produits sur la page et créer les boutons « Ajouter au panier ». Il est préférable de placer les fonctions présentées dans un seul fichier, par exemple cart.php, et de le connecter avec l'instruction include. Il convient de mentionner que j'ai introduit la variable supplémentaire $count dans la fonction add_to_cart() au cas où vous souhaiteriez que l'utilisateur détermine la quantité d'un article en cliquant sur le bouton Ajouter au panier, et non dans l'interface du panier. De plus, je ne transmettrai pas les valeurs de cette variable, mais j'utiliserai la valeur par défaut, qui est 1. Dans le prochain article, nous créerons l'essentiel - les fonctions JavaScript pour travailler avec le panier.

    J'essaie de créer un panier d'achat PHP simple avec les prix, les produits, la zone d'inscription et de paiement. J'ai recherché des didacticiels sur Google, mais ils impliquent tous SQL, qui ne fait pas encore partie de mes compétences. Quelqu'un a-t-il des exemples ou d'autres ressources de didacticiel que vous pourriez considérer comme un débutant PHP ?

    Encore une fois, j'essaie simplement de créer un simple panier PHP (pas de SQL) en utilisant des tableaux pour les produits, des fonctions pour diverses tâches du programme, la validation des formulaires, des cookies/sessions pour la continuité du panier, des fichiers modèles et des e-mails de confirmation/réception.

    Merci d'avance pour votre aide!

    3 réponses

    Au lieu de critiquer, pourquoi ne pas simplement aider ? Hypocrite, mais peu importe. N'oubliez pas que sans base de données SQL, vous ne pouvez pas vous « inscrire », mais vous pouvez avoir des noms d'utilisateur et des mots de passe provisoires.

    Créons donc votre base de données pseudo sql avec php.

    Nous avons besoin d'un tableau pour stocker les noms d'utilisateur et les mots de passe de votre compte.

    Maintenant, nous avons besoin d'une table pour stocker les produits

    Nous avons donc notre « tableau » de nos produits et notre « tableau » de nos comptes. Voici maintenant la partie la plus complexe, qui consiste à créer un système qui prend toutes ces informations, les affiche, vous permet de vous connecter et de vous déconnecter et de garder une trace des articles que vous avez dans votre panier.