2010-11-13 132 views
10

我有一个有趣的时间搞清楚订单的“状态”,对应的是在Magento“状态”之间的区别。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船舶”的“payment_review”状态下,它提供的选项,但后来当我拉下来的订单,并检查canShip() - 它失败,因为它是一个“付款审查”状态的状态。

所以,如果有人能帮助我理解状态/状态都打算如何在Magento以及如何最好地配置这种情况下工作,我将不胜感激。

回答

1

我的理解是,对于一个给定的状态(这是通过正常秩序流量决定的,而不是真正的可变的),你有自由支配更改订单状态(这是一个标签)。取决于你想完成什么,你可以尝试克隆<okay_to_ship />到你想要他们的另一个状态吗?它们看起来并不是独一无二的。

谢谢, 乔

+1

是啊,我也尝试 - 我把“ok_to_ship”既有“加工”下和“payment_review”状态,并允许我在订单处于“欺诈”状态/状态时选择并更新它。问题是,从'欺诈'改为'ok_to_ship'仍将其归入'payment_review'状态,再次使得canShip()检查失败。有没有办法将状态绑定到状态?并且在另一个被设置为其他状态的时候仍然是一个选项? – 2010-11-15 23:11:16

+0

对最后一行的更正:“... *订单设置为其他状态?” – 2010-11-15 23:33:36

+2

基本上,比状态更重要的是,您希望从付款审核=>处理中更改订单状态。我并没有对此感到困惑,而是寻求这两者之间的状态转换,然后在处理过程中保持“可以运送”。至于流程,使用2个步骤从欺诈 - >处理 - >好的到发运,并保存一些复杂性。 – 2010-11-17 15:23:47