在管理面板中,我创建了一个product attribute
as ' merchant
'。我想merchant
在表格中添加一个新列sales_flat_order_item
。新列应填充属性名称。如果不使用事件观察器方法,我怎么能做到这一点?任何帮助将不胜感激。(我正在使用 magento CE 1.7 )
问问题
2483 次
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 回答