Не удается обновить данные о вариантах продукта в Shopify

Я пытаюсь обновить цену и количество своего варианта продукта в Shopify, используя cURL и php ниже моего кода:

$ url = $ api_url. '/admin/api/2020-01/variants/31941936382042.json';

    $data_json = json_encode(
        array(
            'variants' => array(
                'id' => 4574444978266,
                'sku' => 'TEST-SKU-111',
                'price' => 20,
                'compare_at_price' => 20,
                'cost' => 20, // This price will be coming form database
                'inventory_quantity' => 10))
    );

    var_dump($data_json);


    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8', 'Content-Length: ' . strlen($data_json)));
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_json);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    var_dump($response);
    curl_close($ch);

Когда я тестирую это каждый раз, он говорит:

{"errors": {"option": "Обязательный параметр отсутствует или недействителен"}}

Я проверил официальный документ https://shopify.dev/docs/admin-api/rest/reference/products/product-variant#update-2020-01, но все равно не повезло. Может ли кто-нибудь поправить меня, что я делаю не так?

заранее спасибо


person user10009744    schedule 01.03.2020    source источник


Ответы (1)


Попробуйте изменить ключ для вашего массива данных, variants => variant.

Также обратите внимание на предупреждение вверху страницы, о которой вы говорите. Вместо настройки inventory_quantity напрямую.

person Vladimir    schedule 02.03.2020
comment
Идеально. Переход с вариантов = ›вариант сработал значительно, за исключением того, что количество не обновляется. Собираюсь просмотреть ссылку, которой вы поделились. Спасибо. - person user10009744; 02.03.2020