【问题标题】:Magento custom order attribute/fields? Shooting myself in the foot? [closed]Magento 自定义订单属性/字段?朝自己的脚开枪? [关闭]
【发布时间】:2010-10-08 00:31:30
【问题描述】:

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

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

【问题讨论】:

    标签: php magento catalog ecommerce-sales


    【解决方案1】:

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

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

    【讨论】:

    • 反应很好。 +1 用于创建新表以确保商店保持升级安全。
    • 谢谢乔纳森,听起来很完美!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      相关资源
      最近更新 更多