Skip to content

Итоговый документ (для разработчиков) ​

Страница для тех, кто работает с выдачей поиска — интегрирует API или кастомизирует виджет. Она описывает, во что превращается один <offer> в ответе поиска.

TIP

Имена характеристик в ответе — латинские (задаются в настройках проекта и там же видны). Например, характеристика Цвет может возвращаться как cvet. Сверяйтесь с настройками полей проекта.

Документ одного SKU (группировка выключена) ​

При выключенной группировке один <offer> → один документ:

json
{
  "id": "5684",
  "group_id": "5652",
  "name": "Баска на завышенной талии с кантом",
  "availability": "out of stock",
  "is_available": false,
  "has_discount": true,
  "has_photo": true,
  "price": 10100.0,
  "old_price": 12100.0,
  "currency": "RUB",
  "vendor": "Acme",
  "url": "https://example.com/product/baska-.../",
  "image_url": "https://example.com/upload/.../105b68.jpg",
  "images": ["https://example.com/upload/.../105b68.jpg"],
  "category_names": ["Топы и баски"],

  "cvet": "белый",
  "razmer": "XS",

  "properties": {
    "Стиль": ["вечерние", "повседневные"],
    "Цвет": "белый",
    "Размер": "XS"
  }
}

Пояснения к полям ​

ПолеЗначениеТип
id, group_idИдентификатор товара и его группыstring
nameНазвание (никогда не пустое)string
availabilityin stock / out of stockstring
is_availableДоступен ли товар к покупке по условию доступности проектаbool
has_discountЕсть ли скидка: старая цена строго выше текущейbool
has_photoЕсть ли у товара изображение: непустая ссылка в image_url, а если она пустая — первая ссылка галереи images. Заполнители вместо ссылки (-, 0) считаются отсутствием изображенияbool
priceЦена (по умолчанию 0)float
old_priceСтарая цена — только если есть в фидеfloat
currencyВалютаstring
vendorБрендstring
urlАбсолютная ссылка на карточкуstring
image_urlГлавное изображениеstring
imagesГалереяstring[]
category_namesКатегории товара и их родители, от корня к листуstring[]
cvet, razmer, …Характеристики, включённые как фильтр/поиск/сортировкаstring / string[]
propertiesВсе характеристики товара (для отображения)object

Набор и имена полей зависят от настроек конкретного проекта.

Документ группы (группировка включена) ​

При включённой группировке документ строится из вариантов — добавляются price_min/price_max, объединённые фильтры и (опционально) variants:

json
{
  "id": "5652",
  "group_id": "5652",
  "name": "Баска на завышенной талии с кантом",
  "price": 10100.0,
  "price_min": 10100.0,
  "price_max": 10100.0,
  "availability": ["out of stock", "in stock"],
  "is_available": true,
  "has_discount": false,
  "has_photo": true,
  "image_url": "https://example.com/upload/.../105b68.jpg",
  "images": ["https://example.com/upload/.../105b68.jpg"],
  "razmer": ["S", "M"],
  "category_names": ["Топы и баски"],
  "properties": { "Размер": ["XS", "S", "M"], "Цвет": "белый" },
  "variants": [
    { "sku": "5684", "price": 10100.0, "availability": "out of stock",
      "url": "https://.../baska-.../", "image_url": "https://.../105b68.jpg",
      "properties": { "Размер": "XS" } },
    { "sku": "5685", "price": 10100.0, "availability": "in stock",
      "properties": { "Размер": "S" } }
  ]
}

Отличия от документа SKU:

  • id/group_id = ключ группы;
  • добавлены price_min, price_max (по доступным вариантам);
  • availability и объединяемые характеристики становятся списками;
  • фильтруемые характеристики (razmer в примере) содержат значения только доступных вариантов — в properties при этом остаётся полный набор для отображения (см. доступность товаров);
  • is_available — есть ли в группе хотя бы один доступный вариант;
  • has_discount — есть ли скидка хотя бы у одного доступного варианта;
  • has_photo — есть ли изображение у представителя группы: его картинку карточка и показывает;
  • variants — детализация по каждому SKU (пусто, если детализация выключена).

API поиска ​

Поисковый API — Algolia-совместимый. Имена полей в ответе совпадают с описанными выше и с настройками полей проекта. Дополнительно ответ содержит objectID (строковый идентификатор записи в стиле Algolia, равен id) и — при подсветке совпадений — конверты _highlightResult / _snippetResult. Служебные имена полей задаёт проект; в личном кабинете они доступны только для чтения.