Shopify API (REST), варианты создания продукта терпят неудачу

#rest #curl #php-curl #shopify-app #shopify-api

Вопрос:

Я добавляю продукты в api-интерфейсы shopify для REST. Я использую curl и php, так как это мой любимый язык, но я открыт для использования других.

Это мой код для справки.

Он правильно добавляет продукт, название, текст и т.д., Но не вариант или варианты.

Вероятно, я что-то упускаю в построении запроса.

Спасибо

 $products = $shopify-gt;rest_api('/admin/api/2021-10/products.json',   array(  "product"=gt;array(  "title"=gt; "Bu 151",  "body_html"=gt; "lt;stronggt;Good!lt;/stronggt;",  "vendor"=gt; "AAAA",  "product_type"=gt; "Snowboard",  "published"=gt; true ,  "published_scope" =gt; "web",  "variants"=gt;array(  array(  "id"=gt; 1070325028,  "product_id"=gt; 1071559582,  "title"=gt; "Default Title",  "sku"=gt;"t_009",  "price"=gt;20.00,  "grams"=gt;200,  "taxable"=gt;false,   )  )  )  ), 'POST');  

Остальные вызывали функцию:

 public function rest_api($api_endpoint, $query = array(), $method = 'GET') {  $url = 'https://' . $this-gt;api_key . ':' . $this-gt;password . '@' . $this-gt;shop_url . $api_endpoint;    if (in_array($method, array('GET', 'DELETE') ) amp;amp; !is_null($query)) {  $url = $url . '?' . http_build_query($query);  }  $ch = curl_init($url);  curl_setopt($ch, CURLOPT_HEADER, true);  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  curl_setopt($ch, CURLOPT_MAXREDIRS, 3);   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);  curl_setopt($ch, CURLOPT_TIMEOUT, 30);  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, true);  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);     if( $method != 'GET' amp;amp; in_array($method, array('POST', 'PUT'))) {  if( is_array($query) ) $query = http_build_query($query);  curl_setopt($ch, CURLOPT_POSTFIELDS, $query);  }   $response = curl_exec($ch);  $error = curl_error($ch);  $errormsg = curl_error($ch);    curl_close($ch);    if($error) {  return $errormsg;  } else {  $response = preg_split("/rnrn|nn|rr/", $response, 2);    $headers = array();  $content = explode("n", $response[0]);  $headers['status'] = $content[0];    array_shift($content);    foreach ($content as $c) {  $data = explode(":", $c);  $headers[trim($data[0])] = trim($data[1]);  }    return array('headers' =gt; $headers, 'body' =gt; $response[1]);  }  }