我在获取已放置在用户购物车中的产品的属性值时遇到了问题。
我有以下代码:
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
而不是 Mage_Catalog_Model_Product
的 ID。您必须使用 $item->getProductId()
来获取与当前报价项目关联的实际产品的 ID。
关于php - Magento:无法获取购物车中最后一项的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13019341/