Limiter Le Nombre D'article Par Produit Dans Le Caddie


3 messages dans ce sujet

Posté(e) · 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) · 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) · Signaler ce message

Bonjour , merci super.

 

A+

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping