Пытаюсь добавить товар при помощи WooCommerce REST API, так сказать - снаружи, POST-запросом. Все шло нормально, пока не понадобилось соотносить товар с группой. Ибо группа передается массивом.
Вот так все работает. Авторизация ОК. Добавляется товар с названием из $params['name']
curl_setopt($c, CURLOPT_POSTFIELDS, [
'oauth_consumer_key' => $params['oauth_consumer_key'],
'oauth_nonce' => $params['oauth_nonce'],
'oauth_signature_method' => $params['oauth_signature_method'],
'oauth_signature' => rawurlencode($signature),
'oauth_timestamp' => $params['oauth_timestamp'],
'oauth_version' => $params['oauth_version'],
'name' => ($params['name'])
] );
Но если я пытаюсь таким же образом добавить группу
$params = array(
...
'name' => 'Good 3',
'categories' => '{"0":{"id":"21"}}'
);
То получаю сообщение
{"code":"rest_invalid_param","message":"Неверный параметр: categories","data":{"status":400,"params":{"categories":"categories[0] не принадлежит к типу object."}}}
Я как только не группировал эти скобки для categories
. И фигурные и квадратные, и с индексом и без. Пробовал добавлять заголовок Accept: application/json
- ошибка та же.
Подскажите, кто знает.
Заранее спасибо!
$products_array = array(
"product" => array(
"title" => $realname,
"body_html" => "<strong>$message</strong>",
"vendor" => $prod,
"product_type" => $type,
"images" => array(array(
"src" => "/uploads/" . $name
)),
"published" => true,
"variants" => array(
array(
"sku" => "t_009",
"price" => $Money,
"grams" => $gram,
"taxable" => false,
)
),
),
);
// echo json_encode($products_array);
// echo "<br />";
$url = "https://$shopifyapi:$shoppassword@$shop/admin/products.json";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
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_POSTFIELDS, json_encode($products_array));
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// $response =
curl_exec($curl);
curl_close($curl);
надо просто без ошибок переходить от json на массив вот мой пример {
"product": {
"title": "Burton Custom Freestyle 151",
"body_html": "<strong>Good snowboard!</strong>",
"vendor": "Burton",
"product_type": "Snowboard",
"images":{["src":"http://test.loc/uploads/IrB0R2RrLM8MOsDHZv03ABjLW58vNeitiMXVPpRO.jpeg"]}
"variants": [
{
"option1": "First",
"price": "10.00",
"sku": "123"
},
{
"option1": "Second",
"price": "20.00",
"sku": "123"
}
]
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Можете на примере показать как записать list в бинарный файлПотому что запись как обычной переменной не прокатывает