J'utilise ce code: pour obtenir des informations sur les produits dans le panier. p> Comment puis-je obtenir seulement la quantité pour un produit donné (Producteur) p> merci beaucoup. p> p>
4 Réponses :
Vous pouvez essayer:
$quote = Mage::getSingleton('checkout/session')->getQuote(); $item = Mage::getModel('sales/quote_item')->getCollection() ->addFieldToFilter('quote_id', $quote->getId()) ->addFieldToFilter('product_id', $productId) ->getFirstItem(); //to get the quantity: $item->getQty();
I Obtenir cette erreur: Erreur fatale: appelez à une fonction de membre GetStoreID () sur un objet in / app / de code / CODE / MART / SALLE / MODEL / MYSQL4 / Devis / Article / Collection .php On Line 67
Vous allez courir dans des problèmes, car la citation s'attend à ce que l'objet de magasin soit chargé. Si vous exécutez ce code "extérieur" de mage :: exécuté (), utilisez mage :: getingleton ("noyau / session", tableau ("nom '=>' frontend ')); code>
TL; DR: la réponse à cette question varie en complexité basée sur le type de produit (configurable, simple, etc.). strong> Ceci peut conduire à la configuration de votre catalogue et de définir un produit simple visibilité. Si tout ce que vous avez dans votre catalogue est des articles simples, cette tâche est très facile. EM> Aussi: voir Modifier à la fin. Il y a beaucoup de scénarios à considérer. Par exemple, si vous ajoutez un élément configurable au panier, la citation aura deux éléments de devis par option: un élément de devis pour le produit parent configurable qui contiendra des informations de quantité d'option et un élément de devis qui fournira les données simples de l'option. Les articles de paquet auront un élément de paquet parent ainsi qu'un élément simple pour chaque option de paquet. P> Qu'est-ce que vous devez décider de décider de la quantité de type de chaque produit à l'utilisateur; Par exemple, voulez-vous représenter le même modèle de chemise qu'un élément de ligne avec toutes les quantités de taille ou vous les séparer pour chaque taille (ces derniers étant de la manière dont Magento les rend dans les zones de panier / d'examen). p> Je vous recommande d'ajouter vos produits au panier, puis de l'utiliser dans le frontend pour voir les données d'élément de devis: p> Je recommande d'utiliser une installation avec l'échantillon données et ajout de différentes quantités de chaque type de produit au panier. Sur la base de cette version + la sortie du code ci-dessus, vous verrez que vous avez plusieurs approches et gotchas lorsque vous bouclez. Les scénarios de confusion sont lorsque vous avez les suivants: p> code: p> code: p> Vous pouvez voir que la manipulation de tous les scénarios est encombrant. J'aimerais pouvoir vous dire qu'il est plus facile de le faire via des modèles de ressources, mais le fait est que, dans la base de données, le Désolé, c'est une réponse aussi longue, mais vous pouvez le voir, en fonction de votre configuration de catalogue, redevez à une attention particulière et à des tests pour vous assurer que vous avez vos bases couvertes. P> EDIT: STRUT> En essayant d'être approfondi, je n'ai pas mentionné que vous Devrait-on examiner la table
sale_flat_quote_item_option code> table enregistre les informations quantitatives dans une colonne de données sérialisées, vous devez donc avoir besoin de Tirez les choses en PHP pour obtenir n'importe où avec eux (ce qui est fait pour vous via le modèle de ressource). P>
sale_flat_quote_item code>. En fonction de vos exigences, vous pouvez facilement utiliser les données de là pour modéliser rapidement, gracieusement et efficacement les données dont vous avez besoin pour atteindre vos besoins d'affichage. Em> p> p>
Vous devez utiliser la méthode lorsque vous appelez la collection. Devrait ressembler à ceci p>
Essayez ceci:
// if you don't have the product object already... $_product = Mage::getModel('catalog/product')->load($productid); $_quote = Mage::getSingleton('checkout/session')->getQuote(); $_item = $_quote ? $_quote->getItemByProduct($_product) : false; $qty = $_item ? $_item->getQty() : 0;