Решения · Онлайн-торговля
Ассистент, который читает цену и доступность в вашем магазине в тот же момент, когда это спрашивает клиент.
Мы связываем ассистента с каталогом магазина через его публичный шлюз, подключаем его к каналам, где клиенты уже пишут, и даём ему правило, которое он не может нарушить: не называть цену, которой нет в магазине. Когда он выходит за рамки роли, он передаёт разговор человеку, с фиксацией.
Уже построеноЭто можно проверить извне, без того чтобы спрашивать нас. Наша точка каталога, выданная дистрибьютору, отвечает 200 и сообщает «154 результата», а публичный интерфейс его магазина, опрошенный напрямую, возвращает заголовок `x-wp-total: 154` — та же цифра, два независимых источника, 06.09.2026. Вторая реализация — это функция каталога в платформе ассистентов: `storeCatalog.service.js` плюс три встроенных инструмента, к которым агент может обращаться во время разговора. Ограничение, которое мы говорим до контракта: сообщения из шаблона WhatsApp не существуют в коде платформы, поэтому мы не обещаем никаких проактивных сообщений вне 24-часового окна; а каталоговый путь находится на ветке разработки, не слитой в trunk — он выдан для подключённых нами магазинов, а не включён по умолчанию для всех.
Ассистент магазина ломается не потому, что не понимает вопрос. Он ломается потому, что отвечает по копии каталога. Кто-то однажды экспортировал товары, вставил их в файл, и с тех пор ассистент читает старую фотографию магазина: цену трехнедельной давности, остаток до выходных. Все работает идеально до первого изменения цены и до первого законченного товара — и тогда он ошибается уверенно, что хуже, чем молчать. В торговле это не ошибка нюанса: клиент приходит в магазин с ценой, которую ему сказал бот.
Наш выбор прост и имеет последствия: каталог не копируется, а читается. Для магазинов на WooCommerce интерфейс Store API публичен — значит, подключение выполняется по адресу сайта, без consumer key и без секрета. Когда клиент спрашивает о товаре, агент вызывает инструмент, инструмент спрашивает магазин, магазин отвечает актуальной ценой и доступностью. То, что появляется в разговоре, — это то, что есть в магазине, а не то, что было на момент интеграции.
Цена этого выбора видна в коде, а не скрыта: каталог загружается постранично, до тридцати страниц по сто товаров, хранится во временной памяти десять минут на сайт и нормализуется в одну форму, читаемую без изменений всеми потребителями — включая карусель товаров в мессенджере, которой нужна числовая цена, и виджет на странице. Десять минут — это компромисс: изменение цены, сделанное сейчас, видно максимум через десять минут, не мгновенно. Мы называем цифру, чтобы вы могли ее оспорить.
Остальные ограничения исходят не от нас, а от каналов, и честнее знать их заранее: Meta отклоняет свободный текст вне окна 24 часа от последнего сообщения клиента, в Instagram вообще нет каруселей товаров, а фотография, присланная клиентом, отмечается в разговоре, а не прикрепляется автоматически к заказу. Каждое из этих предложений цитируется ниже с файлом и строкой.