Я пытаюсь создать продукт с API-интерфейсом shopify, но продукт не установлен, и я не получаю ошибок. print_r($server_output);
ничего не отображает, поэтому я не вижу, где я не прав. завиток также включен. Ниже приведен код, который я использую.
Когда я print_r($products);
он отображает массив так, как должен. Я делаю что-то неправильно?
$name='test product 555';
$group=36;
$quantity=20;
$price='20.95';
$url = 'https://my_key_and_pass/admin/products.json';
$type = 'POST';
$product = array('title' => utf8_encode($name),
'body_html' => utf8_encode($name),
'product_type'=> $group,
'variants' => array(
array('price' => $price,
'inventory_quantity'=> $quantity,
'inventory_management' => 'shopify'
)
)
);
$ch = curl_init($url);
$data_string = json_encode(array('product'=>$product));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);
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))
);
$server_output = curl_exec ($ch);
print_r($server_output);
curl_close ($ch);
Я не слишком знаком с PHP / curl, но вам может не хватать количества полей записей:
curl_setopt($ch, CURLOPT_POST, count($data_string));
или же
curl_setopt($ch, CURLOPT_POST, 1);
так как у вас есть только один продукт.
Вы пробовали в таком приложении, как Почтальон? это работает там?
Проблема заключалась в том, что на хосте не был включен SSL, поэтому этот код разрешил его:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);