0

J'essaie d'ajouter un produit au panier PrestaShop par programmation. J'utilise le updateQty() avec la quantité à mettre à jour et l'ID de produit. Toutefois, lorsque j'ajoute le produit au panier, il ajoute automatiquement 10 quantités de produit. Est-ce que je l'utilise dans le mauvais sens? J'utilise le crochet actionCartSave dans mon module personnalisé.Prestashop ajouter au panier quantité étrange

J'ai essayé:

public function hookActionCartSave($params){ 
    $cart = $params['cart']; 
    $cart->updateQty(1, 408); 
} 

Répondre

1

Le hookActionCartSave est appelé une fois de plus à la fois. Donc à chaque fois que ça s'appellera vous augmenterez de 1 la quantité dans le panier de ce produit (dans votre cas avec l'identifiant 408), peut-être cela s'appelle 10 fois dans votre cas.

Pour répondre à votre problème, nous devons vérifier si le produit est déjà dans le panier, essayez cet extrait:

public function hookActionCartSave($params) 
{ 
    $cart = $params['cart']; // Get the cart object 
    if(Validate::isLoadedObject($cart)){ // Check if the cart is a valid object 
     if(!$cart->containsProduct(408)){ // Check if our product is already in cart 
      $cart->updateQty(1, 408); // Add our product to cart 
     } 
    } 
} 

Adapte le code à vos besoins;)

+0

Votre solution a fonctionné comme un charme, merci beaucoup :-). Bien que cela m'a fait réfléchir: Quelle est la procédure pour augmenter (qté) un produit qui est tout prêt dans le panier? Dunno si c'est une autre question :-) – simon

+1

Hehe, bonne question, en ce moment je n'ai pas une réponse rapide pour vous: P mais je suppose que vous pouvez trouver la solution par vous-même;) – sarcom