【发布时间】:2017-09-25 09:04:25
【问题描述】:
使用 Magento CE 1.8.x,我正在尝试获取自定义产品属性以传递给订单项目以在幕后使用。我在catalog > attributes > manage attributes 中创建了自定义产品属性qb_product_id
然后我创建了以下模块:
config.xml
<?xml version="1.0"?>
<config>
<modules>
<Nellys_QBProductID>
<version>0.1.0</version>
</Nellys_QBProductID>
</modules>
<global>
<fieldsets>
<sales_convert_quote_item>
<qb_product_id>
<to_order_item>*</to_order_item>
</qb_product_id>
</sales_convert_quote_item>
<sales_convert_order_item>
<qb_product_id>
<to_quote_item>*</to_quote_item>
</qb_product_id>
</sales_convert_order_item>
</fieldsets>
<sales>
<quote>
<item>
<product_attributes>
<qb_product_id />
</product_attributes>
</item>
</quote>
</sales>
<events>
<sales_quote_item_set_product>
<observers>
<Nellys_QBProductID>
<class>Nellys_QBProductID_Model_Observer</class>
<method>setQbProductId</method>
</Nellys_QBProductID>
</observers>
</sales_quote_item_set_product>
</events>
</global>
</config>
Observer.php
<?php
class Nellys_QBProductID_Model_Observer extends Varien_Event_Observer
{
public function setQbProductId(Varien_Event_Observer $observer) {
$item = $observer->getQuoteItem();
$product = $observer->getProduct();
$item->setQbProductId($product->getQbProductId());
return $this;
}
}
?>
当我转储订单商品信息时,它似乎没有输出qb_invoice_id。知道我哪里出错了吗?我已经清除了我的 var/cache 文件夹并重新索引了所有内容,但仍然没有显示在订单项上。
可能需要在 sales_order_table 上安装属性?
【问题讨论】:
标签: php magento magento-1.8