Работа с промокодами

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

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

  1. Подготовить список промокодов в Гугл таблице, научить Salebot находить свободный промокод, выдавать его клиенту и отмечать его как выданный в гугл таблице;

  2. Научить Salebot генерировать его по некоему правилу, выдавать клиенту и вносить в Гугл таблицу.

Проверить валидность промокодов можно, используя Гугл таблицу и API запросы к ней.

Обо всем этом читайте ниже.

Функция проверки промокодов

Если у вас стоит задача ограничить доступ к боту или специальным предложениям, вы можете воспользоваться функцией проверки промокодов.

Подготовьте Гугл таблицу, в которой в одном столбце будет список ваших промокодов. Настройки доступа в этой таблице выставьте «Редактировать могут все, у кого есть ссылка». Как это сделать читайте в статье Работа с Google таблицами

Функция работает следующим образом. Клиент вводит в бота свой промокод, функция проверяет есть ли этот промокод в таблице в колонке, которую вы указали. Если промокод найден то в соседнюю ячейку добавляется надпись "Промокод использован" при этом функция возвращает следующий ответ:

{“status”: ‘’0’’}

Адрес функции: https://store.salebot.pro/function/check-promocode

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

{"id":"1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYKc4", "promocode": "#{question}", "col_number": "1"}

Где id это id вашей гугл таблицы где хранятся промокоды. Вы можете получить его из ссылки на вашу гугл таблицу. Сама таблица должна быть доступна на редактирование для всех у кого есть ссылка.

Если промокоды находятся на отдельном листе, то вы можете использовать параметр list_name, в который необходимо передать название листа, например: {"id":"1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYKc4", "promocode": "#{question}", "col_number": "1", "list_name": "Название листа"}

https://docs.google.com/spreadsheets/d/1aUbbUaw2SRnJFAavv06Noa1EzumhyShKDm7ie6lYKc4/edit#gid=0

Следующий параметр это промокод который вводит посетитель.

col_number это номер колонки в таблице в которой хранятся промокоды.

{“status”: ‘’1’’}, после этого повторно ввести промокод нельзя.

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

{“status”: ‘’0’’}

Как это использовать и куда вводить, показано на рисунке 1

Рисунок 1

#{custom_answer} - ответ с сервера, указанного в поле 'URL запроса"

Используйте эту переменную в поле ответ, чтобы посмотреть, что в нем содержится. Если вы все сделали правильно, то можете сохранить status->status, и в стрелках, в поле "Переменная для сравнения" выставить значения "status == 0" (и дать ответ пользователю, что код уже использован) или "status" == 1 (пользователь проходит дальше). Пример показан на рисунке 2.

Рисунок 2

Выдача промокодов из Google таблицы

Подготовьте таблицу как на рисунке 3. В первом столбце промокоды, а во втором пометка «Свободен». Настройки доступа в этой таблице выставьте «Редактировать могут все, у кого есть ссылка». Как это сделать читайте в статье Работа с Google таблицами

Рисунок 3

Вы получите ссылку вида: https://docs.google.com/spreadsheets/d/1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg/edit?usp=sharing

Выделенный жирным фрагмент – это id вашей таблицы. Он нам понадобиться дальше.

В Salebot создайте блок в настройках которого укажите следующие параметры (рисунок 4):

Рисунок 4

Ответ. Можно #{none}, но можно и текст «Генерирую ваш промокод» или любой другой Тип запроса. POST-json URL запроса. https://store.salebot.pro/function/findcell Сохраняемые данные из JSON-ответа: data->Промокод; cell_number|row ->Строка; JSON POST-параметров: {"id": "1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg", "find": "Свободен", "col": 2, "return": 1}

Где вместо 1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg вставите id, полученный выше из адреса вашей таблицы.

Из этого блока создайте переход в следующий блок. В настройках Соединения кликните по фразе Настройки времени. В развернувшемся разделе в поле Задержка перед ответом выставьте -1, чтобы переход осуществлялся как можно быстрее (рис 5).

Рисунок 5

В новом блоке выставьте настройки как на рисунке 6.

Рисунок 6

Ответ. Чтобы показать пользователю его промокод вставьте #{Промокод}. Тип запроса. POST-json URL запроса. https://store.salebot.pro/function/gsheets JSON POST-параметров. {"id": "1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg", "write":{"b#{Строка}":"Использован"}}

Где вместо 1-dAJz4m0qHqJ29-Qb6DCLmvOdtAOJ5m7-5pcbjGHeYg вставите id, полученный выше из адреса вашей таблицы.

Проверьте как все работает.

Генерация промокодов средствами Salebot

Если промокод может создаваться по определенному правилу, то можно генерировать его прямо в Salebot и записывать в Гугл таблицу для дальнейшей проверки использования.

Для этого нам понадобятся переменные. Например, чтобы сгенерировать уникальный промокод, мы можем использовать переменную #{client_id}. Это уникальная в Salebot переменная, обозначающая номер вашего клиента в системе.

В поле блока Расширенные настройки – Назначение переменных при переходе запишите: Промокод = промо#{client_id} В поле Ответ в этом блоке запишите #{Промокод}. В моем случае вы получите промокод вида промо1330882.

Если вы хотите добавить промокоду больше случайности, то можете добавить вызов функции random() Промокод = 'promo' + '#{client_id}' + random(0,10) В данном примере в конец добавляется одна случайная цифра

Теперь запишем его в Гугл таблицу промокодов:

Для начала создадим пустую таблицу. Настройки доступа в этой таблице выставьте «Редактировать могут все, у кого есть ссылка» (рис.4,5,6). В ячейку A1 напишем слово Промокод (Внимание! Если первая ячейка будет пустой, то функция не сработает, поэтому заполняем обязательно). Вы получите ссылку вида: https://docs.google.com/spreadsheets/d/1sl15vKFjo5TFD98GnVjF3AlLtdhr85-AkEjoeJkgDxE/edit?usp=sharing

Выделенный цветом фрагмент – это id вашей таблицы. Он нам понадобиться дальше.

Теперь вернемся в Salebot. Продолжим редактировать наш блок с промокодом. Тип запроса. POST-json URL запроса. https://store.salebot.pro/function/gsheets JSON POST-параметров. {"id": "1sl15vKFjo5TFD98GnVjF3AlLtdhr85-AkEjoeJkgDxE", "mapping":{"a":"#{Промокод}"}} Где вместо 1sl15vKFjo5TFD98GnVjF3AlLtdhr85-AkEjoeJkgDxE вставите id, полученный выше из адреса вашей таблицы.

У вас должно получиться как на рисунок 10.

Рисунок 10

Проверьте как все работает.