php-Magento:无法获取购物车中最后一项的属性值
作者:互联网
我在获取已放入用户购物车中的产品的属性值时遇到问题.
我有以下代码:
umask(0);
Mage::app();
Mage::getSingleton('core/session', array('name'=>'frontend'));
$session = Mage::getSingleton('checkout/session');
$cart = Mage::helper('checkout/cart')->getCart()->getItemsCount();
foreach ($session->getQuote()->getAllItems() as $item) {
$_product = Mage::getModel('catalog/product')->load($item->getId());
$attributeValue = $_product->getAttributeText('availability');
echo $attributeValue;
}
它适用于购物车中除最后一个产品以外的所有产品.例如,我试图获取我已创建的“可用性”属性的值,该属性只能具有以下值之一:“缺货”,“预购”,“缺货”.如果我的购物车中有3件商品,我可以获得前2件商品的正确值,但是对于最后一件商品,它只会显示“否”.
我仔细检查了每个项目,以确保正确设置了所有属性,并且购物车中有任意数量的项目都会发生这种情况.
希望这只是我的愚蠢错误.
任何帮助,将不胜感激.
谢谢.
解决了:
变更:
$_product = Mage::getModel('catalog/product')->load($item->getId());
至
$_product = Mage::getModel('catalog/product')->load($item->getProductId());
解决此问题.
解决方法:
问题在那一行:
$_product = Mage::getModel('catalog/product')->load($item->getId());
使用$item-> getId(),您将获得Mage_Sales_Model_Quote_Item的ID,而不是Mage_Catalog_Model_Product.您必须使用$item-> getProductId()来获取与当前报价项关联的实际产品的ID.
标签:shopping-cart,magento,php 来源: https://codeday.me/bug/20191031/1978054.html