10

在 Magento 中找出订单“状态”与“状态”之间的区别时,我玩得很开心。

我们设置了一个自定义流程来将订单发送给第三方履行,我们还有一些自定义逻辑来检查潜在的欺诈订单并将它们标记为由管理员用户手动批准发货以进行履行。

我在模块配置中添加了“待发货”状态和“可以发货”状态,如下所示:

<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”选项将可用,但在“Processing”的“state”下分组。在这里,我在“payment_review”状态下有“OK To Ship”,它使该选项可用,但是当我拉下订单并检查 canShip() 时,它失败了,因为它是“Payment Review”状态。

因此,如果有人可以帮助我了解状态/状态如何在 Magento 中工作以及如何最好地配置这种情况,我将不胜感激。

4

2 回答 2

3

只是要指出,由于 Magento 允许从管理界面编辑状态(我相信 1.5 版本),XML 状态配置已被弃用。现在唯一相关的配置是在 sales_order_status 和 sales_order_status 状态表中。

如果您想添加新的,只需通过 phpmyadmin 编辑表格(您也可以通过安装程序脚本http://www.techytalk.info/programmatically-add-new-order-state-and-status-in-magento进行编程/ )

于 2013-11-08T06:48:00.690 回答
1

我的理解是,对于给定的状态(由正常的订单流确定,并且不是真正可变的),您可以自由支配更改订单的状态(这是一个标签)。根据您想要完成的任务,您可以尝试克隆<okay_to_ship />到您希望它们进入的其他状态吗?它们似乎不是排他性的。

谢谢,乔

于 2010-11-13T19:02:22.677 回答