«Когда заберёте заказ?» — спрашивает мой демо-бот. Ещё недавно на экране были капучино и круассан, теперь появились кнопки «Через 15 минут» и «Через 30 минут». Кофейни за этим экраном нет. Есть демонстрационный сценарий, в котором можно побыть покупателем, а затем посмотреть на ту же покупку со стороны владельца. Напитки здесь не готовят. Даже если бот уверенно сообщит обратное.
Я Владислав, делаю ботов сам, и на странице с демо у меня есть магазин с корзиной кофейни. Разберу его по существующему коду — без истории про клиента, который поставил кнопки и разбогател, потому что здесь интереснее другое: что именно останется у продавца, когда покупатель закончит нажимать и меню больше ему не понадобится. Красивое меню само по себе этого не объясняет.
На входе бот предлагает представить, что перед нами кофейня, — в каталоге капучино, латте, чизкейк и круассан. Возле каждого названия стоят «−» и «+», выпечка соседствует с напитками без разделов и длинного поиска. Такой ассортимент помещается на экран; для демонстрации не приходится сначала учиться ходить по магазину.
Цены у позиций есть, но здесь я их не разбираю. Это содержимое учебной витрины, а не предложение настоящей кофейни. Для проверки механики достаточно увидеть, что сумма меняется вместе с количеством и потом проходит через остальные экраны. Прайс на разработку — тоже отдельный разговор. Сейчас проследим судьбу круассана.
Возьмём условный пример внутри реального демо: покупатель добавляет капучино и круассан, затем передумывает насчёт выпечки. Нажатие на минус убирает её из корзины — капучино остаётся. Вручную писать продавцу, что предыдущую просьбу надо забыть, в этом сценарии не требуется, потому что бот хранит выбранные позиции для пользователя и заново собирает экран после изменения.
У минуса есть характер.
Если товара уже нет в корзине, бот отвечает: «Этого товара нет в корзине.» У плюса тоже поставлен предел — не больше девяти штук одной позиции. Это ограничение демонстрации, не сведения об остатках на складе. По этому сообщению нельзя заключить, сколько круассанов испекли утром. Пекарни за кнопкой по-прежнему нет.
Когда корзина пустая, кнопки оформления на экране нет; добавили товар — появляется возможность продолжить, причём итоговая сумма написана прямо на кнопке. Мне нравится в этой детали отсутствие торжественности. Человек ещё ничего не купил, просто собрал себе завтрак, а ему показывают, что получилось, и оставляют возможность поправить состав до следующего шага.
Дальше звучит тот самый вопрос о получении. Демо предлагает забрать покупку через пятнадцать или тридцать минут. Можно вернуться в каталог. Указанные интервалы здесь работают как варианты ответа, а не как доказательство, что свободная кофемашина зарезервирована и бариста уже отложил молоко. В коде магазина такого согласования с кухней нет.
Это место я бы обсудил с владельцем настоящей точки ещё до разработки. Если условная кофейня принимает предзаказ, ей предстоит решить, кто обещает время выдачи и что происходит при задержке, — демо за неё не отвечает. Оно показывает, куда поставить вопрос, чтобы покупатель выбрал время, а продавец получил его вместе с составом покупки.
После выбора бот собирает строки с названиями, количеством и суммами, подводит итог. Рядом — кнопка оплаты с пометкой «имитация». В пояснении прямо сказано: «В этом демо оплата магазина имитируется — просто нажмите кнопку.» Банковскую карту для этой проверки вводить не нужно. Обработчик нажатия не обращается за деньгами, он продолжает учебный сценарий.
Кнопка, между тем, производит впечатление делового человека.
«Оплата прошла (демо)» — отвечает бот. Затем пишет: «Мы начали готовить.» Вот здесь надо удержаться от приятного самообмана. Ни платёж, ни приготовление этим нажатием не подтверждены. Мы увидели переход к завершению сценария. Для действующего магазина я бы отдельно проверял получение подтверждения от платёжной системы; демонстрационное сообщение такой проверкой не служит.
После условной оплаты появляется карточка «Новый заказ». В ней состав покупки, количество каждой позиции, итоговая сумма, время создания и выбранный срок получения. Есть ссылка «написать клиенту». Это и есть тот конец маршрута, ради которого стоило смотреть дальше каталога. У продавца должен оказаться предмет разговора, а не просьба восстановить по переписке, что человек всё-таки хотел.
Но в демо продавец пока тот же зритель.
Карточка приходит в чат участника проверки — бот показывает, как выглядело бы сообщение для кофейни, а не пересылает настоящий оплаченный завтрак отдельному владельцу. В обработчике магазина нет отправки этой карточки администратору. Поэтому фразу на экране про то, как кофейня видит покупку, я читаю как приглашение сменить роль, а не как отчёт о доставленном уведомлении.
Разница приземлённая. В учебном сценарии можно самому посмотреть обе стороны. При запуске для бизнеса понадобится определить получателя, проверить отправку в нужный чат и договориться, кто там отвечает. Если условный сотрудник отвернулся от телефона, сама по себе надпись об успешном оформлении его не повернёт. Это уже вопрос работы точки, а не арифметики корзины.
Содержимое корзины после завершения очищается — если снова открыть каталог, прошлый капучино не должен прибавляться к следующей покупке. В показанном коде магазина нет отдельного журнала завершённых продаж, и финальное сообщение нельзя принимать за готовую систему учёта. Для демо такой границы достаточно. Для бизнеса её нужно проговорить, иначе за словом «магазин» покупатель разработки и разработчик могут увидеть разное.
Я бы начал приёмку будущего бота с этой карточки и прошёл назад к каталогу: найду ли получателя, пойму ли состав, смогу ли связаться с покупателем, совпадут ли выбранные позиции с тем, что он подтвердил. Это предложение для проверки будущей работы, не рассказ о внедрении. Отдельно пришлось бы решить, где сохранять завершённые покупки, — потерянное сообщение не должно становиться потерянным завтраком.
Я не знаю, хватит ли вашей торговле этого короткого маршрута. По каталогу кофейни нельзя определить, нужны ли вам доставка, адрес, варианты товара или связь с остатками. Зато существующий сценарий магазина позволяет обсудить конкретные экраны вместо обещания сделать всё нужное. Вот состав, вот выбор получения, вот имитационная оплата, вот сообщение, которое предстоит передать человеку.
В финальной карточке рядом с учебным капучино остаётся ссылка «написать клиенту». У воображаемой кофейни уже есть собеседник. Осталось появиться самой кофейне.
Владислав