Найти тему
Асхаб Алхазуров

Реализация купонной системы в боте

Оглавление

Эта статься основана из комбинации 3 статьей в документации salebot

Жду в своем телеграм канале, там много подобной полезной инфы https://t.me/asxabal

и логика купонной системы состоит из двух шагов

  1. Выдача купона
  2. Проверка купона, который скинул пользователь чат-боту

Начнем с выдачи купона (шаг 1)

Для начала нам нужно создать обычный qr-код (Генерация QR-кода
-
https://docs.salebot.pro/osobye-vozmozhnosti/generaciya-qr-koda\)

можно прочитать по ссылке выше или тут

Для начала нам нужно сперва сгенерировать api ключ сейлбота

Дальше создаем блок

-2

Тип запроса - POST-json

URL запроса - https://store.salebot.pro/function/qrcode_generator

Сохраняемые значения:

status->status;
qr_image_url->qr_image_url

сама картинка qr-кода сохраняется тут в переменную qr_image_url и эту переменную(картинку) будем использовать для генерации купона

JSON параметры:

{"text_for_qr":"#{Промокод}","api_key":"ваш апи ключ сейлбота"}

И в поле "Калькулятор" вводим такое значение:

Промокод = 'promo' + '#{client_id}' + random(100,10000)

тут client_id используется, чтобы промокод был максимально уникальным

если вы считаете, что он недостаточно будет уникальным, можно спокойно добавлять свои какие-то данные

Дальше создаем блок и стрелку 0 секунд

-3

и чуть не забыл, нам нужно еще подготовить гугл таблицы для приема нужных данных

Создаем таблицы и вводим такие данные

Купон
Статус
% скидки
Срок годности
Как тут
Как тут

и не забываем сделать для таблицы доступ редактора для всех

И все, таблица есть - продолжаем 👌

Настраиваем уже саму выдачу купона

если информации из этой статьи не хватит - можно дополнительно посмотреть про выдачу картинок тут (Персонализированные изображение
-
https://docs.salebot.pro/kak-sdelat/personalizirovannye-izobrazhenie)

Шаг 1. Регистрируем на сервисе niftyimages

Когда зарегистрировались, вас встретит такая картина

-5

Тут нужно выбрать "Personalized Image"

Дальше будет примерно такая картина

-6

Честно, я сам не до конца понял, как с 0 создать отображения персональных аватарок, поэтому будем создавать через готовый шаблон и этот шаблон подстроим полностью под себя :D

-7

Выбираем раздел "Marketing" и там выбираем "кавбойский" шаблон

У вас все будет выглядеть вот так:

-8

Тут у нас есть самое важное - аватарка

и именно в эту аватарку мы будем передавать картинку qr-код

-9

Справа есть слои и нужно убрать лишнее

Нажимаем на ... (три точки) и нажимаем на корзинку

После

-10

Нажимаем на "Image Settings" слева сверху

и потом там нажимаем на "Change Background Image"

-11

ну и закидываем свой фон

-12

Теперь все выглядит примерно так

Теперь нужно убрать закругление для фото

-13

Нажимаем на картинку и двигаем ползунок к 0

Дальше по идее нам нужен какой-то красивый текст, который дает понять, что это КУПОН, а не какая-та стрёмная картинка с qr-кодом

-14

Нажав сюда, можно добавлять текст

Еще будет круто, если сделать так, чтобы выводилось имя пользователя

-15

Нажимаем вот сюда "Merge Tag Layer"

-16

Выбираем [name]

-17

И уже редактируем отображаемый текст

Если вы введете свое имя в пункте Design Value, то там тестово будет отображаться ваше имя

И все! Шаблонная картинка готова, что теперь?

-18

Нажимаем на "Save", называем как-то

и после этого, платформа показывает нам примерно такое

-19

Нам нужна именно та часть, которая находится в ковычках ""

-20

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

Возвращаемся в сейлбот

-21

В созданном втором блоке настраиваем POST-json запрос в гугл таблицы где будут храниться данные промокодов

URL запроса:

https://store.salebot.pro/function/gsheets

JSON параметры:

{"id": "id_гугл_таблиц", "mapping":{"a":"#{Промокод}", "b":"Не активирован", "d":"#{current_date + 30}", "c":"5"}}

Здесь мы сохраняем данные выданного купона

и в гугл таблицах данные будут отображаться примерно так

-22

И дальше вспоминаем нашу ссылку, которую достали из сервиса niftyimages

и эту ссылку ставим в том же блоке во вложении

-23

НО, не забываем в ссылку ставить свои переменные

Пример:

https://img1.niftyimages.com/cudh/1n7r/8w8i?name=#{имя}&profile=#{qr_image_url}

обязательно должна быть в ссылке переменная для qr-кода

profile=#{qr_image_url} (как в ссылке примера)

и сохраняем блок :D

Проверяем то что настроили

-24

Все работает! Если что-то не работает, одна из причин возможно, что подписка премиум закончилась

Купон теперь мы умеем выдавать, остается теперь научиться читать купон

Настраиваем чтение купона

-25

Примерно так будет выглядеть структура в сейлботе

Дополнительно можно почитать тут - Распознавания штрихкода на фотографии - https://docs.salebot.pro/osobye-vozmozhnosti/funkciya-dlya-raspoznavaniya-shtrikhkoda-na-fotografii

Для начала, просим пользователя скинуть фотку промокода

-26

Настройки в стрелки пустые

-27

дальше в следующем блоке будут такие настройки

-28

Тип зароса -

POST-json

URL запроса

https://store.salebot.pro/function/cv2barcode

JSON параметры

{"photo":"#{attachments}","api_key":"апи_ключ_проекта_сейлбот"}

Сохраняемые значения

barcode -> barcode;
status -> status

в этом блоке, бот будет считывать qr-код с картинки

и если есть qr-код то status будет 1 (если статус будет 0, то это означает, что человек скинул какую-то левую картинку, а не нужную нам с qr-кодом)

и данные с qr-кода сохранятся в переменную barcode

Дальше создаем блок и в настройках стрелки ставить 0 или -1 секунд задержку

-29

Теперь насчет настроек во втором блоке

-30

Тип запроса

POST-json

URL запроса

https://store.salebot.pro/function/findcell

Сохраняемые значения:

data -> Ответ;
data|0 -> Ячейка1;
data|1 -> Ячейка2;
data|2 -> Ячейка3;
data|3 -> Ячейка4;
cell_number|row -> Строка;
cell_number|col -> Столбец;
status -> status

JSON параметры

{"id": "id_гугл_таблиц", "find": "#{barcode}", "col": 1, "return": 0}

в этом блоке идет поиск самого промокода в гугл таблице и если есть, то выводятся все данные, связанные с этим промокодом

А если нет такого промокода, то status будет 0 и с помощью этого можно проверять скинули нам фигну или реальный промокод

-31

Вот тут эта проверка и осуществляется, если промокод существует, то проверки идут дальше, а если не существует, то сразу пользователю говорим, что такой код не рабочий

-32

Вот настройка в этой стрелке, когда status будет равен 0

-33

Настройки в стрелке когда status равен 1

Дальше идет проверка, активирован или не активирован промокод

-34

Ставим тут обычный пустой блок

и разветвление

Рассмотрим случай если промокод уже был активирован

-35

Ставим такие настройки в стрелке и отправляем в блок, где говорим пользователю, что промокод уже активирован

А теперь рассмотрим случай, когда промокод еще не был активирован

-36

Настройки стрелки выглядят вот так

и отправляем в блок, чтобы проверить, не истёк ли срок годности промокода

-37

И в блоке находится такой код

interval = if("#{current_date}" <= "#{Ячейка4}", "True", "False")

Тут мы проверяем с помощью if

меньше или равно заданной дате купона

если наша дата меньше чем дата купона, то это означает, что купон еще рабочий и можно активировать

Если срок годности истек. То есть текущая дата будет больше указанной даты для промокода, то в interval сохраняется значение "False"

-38

И тут как раз идет проверка, что сохранилось в переменную interval

-39

"#{interval}" != "True"

Если срок годности истек, то у interval будет значение "False" и соответственно "False" не равен "True" и эта стрелка успешно активируется

и пользователю выводится, что срок годности истек

-40

А когда купон еще действителен и можно активировать, то активируется стрелка "#{interval}" == "True"

-41

и в блоке находятся такие настройки

-42

Пишем пользователю такое сообщение:

Код активирован!
Ваша скидка - #{sale}% на весь заказ ✅

Тип запроса-

POST-json

URL запроса

https://store.salebot.pro/function/gsheets

JSON параметры

{"id": "id_гугл_таблиц", "write":{"b#{Строка}":"Активирован"}}

и в калькуляторе сохраняем скидку

sale = #{Ячейка3}

с помощью такого запроса, в гугл таблице статус купона поменяется на "Активирован"

-43

Поздравляю! Вы успешно все настроили

Жду в своем телеграм канале, там много подобной полезной инфы https://t.me/asxabal

Если вам качество картинок не нравится, то эту статью, но где лучше фотки можно прочитать тут https://teletype.in/@asxabal/coupon