Shopware 6邮件中的交易状态可能错误



Shopware 6中的所有电子邮件模板都使用第一个收款条目order.transactions.first.paymentMethod.translated.name和CCD_ 2。

电子邮件的事务排序与createdAt的默认排序不同吗?因为根据我迄今为止发现的所有代码示例(例如AccountOrderPageLoader(,事务通常按createdAt排序。

根据排序,如果客户在订购后切换付款方式,我预计电子邮件会显示错误的付款方式。

所以我的问题是:难道所有电子邮件模板都不应该引用事务集合的最后一个条目来真正显示最新状态吗?还是电子邮件的排序在其他地方发生了变化?

感谢您的澄清。

我认为这是一个合理的问题,但考虑到标准程序不应该成为问题。这是因为当使用StateMachineRegistry从一个状态转换到另一个状态时,正在更新现有的状态实体,而不是插入新的状态实体。因此,如果按照预期使用转换模型,那么每个订单和支付/交付方法的组合应该只有一个状态得到更新,而以前的状态将作为state_machine_history实体持久化,以追溯状态变化。

然而,从技术上讲,考虑到关联是OneToManyAssociationField的实例,在使用相应的存储库时,显然可以为每个订单保留多个order_transactionorder_delivery实体。我认为使用这种关系模型的原因是,在未来下一个订单时,可能会允许多种交付/付款方式。然而,目前还没有实现这一点,这就是为什么使用适当的服务在状态之间转换很重要的原因。

相关内容

最新更新