Связь формы заказа на сайте с Телеграм

Связываем форму оформления заказа в интернет-магазине с телеграмм. Получаем инструмент для мгновенного оповещения о заказе прямо в телефон.

Оповещения с интернет магазина в телеграмм

Содержание

  1. Как работает оповещение в телеграмм и для чего это нужно?
  2. Создание бота
  3. Связываем телеграмм и форму на сайте
  4. Тестирование. Делаем пробный заказ.

1. Как работает оповещение в телеграмм и для чего это нужно?

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

О скорости

Что происходит при работе с email-уведомлениями:

  • Формирование данных
  • Вызов функции mail() для отправки сообщения
  • Получение сообщения на электронную почту
  • Уведомление

Разберем очень кратко алгоритм отправки сообщения

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

В случае с telegram все происходит моментально. От заказа до получения оповещения проходит не более секунды. Чуть позже мы на практическом примере разберем наглядно этот пример.

Как это происходит с telegram:

Отправка уведомлений с сайта в телегерамм

  • Формирование данных в ссылку
  • Вызов api telegram
  • Получение сообщения в телеграмм
  • Уведомление

Как видно, количество основных шагов (не считая посредников в виде множества серверов) такое же как и в случае с почтой, но благодаря централизованной системе telegram, весь процесс исчисляется в долях секунды.

Схема оповещения о заказах практически ни чем не отличается от стандартной, где используется электронная почта.

Только вместо email мы будем использовать telegram.

2.Создание бота

На создания бота уйдет всего несколько секунд.

  1. Заходим в telegram
  2. В поле поиска вбиваем @BotFather и открываем отца бота
  3. Отправляем команду — /start
  4. Создаем нового бота — /newbot
  5. Задаем имя бота, например — storebot
  6. Задаем username нашего бота, например storebot или store_bot. Важно в окончании указать префикс bot или _bot

Наш бот создан, а в ответ мы получили сообщение с token:

Use this token to access the HTTP API:

397123976:AAHoeZRWL6YSLHgvFGgAj-sy_HEHCS7TvZQ

После всех манипуляций открываем новоиспеченного бота @storebot (естественно у вас username бота свой) и отправляем команду /start

Узнать id чата Телеграмм

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

Чтобы узнать id чата, воспользуемся методом getUpdates 

https://api.telegram.org/bot&lt,token&gt,/getUpdates

Вместо &lt,token&gt, используем полученный ранее token

Ссылка будет выглядеть следующим образом:

https://api.telegram.org/bot397123976:AAHoeZRWL6YSLHgvFGgAj-sy_HEHCS7TvZQ/getUpdates

Открываем эту ссылку в браузере

Получаем ответ в виде json.

Находим фрагмент:

chat:{id:276578256,first_name

Это и есть id чата.

3.Связываем телеграмм и форму на сайте

Допустим 😉 так выглядит стандартная форма заказа в магазине, она состоит из двух полей: Имя и телефон.

[pastacode lang=markup manual=%3Cform%20method%3D%22post%22%3E%0A%0A%09%3Cinput%20name%3Dname%20type%3Dtext%20placeholder%3D%D0%92%D0%B2%D0%B5%D0%B4%D0%B8%D1%82%D0%B5%20%D0%B8%D0%BC%D1%8F%20%2F%3E%0A%09%0A%09%3Cinput%20name%3Dtel%20type%3Dtext%20placeholder%3D%D0%92%D0%B2%D0%B5%D0%B4%D0%B8%D1%82%D0%B5%20%D1%82%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%20%2F%3E%0A%09%0A%09%3Cinput%20type%3Dsubmit%20%2F%3E%0A%09%0A%3C%2Fform%3E message= highlight= provider=manual/]

Необходимо сформировать сообщение из полученных из формы данных, а также занести в переменные token  и id чата.

[pastacode lang=php manual=if(isset(%24_POST%5Bname%5D))%7B%24name%20%3D%20%24_POST%5Bname%5D%3B%7D%0A%0Aif(isset(%24_POST%5Btel%5D))%7B%24tel%20%3D%20%24_POST%5Btel%5D%3B%7D%0A%0A%24mess%20%3D%20%22%D0%98%D0%BC%D1%8F%3A%20%7B%24name%7D%5Cn%D0%A2%D0%B5%D0%BB%D0%B5%D1%84%D0%BE%D0%BD%3A%20%7B%24tel%7D%22%3B%0A%0A%24token%3D397123976%3AAAHoeZRWL6YSLHgvFGgAj-sy_HEHCS7TvZQ%3B%2F%2F%D0%9D%D0%B0%D1%88%20token%0A%0A%24query%20%3D%20%5B%0A%20%20%20%20chat_id%20%3D%3E%20276578256%2C%2F%2Fid%20%D1%87%D0%B0%D1%82%D0%B0%0A%20%20%20%20parse_mode%20%3D%3E%20HTML%2C%0A%20%20%20%20text%20%3D%3E%20%24mess%0A%5D%3B message=Формирование сообщения highlight= provider=manual/]

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







4.Тестирование. Делаем пробный заказ.

При помощи функции file_get_contents делаем запрос к полученному адресу.

[pastacode lang=php manual=if(%24name%20and%20%24tel)%7B%0A%09%09%09%0A%09file_get_contents(sprintf(%0A%09%09%09%09%09%09%0A%09%09https%3A%2F%2Fapi.telegram.org%2Fbot%25s%2FsendMessage%3F%25s%2C%20%0A%0A%09%09%24token%2C%20http_build_query(%24query)%0A%09%0A%09))%3B%0A%0A%7D message=Запрос к api telegram highlight= provider=manual/]

Получаем ответ в наш чатик.

Сравнение скорости