Метода API shop.order.add - Required parameter is missing: contact Есть решение
Вобщем, передаю в метод такой массив данных (в json), пробовал разные варианты
{"contact_id":"3227","items":[{"sku_id":2322}]}
{"contact":"3227","items":[{"sku_id":2322}]}
{"contact":{"id":"3227"},"items":[{"sku_id":2322}]}
Пробовал передвать как в целочисленном формате, так и в текстовом, получаю в любом случае ответ (код ответа 400)
[error] => invalid_param [error_description] => Required parameter is missing: contact
В описании метода (https://developers.webasyst.ru/api/explorer/shop/s...) подобная ошибка не рассматривается, как и в описании апи в целом я ее не нашел. Если кто-то сталкивался, или хотя бы подскажет в какой стороне искать ответ - буду крайне благодарен, всю голову уже поломал.
Еще такой момент - по началу забыл закодировать данные в json, и передавал просто массив данных php - заказ создавался, но без товаров (при этом код ответа 500 и тело пустое).
2 ответа
Видимо, запрос все же не надо кодировать в JSON. При отправке простого массива через cURL заказ создается, но товары не добавляются.
Скажите, а в итоге получилось создать заказ? Что-то не получается создать запрос правильно, пишет что обязательный параметр contact is missing. То что передаю:
{"contact_id":54,"items":[{"sku_id":565,"quantity":3}]}
Здравствуйте Джейсон!
Решили вопрос? как в итоге правильно составить массив items для пост запроса (shop.order.add)?
Заранее спасибо.
Пол дня тестов методом "тыка", гора матов в сторону тех, кто писал документацию по API (ну не ужели 1 пример нельзя было написать??)
И вот результат, который, наконец-то заработал и создал заказ с ТОВАРАМИ!!! :)
Оказалось, что contact_id, comments и items нужно передавать в теле запроса (body), а не в URL Params.
Больше всего намучался с items, пока нашел, как их передавать, чтобы они воспринимались в shopOrderAddMethod как массив ассоциативных массивов.
Для того, чтобы можно было задавать свою цену в запросе, пришлось немного подкорректировать shopOrderAddMethod (без этого она подставляется из данных товара):
вместо
ставим
Рабочий запрос:
Сам все понял
Вообщем надо передавать данные как многомерный массив, закодированный в запрос вручную.
Здравствуйте Богдан!
Выложите пож-та пример массива items для пост запроса (shop.order.add)
, а то все вроде все поняли только примера за 2 года так никто не выложил и все наступают на одни и те-же грабли. Заранее спасибо.