1

在管理面板中,我创建了一个product attributeas ' merchant'。我想merchant在表格中添加一个新列sales_flat_order_item。新列应填充属性名称。如果不使用事件观察器方法,我怎么能做到这一点?任何帮助将不胜感激。(我正在使用 magento CE 1.7 )

4

1 回答 1

3

首先,您需要将新列添加到 sales_flat_quote item 和 sales_flat_order_item。最好的解释在这里: http: //www.magentocommerce.com/knowledge-base/entry/magento-for-dev-part-6-magento-setup-resources

您的设置资源必须如下所示:

$installer = $this;
$installer->startSetup();
$installer->getConnection()
        ->addColumn(
            $installer->getTable('sales/quote_item'), 'merchant', 'VARCHAR(20) NOT NULL');
$installer->getConnection()
          ->addColumn(
            $installer->getTable('sales/order_item'), 'merchant', 'VARCHAR(20) NOT NULL')

为了将数据从 quote_item 传递到 order_item,您需要在 config.xml 中指定如下内容:*

然后,为了保存报价项目中的数据,您需要一个观察者,我建议您阅读以下内容:http: //www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_method 事件你正在寻找的是在观察者方法中你必须做这样的事情

class MyNamespace_Mymodule_Model_Observer
{
    public function saveTheMerchant($observer)
    {
        $item = $observer->getEvent()->getQuoteItem();
        $product = $item->getProduct();
        $item->setMerchant($product->getMethant());
        $item->save();
    }
}

问候。

于 2013-07-30T15:55:40.870 回答