我已经能够通过SOAP创建货件并添加跟踪号,但是我一直在努力寻找如何通过API向客户发送其跟踪号的方法。创建货件时,我可以发送电子邮件,但是必须先创建货件,然后才能添加跟踪号。我知道我可以创建自己的电子邮件并将其发送出去,但是如果可能的话,我宁愿坚持使用API​​。

有没有我可以使用的SOAP方法?

创建跟踪号:

public function addTrackingNumber($trackingNumber)
{

    $shipmentID = $this->createShipment();
    return $this->client->salesOrderShipmentAddTrack(
                $this->sessionId,
                $shipmentID,
                "ups",
                "UPS",
                $trackingNumber
            );
}

最佳答案

装运API具有未记录的sendInfo端点。我不确定何时添加它,因此它可能不在您的Magento版本中,但是您可以在app/code/core/Mage/Sales/Model/Order/Shipment/Api.php中查找它。在Magento 1.9.1.0中,它看起来像这样:

public function sendInfo($shipmentIncrementId, $comment = '')


您需要从此倒退,以获取所使用API​​版本的正确代码。这是我的要求(V1):

$result = $client->call($session, 'sales_order_shipment.sendInfo', array('100000001', 'an optional comment'));


在您的应用程序中,我怀疑它看起来像这样:

return $this->client->salesOrderShipmentSendInfo($shipmentID, 'an optional comment');


因此,您需要进行三个API调用:首先创建货件(不发送通知电子邮件),其次添加跟踪号,最后发送最终通知。

10-08 05:08