【发布时间】:2013-08-22 08:38:46
【问题描述】:
在我的 magento 项目中,在我的帐户 > 我的订单(登录客户)下,我可以查看订单详细信息以及我订购的产品。现在,对于每个订购的产品,我想检索一个特定的属性,但是,据我了解,sales/order/items/renderer/default.phtml 开头的代码 sn-p 即$_item = $this->getItem(); 是订单本身,所以如果我使用某些东西比如$_item->getId(),我得到的是订单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;
希望我可以使用产品 ID 来获取所述产品的其他属性,但是,我收到此代码的错误,无法说明错误是什么。我也尝试过这样的事情:
$_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。如何在此页面中检索产品的自定义属性?
【问题讨论】:
-
谢谢,但我没有产品的 id,所以我不能用它来加载产品的详细信息。
-
如果您在
sales/order/items/renderer/default.phtml中,变量 $_item 是订单商品,而不是订单,因此您有 $item->getProductId(); -
非常感谢。我现在获得了产品 ID,但我仍然无法获得要在此处显示的自定义属性。
-
正如我在第一条评论中所说,如果您查看我的答案,您会发现(在获得 productId 后)您有 2 种方法来获取产品的属性。首先是做一个
$product = Mage::getModel('catalog/product')->load($productId);第二个是将该属性添加到magento的销售模块的系统xml中,这样当创建订单项目时,它就会将该属性从产品复制到它