Документация для разработчика
Полная техническая документация с примерами запросов и ответов — на странице Документация API. Передайте ссылку вашему разработчику.
Каждый заказ в API — это свой номер, склад, статусы оплаты и доставки, состав и трек. Суммы — в рублях.
Чтение заказов
curl "https://avstorg.ru/api/ext/v1/shipments/%D0%90%D0%A2.26-07-21.0001.%D0%92%D0%A0%D0%9D.%D0%AE.1-%D0%9E%D0%97" \ -H "Authorization: Bearer ВАШ_ТОКЕН"
Ответ:
{
"number": "АТ.26-07-21.0001.ВРН.Ю.1-ОЗ",
"order_number": "АТ.26-07-21.0001.Ю",
"source": { "code": "api", "name": "API" },
"warehouse": { "code": "voronezh", "name": "Воронеж" },
"payment_status": { "code": "paid", "name": "Оплачен" },
"delivery_status": { "code": "shipped", "name": "Отгружен" },
"tracking_number": null,
"subtotal": 2736.00, "delivery": 0,
"order_total": 2591.00, "order_discount": 145.00, "order_delivery": 0,
"customer_order_ref": "456",
"items": [
{ "sku": "A40854S", "code": "480021", "qty_ordered": 24, "qty_shipped": 24,
"price": 114.00, "discount": 6.00,
"line_subtotal": 2736.00, "line_discount": 144.00, "line_total": 2592.00 }
]
}Источник и номер вашей заявки
source — источник заказа (сайт, 1С, API). customer_order_ref — номер вашей заявки, если вы указали его при создании. Номера с русскими буквами в адресе кодируйте (URL-encoding).
GET /shipments?page=1&per_page=50— список заказовGET /shipments/{номер}— детальноGET /shipments/{номер}/status-history— история статусовGET /dictionaries/statuses— справочник кодов статусов
Создание заказа
Отправьте артикулы и количество — цены и скидки посчитает наш движок. Адрес и доставка не передаются: используются ваши настройки, детали согласует менеджер.
curl -X POST "https://avstorg.ru/api/ext/v1/shipments" \
-H "Authorization: Bearer ВАШ_ТОКЕН" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 7f3a9c12-4b8e-4d01-9a55-e2c6b0f81d34" \
-d '{
"items": [ { "sku": "A40854S", "qty": 24 } ],
"comment": "Заявка из 1С № 456",
"customer_order_ref": "456"
}'Ответ (201) — заказ создан:
{
"order_number": "АТ.26-07-21.0001.Ю",
"customer_order_ref": "456",
"source": { "code": "api", "name": "API" },
"total": 2591.00, "delivery": 0, "discount": 145.00,
"shipments": [
{ "number": "АТ.26-07-21.0001.ВРН.Ю.1-ОЗ",
"warehouse": { "code": "voronezh", "name": "Воронеж" },
"subtotal": 2736.00,
"items": [ { "sku": "A40854S", "code": "480021", "qty_ordered": 24, "price": 114.00,
"line_subtotal": 2736.00, "line_discount": 144.00, "line_total": 2592.00 } ] }
]
}- Idempotency-Key — уникальный ключ (например UUID): повтор вернёт тот же результат, дубля не будет
- customer_order_ref — номер вашей заявки, вернётся во всех ответах
- Бонусы через API не списываются
- При ошибке — 422 с построчными кодами в details.problems
Дальше — как обычно
Созданный заказ сразу виден вашему менеджеру и обрабатывается штатно: счёт, комплектация, отгрузка.
Идемпотентность
Заголовок Idempotency-Key обязателен при создании заказа. Повтор с тем же ключом в течение суток вернёт тот же заказ, а не создаст дубль — безопасно повторять запрос при обрыве связи. Если заявка ещё обрабатывается, придёт 409: если она зависла, повторите с новым ключом или обратитесь в клиентскую службу.
Коды проблем позиций (422)
unknown_sku— артикул не найденinsufficient_stock— не хватает остатка (в ответе — available)no_price— для вашего типа цен цена не заданаinvalid_step— количество не кратно шагу заказа (qty_step)below_min_qty/above_max_qty— меньше минимума / больше максимума
Итоговые суммы
price и discount позиции — за штуку. line_subtotal/line_discount/line_total — итоги по позиции по заказанному количеству (qty_ordered). order_total/order_discount/order_delivery — точные итоги всего заказа (к оплате = order_total + order_delivery); НЕ суммируйте order_* по отгрузкам одного заказа — в каждой отгрузке это итог всего заказа. Расхождение с суммой позиций возможно из-за округления скидки на штуку и списанных бонусов.