如何将自定义订单状态添加到 shopware 6

Posted

技术标签:

【中文标题】如何将自定义订单状态添加到 shopware 6【英文标题】:How to add custom order state to shopware 6 【发布时间】:2020-12-29 23:33:01 【问题描述】:

对于 shopware 6,我想向核心添加一些自定义订单状态。

通过 DAL,我设法在激活我的插件时添加了这些,但现在在管理中无法选择。所以我无法将我的订单更改为这个新的自定义状态。

谁能帮我选择这个状态?

【问题讨论】:

【参考方案1】:

当您查看state machine ERD 时,您会看到关于状态的相当复杂的设置。有一个名为 state_machine_transition 的表在您的情况下可能缺少一些条目:

在docs 中,它是 devlivery 状态的状态机概述,我假设是您的新状态。在状态机图中,您可以看到所有可用状态和所有可更改的转换步骤从一个状态到另一个状态。

我假设您缺少这样的过渡步骤。一旦你添加了一个过渡步骤,管理部门应该允许你进入它。确保集成您的新状态,以便在任何情况下都可以来回更改它。这可以防止用户被锁定在死胡同中。

【讨论】:

您好 Joshua Behrens,感谢您的详细解释。最后,我确实错过了过渡步骤,通过在插件的安装生命周期事件期间将这些添加到数据库中,现在一切正常【参考方案2】:

你可以使用transition of class StateMachineRegistry方法改变状态

这是为订单、订单交易、运输添加自定义状态的正确方法 -

https://developer.shopware.com/docs/guides/plugins/plugins/checkout/order/using-the-state-machine

【讨论】:

以上是关于如何将自定义订单状态添加到 shopware 6的主要内容,如果未能解决你的问题,请参考以下文章

如何将在 shopware 6 中创建的订单的订单状态从开放更改为报价?

Shopware 6:在自己的自定义管理模块中获取 PHP 数据

WooCommerce:将自定义 Metabox 添加到管理订单页面

将自定义批量操作添加到 Woocommerce 3 中的管理订单列表

将自定义数据添加到wordpress客户订单

将自定义结帐字段(用户输入)添加到订单数据和用户元数据