Корзина на BotMother (Бесплатно)
Полностью автоматизированная корзина
Установка корзины и подготовка необходимых экранов
Ниже расписаны экраны с названиями, которые нужно создать. В каждый экран нужно добавить необходимые компоненты и настроить компоненты по инструкции.
Экран "Очистить корзину"
Компоненты:
1) Запись
В поле "Имя переменной", вставьте следующее название переменной: products
НЕ ВКЛЮЧАЙТЕ галочку в поле "Записать объект".
В поле "Значение, записываемое в переменную", выберите: {{\array}}
2) Перемотка
В поле переход на экран, выберите "Стартовый экран" или другой подходящий для вас экран.
Экран "Удалить продукт из корзины"
Компоненты:
1) Запись
В поле "Имя переменной", вставьте следующее название переменной: products
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{ {{#each products}} {{#eq (sum ../product_to_delete.[1] 0) @index}} {{else}} "{{this.name}}": { "name": "{{this.name}}", "price": {{this.price}}, "count": {{this.count}} }{{#unless @last}} {{#eq @index (subtract ../products_count 2)}} {{else}} , {{/eq}} {{/unless}} {{/eq}} {{/each}} }
2) Запись
В поле "Имя переменной", вставьте следующее название переменной: products_count
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{{#if products_count}}{{subtract products_count 1}}{{else}}0{{/if}}
3) Перемотка
Оставьте на время этот компонент без изменений.
Экран "Корзина"
Создайте экран "Корзина", вернитесь в экран "Удалить продукт из корзины". В экране "Удалить продукт из корзины" в компоненте "Перемотка" в поле переход на экран, выберите экран "Корзина".
Компоненты экрана "Корзина":
1) Запись
В поле "Имя переменной", вставьте следующее название переменной: cart_total
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
[ {{#each products}} {{multiply this.price this.count}}, {{/each}} 0 ]
2) Запись
В поле "Имя переменной", вставьте следующее название переменной: cart_total_number
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{{sum cart_total}}
3) Навигационные кнопки
В поле "Текст, отправляемый пользователю", вставьте следующий скрипт:
🛒 Корзина {{#each products}} <b>{{this.name}}</b> {{this.count}} x {{this.price}} сум = {{multiply this.count this.price}} сум /delete_{{@index}} — удалить {{this.name}} из корзины {{/each}} {{#eq cart_total_number 0}} Ваша корзина пуста, выберите что нибудь для заказа... {{else}} <b>Итого:</b> {{cart_total_number}} сум Вы можете удалить определенный продукт из корзины с помощью команд, под каждый продуктом {{/eq}}
В этом же компоненте, создайте кнопки следующим образом:
Кнопку "Оформить заказ" свяжите с экраном: Оформление заказа
(создайте экран "Оформление заказа", если этот экран еще не существует. Настроим этот экран позже).
Кнопку "Очистить" свяжите с экраном: Очистить корзину
Кнопку "Назад" свяжите с экраном: Стартовый экран
Экран "Продукт"
Компоненты:
1) Группа кнопок с подсказками
В поле "Текст отправляемый пользователю", вставьте следующий скрипт:
<b>{{product.name}}</b> {{#if product.description}} {{product.description}} {{/if}} Цена: {{product.price}} сум Введите или выберите количество:
В компоненте, создайте кнопки следующий образом:
В конце добавьте кнопку: ⬅️ Назад
2) Ввод от пользователя
В поле "Имя переменной", вставьте следующее название переменной: product_input
3) Развилка
С помощью кнопки + добавьте цель.
В цель запишите:
- Переход на экран:
Стартовый экран
- Значение цели:
⬅️ Назад
С помощью кнопки + добавьте цель.
В цель запишите:
- Поле переход на экран оставьте пустым
- Тип данных, полученных от пользователя:
regexp
- Значение цели:
[1-9][0-9]*
Справа, в экране "Продукт", во вкладке "Компоненты", найдите и нажмите на компонент "Развилка".
В поле "Имя переменной, откуда Развилка возьмет значение", вставьте следующее название переменной: product_input
В той же вкладке, найдите последнюю "Цель" (над "Цель по умолчанию"), раскройте эту цель и в поле "Имя переменной, в которую будет записано то, что прислал пользователь, если условие данной цели совпадет", вставьте следующее название переменной: product_count
4) Запись
В поле "Имя переменной", вставьте следующее название переменной: products
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{ {{#each products}} "{{this.name}}": { "name": "{{this.name}}", "price": {{this.price}}, "count": {{this.count}} }, {{/each}} "{{product.name}}": { "name": "{{product.name}}", "price": {{product.price}}, "count": {{product_count}} } }
5) Запись
В поле "Имя переменной", вставьте следующее название переменной: products_count
НЕ ВКЛЮЧАЙТЕ галочку в поле "Записать объект".
В поле "Значение, записываемое в переменную", выберите: {{\inc}}
6) Перемотка
В поле переход на экран, выберите "Стартовый экран".
Создание шаблонного экрана для создания продуктов.
Экран "Шаблон продукта"
Каждый раз, когда вы будете создавать продукт, просто клонируйте этот экран, поменяйте название экрана в название продукта (пример: "Продукт Чизбургер"). Соедините склонированный экран с определенной кнопкой.
Компоненты шаблона:
1) Запись
В поле "Имя переменной", вставьте следующее название переменной: product
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{ "name": "НАЗВАНИЕ", "price": СТОИМОСТЬ, "description": "" }
2) Перемотка
В поле переход на экран, выберите "Продукт".
Настройки бота
Перейдите в "Настройки" в левом меню BotMother.
Найдите раздел "События" и добавьте событие с помощью кнопки "Добавить событие".
Настройте событие следующим образом...
Событие
Имя: Удалить продукт из корзины
Тип: Шаблон
Свойства
Тип: Регулярное выражение
Значение: \/delete_([0-9][0-9]*)
Имя переменной: product_to_delete
Тип переменной: Строка
Действие
Тип: Экран
Экран: Удалить продукт из корзины