Оформление заказа

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. Таких образом можно сопоставить входные параметры и ошибки.