Page 1 sur 1

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

Posté : 11 juin 2009, 17:56
par tom_nameless
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

Posté : 22 juin 2009, 15:24
par sadeq
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

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

Posté : 19 août 2009, 17:22
par tom_nameless
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/

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

Posté : 19 août 2009, 17:34
par dogmongo
pourquoi n'a tu pas utiliser un script commerce open source ? oscommerce ou autre, il y en a des tonnes.

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

Posté : 19 août 2009, 17:49
par tom_nameless
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

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

Posté : 19 août 2009, 18:38
par dogmongo
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:

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

Posté : 20 août 2009, 10:04
par tom_nameless
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...

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

Posté : 20 août 2009, 10:41
par FuZZyLine
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 ;)

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

Posté : 20 août 2009, 11:43
par dogmongo
Quand tu auras fini ton projet pourra-tu nous le montrer s'il te plait.

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

Posté : 20 août 2009, 15:44
par AB
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 :)

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

Posté : 20 août 2009, 18:27
par dogmongo
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.