Posté(e) 4 oct. 2013 · Signaler ce message Bonjour, je ne parviens pas à limiter le nombre d'article par produit. Mon souhait serait de brider à 1 seul article maximal dans le panier par produit. Je ne parviens pas à modifier le code caddie ajout, pourriez-vous m'aider svp ou m'indiquer si il existe ce bridage par la console. Je suis en peel 7.03 Merci. Partager ce message Lien à poster Partager sur d’autres sites
Posté(e) 7 oct. 2013 · Signaler ce message Bonjour, Il y a deux type de modifications à faire. D'abord supprimer les champs textes permettant de renseigner une quantité, ensuite modifier le caddie pour empêcher un deuxième ajout d'un même produit. La première est de modifier le formulaire pour que les utilisateurs ne puissent pas ajouter plusieurs produits en 1 fois. Il faut modifier le formulaire où s'affiche le champ text dans lequel l'utilisateur renseigne la quantité. C'est la fonction affiche_critere_stock qui gère cette partie, et elle fait appel au fichier modeles\peel7\smarty\critere_stock.tpl. Dans ce fichier, vous pouvez remplacer la ligne <span>{$STR_QUANTITY}{$STR_BEFORE_TWO_POINTS}: </span><input type="text" size="3" name="qte" value="{$qte_value|str_form_value}" /> par <input type="hidden" name="qte" value="1" /> Ensuite, il faut empêcher les utilisateurs de modifier la quantité dans le champ quantité du panier. Pour ce cas, il faut modifier le fichier modeles\peel7\smarty\caddie_products_summary_table.tpl, ligne <input type="text" size="3" style="width:23px" name="quantite[{$p.numero_ligne}]" value="{$p.quantite.value|str_form_value}" {if isset($p.quantite.message)} onchange="if(this.value>{$p.quantite.stock_commandable}) {ldelim}this.value='{$p.quantite.stock_commandable}'; alert('{$p.quantite.message|filtre_javascript:true:true:true:false}');{rdelim}"{/if} /> <input type="submit" value="" name="" class="bouton_ok" /> Pour le second point, l'ajout au panier est géré par la méthode add_product de la class Caddie du fichier lib\class\Caddie.php. Il y a un test dans cette fonction pour savoir si il est nécessaire de créer une nouvelle ligne dans le panier, ou de mettre à jour une ligne existante. Il faut faire une modification pour le premier cas de figure, pour faire en sorte qu'il ne soit pas possible de mettre à jour une ligne qui existe, sans pour autant créer une nouvelle ligne. Sous le test if (isset($numero_ligne)) { // Le produit est déjà dans le panier avec la bonne configuration de couleur et de taille $quantite_start = $this->quantite[$numero_ligne]; remplacer le calcul de la variable $quantity_wished par quantity_wished = 0; => La ligne ne sera à priori pas modifiée. Partager ce message Lien à poster Partager sur d’autres sites
Posté(e) 15 oct. 2013 · Signaler ce message Bonjour , merci super. A+ Partager ce message Lien à poster Partager sur d’autres sites