Перейти к содержимому

Регионы, цены и остатки

Если цены или наличие отличаются по городам, складам или магазинам, передайте их в фиде блоками <region>. SearchBooster построит отдельные цены, наличие и остатки для каждого региона, а сайт будет указывать регион посетителя в каждом запросе.

<offer id="A1" available="true">
<name>Цемент М500, 50 кг</name>
<price>520</price>
<oldprice>600</oldprice>
<categoryId>5</categoryId>
<region id="msk">
<available>true</available>
<price>495</price>
<oldprice>560</oldprice>
<count>120</count>
<pickup>true</pickup>
</region>
<region id="spb">
<available>false</available>
</region>
</offer>
Тег внутри <region> Описание
id (атрибут) ID региона — любая строка (msk, 77, store-12). Не может быть пустым.
available Наличие в регионе: true/false, 1/0, yes/no. Алиас — presence.
price, oldprice Цены региона. Можно с type, как у оффера.
count Остаток.
pickup, delivery, isPreorder, currencyId Если не указаны — берутся из оффера.

Вместо <region id> можно использовать <shop id> или <shops><shop id>…</shop></shops> — они разбираются так же.

Правила по умолчанию:

  • Регион без цены получает цену оффера.
  • Значения самого оффера (вне <region>) — это регион global. Он используется, когда регион в запросе не передан.
  • Регион, которого нет в фиде, в индексе не появится.

Регион в фиде описывает цены и наличие, но не определяет регион посетителя. Сайт должен передавать выбранный регион в каждом запросе — параметром regionId, значение которого совпадает с id в фиде.

GET/api/{uuid}/search

regionId принимают поиск, подсказки, рекомендации, find-by-id и события. В ответе price, oldPrice, available и count уже региональные.

  1. Поисковый виджет: задайте sbRegionId до загрузки скрипта:
    <script>
    var sbRegionId = 'msk'; // регион посетителя, как в фиде
    </script>
  2. Виджеты рекомендаций: атрибут regionId="msk" на <sb-widget>.
  3. API: параметр regionId=msk во всех запросах.
  4. Трекер / события: поле regionId в datalayer.json — чтобы аналитика считалась по регионам.

Если остатки меняются каждые несколько минут, не нужно гонять фид чаще. Отправляйте изменения через API индексации — они применяются за секунды, в том числе по регионам.

Пошаговый пример для магазина с городами — в рецепте Магазин с регионами.