Эта статься основана из комбинации 3 статьей в документации salebot
- Персонализированные изображение
- https://docs.salebot.pro/kak-sdelat/personalizirovannye-izobrazhenie - Распознавания штрихкода на фотографии - https://docs.salebot.pro/osobye-vozmozhnosti/funkciya-dlya-raspoznavaniya-shtrikhkoda-na-fotografii
- Генерация QR-кода
- https://docs.salebot.pro/osobye-vozmozhnosti/generaciya-qr-koda\ - Ну и знания интеграции с гугл таблицами
Жду в своем телеграм канале, там много подобной полезной инфы https://t.me/asxabal
и логика купонной системы состоит из двух шагов
- Выдача купона
- Проверка купона, который скинул пользователь чат-боту
Начнем с выдачи купона (шаг 1)
Для начала нам нужно создать обычный qr-код (Генерация QR-кода
- https://docs.salebot.pro/osobye-vozmozhnosti/generaciya-qr-koda\)
можно прочитать по ссылке выше или тут
Для начала нам нужно сперва сгенерировать api ключ сейлбота
Дальше создаем блок
Тип запроса - 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 секунд
и чуть не забыл, нам нужно еще подготовить гугл таблицы для приема нужных данных
Создаем таблицы и вводим такие данные
Купон
Статус
% скидки
Срок годности
и не забываем сделать для таблицы доступ редактора для всех
И все, таблица есть - продолжаем 👌
Настраиваем уже саму выдачу купона
если информации из этой статьи не хватит - можно дополнительно посмотреть про выдачу картинок тут (Персонализированные изображение
- https://docs.salebot.pro/kak-sdelat/personalizirovannye-izobrazhenie)
Шаг 1. Регистрируем на сервисе niftyimages
Когда зарегистрировались, вас встретит такая картина
Тут нужно выбрать "Personalized Image"
Дальше будет примерно такая картина
Честно, я сам не до конца понял, как с 0 создать отображения персональных аватарок, поэтому будем создавать через готовый шаблон и этот шаблон подстроим полностью под себя :D
Выбираем раздел "Marketing" и там выбираем "кавбойский" шаблон
У вас все будет выглядеть вот так:
Тут у нас есть самое важное - аватарка
и именно в эту аватарку мы будем передавать картинку qr-код
Справа есть слои и нужно убрать лишнее
Нажимаем на ... (три точки) и нажимаем на корзинку
После
Нажимаем на "Image Settings" слева сверху
и потом там нажимаем на "Change Background Image"
ну и закидываем свой фон
Теперь все выглядит примерно так
Теперь нужно убрать закругление для фото
Нажимаем на картинку и двигаем ползунок к 0
Дальше по идее нам нужен какой-то красивый текст, который дает понять, что это КУПОН, а не какая-та стрёмная картинка с qr-кодом
Нажав сюда, можно добавлять текст
Еще будет круто, если сделать так, чтобы выводилось имя пользователя
Нажимаем вот сюда "Merge Tag Layer"
Выбираем [name]
И уже редактируем отображаемый текст
Если вы введете свое имя в пункте Design Value, то там тестово будет отображаться ваше имя
И все! Шаблонная картинка готова, что теперь?
Нажимаем на "Save", называем как-то
и после этого, платформа показывает нам примерно такое
Нам нужна именно та часть, которая находится в ковычках ""
и сохраняем это значение, можно для начала в заметках записать, чтобы заново не проходить путь с этой картинкой
Возвращаемся в сейлбот
В созданном втором блоке настраиваем POST-json запрос в гугл таблицы где будут храниться данные промокодов
URL запроса:
https://store.salebot.pro/function/gsheets
JSON параметры:
{"id": "id_гугл_таблиц", "mapping":{"a":"#{Промокод}", "b":"Не активирован", "d":"#{current_date + 30}", "c":"5"}}
Здесь мы сохраняем данные выданного купона
и в гугл таблицах данные будут отображаться примерно так
И дальше вспоминаем нашу ссылку, которую достали из сервиса niftyimages
и эту ссылку ставим в том же блоке во вложении
НО, не забываем в ссылку ставить свои переменные
Пример:
https://img1.niftyimages.com/cudh/1n7r/8w8i?name=#{имя}&profile=#{qr_image_url}
обязательно должна быть в ссылке переменная для qr-кода
profile=#{qr_image_url} (как в ссылке примера)
и сохраняем блок :D
Проверяем то что настроили
Все работает! Если что-то не работает, одна из причин возможно, что подписка премиум закончилась
Купон теперь мы умеем выдавать, остается теперь научиться читать купон
Настраиваем чтение купона
Примерно так будет выглядеть структура в сейлботе
Дополнительно можно почитать тут - Распознавания штрихкода на фотографии - https://docs.salebot.pro/osobye-vozmozhnosti/funkciya-dlya-raspoznavaniya-shtrikhkoda-na-fotografii
Для начала, просим пользователя скинуть фотку промокода
Настройки в стрелки пустые
дальше в следующем блоке будут такие настройки
Тип зароса -
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 секунд задержку
Теперь насчет настроек во втором блоке
Тип запроса
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 и с помощью этого можно проверять скинули нам фигну или реальный промокод
Вот тут эта проверка и осуществляется, если промокод существует, то проверки идут дальше, а если не существует, то сразу пользователю говорим, что такой код не рабочий
Вот настройка в этой стрелке, когда status будет равен 0
Настройки в стрелке когда status равен 1
Дальше идет проверка, активирован или не активирован промокод
Ставим тут обычный пустой блок
и разветвление
Рассмотрим случай если промокод уже был активирован
Ставим такие настройки в стрелке и отправляем в блок, где говорим пользователю, что промокод уже активирован
А теперь рассмотрим случай, когда промокод еще не был активирован
Настройки стрелки выглядят вот так
и отправляем в блок, чтобы проверить, не истёк ли срок годности промокода
И в блоке находится такой код
interval = if("#{current_date}" <= "#{Ячейка4}", "True", "False")
Тут мы проверяем с помощью if
меньше или равно заданной дате купона
если наша дата меньше чем дата купона, то это означает, что купон еще рабочий и можно активировать
Если срок годности истек. То есть текущая дата будет больше указанной даты для промокода, то в interval сохраняется значение "False"
И тут как раз идет проверка, что сохранилось в переменную interval
"#{interval}" != "True"
Если срок годности истек, то у interval будет значение "False" и соответственно "False" не равен "True" и эта стрелка успешно активируется
и пользователю выводится, что срок годности истек
А когда купон еще действителен и можно активировать, то активируется стрелка "#{interval}" == "True"
и в блоке находятся такие настройки
Пишем пользователю такое сообщение:
Код активирован!
Ваша скидка - #{sale}% на весь заказ ✅
Тип запроса-
POST-json
URL запроса
https://store.salebot.pro/function/gsheets
JSON параметры
{"id": "id_гугл_таблиц", "write":{"b#{Строка}":"Активирован"}}
и в калькуляторе сохраняем скидку
sale = #{Ячейка3}
с помощью такого запроса, в гугл таблице статус купона поменяется на "Активирован"
Поздравляю! Вы успешно все настроили
Жду в своем телеграм канале, там много подобной полезной инфы https://t.me/asxabal
Если вам качество картинок не нравится, то эту статью, но где лучше фотки можно прочитать тут https://teletype.in/@asxabal/coupon