Shopware 6 Admin API:下单时不更新product的updatedAt及触发product.written事件是否符合预期?
回答
行为是否符合预期?
是,这个行为完全符合Shopware的设计逻辑。
Shopware中,产品的库存数据并非直接存储在Product实体对应的表中,而是通过关联的Stock实体(对应product_stock表)来管理。当订单导致库存变动时,系统只会更新Stock实体的数值,并不会修改Product实体本身的字段(包括updatedAt),自然也不会触发product.written事件。
更优的监控方案
如果你希望沿用“监控实体变更事件”的方式追踪库存变化,推荐监听stock.written事件,而不是用checkout.order.placed作为变通:
stock.written会在所有库存变动场景下触发,包括订单扣减、后台手动调整库存、退货回补库存等,覆盖范围更全面;- 这个事件的触发逻辑和你监控产品更新时使用的
product.written完全一致,符合你想要的“统一监控方式”的需求。
关于checkout.order.placed的局限性
用这个事件作为变通确实能追踪订单导致的库存变化,但它只能覆盖下单这单一场景,无法捕捉其他非订单触发的库存变动,如果你需要全场景的库存变更监控,这个方案并不完善。
内容的提问来源于stack exchange,提问作者M2E Pro
相关产品推荐
相关产品推荐

