【问题标题】:PHP Put request (update ECWID e-commerce order with tracking)PHP Put 请求(使用跟踪更新 ECWID 电子商务订单)
【发布时间】:2016-01-29 17:52:38
【问题描述】:

我正在使用 Ecwid API,现在正着手从我们的履行站点更新我的订单,其中包含跟踪信息和运输状态。

Fulfillment Operation 将导出订单更新的 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 内容)并更新每个订单的 trackingNumber 和fulfillmentStatus。

【问题讨论】:

    标签: php json xml


    【解决方案1】:

    这里是 Ecwid 团队的 Vitaly。

    我看到您想通过 API 从 XML 文件更新 Ecwid 商店中的订单。

    所以整个过程是:

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

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

    我想接下来的步骤是:

    1. 管理在 XML 文件中正确查找订单详细信息(订单 号码,跟踪号码),而在循环中
    2. 使每个循环更新商店中的特定订单

    对于第 1 步,我建议将 XML 文件中的数据保存为 PHP 中方便您使用的格式,例如对象或数组。

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

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

    对于第2步:所以每个循环都会遍历Array中的一个recordArray,然后得到请求所需的orderNumber和trackingNumber。

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

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

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      相关资源
      最近更新 更多