订单状态的定义是什么?或:我应该在哪里整合订单状态?


25

我想定义一些订单状态,例如“已收到信用卡付款”,问题是它们属于哪个状态。每个内置状态都有定义吗?

编辑:好像我混淆了“状态”和“状态”,我希望无论如何从上下文中弄清楚。我怪德国的Magento翻译(状态=>状态,状态=> Zustand)

Answers:


42

根据《 Magento权威指南》[1],订单状态定义如下:

  • 处理订单待处理订单是尚未处理的全新订单。通常,这些订单需要开票和运输。
  • 待处理的PayPal:待处理的PayPal订单是尚未被PayPal清除的全新订单。[...]
  • 处理:处理意味着订单已开具发票或已发货,但不是两者都已开具发票。
  • 完成:标记为完成的订单已开票并已发货。
  • 已取消:如果订单已取消或未付款,则应使用已取消的订单。
  • 已关闭:已关闭订单是指已为其分配贷项凭证且客户已退款的订单。
  • 暂停:在继续执行任何进一步操作之前,必须先取消已暂停的订单。

因此,状态“已收到信用卡付款”将属于 processing,前提是该订单尚未发货。


Aligent Consulting [2]为订单状态创建了流程图:

宏阶状态流


资料来源:

  1. Adam McCombs和Robert Banh:“ Magento权威指南”,Apress,2009年(ISBN 1430272287,9781430272281)
  2. https://twitter.com/aligent/status/509487359172177921/photo/1

我全都想回答问题-但这似乎是低质量的播种。否则可以在网上轻松找到复制+粘贴的答案并不能真正为该网站增加太多价值。
Ben Lessani-Sonassi

4
@sonassi:我尊重您的意见,不会说这个问题是一流的,但是我搜索了一段时间,没有在这里或关于SO的相关问题找到,因此将来可能会对其他人有所帮助。
Fabian Schmengler,

我发现这个超级有用。有时候,与Google相比,由于堆栈是经过预过滤的,因此与Google相比,堆栈上的内容更容易找到。如果正在播种,那就这样吧。他们提供了价值。我完全同意播种。
ahnbizcad '18

2

在Mage_Sales_Model_Order中定义了不同的订单状态:

const STATE_NEW             = 'new';
const STATE_PENDING_PAYMENT = 'pending_payment';
const STATE_PROCESSING      = 'processing';
const STATE_COMPLETE        = 'complete';
const STATE_CLOSED          = 'closed';
const STATE_CANCELED        = 'canceled';
const STATE_HOLDED          = 'holded';
const STATE_PAYMENT_REVIEW  = 'payment_review';

+1这是可以覆盖的吗?有没有办法从其余的api获取此信息?例如/ config / sales / possibleStatusList?
Mzn

1
覆盖常数?为什么要覆盖它们?您可以在后端(系统>订单状态)中定义新的订单状态。如果您的意思是“变更单状态”,是的,这是可能的。是的,您还可以从API(sales_order.info方法或sales_order.list方法)获取订单状态
Stefan,

是的,我的意思是更改列表而不是常量。您知道我如何在Rest API中访问sales_order.info吗?终点是什么?我尝试了/ salesorders / info相对网址
-Mzn

并不难,请参阅此处以进行一般访问:magento.stackexchange.com/a/33187/6291以及有关sales_order.info的信息:devdocs.magento.com/guides/m1x/api/soap/sales/salesOrder/ …祝你好运!
斯特凡

感谢您的答复,但SOAP API与REST API确实不同。由于某种原因,我找不到您在REST api文档中谈论的话题:devdocs.magento.com/swagger/index.html 在那看到吗?也许它不包含在REST API中?
Mzn

1

实际上,由于可以在管理部分中定义1.5个订单状态,因此xml不是添加/更改状态或状态的首选方式。请在状态和状态之间进行区分。状态为“处理中”状态为“已收到信用卡付款”

更新:订单状态可以在admin / sales_order_status /中创建和修改,而无需使用XML进行任何操作只有在订单处于适当状态时才可以分配状态。默认情况下,开发票或发货时订单会进入处理状态。


这是对塞巴斯蒂安·林德的答案的评论吗?至于状态,我似乎将它们混在一起(再次...),感谢您的纠正。
Fabian Schmengler 2013年

-1

您可以将新状态连接到现有订单状态,也可以创建全新的状态。只需使用新状态,按如下所示修改销售模块的配置文件(app \ code \ core \ Mage \ Sales \ etc \ config.xml):

<?xml version="1.0"?>
<config>
  <!-- ... -->
  <global>
    <sales>
      <order>
        <statuses>
          <new_status>
            <label>New Status</label>
            <description>Your Description here</description>
          </new_status>
        </statuses>
        <states>
          <new>
            <label>New</label>
            <statuses>
              <new_status/>
            </statuses>
            <visible_on_front/>
          </new>
        </states>
      </order>
    </sales>
  </global>
</config>

刷新缓存,完成。


2
恐怕这个答案都不合适。
benmarks

1
请勿编辑Magento核心。而是在您自己的模块中创建配置。Magento将合并您和核心的配置文件。
雅克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.