Magento: mise à Jour du panier quantité par programmation
Je suis de la création d'une extension magento. Dans lequel je veux mettre à jour la quantité de l'article dans le panier de la programmation. J'utilise le code suivant pour afficher les articles dans le panier.
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
//Do something
}
Ce que je veux, c'est de mettre à jour la quantité dans le panier pour un produit spécifique. Je sais que cela peut être fait comme ceci
$pid=15;
$quote = Mage::getSingleton('checkout/session')->getQuote();
$cartItems = $quote->getAllVisibleItems();
foreach ($cartItems as $item) {
if($pid==$item->getId())
$item->setQty($qty);
}
Mais je n'aime pas cette méthode car elle irait à travers chaque produit à mettre à jour la quantité d'un seul produit. Je me demande si il existe un moyen de mettre à jour la quantité en une seule ligne i:e sans utiliser de boucle for.
- quel événement que vous utilisez?
- vérifiez ceci : onlinecode.org/magento-update-cart-quantity
Vous devez vous connecter pour publier un commentaire.
Vous avez le product_id, pas la item_id droit ?
Si c'est le cas, il est impossible d'obtenir l'id de produit sans effectuer de l'ensemble des éléments.
Regarder
Mage_Sales_Model_Quote::getItemByProduct($product);
vous verrez qu'il effectue l'ensemble du catalogue.Fondamentalement, je vais faire comme ceci :
Vous devez optimiser cette avec quelques astuces :
et
pour vérifier si la quantité n'est pas déjà bien...
Veuillez noter qu'il est du code non testé, et certains genre de reflexions pour vous aider à trouver la solution, je ne voulais pas faire le travail pour vous.
Salutations,
Je suis sûr que cela va fonctionner. Essayez ceci. C'est la save de mon temps.
une autre solution