您如何在 Magento SOAP API 中找到应用于订单的发货?
How do you find the shipments applied to an order in the Magento SOAP API?
这是销售订单的 API 文档:
http://www.magentocommerce.com/api/soap/sales/salesOrder/sales_order.info.html
这是 API 货件的文件:
http://www.magentocommerce.com/api/soap/sales/salesOrderShipment/salesOrderShipment.html
我这辈子都想不出如何在他们之间建立关系。 order/info 端点似乎没有 return 任何类型的 shipment_id 并且 order/shipment 端点似乎不能被 order_id 过滤。
这可以通过对订单的 order_id
值使用过滤器来实现。
请注意,order_id
与订单的 increment_id
不同,后者是通常面向客户的参考编号。因此需要一个额外的步骤将订单的参考转换为 order_id
.
我不能给你工作 PHP 代码,我在 Java 工作,但我可以描述方法:
- 使用
sales_order.info
API 调用 获取订单号 (increment_id
) 的订单数据
- 从订单数据中获取
order_id
- 在
sales_order_shipment.list
中使用 order_id
作为过滤器
- 这将为您提供一份货件清单,每个货件都有一个
increment_id
。此 ID 是货件的参考。
- 使用
sales_order_shipment.info
中的货件 increment_id
获取更多详细信息。
这是完成@Kevin Sadler 回答的PHP代码:
/** @var array $filters */
$filters = array(
array('order_id' => array('eq' => $orderId)) // Entity ID, not Increment ID
);
/** @var array $orderShipments */
$orderShipments = $client->call($session, 'sales_order_shipment.list', $filters);
这是销售订单的 API 文档: http://www.magentocommerce.com/api/soap/sales/salesOrder/sales_order.info.html
这是 API 货件的文件: http://www.magentocommerce.com/api/soap/sales/salesOrderShipment/salesOrderShipment.html
我这辈子都想不出如何在他们之间建立关系。 order/info 端点似乎没有 return 任何类型的 shipment_id 并且 order/shipment 端点似乎不能被 order_id 过滤。
这可以通过对订单的 order_id
值使用过滤器来实现。
请注意,order_id
与订单的 increment_id
不同,后者是通常面向客户的参考编号。因此需要一个额外的步骤将订单的参考转换为 order_id
.
我不能给你工作 PHP 代码,我在 Java 工作,但我可以描述方法:
- 使用
sales_order.info
API 调用 获取订单号 ( - 从订单数据中获取
order_id
- 在
sales_order_shipment.list
中使用 - 这将为您提供一份货件清单,每个货件都有一个
increment_id
。此 ID 是货件的参考。 - 使用
sales_order_shipment.info
中的货件increment_id
获取更多详细信息。
increment_id
) 的订单数据
order_id
作为过滤器
这是完成@Kevin Sadler 回答的PHP代码:
/** @var array $filters */
$filters = array(
array('order_id' => array('eq' => $orderId)) // Entity ID, not Increment ID
);
/** @var array $orderShipments */
$orderShipments = $client->call($session, 'sales_order_shipment.list', $filters);