Перейти к основному контенту

/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

 

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

  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 "Старая" цена. Для визуализации скидки.  stockAvailable decimal Количество товара, доступного к продаже. Не включает зарезервированный товар. stockReserved decimal Количество товара, зарезервированного под заказы. 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ортировка

 

Пример результата запроса:

{
    "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": [
        "Кактус Дейли",
        "Кактус ПРО"
    ]
}