/api/lite/pub/products

Запрос указанного продукта (публичный)
/api/lite/pub/products
Метод возвращает продукты с вариантами.
Продукт всегда содержит хотя бы один вариант.
 
Фильтрация по полям товара:
Можно задавать фильтр параметром ?query=test - для фильтрации по полям article , humanId, shortName
Дополнительно можно фильтровать по конкректному продукту параметром ?id=1000
Также можно запрашивать конкретный вариант продукта полями variantId и variantExtId 
Параметр available позволяет фильтровать скрытые товары. Если флаг не передан, скрытые товары не филтьруются(отображаются активные + скрытые)
 
Фильтрация по фильтрам, атрибутам, вариантам товара:
Фронтенд при выборе покупателем значений тех или иных фильтров должен составить поисковый 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
discount
Пример вызова с одновременной фильтрацией, пейджинацией и сортировкой:
/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
decimal
Оценка товара
variants
array
Массив вариантов
id
string
Уникальный идентификатор варианта.
extId
string
Внешний код варианта
article
string
Артикул (sku) товара
price
decimal
Цена продажи
oldPrice
decimal
"Старая" цена. Для визуализации скидки. 
stock
object
Остатки товара на всех складах
 
 
 
pos
num
Порядковый номер варианта, относительно 
optionsUsed
array
Массив, указывающий соответствие опции и её значения для конкретного продукта. Значения указываются как ссылки на значение из общего словаря опций.
defaultImage
string
Ссылка на изображение из общего массива изображений. Может быть не задан.
weight
decimal
Вес товара
dimensions
object
Содержит информацию о размерах
options
array
Словарь возможных опций для продукта, и также значений опций. Каждое значение опции имеет собственный идентификатор.
id
string
Идентификатор опции
name
string
Наименование
name_plural
string
Наименование во множественном числе
values
array
Массив значений данной опции
images
array
Массив изображений продукта. Первое изображение считается основным.
id
string
Идентификатор изображения
url
string
URL изображения
pos
decimal
Позиция изображения в рамках продукта
collections
array
Массив коллекций, в которые входит продукт
id
string
Идентификатор коллекции
attributes
array
Массив значений атрибутов продукта
id
string
Идентификатор атрибута
type
enum
Тип атрибута (см. описание атрибутов)
stringValue
string
Значение атрибута (строка)
decimalValue
decimal
Значение атрибута (число)
ordering
decimal
Cортировка
anyPublicCollections
boolean
Есть хотя бы одна коллекция в каталоге с этим товаром
 
Пример результата запроса:
{
    "success": true,
    "recordsTotal": 2,
    "products": [
        {
            "id": "1002",
            "extId": "",
            "shortName": "Футболка",
            "description": "<p><h1><strong>Лучшие</strong> футболки</h1><br></p>",
            "available": true,
            "deleted": false,
            "reviewScore": 4.0,
          	"anyPublicCollections": true,
            "variants": [
                {
                    "id": "1005",
                    "extId": null,
                    "article": "",
                    "price": 990,
                    "oldPrice": 1200,
                    "stock": [
                      {
                        "warehouseCode": "a8064680-6f8c-830c-1ea1-0ab8a032e244",
                        "stockTotal": 40,
                        "stockAvailable": 38,
                        "stockReserved": 2
                      }
                    ],
                    "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,
                     "stock": [
                      {
                        "warehouseCode": "a8064680-6f8c-830c-1ea1-0ab8a032e244",
                        "stockTotal": 40,
                        "stockAvailable": 38,
                        "stockReserved": 2
                      }
                    ],
                    "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": [
        "Кактус Дейли",
        "Кактус ПРО"
    ]
}