我已经能够通过SOAP创建货件并添加跟踪号,但我很难搞清楚如何通过API向客户发送他们的跟踪号码。创建货件时,我可以发送电子邮件,但在添加跟踪号之前必须先创建货件。我意识到我可以创建自己的电子邮件并将其发送出去,但如果可能的话,我宁愿坚持使用它。
我可以使用SOAP方法来执行此操作吗?
创建跟踪号:
public function addTrackingNumber($trackingNumber)
{
$shipmentID = $this->createShipment();
return $this->client->salesOrderShipmentAddTrack(
$this->sessionId,
$shipmentID,
"ups",
"UPS",
$trackingNumber
);
}
答案 0 :(得分: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调用:首先创建货件(不发送通知电子邮件),第二次添加跟踪号,第三次最后发送通知。< / p>
答案 1 :(得分:0)
这个问题有点过时但是我遇到了同样的问题并通过查看Magento API来解决这个问题。
它表示,如果您想要通知用户,则必须使用参数创建货件。