June 8, 2020

Мультиязычная корзина на BotMother (Платно)

Полностью автоматизированная корзина


Установка корзины и подготовка необходимых экранов

Ниже расписаны экраны с названиями, которые нужно создать. В каждый экран нужно добавить необходимые компоненты и настроить компоненты по инструкции.

Экран "Очистить корзину"

Компоненты:

1) Очистка переменных

В детальных настройках компонента, в поле "Что нужно очистить", добавьте переменную: products

2) Перемотка

В поле переход на экран, выберите "Стартовый экран" или другой подходящий для вас экран.

Экран "Удалить продукт из корзины"

Компоненты:

1) Запись

В поле "Имя переменной", вставьте следующее название переменной: products

Включите галочку в поле "Записать объект".

В поле "JSON или название переменной", вставьте следующий скрипт:

{
{{#each products}}
{{#eq ../product_to_delete this.name}}
{{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) Запись

В поле "Имя переменной", вставьте следующее название переменной: cart

Включите галочку в поле "Записать объект".

В поле "JSON или название переменной", вставьте следующий скрипт:

[
{{#eq cart_total_number 0}}
{{else}}
{{#eq ../lang "Русский язык"}}
"🚘 Оформить заказ",
{{else}}
"🚘 Buyurtma berish",
{{/eq}}
{{/eq}}
{{#each products}}
"{{this.name}}",
{{/each}}
{{#eq cart_total_number 0}}
{{else}}
{{#eq ../lang "Русский язык"}}
"🔄 Очистить",
{{else}}
"🔄 Bo'shatish",
{{/eq}}
{{/eq}}
{{#eq ../lang "Русский язык"}}
"⬅️ Назад"
{{else}}
"⬅️ Ortga"
{{/eq}}
]

4) Динамическая группа кнопок с подсказками

В поле "Путь до массива", вставьте следующее название переменной: cart

Справа, в экране "Корзина", во вкладке "Компоненты", найдите и нажмите на компонент "Динамическая группа кнопок с подсказками".

В поле "Текст сообщения", вставьте следующий скрипт:

🛒 Savat
{{#each products}}

<b>{{this.name}}</b>
{{this.count}} x {{this.price}} {{#eq ../lang "Русский язык"}}сум{{else}}so'm{{/eq}} = {{multiply this.count this.price}} {{#eq ../lang "Русский язык"}}сум{{else}}so'm{{/eq}}
{{/each}}
{{#eq cart_total_number 0}}

{{#eq ../lang "Русский язык"}}Ваша корзина пуста, выберите что нибудь для заказа...{{else}}Sizning savatiz bo'sh, taom tanlang{{/eq}}
{{else}}

<b>{{#eq ../lang "Русский язык"}}Итого{{else}}Jami{{/eq}}:</b> {{cart_total_number}} {{#eq ../lang "Русский язык"}}сум{{else}}so'm{{/eq}}

{{#eq ../lang "Русский язык"}}
Вы можете удалить определенный продукт из корзины с помощью кнопок ниже 👇
{{else}}
Siz tanlagan taomizning savatdan ochirib tashasez bo‘ladi, pasti tugma orqali 👇
{{/eq}}
{{/eq}}

5) Ввод от пользователя

В поле "Имя переменной", вставьте следующее название переменной: cart_input

6) Развилка

С помощью кнопки + добавьте цель.

В цель запишите:

  1. Переход на экран: Очистить корзину
  2. Значение цели: 🔄 Очистить

С помощью кнопки + добавьте цель.

В цель запишите:

  1. Переход на экран: Стартовый экран (или свой экран по усмотрению)
  2. Значение цели: ⬅️ Назад

С помощью кнопки + добавьте цель.

В цель запишите:

  1. Переход на экран: Оформление заказа (создайте экран "Оформление заказа", если этот экран еще не существует. Настроим этот экран позже)
  2. Значение цели: 🚘 Оформить заказ

С помощью кнопки + добавьте цель.

В цель запишите:

  1. Переход на экран: Удалить продукт из корзины
  2. Значение цели оставьте пустым

Справа, в экране "Корзина", во вкладке "Компоненты", найдите и нажмите на компонент "Развилка".

В поле "Имя переменной, откуда Развилка возьмет значение", вставьте следующее название переменной: cart_input

В той же вкладке, найдите последнюю "Цель" (над "Цель по умолчанию"), раскройте эту цель и в поле "Имя переменной, в которую будет записано то, что прислал пользователь, если условие данной цели совпадет", вставьте следующее название переменной: product_to_delete

Экран "Продукт"

Компоненты:

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) Развилка

С помощью кнопки + добавьте цель.

В цель запишите:

  1. Переход на экран: Стартовый экран
  2. Значение цели: ⬅️ Назад

С помощью кнопки + добавьте цель.

В цель запишите:

  1. Поле переход на экран оставьте пустым
  2. Тип данных, полученных от пользователя: regexp
  3. Значение цели: [1-9][0-9]*

Справа, в экране "Продукт", во вкладке "Компоненты", найдите и нажмите на компонент "Развилка".

В поле "Имя переменной, откуда Развилка возьмет значение", вставьте следующее название переменной: product_input

В той же вкладке, найдите последнюю "Цель" (над "Цель по умолчанию"), раскройте эту цель и в поле "Имя переменной, в которую будет записано то, что прислал пользователь, если условие данной цели совпадет", вставьте следующее название переменной: product_count

6) Запись

В поле "Имя переменной", вставьте следующее название переменной: 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}}
}
}

7) Запись

В поле "Имя переменной", вставьте следующее название переменной: products_count

НЕ ВКЛЮЧАЙТЕ галочку в поле "Записать объект".

В поле "Значение, записываемое в переменную", выберите: {{\inc}}

8) Перемотка

В поле переход на экран, выберите "Стартовый экран".


Создание шаблонного экрана для создания продуктов.

Экран "Шаблон продукта"

Каждый раз, когда вы будете создавать продукт, просто клонируйте этот экран, поменяйте название экрана в название продукта (пример: "Продукт Чизбургер"). Соедините склонированный экран с определенной кнопкой.

Компоненты шаблона:

1) Запись

В поле "Имя переменной", вставьте следующее название переменной: product

Включите галочку в поле "Записать объект".

В поле "JSON или название переменной", вставьте следующий скрипт:

{
"name": "НАЗВАНИЕ",
"price": СТОИМОСТЬ,
"photo": "",
"description": ""
}

2) Перемотка

В поле переход на экран, выберите "Продукт".