编程语言
首页 > 编程语言> > php – 如何将产品特定属性列添加到sales_flat_order_item表?

php – 如何将产品特定属性列添加到sales_flat_order_item表?

作者:互联网

在管理员面板中,我创建了一个“商家”的产品属性.我想在sales_flat_order_item表中为商家添加新列.应使用属性名称填充新列.如何在不使用事件观察器方法的情况下执行此操作?
任何帮助将不胜感激.
(我正在使用magento CE 1.7)

解决方法:

首先,您需要将新列添加到sales_flat_quote项目和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();
    }
}

问候.

标签:php,magento,magento-1-7
来源: https://codeday.me/bug/20191003/1847757.html