Ajouter le champ quantité dans la liste produit de PrestaShop

PrestaShop
  • Accueil
  • Blog
  • Ajouter le champ quantité dans la liste produit de PrestaShop

Techniquement, je n’ai pas posté ce mardi comme convenu mais la journée n’est pas terminée et je publie tout de même un post, qui je l’espère aidera ceux qui se posent la question : comment ajouter le choix des quantités dans la liste des produits de PrestaShop ?

 
La manipulation n’est pas tellement compliquée et fonctionne sur la version 1.4.9.0 de PrestaShop sans problème – oui, des projets e-commerce se déploient encore sur la 1.4 du fait de sa robustesse et de la diversité des modules présents pas toujours développés sur la 1.5 à ce jour.
 
Dans l’ordre :
Etape 1. Copiez le fichier www/modules/blockcart/ajax-cart.js à l’emplacement suivant www/themes/votrethème/js/modules/blockcart/ajax-cart.js
 
Etape 2. Dans le fichier www/themes/votrethème/product-list.tpl ajoutez après :

{if ($product.allow_oosp || $product.quantity > 0)}

le code suivant…
{l s='Quantity :'}
<input id="quantity_wanted_{$product.id_product|intval}" type="text" name="ajax_qty_to_add_to_cart[{$product.id_product|intval}]" value="{if isset($quantityBackup)}{$quantityBackup|intval}{else}1{/if}" size="2" maxlength="3" />

 
Etape 3. Dans le fichier www/themes/votrethème/js/modules/blockcart/ajax-cart.js remplacez :
ajaxCart.add(idProduct, null, false, this);
par...

ajaxCart.add(idProduct, null, false, this, $('#quantity_wanted_'+idProduct).val());

 
Etape 4. Dans le fichier www/themes/votrethème/product-list.tpl ajoutez ces lignes au-début du fichier :
{literal}
<script type="text/javascript">// <![CDATA[
 $(document).ready(function(){
 $(".ajax_add_to_cart_button").click(function(){
 var f=$(this).attr('href');
 var id = f.split('&')[1].split('=')[1];
 var p="#quantity_wanted_"+id;
 var qty=$(p).attr('value');
 g=f+"&qty="+qty;
 window.location=''+g;
 return false;
 });
 });

// ]]></script>
 {/literal}

champ_quantite_product_list_prestashop
Aperçu du champ quantité dans le product-list.tpl

 
C’est terminé ! La page catégorie de votre boutique PrestaShop affiche désormais une liste de produits avec la possibilité de choisir les quantités sans avoir à rentrer dans la fiche produit 🙂
Et vous, avez-vous une astuce du type à proposer ?
 

15 commentaires sur “Ajouter le champ quantité dans la liste produit de PrestaShop

  1. Bonjour,
    merci pour le tuto, très clair, mais j’ai un petit soucis:
    quand j’ajoute un article dans le panier, cela me met la quantité demandé +1, je me retrouve donc avec 2 articles dans le panier.
    Pouvez-vous m’aider en me disant ce que je dois changer ?
    Merci pour votre réponse
    céline

    1. @celine : Merci pour le retour, aussi prenez soin de copier le code comme indiqué et ça fonctionnera. Après il faut voir si votre thème n’apporte pas une « touche » particulière.

  2. @Vincenzo : Bonjour, le tuto n’est pas testé sur une 1.5 et pour la question sur un panier total, je ne comprend pas vraiment car on peut avoir un panier déroulant en haut de page par exemple 🙂

  3. @Gwen : Bonjour, avez-vous un message d’erreur à me communiquer (par mail) pour avancer ? Je n’ai aucun problème chez moi 😉

  4. @Bernus : Bonjour et merci pour le retour car je vous avoue ne pas avoir eu le temps de me pencher sur le problème. Le tip pourra en aider d’autres en tout cas 😉

  5. @Lino : Hello, pour retirer les produits du module homefeatured de PrestaShop, je dirai à première vue qu’on peut utiliser les quantités avec {$product.quantity} mais aussi via le date available {$product.available_date} en utilisant http://www.smarty.net/docsv2/fr/tips.dates.tpl après tout est possible 😉
    Pour les produits par catégories, utilisez le fichier natif category-count.tpl tout simplement 🙂

  6. @Lino : Bonjour, je comprend aussi dans le fichier homefeatured.tpl vous pouvez encadrer le bloc produit de la sorte :
    [code]
    {if ($product.quantity <= 0 OR !$product.allow_oosp)}
    <li>
    <!– Mon produit qui ne s’affiche que si il est en stock et que l’achat hors stock est désactivé –>
    </li>
    {/if}
    [/code]

  7. Bonjour, je déterre un peu.
    ca fonctionne dans la liste des produits mais pas dans les populaires et les promos.
    Une idée ?
    Merci.

    1. Bonjour Dim,
      Les modules homefeatured et blockspecials utilisent un fichier d’apparence .tpl différent de tête donc il faut aller éditer ce fichier en plus du fichier product-list.tpl en appliquant les mêmes modifications.
      Bon courage 🙂

Laisser un commentaire

Consultez les autres articles