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

时间:2017-04-27 13:56:49

标签: php magento magento-1.8

使用Magento CE 1.8.x,我尝试获取自定义产品属性以传递给在幕后使用的订单项。我已在qb_product_id

中创建了自定义产品属性catalog > attributes > manage attributes

然后我创建了以下模块:

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

1 个答案:

答案 0 :(得分:0)

在Magento中为订单添加自定义属性与我们对客户和类别的相同。不同的是我们将使用不同的安装类,现在我们不需要属性集,组和属性输入类型。我们将创建一个快速模块,它将完全符合我们的要求,仅此而已。所以你需要为此创建模块。请访问以下网址。

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

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