Оформление заказа
POST | /_api/public/products-checkout |
---|
Параметры метода
Метод принимает следующие параметры:
Наименование | Обязательно | Описание |
---|---|---|
items | Да | List или Map с позициями для оформления заказа. |
shop_order | Да | Map с информацией о деталях заказа: телефоне пользователя, способе доставки, склад обработки и т.д. |
items
List или Map с позициями для оформления заказа. В качестве ключей можно использовать любую строку, по которой позже можно будет идентифицировать элементы с ошибкой.
Каждый элемент это Map, который должен содержать следующие ключи:
Ключ | Обязательно | Описание |
---|---|---|
article | Да, если не указан id | Артикул товара |
id | Да, если не указан article | Идентификатор товара |
price | Да | Цена товара |
quantity | Да | Количество |
В качестве идентификатора товара используется article или id. В случае, если указан и article и id, то приоритет остается за id, артикул игнорируется.
В случае, если указанная в базе цена и элемент price не совпадают, будет сгенерирована ошибка для данного элемента.
shop_order
Map с информацией о деталях заказа: телефоне пользователя, способе доставки, склад обработки и т.д.
Ключ | Обязательно | Описание |
---|---|---|
phone | Нет | Номер телефона покупателя в международном формате |
Ответ
В случае, если все позиции переданы правильно и товар есть в базе в нужном количестве, то код ответа будет 200 и будет возвращена структура с информацией о заказе:
{ "shop_order": { "number": "0000-000001", "items": [ ... ] } }
Если какая-либо позиция заказа является ошибочной, либо переданы неправильные данные shop_order, то код ответа будет 400 и будет возвращена структура вида:
{ "error": { "message": "Ошибка данных", "fields_errors": { "items": { "item1": { "state": "error", "messages": [ "price mismatch" ] } } } } }
Обратите внимание, что в items содержится map, ключи которого равняются ключам, переданным в items. Таких образом можно сопоставить входные параметры и ошибки.