Экспертиза · Онлайн-магазины
Магазин, в котором каталог читается в реальном времени, а не копируется один раз и забывается.
Мы строим магазины и, поверх них, слой, которого обычно не хватает: агент, отвечающий клиенту, читает цену и остаток напрямую из магазина в момент вопроса и отказывается выдумывать непубликованную цену.
Уже построеноЭто можно проверить извне прямо сейчас, без того чтобы спрашивать нас. Наша точка каталога, выданная дистрибьютору, отвечает 200 и сообщает «154 результата»; публичный интерфейс его магазина, опрошенный напрямую, возвращает заголовок `x-wp-total: 154`. Та же цифра, два независимых источника, проверено 06.09.2026. Вторая реализация встроена в платформу ассистентов: служба `storeCatalog.service.js` плюс три инструмента, к которым агент может обращаться. Ограничение, которое нужно назвать: этот второй путь находится на ветке разработки (`feat/store-catalog-global`, `481cfa0`) и ещё не слит в trunk — то есть он выдан для клиентов, которых мы подключили, а не включён по умолчанию для всех.
Большинство «интеграций каталога» на самом деле — это экспорт. Кто-то однажды выгружает товары, вставляет их в файл, и с этого момента агент, который разговаривает с клиентом, читает старую фотографию магазина. Это работает безупречно до первого изменения цены или первого закончившегося товара — а потом ошибается уверенно, что хуже, чем молчать.
Мы читаем магазин в момент вопроса. Для магазинов на WooCommerce есть публичный интерфейс — Store API — который возвращает товары, цены и доступность без ключей, без аккаунта, без установленного плагина. Адрес — `/wp-json/wc/store/v1/products`, мы запрашиваем его с 100 товарами на странице, с максимальным временем ожидания 20 секунд, и узнаём из заголовка ответа, сколько страниц есть, вместо того чтобы гадать. Первую страницу берём отдельно, остальные — параллельно.
Часть, которая отделяет правильную интеграцию от той, что только выглядит правильной, — это перевод цены. Store API не возвращает «129,90»; он возвращает строку цифр в младших единицах и, отдельно, сколько десятичных знаков у валюты. Тот, кто по привычке делит на 100, молча ошибается на любой валюте, у которой не две десятичные знака. И ещё важнее: цена ноль не означает бесплатно, это означает не опубликовано. У нас ноль превращается в «цена по запросу — подтверждается коллегами», а агент получает явную инструкцию не выдумывать. Это видно в публичном ответе каталожного пункта, прямо сейчас.
Поверх каталога идут остальные части, каждая со своим реальным состоянием: корзина и отправка заказа в систему управления рестораном или магазина, оплата через интерфейс MAIB для торговцев или через Stripe, восстановление брошенных корзин, отслеживание состояния заказа с синхронизацией каждые 15 минут. Где у нас нет рабочей интеграции — а такие случаи есть — ниже написано точно, какой.