【问题标题】:Magento 1.6, An event for when stock levels change?Magento 1.6,库存水平变化时的事件?
【发布时间】:2012-01-29 05:56:32
【问题描述】:

我需要知道每当产品的库存水平发生变化时调度的事件的名称。

到目前为止,我已经能够使用 cataloginventory_stock_item_save_after,但是这似乎只有在我在后端更改库存水平时才会发送。

如果我在后端创建订单,库存水平会下降,但不会发送此事件。

我也不确定当有人在前端订购产品时使用哪个事件。

我正在使用 magento 1.6。

提前感谢您提供的任何帮助。

【问题讨论】:

    标签: magento


    【解决方案1】:

    正如 Alan Storm 在他对这个问题的回答中所建议的那样,您总是可以看到触发了哪些事件: Is there an event for customer account registration in Magento?

    它将为您提供执行操作时触发的所有事件...只需确保仅在实际需要时打开/关闭它,否则您最终会遇到大量事件进行拖网通过

    【讨论】:

    • 谢谢,我已经尝试过了,似乎触发了大量事件,即使在执行操作之前和之后打开/关闭也是如此。那里没有一个看起来很明显,很多看起来他们会在网站的其他部分被调用。
    • 我使用的是 1.6.1 版本,只是运行以下命令,看看是否能找到合适的事件...我找不到你提到的事件:find 。 -name "*.php" | xargs -L10 grep -n -A 6 -B 6 "dispatchEvent" .> events.txt 我从我的 magento 目录的根目录运行它。我在这个博客上找到了这个:edmondscommerce.co.uk/magento/…
    【解决方案2】:

    看看乔纳森戴在这里给我的答案:Detect inventory change

    查看app/code/core/Mage/CatalogInventory/Model/Stock/Item.php 并注意$_eventPrefix 设置为cataloginventory_stock_item。这意味着您可以使用this blog post 中详述的通用对象保存事件来注册观察者,例如cataloginventory_stock_item_save_after 并检查对象的值。

    【讨论】:

    • 刚刚注意到您在问题中引用了此事件。但是,这就是我最终使用的事件,它在前端运行良好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    • 1970-01-01
    • 2013-10-08
    相关资源
    最近更新 更多