PHP Put请求(通过跟踪更新ECWID电子商务订单)

时间:2016-01-29 17:52:38

标签: php json xml

我正在使用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。

1 个答案:

答案 0 :(得分:0)

来自Ecwid团队的Vitaly。

我发现您希望通过API从XML文件更新Ecwid商店中的订单。

所以整个过程是:

  • 获取XML文件的详细信息
  • 解析其中的数据,找出那里的订单总数
  • 为文件中的每个订单形成一个循环
  • 向Ecwid API发出请求以更新每个循环中的顺序

在您的第二个代码段中,我看到print_r($data_string); - 它在屏幕上打印了什么?

我想下一步将是:

  1. 管理以在XML文件中正确查找订单详细信息(订单 数字,追踪号码)在循环中
  2. 使每个循环更新商店中的特定订单
  3. 对于第1步,我建议您在PHP中将数据从XML文件保存为方便的格式,例如:对象或数组。

    例如,如果它是一个数组,它将是这样的:

    Array = [recordArray 1, recordArray 2, recordArray 3]
    
    recordArray = [ orderNumber, trackingNumber ]
    

    对于第2步:所以每个循环都将通过Array中的recordArray,然后为请求获取必要的orderNumber和trackingNumber。

    然后请求将使用此数据更新您的Ecwid商店中的订单,就像您在上面的代码段中所示。但是,94055036993002507193627074的值将是动态的,并且对于每个循环都是不同的。

    如果您有任何疑问,请随时与我联系:http://developers.ecwid.com/contact

    谢谢。