我创建了一个自定义模块,允许我添加和管理多个商店位置。我已设法添加自定义付款方式,当用户选择此选项时,会出现一个显示所有可用商店的下拉列表。我添加了一个安装程序脚本,该脚本在以下数据库中添加了一列:sales_flat_order
,sales_flat_order_grid
和sales_flat_order_quote
。该列名为store_pickup_id
。我想要做的是让销售报价和销售订单保存商店提货ID,但我似乎无法做到这一点。我创建了以下扩展sales_quote_save_after
事件
public function saveCustomData(Varien_Event_Observer $observer) {
$event = $observer->getEvent();
$order = $event->getOrder();
$quote = $event->getQuote();
$post = Mage::app()->getFrontController()->getRequest()->getParams();
if (isset($post["store_pickup"])) {
$quote->setStorePickupId($post["store_pickup"]);
}
Mage::log("Store pickup id: ".$quote->getStorePickupId());
return $this;
}
当我进行测试交易时,我可以在sales_flat_quote
中看到store_pickup_id
正在设置,因为它在步骤之间保存。但是,当我处理订单时,另一个条目会添加到同一个表中,但没有store_pickup_id
,订单也无法设置store_pickup_id
。
任何人都知道如何将这些自定义数据保存到报价和订单中?
答案 0 :(得分:0)
我找到了解决方案,结果发现我在配置中缺少以下关键行,这些关键行会将我的自定义数据转换为订单
<fieldsets>
<sales_convert_quote>
<store_pickup_id>
<to_order>*</to_order>
</store_pickup_id>
</sales_convert_quote>
</fieldsets>
我发现以下link非常有帮助,希望它有助于其他人