/api/lite/pub/products
Запрос указанного продукта (публичный)
/api/lite/pub/products
Метод возвращает продукты с вариантами.
Продукт всегда содержит хотя бы один вариант.
Фильтрация по полям товара:
Можно задавать фильтр параметром ?query=test - для фильтрации по полям article , humanId, shortName
Дополнительно можно фильтровать по конкректному продукту параметром ?id=1000
Также можно запрашивать конкретный вариант продукта полями variantId и variantExtId
Фильтрация по фильтрам, атрибутам, вариантам товара:
Фронтенд при выборе покупателем значений тех или иных фильтров должен составить поисковый GET запрос и передать его в метод GET /pub/products
в виде суммы параметров:
?filters=field_name1:field_value1,field_value2;field_name2:field_value3-field_value4 для всех фильтров в блоке OTHER
?attributes=field_name1:field_value1,field_value2;field_name2:field_value3-field_value4 для всех фильтров в блоке ATTRIBUTES
?features=field_name1:field_value1,field_value2;field_name2:field_value3-field_value4 для всех фильтров в блоке FEATURES
где field_name - это значение поля filters.fields.name, field_value - это значение поля filters.fields.stringValues для filters.fields.type: "string" или decimalValues для filters.fields.type: "decimal" или true/false для filters.fields.type: "boolean".
Для для filters.fields.type: "decimal" также можно передавать диапазон указывая начальное и конечное значение через дефис: field_name2:field_value3-field_value4
Коллекции
Можно задавать фильтр по коллекциям параметром ?collections=1007,1008 - для фильтрации по id коллекций (можно передавать списком)
Пейджинация
Для пейджинации используются параметры page и size: size - заказов на странице, page - номер страницы.
Пример: /api/lite/products?page=0&size=200
Если параметры не переданы, то дефолтные значения page=0&size=100
Также, для отображение пейджинации следует анализировать параметр recordsTotal, возвращающий общее количество записей (с учетом примененной фильтрации, если она есть).
Сортировка
Для сортировки задается параметр order, принимающий код поля для сортировки и направление сортировки (asc, desc), отделенное символом плюса.
Пример сортировки по имени (возрастание): /api/lite/products?order=shortname+asc
Пример сортировки по имени (убывание): /api/lite/products?order=shortname+desc
Доступные коды сортировки:
- shortname
- article
- price
- amount
Пример вызова с одновременной фильтрацией, пейджинацией и сортировкой:
/api/lite/products?query=Поло&order=shortname+asc&page=0&size=200
Последовательность применения поисковых критериев:
- Если задан id продукта - поиск идет только по нему. Выход из поиска
- Если задан variantId конкретного варианта товара - поиск идет по нему (по внутреннему или внешнему коду варианта, согласно настройке аккаунта). Выход из поиска
- Если заданы параметры filters, attributes, features - будет поиск по ним (включая совместно по их комбинациям). Если одновременно задан параметр collections - он будет учтен. Выход из поиска
- Если заданы параметры query или collections - будет поиск по ним (включая совместно по обоим). Выход из поиска
- Иначе выводятся все продукты с учетом запрошенного флага deleted
| Поле | Тип\формат | Описание |
| recordsTotal | num | Общее количество записей в рамках заданной фильтрации. Используется для пейджинации. |
|
products |
array | Перечень товарных предложений |
| id | string | Идентификатор продукта |
| extId | string | Внешний код продукта |
| shortName | string | Наименование продукта |
| description | string | Описание (может содержать html) |
| available | boolean | Отображение для продажи в онлайн-магазине |
| deleted | boolean | Архивная карточка |
| reviewScore |
Пример результата запроса:
{
"success": true,
"recordsTotal": 2,
"products": [
{
"id": "1002",
"extId": "",
"shortName": "Футболка",
"description": "<p><h1><strong>Лучшие</strong> футболки</h1><br></p>",
"available": true,
"deleted": false,
"reviewScore": 4.0,
"variants": [
{
"id": "1005",
"extId": null,
"article": "",
"price": 990,
"oldPrice": 1200,
"stockAvailable": 995,
"stockReserved": 5,
"ordering": 1,
"optionsUsed": [
{
"id": "size",
"value": "L"
}
],
"defaultImage": "8b16a469-2b8c-4df4-85f2-c9c9afa1f921",
"weight": 500,
"dimensions": {
"height": 5,
"width": 5,
"depth": 10
}
},
{
"id": "1006",
"extId": null,
"article": "",
"price": 990,
"oldPrice": 1200,
"stockAvailable": 30,
"stockReserved": 0,
"ordering": 2,
"optionsUsed": [
{
"id": "size",
"value": "M"
}
],
"defaultImage": null,
"weight": 500,
"dimensions": {
"height": 5,
"width": 5,
"depth": 10
}
}
],
"images": [
{
"id": "8b16a469-2b8c-4df4-85f2-c9c9afa1f921",
"url": "https://img.kak2c.ru/i/f/g/IA33pVkwd.jpg?1564511037",
"pos": "10000.000000000000000"
},
{
"id": "8b16a469-2b8c-4df4-85f2-c9c9afa1b323",
"url": "https://img.kak2c.ru/i/f/g/IA33pVkw.jpg?1564511037",
"pos": "5000.00000"
}
],
"collections": [
"1029", "1031"
],
"attributes": [
{
"id": "material",
"type": "string",
"stringValue": "Хлопок 97%, эластан 3%",
"ordering": 1
}
]
}
]
}
Запрос списка брендов по всем продуктам (публичный)
/api/lite/pub/products/brands
|
Параметр
|
Тип\формат | Описание |
|
searchString |
string | (необязательный) |
Запрос возвращает список всех существующих брендов магазина. Если задан параметр 'searchString' - возвращает только те бренды, в которых есть вхождение этой строки(в любом месте). Регистр не важен
Пример ответа (/api/lite/pub/products/brands?searchString=кактус):
Пример запроса:
{
"brands": [
"Кактус Дейли",
"Кактус ПРО"
]
}