我正在使用Ecwid API,现在正在通过跟踪信息和送货状态从我们的履行网站更新订单。
Fulfillment Operation将导出订单更新的xml文件。
我首先创建了基本脚本来更新产品,这很好。
for (int i = 0; i < NumberOfStudents; i++){
System.out.print("What is student number " + (i+1) + "'s name?: ");
String studentName = reader.nextLine();
array[i] = new Student(studentName); // initialize the array
}
我还创建了一个脚本来拉入xml文件并转换为json以将数据“放入”购物车。
// 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);
现在这就是我迷失了将这两个部分放在一起以便它使用多个“orderNumber(s)”遍历xml文件(json内容)并更新每个订单的trackingNumber和fulfillmentStatus。
答案 0 :(得分:0)
来自Ecwid团队的Vitaly。
我发现您希望通过API从XML文件更新Ecwid商店中的订单。
所以整个过程是:
在您的第二个代码段中,我看到print_r($data_string);
- 它在屏幕上打印了什么?
我想下一步将是:
对于第1步,我建议您在PHP中将数据从XML文件保存为方便的格式,例如:对象或数组。
例如,如果它是一个数组,它将是这样的:
Array = [recordArray 1, recordArray 2, recordArray 3]
recordArray = [ orderNumber, trackingNumber ]
对于第2步:所以每个循环都将通过Array中的recordArray,然后为请求获取必要的orderNumber和trackingNumber。
然后请求将使用此数据更新您的Ecwid商店中的订单,就像您在上面的代码段中所示。但是,9405503699300250719362
和7074
的值将是动态的,并且对于每个循环都是不同的。
如果您有任何疑问,请随时与我联系:http://developers.ecwid.com/contact
谢谢。