【发布时间】:2012-10-22 20:30:23
【问题描述】:
我在获取已放入用户购物车的产品的属性值时遇到了问题。
我有以下代码:
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->getId()而不是你的属性,你会得到正确的ID吗? -
啊,就是这样。将该位更改为 $item->getProductId() 会给出正确的产品 ID,现在它正在打印正确的属性。
-
好的。我将其添加为答案。
-
谢谢,我会投票赞成你的答案。
标签: php magento shopping-cart