3

我已经能够通过 SOAP 创建一个货件并添加一个跟踪号,但我一直在弄清楚如何通过 API 向客户发送他们的跟踪号。创建货件时,我可以发送电子邮件,但必须先创建货件,然后才能添加跟踪号。我意识到我可以创建自己的电子邮件并将其发送出去,但如果可能的话,我宁愿坚持使用 API。

我可以使用 SOAP 方法来执行此操作吗?

创建跟踪号:

public function addTrackingNumber($trackingNumber)
{

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

2 回答 2

2

发货 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 调用:第一个创建货件(发送通知电子邮件),第二个添加跟踪号,第三个最终发送通知。

于 2015-05-14T21:09:13.973 回答
0

这个问题有点过时了,但我遇到了同样的问题,并通过查看该方法的 Magento API解决了这个问题。
它说如果您也想通知用户,则必须使用参数创建货件。

于 2013-09-16T09:42:57.803 回答