在我的Magento项目中,在我的帐户>我的订单(登录的客户)下,我能够查看订单详细信息以及我订购的产品。现在,对于每个订购的产品,我想检索特定属性,然而,根据我的理解,在
我尝试过研究,最后得到了以下代码:
sales/order/items/renderer/default.phtml
的代码片段开头,$_item = $this->getItem();
代表了订单本身,因此如果我使用像$_item->getId()
这样的东西,我得到的是订单ID而不是产品ID。我尝试过研究,最后得到了以下代码:
$orders = Mage::getModel('sales/order')->load($_item->getId());
foreach($orders as $order):
$is = $order->getAllItems();
foreach($is as $i):
echo $i->getProductId();
endforeach;
endforeach;
希望我可以使用产品编号获取该产品的其他属性。然而,使用此代码时出现错误,但无法确定错误的原因。我也尝试了类似于以下内容的代码:
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('name', $name);
foreach($_productCollection as $_product):
$_temp = $_product->getResource()->getAttribute('name_en')->getFrontend()->getValue($_product);
endforeach;
但是当我尝试检查产品集合中的项目数时,始终得到0。我该如何在此页面检索产品的自定义属性?
sales/order/items/renderer/default.phtml
中,变量 $_item 是一个订单项,而不是一个订单,因此您需要使用 $item->getProductId();。 - Emi$product = Mage::getModel('catalog/product')->load($productId);
,第二种方法是将该属性添加到Magento的销售模块的系统xml中,这样当订单项被创建时,它将从产品中复制该属性。 - Emi