如何在Magento SOAP API中找到应用于订单的货件?

时间:2015-03-26 18:31:08

标签: php magento soap

以下是销售订单的API文档: http://www.magentocommerce.com/api/soap/sales/salesOrder/sales_order.info.html

以下是货件的API文档: http://www.magentocommerce.com/api/soap/sales/salesOrderShipment/salesOrderShipment.html

我不能为我的生活弄清楚如何建立他们之间的关系。订单/信息端点似乎没有返回任何类型的shipment_id,订单/发货终点似乎也不会被order_id过滤。

2 个答案:

答案 0 :(得分:2)

通过在订单order_id值上使用过滤器,可以实现此目的。

请注意,order_id与订单increment_id不同,后者是通常面向客户的参考号。因此,需要额外的步骤才能将订单的引用转换为order_id

我无法为您提供PHP代码,我使用的是Java,但我可以用这个方法来描述:

  1. 使用increment_id API调用获取订单号(sales_order.info)的订单数据
  2. 从订单数据中获取order_id
  3. order_id
  4. 中使用sales_order_shipment.list作为过滤器
  5. 这将为您提供每个货件列表increment_id。此ID是货件的参考。
  6. 使用increment_id中的货件sales_order_shipment.info获取更多详细信息。

答案 1 :(得分:1)

这是完成@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);