panier facile à mettre en place.. a dream !!!

Eléphant du PHP | 75 Messages

11 juin 2009, 17:56

Bonjour,

Je cherche depuis quelques jours un script PHP de panier ou caddie.... mais rien
que des bouts de code qui ne fonctionnent pas ou alors des extraits de code...

Je me suis dis : bon... bah Thomas t'as plus qu'à retrousser tes manches et à adapter les codes que tu as trouvé à droite et à gauche...

je suis parti sur la base du tuto : http://jmolline.free.fr/tutos/tuto_panier.html

mais je rencontre un probleme pour faire mes liens et appeler les fonctions pour ajouter, supprimer et modifier les quantités....
dois-je faire 2 pages pour pouvoir gérer le panier ? catalogue.php + panier.php
ou 3 pages : catalogue.php + panier.php et un include.php

pouvez vous m'aider, car là je commence à craquer nerveusement ?
C'est dingue de ne pas pouvoir trouver un code simple et complet et surtout qui fonctionne... :cry:

merci beaucoup pour votre aide

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

22 juin 2009, 15:24

Bonjour, même si c'est très tard, voici un panier simple:
<?php 
// Création du panier si n'existe pas dans la session de l'utilisateur
session_start();
if (! isset($_SESSION['panier']))  $_SESSION['panier'] = array();

// Voici les données externes utilisées par le panier
$id_article   = isset($_GET['id_article'])   ? $_GET['id_article']   : null;
$nom_article  = isset($_GET['nom_article'])  ? $_GET['nom_article']  : null;
$prix_article = isset($_GET['prix_article']) ? $_GET['prix_article'] : '?';
$qte_article  = isset($_GET['qte_article'])  ? $_GET['qte_article']  : 1;

// Voici les traitements du panier
if ($id_article == null) echo 'Veuillez sélectionner un article pour le mettre dans le panier!'; // Message si pas d'acticle sélectionné
else
if (isset($_GET['ajouter'])){ // Ajouter un nouvel article
	$_SESSION['panier'][$id_article]['nom']  = $nom_article;
	$_SESSION['panier'][$id_article]['prix'] = $prix_article;
	$_SESSION['panier'][$id_article]['qte']  = $qte_article;
} 
else if (isset($_GET['modifier']))  $_SESSION['panier'][$id_article]['qte'] = $qte_article; // Modifier la quantité achetée
else if (isset($_GET['supprimer']))  unset($_SESSION['panier'][$id_article]); // Supprimer un article du panier

// Voici l'affichage du panier
echo '<h2>Contenu de votre panier</h2><ul>';
if (isset($_SESSION['panier']) && count($_SESSION['panier'])>0){
	$total_panier = 0;
	foreach($_SESSION['panier'] as $id_article=>$article_acheté){
		// On affiche chaque ligne du panier : nom, prix et quantité modifiable + 2 boutons : modifier la qté et supprimer l'article
		if (isset($article_acheté['nom']) && isset($article_acheté['prix']) && isset($article_acheté['qte'])){
			echo '<li><form>', $article_acheté['nom'], ' (', number_format($article_acheté['prix'], 2, ',', ' '), ' €) ',
			 '<input type="hidden" name="id_article" value="', $id_article , '" />
			  <br />Qté: <input type="text" name="qte_article" value="', $article_acheté['qte'] , '" />
			  <input type="submit" name="modifier" value="Nouvelle Qté" />
			  <input type="submit" name="supprimer" value="Supprimer" />
			</form>
			</li>';
			
			// Calcule le prix total du panier 
			$total_panier += $article_acheté['prix'] * $article_acheté['qte'];
		}
	}
	echo '<hr><h3>Total: ', number_format($total_panier, 2, ',', ' '), ' €'; // Affiche le total du panier
}
else { echo 'Votre panier est vide'; } // Message si le panier est vide
echo "</ul>";
?>
Voici comment le mettre en marche:
Supposons que tu as écrit ce programme dans un fichier nommé : panier.php dans un dossier nommé : test.

Voici les appels de test pour remplir un nouveau panier:

1° Ajout d'un article de type Téléviseur HDTV coutant 900 €
http://localhost/test/panier.php?id_art ... 00&ajouter

2° Ajout d'un article de type Lecteur DVD coutant 99 €
http://localhost/test/panier.php?id_art ... 99&ajouter
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 75 Messages

19 août 2009, 17:22

Merci sadeq pour ta réponse
ma requete etait toujours d'actualité :lol:
ta gestion de caddie est parfaite... c'est exactement ce dont j'avais besoin
un grand merci à toi

PS : j'ai découvert aujourd'hui un panier en ajax à intégrer dans un site. J'ai pas encore testé...mais ça à l'air sympa
http://simplecartjs.com/
Modifié en dernier par tom_nameless le 19 août 2009, 17:55, modifié 2 fois.

Mammouth du PHP | 804 Messages

19 août 2009, 17:34

pourquoi n'a tu pas utiliser un script commerce open source ? oscommerce ou autre, il y en a des tonnes.

Eléphant du PHP | 75 Messages

19 août 2009, 17:49

Je n'ai pas utilisé un cms ecommerce...car ce n'est pas de la vente en ligne mais + un devis en ligne, avec possibilité de concevoir son produit final...
Pour te donner un aperçu : il y a 6 étapes pour concevoir le produit, avant d'avoir un chiffrage... (couleurs, options, system, design...)
et en plus toutes les combinaison ne sont pas possible.... c'est marche en forme d'entonnoir (en fonction du choix dans la 1ere étape, tu n'aura pas les même possibilité dans la 2 eme étape)

donc j'ai préféré le dev moi même

Mammouth du PHP | 804 Messages

19 août 2009, 18:38

dans ce cas moi j'aurai choisis ajax pour générer un formulaire et le modifer en fonction de la demande du client, puis a la fin ton client valide et la c'est magique tu as un devis en ligne :)

nombre total de page pour ton système 2 :wink:

Eléphant du PHP | 75 Messages

20 août 2009, 10:04

dsl dogmongo mais je ne vois pas trop de quoi tu parles....

mon devis est dans un domaine très particulier : c'est pour concevoir une cylindre (serrure+clé) donc c'est beaucoup plus complexe que de vendre un billet de concert..lol

l'intrernaute doit choisir son profil, le system, le type, la longueur intérieure et extérieur, le design, la finition et pour finir le nombre de clé.
c'est à la suite de tt ces choix qu'il optient un prix
je n'utilise pas de formulaire choisir les options du produit, mais des images afin d'illustrer tt ça...

Eléphant du PHP | 369 Messages

20 août 2009, 10:41

Salut le monde,
dans ce cas moi j'aurai choisis ajax pour générer un formulaire et le modifer en fonction de la demande
du client, puis a la fin ton client valide et la c'est magique tu as un devis en ligne :)
nombre total de page pour ton système 2 :wink:
Le prend pas mal mais envisager Ajax (ou l'intectif en général) avant toute autre chose est
une énorme erreur.
Le principe du développement c'est débuter par le plus basic possible et ensuite, seulement après,
poser des add-on.
Que se passerait-il, par exemple, si le cient a pas JS d'actif?
Que se passe t'il si le browser du client est, tout simplement, pas compatible ?
Bonjour,
Je cherche depuis quelques jours un script PHP de panier ou caddie.... mais rien
que des bouts de code qui ne fonctionnent pas ou alors des extraits de code...
Je me suis dis : bon... bah Thomas t'as plus qu'à retrousser tes manches et à adapter les codes que tu as trouvé à droite et à gauche...
je suis parti sur la base du tuto : http://jmolline.free.fr/tutos/tuto_panier.html
mais je rencontre un probleme pour faire mes liens et appeler les fonctions pour ajouter, supprimer et modifier les quantités....
dois-je faire 2 pages pour pouvoir gérer le panier ? catalogue.php + panier.php
ou 3 pages : catalogue.php + panier.php et un include.php
pouvez vous m'aider, car là je commence à craquer nerveusement ?
C'est dingue de ne pas pouvoir trouver un code simple et complet et surtout qui fonctionne... :cry:
merci beaucoup pour votre aide
De base, je te conseille : 2 pages (minimum), effectivement.

La premiere pour ce qui est formulaire
La seconde concernant la confirmation (etat de la commande si tu préfères)

Une fois le formulaire passé par POST tu récupères les éléments que tu copies/ajoutes dans une
variable de session puis tu les traites en POO (si les objets te dont pas peur lol) idem pour ton stock.
Ca t'amène deux objets et te permet une comparaison et une gestion d'erreurs assez facile...

A quelques bémols près sadeq a donné la réponse.

@+ bon code ;)

Mammouth du PHP | 804 Messages

20 août 2009, 11:43

Quand tu auras fini ton projet pourra-tu nous le montrer s'il te plait.

ViPHP
AB
ViPHP | 5818 Messages

20 août 2009, 15:44

Salut le monde,
dans ce cas moi j'aurai choisis ajax pour générer un formulaire et le modifer en fonction de la demande
du client, puis a la fin ton client valide et la c'est magique tu as un devis en ligne :)
nombre total de page pour ton système 2 :wink:
Le prend pas mal mais envisager Ajax (ou l'intectif en général) avant toute autre chose est
une énorme erreur.
Le principe du développement c'est débuter par le plus basic possible et ensuite, seulement après,
poser des add-on.
Que se passerait-il, par exemple, si le cient a pas JS d'actif?
Que se passe t'il si le browser du client est, tout simplement, pas compatible ?
+ 1 d'autant plus que dans ce cas Ajax n'apporte rien de décisif en termes de confort pour le visiteur.

Malheureusement il y a de mauvais exemples de boutique en ligne avec du JS obstrusif - et non des moindre, entre autre http://www.3suisses.fr http://www.laredoute.fr/ http://www.materiel.net - mais ce n'est pas pour autant qu'il faut oublier les règles d'un bon développement :)

Mammouth du PHP | 804 Messages

20 août 2009, 18:27

Excusez moi de me sentir obligé répondre quelque chose qui va vous être certainement énervant, le gars qui a désactivé JavaScripts sait pertinemment qu'il va avoir des problèmes sur la plupart des sites interactifs.
Moi quand je lis vos remarques j'ai du mal à comprendre, pourquoi on nous propose des jquery des Ajax des DOM si c'est pour s'apercevoir qu'on ne va pas pouvoir les utiliser pour quelques utilisateurs qui on décidé de faire exception à la règle.