Skip to main content

/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

 

Последовательность применения поисковых критериев:

  1. Если задан id продукта - поиск идет только по нему. Выход из поиска
  2. Если задан variantId конкретного варианта товара - поиск идет по нему (по внутреннему или внешнему коду варианта, согласно настройке аккаунта). Выход из поиска
  3. Если заданы параметры filters, attributes, features - будет поиск по ним (включая совместно по их комбинациям).  Если одновременно задан параметр collections - он будет учтен. Выход из поиска
  4. Если заданы параметры query или collections - будет поиск по ним (включая совместно по обоим). Выход из поиска
  5. Иначе выводятся все продукты с учетом запрошенного флага 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": [
        "Кактус Дейли",
        "Кактус ПРО"
    ]
}