Magento 从 REST API 更改订单状态

本文关键字:单状态 状态 REST API Magento | 更新日期: 2023-09-27 17:55:37

我正在通过C#ASP.NET MVC应用程序中的REST API与Magento Web应用程序(版本1.9.2.2)进行"通信"。

该应用程序本质上充当比萨饼的后端订单流仪表板。我需要显示最新订单,并允许用户在处理项目时检查项目(以及其他事项)。

我能够检索订单、产品、客户等;但需要能够更新订单状态。根据我的研究,这似乎可以通过添加订单注释来实现。

也就是说,我的问题如下:

  1. 是否只能通过Magento 1.9中的SOAP服务添加订单注释(从而更新订单状态)?
  2. 如果上述情况属实,如何使用其他安全方法更新特定订单的订单状态?

关于 REST API 的文档:http://devdocs.magento.com/guides/m1x/api/rest/Resources/Orders/order_comments.html

Magento 从 REST API 更改订单状态

对于可能面临相同问题的任何人,我发现无法通过 REST API 更新订单状态(又名添加销售订单注释)。您必须使用 SOAP API,版本 2 使其变得最简单。

设置:

  1. 在 magento 中,创建 SOAP 角色和用户
  2. 将 SOAP v2 API 作为 Web 引用添加到 Visual Studio 项目中

法典:

public void UpdateOrderStatus(string orderIncrementId, string newStatus, string comment = "")
{
    // Init service with uri
    var service = new MagentoSoap.MagentoService();
    // Login - username and password (soap api key) of the soap user
    string sessionId = service.login(Username, Password);
    // Update order status
    service.salesOrderAddComment(sessionId, orderIncrementId, newStatus, comment, 1, true);
}

您可以使用 addComment 方法执行此操作,该方法还允许您将新订单状态指定为其参数之一。

$sku='100000003';
$orderStatus = 'Downloaded';
$comment = 'The order was successfully downloaded';
$sendEmailToCustomer = false;
$proxy->call($sessionId, 'sales_order.addComment', array($sku, $orderStatus, $comment, $sendEmailToCustomer));