我在弄清楚 Magento 中订单的“状态”与“状态”之间的区别时玩得很开心。
我们设置了一个自定义流程来将订单发送到第 3 方履行,我们还有一些自定义逻辑来检查潜在的欺诈性订单并将它们标记为由管理员用户手动批准发货以进行履行。
我在我的模块配置中添加了“待发货”状态和“可以发货”状态,如下所示:
<global>
...
<sales>
<order>
<statuses>
<pending_shipment translate="label"><label>Pending Shipment</label></pending_shipment>
<ok_to_ship translate="label"><label>OK To Ship</label></ok_to_ship>
</statuses>
<states>
<processing translate="label">
<statuses>
<pending_shipment />
</statuses>
</processing>
<payment_review translate="label">
<statuses>
<ok_to_ship />
</statuses>
</payment_review>
</states>
</order>
</sales>
...
</global>
...我对所有这些都使用内置的“涉嫌欺诈”状态。问题是“涉嫌欺诈”状态被分组在“付款审查”状态下,如果订单被标记为“涉嫌欺诈”或“付款审查”,管理员不允许您选择任何其他状态那些 2. 理想情况下,“OK To Ship”选项可用,但分组在“处理中”的“状态”下。 在这里,我在“payment_review”状态下有“OK To Ship”,它使该选项可用,但是当我拉下订单并检查 canShip() 时——它失败了,因为它是“付款审查”状态。
因此,如果有人可以帮助我了解状态/状态在 Magento 中的工作方式以及如何最好地配置这种情况,我将不胜感激。
最佳答案
只是要指出,由于 Magento 允许从管理界面(我相信是 1.5 版本)编辑状态,XML 状态配置已被弃用。现在唯一相关的配置在 sales_order_status 和 sales_order_status 状态表中。
如果你想添加新的,只需通过 phpmyadmin 编辑表格(你也可以通过安装程序脚本 http://www.techytalk.info/programmatically-add-new-order-state-and-status-in-magento/ 编程)
关于php - Magento 订单状态与状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4170628/