Корзина на BotMother (Платно)
Полностью автоматизированная корзина
Установка корзины и подготовка необходимых экранов
Ниже расписаны экраны с названиями, которые нужно создать. В каждый экран нужно добавить необходимые компоненты и настроить компоненты по инструкции.
Экран "Очистить корзину"
Компоненты:
1) Очистка переменных
В детальных настройках компонента, в поле "Что нужно очистить", добавьте переменную: products
2) Перемотка
В поле переход на экран, выберите "Стартовый экран" или другой подходящий для вас экран.
Экран "Удалить продукт из корзины"
Компоненты:
1) Запись (⚠️ ИСПРАВЛЕН КОМПОНЕНТ)
В поле "Имя переменной", вставьте следующее название переменной: products
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
[
{{#each products}}
{{#eq ../product_to_delete.[1] this.name}}
{{else}}
{
"name": "{{this.name}}",
"price": {{this.price}},
"count": {{this.count}}
}
{{#eq ../product_to_delete.[1] (getArrayElement ../products (subtract ../products.length 1) 'name')}}
{{#eq @index (subtract ../products.length 2)}}
{{else}}
{{#unless @last}},{{/unless}}
{{/eq}}
{{else}}
{{#unless @last}},{{/unless}}
{{/eq}}
{{/eq}}
{{/each}}
]2) Запись (⚠️ ЭТОТ КОМПОНЕНТ МОЖНО УДАЛИТЬ / НЕ СОЗДАВАТЬ)
В поле "Имя переменной", вставьте следующее название переменной: products_count
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{{#if products_count}}{{subtract products_count 1}}{{else}}0{{/if}}3) Перемотка
Оставьте на время этот компонент без изменений.
(⚠️ НАСТРОЙКА БОТА)
Перейдите в настройки бота, добавьте новое событие в разделе "События". Настройте новое событие следующим образом:
Событие
Имя: Удалить продукт из корзины
Тип: Шаблон
Свойства
Тип: Регулярное выражение
Значение: ❌ (.+)
Имя переменной: product_to_delete
Тип переменной: Массив
Действие
Тип: Экран
Экран: Удалить продукт из корзины
Экран "Корзина"
Создайте экран "Корзина", вернитесь в экран "Удалить продукт из корзины". В экране "Удалить продукт из корзины" в компоненте "Перемотка" в поле переход на экран, выберите экран "Корзина".
Компоненты экрана "Корзина":
1) Запись
В поле "Имя переменной", вставьте следующее название переменной: cart_total
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
[
{{#each products}}
{{multiply this.price this.count}},
{{/each}}
0
]2) Запись
В поле "Имя переменной", вставьте следующее название переменной: cart_total_number
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{{sum cart_total}}3) Запись (⚠️ ИСПРАВЛЕН КОМПОНЕНТ)
В поле "Имя переменной", вставьте следующее название переменной: cart
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
[
{{#eq cart_total_number 0}}
{{else}}
"🚘 Оформить заказ",
{{/eq}}
{{#each products}}
"❌ {{this.name}}",
{{/each}}
{{#eq cart_total_number 0}}
{{else}}
"🔄 Очистить",
{{/eq}}
"⬅️ Назад"
]4) Динамическая группа кнопок с подсказками
В поле "Путь до массива", вставьте следующее название переменной: cart
Справа, в экране "Корзина", во вкладке "Компоненты", найдите и нажмите на компонент "Динамическая группа кнопок с подсказками".
В поле "Текст сообщения", вставьте следующий скрипт:
🛒 Корзина
{{#each products}}
<b>{{this.name}}</b>
{{this.count}} x {{this.price}} сум = {{multiply this.count this.price}} сум
{{/each}}
{{#eq cart_total_number 0}}
Ваша корзина пуста, выберите что нибудь для заказа...
{{else}}
<b>Итого:</b> {{cart_total_number}} сум
Вы можете удалить определенный продукт из корзины с помощью кнопок ниже 👇
{{/eq}}5) Ввод от пользователя
В поле "Имя переменной", вставьте следующее название переменной: cart_input
6) Развилка
С помощью кнопки + добавьте цель.
В цель запишите:
- Переход на экран:
Очистить корзину - Значение цели:
🔄 Очистить
С помощью кнопки + добавьте цель.
В цель запишите:
- Переход на экран:
Стартовый экран(или свой экран по усмотрению) - Значение цели:
⬅️ Назад
С помощью кнопки + добавьте цель.
В цель запишите:
- Переход на экран:
Оформление заказа(создайте экран "Оформление заказа", если этот экран еще не существует. Настроим этот экран позже) - Значение цели:
🚘 Оформить заказ
(⚠️ ЦЕЛЬ НИЖЕ МОЖНО УДАЛИТЬ / НЕ ДОБАВЛЯТЬ)
С помощью кнопки + добавьте цель.
В цель запишите:
- Переход на экран:
Удалить продукт из корзины - Значение цели оставьте пустым
Справа, в экране "Корзина", во вкладке "Компоненты", найдите и нажмите на компонент "Развилка".
В поле "Имя переменной, откуда Развилка возьмет значение", вставьте следующее название переменной: cart_input
Экран "Продукт"
Компоненты:
1) Запись
В поле "Имя переменной", вставьте следующее название переменной: secret_token
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте токен вашего Telegram-бота в двойных кавычках.
Пример:
2) Запрос
В поле "URL запроса" вставьте следующий текст:
https://api.telegram.org/bot{{secret_token}}/{{#if product.photo}}sendPhoto{{else}}sendMessage{{/if}}
Справа, в экране "Продукт", во вкладке "Компоненты", найдите и нажмите на компонент "Запрос".
В поле "Тело запроса", вставьте следующий скрипт:
{
"chat_id": {{this_user.platform_id}},
"parse_mode": "HTML",
{{#if product.photo}}
"photo": "{{product.photo}}",
{{/if}}
"{{#if product.photo}}caption{{else}}text{{/if}}": "<b>{{product.name}}</b>
{{#if product.description}}
{{product.description}}
{{/if}}
Цена: {{product.price}} сум"
}3) Группа кнопок с подсказками
В поле "Текст отправляемый пользователю", вставьте: Введите или выберите количество: (можете заменить текст своим)
В компоненте, создайте кнопки следующий образом:
В конце добавьте кнопку: ⬅️ Назад
4) Ввод от пользователя
В поле "Имя переменной", вставьте следующее название переменной: product_input
5) Развилка
С помощью кнопки + добавьте цель.
В цель запишите:
- Переход на экран:
Стартовый экран - Значение цели:
⬅️ Назад
С помощью кнопки + добавьте цель.
В цель запишите:
- Поле переход на экран оставьте пустым
- Тип данных, полученных от пользователя:
regexp - Значение цели:
[1-9][0-9]*
Справа, в экране "Продукт", во вкладке "Компоненты", найдите и нажмите на компонент "Развилка".
В поле "Имя переменной, откуда Развилка возьмет значение", вставьте следующее название переменной: product_input
В той же вкладке, найдите последнюю "Цель" (над "Цель по умолчанию"), раскройте эту цель и в поле "Имя переменной, в которую будет записано то, что прислал пользователь, если условие данной цели совпадет", вставьте следующее название переменной: product_count
6) Запись (⚠️ ИСПРАВЛЕН КОМПОНЕНТ)
В поле "Имя переменной", вставьте следующее название переменной: products
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
[
{{#each products}}
{{#eq this.name ../product.name}}
{{else}}
{
"name": "{{this.name}}",
"price": {{this.price}},
"count": {{this.count}}
},
{{/eq}}
{{/each}}
{
"name": "{{product.name}}",
"price": {{product.price}},
"count": {{product_count}}
}
]7) Запись (⚠️ КОМПОНЕНТ МОЖНО УДАЛИТЬ / НЕ ДОБАВЛЯТЬ)
В поле "Имя переменной", вставьте следующее название переменной: products_count
НЕ ВКЛЮЧАЙТЕ галочку в поле "Записать объект".
В поле "Значение, записываемое в переменную", выберите: {{\inc}}
8) Перемотка
В поле переход на экран, выберите "Стартовый экран".
Создание шаблонного экрана для создания продуктов.
Экран "Шаблон продукта"
Каждый раз, когда вы будете создавать продукт, просто клонируйте этот экран, поменяйте название экрана в название продукта (пример: "Продукт Чизбургер"). Соедините склонированный экран с определенной кнопкой.
Компоненты шаблона:
1) Запись
В поле "Имя переменной", вставьте следующее название переменной: product
Включите галочку в поле "Записать объект".
В поле "JSON или название переменной", вставьте следующий скрипт:
{
"name": "НАЗВАНИЕ",
"price": СТОИМОСТЬ,
"photo": "",
"description": ""
}2) Перемотка
В поле переход на экран, выберите "Продукт".