【发布时间】:2015-08-27 16:16:35
【问题描述】:
我创建了一个自定义模块,允许我添加和管理多个商店位置。我设法添加了一种自定义付款方式,当用户选择此方式时,会出现一个下拉菜单,显示所有可用的商店。我添加了一个安装程序脚本,该脚本在以下数据库中添加了一个列: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。
有谁知道我怎样才能将这些自定义数据保存到报价和订单中?
【问题讨论】:
-
您可能需要在转换报价时将同一观察者添加到订单中...您可能需要在交易过程的每个步骤中执行此操作。不确定您需要添加哪个特定观察者,但这里是事件列表:nicksays.co.uk/magento-events-cheat-sheet-1-9
-
感谢您的评论和链接。我实际上已经在使用这个链接并且已经尝试了 sales_convert_quote_to_order 事件,但仍然是相同的结果
标签: php magento magento-1.9 observers