php - Magento:无法获取购物车中最后一项的属性值

标签 php magento shopping-cart

我在获取已放置在用户购物车中的产品的属性值时遇到了问题。

我有以下代码:

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/

相关文章:

javascript - 我在 Magento 中找到了正确的路径吗?

flutter - 如何从另一个小部件状态处理一个小部件状态?

php - 使用 IPN、Paypal、添加到购物车无法在数据库中插入更多项目

php - 如何使用 DateTime 将两个日期之间的日期放入数组中

javascript - 从列表中获取选定的值并将其显示在新页面中

php - 将 Laravel 5.4 升级到最新版本 (5.7)

php - 将属性集从一个 Magento 安装导出/复制到另一个安装?

Magento:在分层导航中显示同级类别

ios - 使用购物车进行 iOS 应用内购买?

javascript - 基本的多文件上传不适用于移动设备