【问题标题】:Magento: Can't get attribute value for last item in cartMagento:无法获取购物车中最后一项的属性值
【发布时间】: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


【解决方案1】:

问题出在那一行:

$_product = Mage::getModel('catalog/product')->load($item->getId());

使用$item->getId(),您将获得Mage_Sales_Model_Quote_Item 的ID,而不是Mage_Catalog_Model_Product。您必须使用$item->getProductId() 来获取与当前报价项目关联的实际产品的 ID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多