Содержание статьи
Получение списка заказов
Метод GET /api/v1/orders возвращает список заказов с возможностью фильтрации по статусу, дате и другим параметрам.
Базовый запрос
curl -X GET "https://api-b2b.lamoda.ru/api/v1/orders?limit=100" \
-H "Authorization: Bearer YOUR_TOKEN"
Параметры запроса
| Параметр | Тип | Обязательный | Описание |
limit
|
integer | Нет | Количество записей на странице (по умолчанию 25) |
page
|
integer | Нет | Номер страницы (по умолчанию 1) |
filter
|
string | Нет | Строка фильтрации (см. раздел "Фильтрация" ниже) |
sort
|
string | Нет | Сортировка результатов |
Фильтрация
Важно: Параметр
filter использует специальный синтаксис с операторами. Значения передаются в едином параметре, а не как отдельные query-параметры.
Синтаксис фильтрации
Формат: filter=поле{оператор}значение
| Оператор | Описание | Пример |
=
|
Равно |
filter=status=confirmed
|
>=
|
Больше или равно |
filter=updatedAt>=20250101000000
|
<=
|
Меньше или равно |
filter=createdAt<=20250131235959
|
>=<
|
Диапазон (от, до) |
filter=updatedAt>=<20250101000000,20250131235959
|
Поддерживаемые поля для фильтрации
| Поле | Тип | Описание |
status
|
string | Статус заказа (confirmed, shipped, delivered, cancelled и др.) |
createdAt
|
datetime |
Дата создания заказа. Формат: YYYYMMDDHHmmss
|
updatedAt
|
datetime |
Дата обновления заказа. Формат: YYYYMMDDHHmmss
|
deliveryDate
|
date | Дата доставки |
fullSearch
|
string | Поиск по номеру заказа, фамилии, телефону или email клиента |
isOverdue
|
boolean | Только просроченные заказы (cutOff < текущее время) |
Примеры запросов
Получить заказы, готовые к сборке
GET /api/v1/orders?filter=status=confirmed&limit=100
Получить заказы за период (диапазон дат)
# Заказы, обновлённые с 1 по 31 января 2025
GET /api/v1/orders?filter=updatedAt%3E%3D%3C20250101000000,20250131235959
# URL-decoded версия для понимания:
# filter=updatedAt>=<20250101000000,20250131235959
Примечание: Символы
>=< в URL должны быть закодированы как %3E%3D%3C
Получить просроченные заказы
GET /api/v1/orders?filter=isOverdue=true
Поиск по номеру телефона или заказа
GET /api/v1/orders?filter=fullSearch=79001234567
Рекомендация для синхронизации
Для регулярной синхронизации используйте фильтр
Для регулярной синхронизации используйте фильтр
updatedAt — он вернёт заказы, у которых изменился статус с последнего запроса.
Пример ответа
{
"limit": 25,
"page": 1,
"pages": 5,
"total": 120,
"_embedded": {
"orders": [
{
"id": "RU251201-123456",
"orderNr": "251201-123456",
"status": "confirmed",
"paymentMethod": "COD",
"fullSum": "5990.00",
"deliveryPrice": "0.00",
"createdAt": "2025-12-01",
"updatedAt": "2025-12-01 14:30:25",
"currency": "rub",
"itemQuantity": 2,
"cutOff": "2025-12-02 03:00:00"
}
]
}
}
Пагинация
Для обработки большого количества заказов используйте параметры limit и page:
# Первая страница
GET /api/v1/orders?limit=100&page=1
# Вторая страница
GET /api/v1/orders?limit=100&page=2
# Третья страница
GET /api/v1/orders?limit=100&page=3
В ответе используйте поля pages и total для определения количества страниц.
Частота опроса
Рекомендуемая частота опроса:
- Для новых заказов: каждые 5-10 минут
- Для обновлений статусов: каждые 15-30 минут
Более частые запросы не нужны — статусы меняются не мгновенно. Для обновлений в реальном времени используйте webhooks.
Частые ошибки
| Ошибка | Причина | Решение |
401 Unauthorized
|
Токен истёк (TTL 15 мин) | Запросить новый токен |
| Пустой список заказов | Нет заказов с указанным статусом | Проверить фильтры или убрать их |
400 Bad Request
|
Неверный формат фильтра |
Проверьте синтаксис: filter=поле{оператор}значение
|
| Фильтр не работает |
Использован старый синтаксис createdAt[from]
|
Используйте новый синтаксис: filter=createdAt>=<код>20250101000000
|
См. также
Помогла эта информация?
Спасибо за отзыв
0/1000
Отправить