事件被多次触发(sales_order_save_commit_after)

时间:2014-09-12 07:10:10

标签: magento

您能否告诉我为什么在订单完成时会触发sales_order_save_commit_after两次? 我将所有逻辑移到sales_order_save_before,但是我使用sales_order_save_commit_after来确保它只被调用一次。我想确保没有超级写入数据库。我试图使用调试器来理解它是如何工作的,但到目前为止我还没有理解,它似乎相当复杂。 我看到2个回调但我无法理解为什么有2个回调用于模型订单。 magento多次写入数据库会多次触发sales_order_save_commit_吗?

1 个答案:

答案 0 :(得分:1)

如果订单包含可配置产品,则$order->getAllItems();返回的集合将包含父产品和子产品,从而导致此产品类型的双元素数量。使用$order->getAllVisibleItems()

更安全