【问题标题】:Wrong product stock when importing magmi with pending orders使用挂单导入 magmi 时产品库存错误
【发布时间】:2012-05-21 09:14:06
【问题描述】:

我正在通过 Magmi 将 ERP 软件与 Magento 同步。

请考虑以下情况:产品的所有可用单位都处于待处理订单中,因此该产品在商店中不可用。如果在订单待处理期间完成 Magmi 产品导入,产品的库存将恢复到原始数量并返回商店。 这意味着在订单完成后从 ERP 软件再次导入之前,库存不会是正确的。

我错过了什么吗?如果不是,在导入时设置正确的产品可用性有多容易?

我想这“只是”将待处理订单中的产品数量减去进口数量的问题。当然,最坏的情况可能是产品在 ERP 软件中已经缺货,因此最终出现负库存......更重要的是,客户不满意。

我可能可以通过更频繁地同步来最大程度地降低最终出现负库存的风险,但我仍然依赖于网站订单的完成速度。

想法?

【问题讨论】:

    标签: magento magmi


    【解决方案1】:

    您希望确保您的(库存)数据有 1 个真正的资源。因为库存更新是从 ERP 到 Magento,我们可以说 ERP 是领先的资源。在这种情况下,您可以考虑在订单设置为待处理时对 ERP 使用实时更新(在 sales_order_save_after 上使用观察者)。

    这样,你会遇到以下情况:

    1. 产品库存已导入到 magento。
    2. 订单已下达且待处理。
    3. 实时更新完成,ERP 接收更新的库存(减少)。
    4. 现在有两种情况:
      1. 订单被取消,ERP 收到更新的库存(增量)。
      2. 订单成功,无需更新 ERP。

    这样,ERP 始终了解 Magento 如何感知您的库存,并且当您收到 Magento 的“完整”库存更新时不会有任何问题。

    【讨论】:

    • 听起来不错,(尽管我想避免更改 ERP 数据库)。你能解释一下观察者的用途吗?会不会像触发器一样?
    • @Mike:实际上没有其他方法,除非您加快库存更新并禁用 Magento 的库存递减行为,但这会给您留下空白。
    • @Mike:在保存订单(实际上是大多数实体)时调度事件。您可以使用它们实时而不是基于间隔来执行某些操作。在 magento 中有很多描述事件/观察者的资源:)
    • 我知道我可以在 app\code\local\SampleObserver\Sales\Model\Order\Save\ 中拥有一个 php 文件。在这种情况下,如何获取订单中的数据?我显然需要订单的产品 SKU 和数量...
    • 观察者方法被传递一个包含订单的传输对象。你可以通过 $observer->getOrder() 来获取订单。从那里,您有一个销售/订单对象,并且可以执行您通常对此类对象执行的任何操作。不过,您可能需要考虑为此创建一个单独的问题 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多