SmartBot
Search…
Простая корзина товаров
Работа с массивами
В этой статье мы реализуем корзину товаров на базе массива: пользователь сможет выбрать один или несколько товаров из списка.

Создаём переменную

Создайте переменную %корзина% типа Массив в разделе Переменные:
Обратите внимание на значение по умолчанию: [] — это пустой массив (пользователь ещё не добавлял ничего в корзину).

Цепочка добавления товара

Теперь добавим цепочки для добавления и удаления товаров в корзину. Начнем с добавления:
Две текстовых кнопки с имеющимися товарами
Ждём ответ пользователя
Сохраняем ответ в массив
1
%корзина%.push(%сообщение%)
Copied!
Отправляем пользователю текущее содержимое его корзины
1
{{ %корзина% | pretty }}
Copied!
Обратите внимание, что у шага "Выполнить SmartQuery" есть кнопка "Проверить код", а у шага "Отправить сообщение" — кнопка "Проверить отображение". С их помощью можно проверить код на отсутствие ошибок и увидеть сообщение с подставленными переменными прямо в редакторе цепочек.

Цепочка удаления товара

Теперь добавим цепочку для удаления товаров из корзины.
Ждём ответ пользователя
Удаляем товар из корзины
1
%корзина%.remove(%сообщение%)
Copied!
Этот код сработает, только если пользователь напишет название товара в том же регистре, в каком оно хранится в массиве. Если вы хотите удалить все товары из корзины с указанным пользователем названием без учёта регистра, используйте следующий код:
1
%корзина% = %корзина%.filter(el => el.lower() != %сообщение%.lower())
Copied!
Отправляем текущее содержимое корзины пользователю

Тестируем

Если вы хотите хранить в корзине кроме названия товара какую-то ещё связанную с ним информацию, например, количество товара — читайте следующую статью.