Php 如何在Magento SOAP API中找到应用于订单的装运?

Php 如何在Magento SOAP API中找到应用于订单的装运?,php,magento,soap,Php,Magento,Soap,以下是销售订单的API文档: 以下是装运的API文档: 我一辈子都不知道如何在他们之间建立关系。订单/信息端点似乎不返回任何类型的装运id,订单/装运端点似乎不可按订单id进行过滤。这可以通过在订单的订单id值上使用过滤器实现 请注意,order\u id与订单的increment\u id不同,后者是通常面向客户的参考编号。因此,需要额外的步骤将订单的引用转换为order\u id 我不能给你工作的PHP代码,我用Java工作,但我可以描述方法: 使用sales\u order.infoA

以下是销售订单的API文档:

以下是装运的API文档:


我一辈子都不知道如何在他们之间建立关系。订单/信息端点似乎不返回任何类型的装运id,订单/装运端点似乎不可按订单id进行过滤。

这可以通过在订单的
订单id
值上使用过滤器实现

请注意,
order\u id
与订单的
increment\u id
不同,后者是通常面向客户的参考编号。因此,需要额外的步骤将订单的引用转换为
order\u id

我不能给你工作的PHP代码,我用Java工作,但我可以描述方法:

  • 使用
    sales\u order.info
    API调用获取订单号(
    increment\u id
    )的订单数据
  • 从订单数据中获取
    订单id
  • 使用
    order\u id
    作为
    sales\u order\u shipping.列表中的过滤器
  • 这将为您提供一个装运列表,每个装运都有一个
    增量\u id
    。此id是装运的参考号
  • sales\u order\u shipping.info
    中使用装运的
    increment\u 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);