通过API更新Shopify上的价格而不是PHP和卷曲

时间:2016-04-08 06:36:59

标签: php curl shopify

我的产品没有任何变种。我可以更新非变量值,但由于某种原因,我无法更新价格,这是一个(看似必需的)变体的一部分。

 $data = array(
              'product' => array(
                                 'id' => $id,                                       
                                  'title' => $title,
                                  'body_html' => $description,                             
                                  'tags' => $tags,
                                   'variants' => array(array(
                                                       'id' => $variant_id,
                                                       'product_id' => $id,                                                      
                                                       'price' => $price))
                                      )   
                     );


        $url = "https://$api_key:$api_pass@example.myshopify.com/admin/products/$id.json";
        $curl = curl_init($url);
        curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
        curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        $result = curl_exec ($curl);       
        curl_close($curl);

        $result = json_decode($result);
        print_r($result);

标题,正文和标签更新正常但价格却没有。我比较了原始产品json,看起来很好。我做错了什么?

由于

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我只是想出来,如果你还没有(我知道我在这个派对上迟到了)

我也无法更新单个商品的价格,但是如果我有一个与该商品相关联的变体,我可以引用该ID,并更新价格。唯一需要注意的是,您需要在所有产品上使用变体(这对我来说并不理想)。

另外,我看到你在变体中声明了两个数组,这是不必要的。

看起来像这样

$data = array(
'product' => array(
    'id' => "Product ID Here",                                       
    'title' => $title,
    'body_html' => $description,                             
    'tags' => $tags,
    'variant'=> array(
        'id' => "Variant ID Here",
        'price' => "199.99"
        )
    )   
);