5

我正在使用超过 4 个域的单个目录构建 Magento 商店:1 个用于美国,3 个用于欧洲(英国、法国和德国)。在欧洲有 1 个履行仓库,在美国有 1 个,在美国有一种非官方/内部“仓库”,用于履行赠品等,我们没有跟踪 Magento 的库存水平。我们需要跟踪特定的交易类型,如普通网络销售以及内部/管理订单,如非网络销售、赠品、贸易展览订单等。我的计划是扩展核心订单模型并添加某种“订单/交易类型”字段,然后,在下订单时,处理订单数据并根据商店 ID 和“订单类型”值指示将其发送到哪个仓库以进行履行。

作为 Magento 的新手,我想知道这种设置是否出于某种原因是个坏主意。我是在踢自己的脚吗?单个目录可能有问题是否有任何原因?是否有更简单或更好的方法来处理此流程?有没有办法像向产品一样向订单添加自定义属性?

4

2 回答 2

15

您正朝着正确的方向前进,但是(与 Magento 的大多数事情一样),有几个选择。这里最重要的原则是修改的架构不能导致核心上的升级/补丁受到损害的情况。有趣的是,Magento 在当前版本中已经远离了Mage_Sales_Model_Order(和相关对象)的高度可扩展和升级安全(主要是)EAV 模型。恕我直言,这使得以升级安全的方式添加属性变得更加困难。

我建议您使用观察者系统来添加新的属性值,但要添加到相关的模型中。也就是说,与其将属性添加到 Order 模型本身,不如创建一个包含order_id您的自定义属性的模型。挂钩到适当的事件(可能sales_convert_quote_to_order针对所有订单或checkout_type_onepage_save_order_after前端订单)并检查报价项目以在您的自定义模型中设置值。当您执行流程以将订单传输到履行机构时,您可以通过order_id.

于 2010-10-08T01:25:59.083 回答
6

另一个(更好的?)选项是遵循 Ivan 在Magento 的建议 - 向 sales_flat_quote_item 和 sales_flat_order_item 添加一个新列,并使用 Magento 的销售设置类以升级安全的方式将您的数据添加到 sales_flat_order 表中。

于 2011-01-13T19:03:43.460 回答