我正在使用 Ecwid API,现在正在从我们的履行网站更新我的订单,其中包含跟踪信息和运输状态。
履行操作将导出订单更新的 xml 文件。
我首先创建了基本脚本来更新产品,这工作正常。
// Post Tracking number and change Status to shipped
// trackingNumber : ""
// fulfillmentStatus : "SHIPPED"
$storeID = "";
$myToken = "";
$data = array("trackingNumber" => "9405503699300250719362", "fulfillmentStatus" => "SHIPPED", "orderNumber" => "7074");
$data_string = json_encode($data);
$url = "https://app.ecwid.com/api/v3/".urlencode($storeID)."/orders/".$data['orderNumber']."?token=".$myToken;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json','Content-Length: ' . strlen($data_string)));
$response = curl_exec($ch);
curl_close($ch);
我还创建了脚本来拉入 xml 文件并转换为 json 以将数据"放置"到购物车中。
<?php
// The file data.xml contains an XML document with a root element
// and at least an element /[root]/title.
if (file_exists('data.xml')) {
$xml = simplexml_load_file('data.xml');
print_r($xml);
} else {
exit('Failed to open data.xml.');
}
$data_string = json_encode($xml);
echo '<br> br>';
echo "<pre>";
print_r($data_string);
?>
现在,这就是我将两个部分放在一起的地方,以便它将循环访问具有多个"orderNumber(s("的xml文件(json内容(并更新每个订单的跟踪编号和履行状态。
来自
Ecwid团队的Vitaly在这里。
我看到您想通过 API 从 XML 文件更新 Ecwid 商店中的订单。
所以整个过程是:
- 获取 XML 文件的详细信息
- 解析其中的数据,找出那里的订单总数
- 为文件中的每个订单形成循环
- 向 Ecwid API 发出请求以更新每个循环中的顺序
在您的第二个代码片段中,我看到print_r($data_string);
- 它打印到屏幕上的是什么?
我想接下来的步骤将是:
- 管理以在XML文件中正确查找订单详细信息(订单数字,跟踪号(,在循环中
- 使每个循环更新商店中的特定订单
对于第 1 步,我建议将数据从 XML 文件保存为方便的 PHP 格式,例如对象或数组。
例如,如果它是一个数组,它将是这样的:
Array = [recordArray 1, recordArray 2, recordArray 3]
recordArray = [ orderNumber, trackingNumber ]
对于步骤 2:因此,每个循环都将通过数组中的 recordArray,然后获取请求所需的 orderNumber 和 trackingNumber。
然后,请求将使用这些数据来更新您的订单 Ecwid 商店,就像您在上面的代码片段中所示一样。但是,每个循环的值:9405503699300250719362
和7074
将是动态的且不同。
如果您有任何疑问,请随时与我联系:http://developers.ecwid.com/contact
谢谢。