Prestashop : détournement de minimum quantity en multiple

Vente de produits par multiple de quantité en détournant la fonctionnalité « quantité minimale » de Prestashop
sujet évoqué ici https://www.prestashop.com/forums/topic/228452-resolu-multiple-de-quantite-minimum/

Prestashop 1.5

PRODUITS

product.js remplacer dans function checkMinimalQuantity
if ($('#quantity_wanted').val() < minimal_quantity)
par
if ($('#quantity_wanted').val() % minimal_quantity !=0)

fonction preProcess() du CartController
cet ajout doit se faire après les lignes

// If no errors, process product addition
if (!$this->errors && $mode == 'add')
{
// collisage par qte min
             if ((int)$this->id_product_attribute)
                $minimal_quantity = Attribute::getAttributeMinimalQty((int)$this->id_product_attribute);
             else
                 $minimal_quantity = $product->minimal_quantity;

             if ($this->qty % $minimal_quantity != 0)
                  {
                     $this->errors[] = Tools::displayError('You can only add this quantity ('.$this->qty.') to your cart with a quantity multiple of '.$minimal_quantity);
                   }
              // fin col par qte min

PANIER
pour que les boutons + - fonctionnent dans le panier en prenant en compte minimum.quantity en tant que multiple de (détourné de sa fonction première)

dans shopping-cart-product-line.tpl
j’attribue la valeur minimal_quantity à un input hidden
ajout de

{if $product.minimal_quantity > 0}<input type="hidden" value="{$product.minimal_quantity}" name="par_quantite_{$product.id_product}_{$product.id_product_attribute}{if isset($product.id_address_delivery)}_0_{$product.id_address_delivery|intval}{/if}" />{/if}

environ ligne 60 juste avant <input type="hidden"...

ensuite dans cart-summary.js
je récupère la valeur de l’input (par_quantite_id) que je substitue à qty

fonction upQuantity
ajout de var qty

upQuantity = function(id, qty)
{
        var qty = $('input[name=par_quantite_'+id+']').val();
etc ..

fonction downQuantity
ajout de var qty

downQuantity = function(id, qty)
{
        var val = $('input[name=quantity_'+id+']').val();
        var newVal = val;
        var qty = $('input[name=par_quantite_'+id+']').val();
etc ..

DÉCLINAISONS

en prenant en compte les quantités mini (multiple de) par déclinaison il faut faire une petite modif dans la fonction getAttributeMinimalQty
car dans le cas des attributs il faut overrider la fonction getAttributeMinimalQty de la classe Attribute et ajouter = après > sinon on obtient une division par zéro

Attribute::getAttributeMinimalQty retourne false   ->  if ($minimal_quantity >= 1)    return (int)$minimal_quantity; return false;

normalement ça fonctionne

bon code

Prestashop 1.6

en cours de rédaction

Prestashop : détournement de minimum quantity en multiple Prestashop : détournement de minimum quantity en multiple -- notez cet article
1 vote

Nos actualités

  • Premier site Google AMP

    Bonjour à tous Vendredi 4 janvier 2019 : livraison du premier site réalisé avec le CMS Spip 3.2 et un jeux de squelettes écrit pour Google AMP le temps de chargement

    ... (Lire la suite..)
  • En cours de création

    Eurocentre nous a confié la refonte de leur site avec Spip 3 Bootstrap Le groupement de 3 chirurgiens de Viscéro Nîmes nous a confié la création de leur site avec Spip

    ... (Lire la suite..)
  • Changement de serveur

    Cher Client, chère cliente Afin d'améliorer nos services et dans le cadre de la mise à niveau de mes infrastructures d'hébergement, les anciens comptes sont en cours de

    ... (Lire la suite..)
  • IMPORTANT - Alerte phishing messagerie

    Cher Client, chère cliente Si vous recevez un mail vous demandant de confirmer vous identifiants de messagerie, n'y répondez surtout pas. Il s'agit d'un phishing

    ... (Lire la suite..)

Actus techniques

IMPORTANT - Alerte phishing messagerie

Cher Client, chère cliente
Si vous recevez un mail vous demandant de confirmer
vous identifiants de messagerie, n’y répondez surtout pas.
Il s’agit d’un phishing (hameçonnage). Une fois en possession
de vos identifiants le pirate les utiliserait pour envoyer du spam.
En aucun cas nous vous (...)


(Lire la suite..)

Changement de serveur

Cher Client, chère cliente
Afin d’améliorer nos services et dans le cadre de la mise à niveau de mes infrastructures d’hébergement, les anciens comptes sont en cours de déplacement sur un nouveau serveur plus puissant et plus rapide. Ce transfert est transparent pour vous.
Bien cordialement
Natacha (...)


(Lire la suite..)

Courcelles Design

Courcelles Design
Agence de communication Web
Design & développement de site Internet

82 chemin de ronde
32230 - Marciac - Gers
31000 - Toulouse - Haute-Garonne

Je suis présente à Toulouse généralement en fin de semaine et disponible sur simple rendez-vous directement dans vos locaux.

Plan d’accès à Marciac

Fixe 05 62 09 33 21 - Portable 06 63 27 92 71

RCS Auch 403 195 209
N° Siret 403 195 209 00040
APE 6311 Z - TVA intra : FR04403195209

Contactez-nous.

En soumettant ce formulaire, j'accepte que les informations saisies et transmises soit exploitées par Courcelles Design
dans le cadre de ma demande de devis ou d'information.
J'accepte
Je confirme ne pas être un robot :-)

Réseaux sociaux