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