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

Магазин с регионами

Сценарий: строительный магазин в Москве и Санкт-Петербурге, цены и наличие отличаются, остатки меняются в течение дня.

  1. Фид с регионами. Для каждого оффера — блоки <region>:
    <offer id="5001" available="true">
    <name>Цемент М500, 50 кг</name>
    <price>520</price>
    <categoryId>5</categoryId>
    <region id="msk"><available>true</available><price>495</price><count>120</count></region>
    <region id="spb"><available>true</available><price>510</price><count>8</count></region>
    </offer>
  2. Регион посетителя на сайте. Когда пользователь выбрал город, сохраните его ID (msk/spb) и передавайте:
    • виджету — var sbRegionId = 'msk' до загрузки скрипта;
    • блокам рекомендаций — regionId="msk";
    • в API — regionId=msk в каждом запросе;
    • в события — regionId в datalayer.json.
  3. При смене города перезагрузите страницу или заново выполните поиск — цены в выдаче региональные.
  4. Остатки в реальном времени. Из учётной системы отправляйте изменения в API индексации:
    { "offers": [{ "id": "5001", "fields": { "regions": { "spb": { "available": false, "count": 0 } } } }] }
  5. Проверьте. GET /search?query=цемент&regionId=spb — у товара должны быть цена и наличие Санкт-Петербурга.