使订单的increment_id同步到外部系统
-
12-12-2019 - |
题
我们正在将 Magento 与现有系统集成。我们现有的系统已经有订单号。由于 Magento 有自己的订单号,而我们现有的系统有不同的订单号,因此存在很多混乱,因此我们试图使订单号匹配。
我为 sales_order_place_after 设置了一个观察者,我可以从现有系统中获取订单号。它似乎不适用于 $order->setIncrementId($our_existing_order_id) 我不知道这是否真的是个好主意。
实际上,我们想要的最终目标是发送的电子邮件收据中的订单编号与我们现有系统中的订单编号相匹配。有没有更好的方法来实现这一点?
解决方案
我建议的是要在sales_flat_order中创建一个新字段来存储此ID,然后根据需要更新不同的模板以显示此数字。这样你将在未来的干净升级路径
其他提示
一种解决方案是创建您自己的 eav 实体模型。如果您查看 eav_entity_type
表格中的列 increment_model
你看到那里有一个类路径。例如,将它们替换为您自己的自定义模型 [module]/entity_increment_erp
class [Namespace]_[Model]_Model_Entity_Increment_Erp extends Mage_Eav_Model_Entity_Increment_Abstract
{
public function getNextId()
{
/**
* your custom code to generate the increment ID,
* as long as it is unique
*/
return $id;
}
}