Magento:如何将自定义产品属性传递给订单

Magento: How to pass custom product attribute to order

使用 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 上安装属性?

在 Magento 中为订单添加自定义属性与我们为客户和类别所做的相同。不同之处在于我们将使用不同的设置 class 并且我们现在不需要属性集、组和属性输入类型。我们将创建一个快速模块,它将完全按照我们的要求进行操作,仅此而已。所以你需要为此创建模块。请访问以下网址。

http://ka.lpe.sh/2013/05/10/magento-add-attribute-to-order/

https://www.atwix.com/magento/custom-product-attribute-quote-order-item/