Список (корзина): бот копит выбор клиента в один список

Что делает блок «Список (корзина)»
Обычная переменная хранит одно значение и затирается новым. Список копит их одно за другим — как корзина, куда клиент по кнопкам складывает товары. На каждом шаге вы выбираете, что сделать: добавить позицию, убрать её или опустошить список целиком. Клиент просто нажимает кнопки, а бот держит набор при нём и может показать его в следующем сообщении.
Настройки блока
Панель настройки блока — что заполнить:
- Действие
- Что сделать со списком: положить в него позицию (добавить), убрать её или полностью очистить. По умолчанию — «добавить». Для действия «убрать» бот удалит из списка все одинаковые позиции сразу.
- Переменная-список
- Имя «корзины», в которую копятся выбранные позиции — например cart. Пишется латиницей, цифрами и знаком _, и не начинается с цифры.
- Что добавить / убрать
- Что именно положить в список или убрать из него — обычный текст или подстановка вроде ответа клиента {{user_input.text}}. Каждое добавление — одна позиция списка. До 1024 символов. Не показывается для действия «очистить».
- Где хранить результат
- Помнить список за клиентом насовсем (переживёт разные диалоги) или только на время текущего прохождения сценария. По умолчанию — за клиентом.
- Без дублей (не добавлять повторно)
- Не класть в список одно и то же второй раз: повторный выбор просто игнорируется. По умолчанию выключено. Доступно только для действия «добавить».
- Максимум позиций (1–200)
- Сколько позиций максимум помещается в список — от 1 до 200, по умолчанию 50. Когда список полон, новое не добавится, а в переменной last_list_full окажется true. Доступно только для действия «добавить».
Пример: корзина в кофейне
Клиент по кнопкам выбирает «капучино», «круассан», «эклер» — блок «Список» с действием «добавить» складывает их в корзину cart. Кнопка «Убрать» удаляет позицию, «Оформить» ведёт дальше, а бот в следующем сообщении показывает собранную корзину.
Частые вопросы
Что будет, когда список заполнится?
Когда в списке уже максимум позиций (по умолчанию 50, можно поднять до 200), новая позиция не добавится, а в переменной last_list_full станет true. По ней удобно показать клиенту сообщение «корзина полна» и увести на оплату.
Как убрать из корзины один товар?
Поставьте блок «Список» с действием «убрать» и укажите ту же позицию — бот уберёт из списка все одинаковые элементы сразу. Чтобы опустошить корзину целиком, выберите действие «очистить».
Чем «Список» отличается от обычной переменной?
Обычная переменная хранит одно значение и заменяется новым. «Список» копит значения одно за другим, как корзина: из него можно добавлять и убирать позиции по ходу диалога и в конце показать весь набор.
Другие блоки этой группы
Спросить
Бот задаёт вопрос и запоминает ответ клиента. Например, спрашивает имя или адрес доставки.Телефон / гео
Бот кнопкой просит телефон или геолокацию. Например, номер для звонка курьера или точку доставки на карте.Запомнить значение
Запоминает значение, чтобы использовать дальше. Например, сохранить выбранный город и потом подставлять его в сообщения.Калькулятор
Считает по формуле и запоминает результат. Например, посчитать сумму заказа со скидкой или стоимость доставки.Опрос
Просит клиента поставить оценку и, если нужно, комментарий. Например, оценка обслуживания от 1 до 5 после заказа.Метка
Навешивает или снимает метки на клиента. Например, отметить «купил» или «интересуется доставкой» — потом по меткам собирать рассылку.Запустите Telegram-бота с Forgebot
Соберите первый сценарий, отвечайте подписчикам и смотрите аналитику — бесплатно, без кода.
Бесплатный тариф: 1 бот, 5 сценариев, 100 подписчиков. Без карты.