编程语言
首页 > 编程语言> > php-Magento:无法获取购物车中最后一项的属性值

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