簡體   English   中英

在shopify中通過api創建產品

[英]create product by api in shopify

我想通過 api 在 shopify 中創建產品。我嘗試使用以下代碼,但它不起作用。

<?php 
   $products_array = array(
                "product" => array( 
                    "title"        => "Test Product",
                    "body_html"    => "<strong>Description!</strong>",
                    "vendor"       => "DC",
                    "product_type" => "Test",
                    "published"    => true ,
                    "variants"     => array(
                        array(
                            "sku"     => "t_009",
                            "price"   => 20.00,
                            "grams"   => 200,
                            "taxable" => false,
                        )
                    )
                )
            );

            $SHOPIFY_API = "https://apikey:password@domainname.myshopify.com/admin/products.json";
            $curl = curl_init();
            curl_setopt($curl, CURLOPT_URL, $SHOPIFY_API);
            $headers = array( "Authorization: Basic ".base64_encode("apikey:password"),  

  "Content-Type: application/json", 
  "charset: utf-8");
            curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);

            curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($curl, CURLOPT_VERBOSE, 0);
            curl_setopt($curl, CURLOPT_HEADER, 1);
            curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
            curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($products_array));
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 

            $response = curl_exec ($curl);
            curl_close ($curl);

            echo "<pre>";
            print_r($response); 
            echo "</pre>";
?>

它給出的響應為 '{"errors":"[API] Invalid API key or access token (unrecognized login or wrong password)"}'。知道嗎?

請檢查您的私人應用程序中是否為產品設置了寫入權限。

我發現了問題,這與權限無關,與您發布錯誤 URL 的 API 的 URL 有關。 這是正確的:

https://{apikey}:{password}@{hostname}/admin/api/{version}/{resource}.json

這是代碼:

<?php
$products_array = array(
    "product" => array( 
        "title"        => "New Test Product",
        "body_html"    => "<strong>Description!</strong>",
        "vendor"       => "DC",
        "product_type" => "Test",
        "published"    => true ,
        "variants"     => array(
            array(
                "sku"     => "t_009",
                "price"   => 20.00,
                "grams"   => 200,
                "taxable" => false,
            )
        )
    )
);
$API_KEY = 'apikey';
$PASSWORD = 'password';
$SHOP_URL = 'domainname.myshopify.com';
$SHOPIFY_API = "https://$API_KEY:$PASSWORD@$SHOP_URL/admin/api/2020-04/products.json";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $SHOPIFY_API);
$headers = array(
    "Authorization: Basic ".base64_encode("$API_KEY:$PASSWORD"),
    "Content-Type: application/json",
    "charset: utf-8"
);
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($products_array));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec ($curl);
curl_close ($curl);
echo "<pre>";
print_r($response);
echo "</pre>";
?>

嘗試“已發布”=> false ,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM