Инструкция Отправка заказов из OpenCart в группу Telegram

  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #1
opencartbot.jpg

Мы уже рассматривали, как создать бота, который отправляет сообщения с сайта в мессенджер Telegram. Сегодня мы научим его отправлять заказы из интернет-магазина на OpenCart.

Создаем бота​

Боты в Telegram создаются через другого специального бота @BotFather. Нужно найти его и отправить ему команду /start.

Для создания нового бота отправляем следующую команду /newbot. После чего бот запросит имя вашего нового бота, оно обязательно должно заканчиваться на Bot. В случае успеха в ответ получаем уникальный токен бота, который понадобится для дальнейшей работы. И не забудьте добавить вновь созданного бота в ваши контакты отправив ему команду /start

jbxa_5wecdy-595x1024.jpg


Получаем токен и chat id бота​

Чтобы отправить сообщение пользователю через бота достаточно вызвать определенный URL из PHP скрипта содержащий токен бота и внутренний ID чата chat id.

Токен бота у нас уже есть, а chat id можно получить 2 способами:

  1. Написать боту @ShowJsonBot любой текст. В ответ он вернет вам некие данные в JSON формате. Находим объект chat и в нем id — это и есть ваш chat id.
  2. В адресной строке ввести <YourBOTToken>/getUpdates где <YourBOTToken> — это ранее полученный токен вашего бота. Находим объект chat и в нем id — это и есть ваш chat id.
umfr_h8devq-594x1024.jpg

Отправка сообщений в группу Telegram​

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

Опять заходим в @BotFather и вводим следующую команду: /setjoingroups, выбираем нашего бота и команду Enabled. Теперь бота можно добавлять в группы. Далее необходимо разрешить боту читать и писать все сообщения, делается это командой /setprivacy установленной наоборот в Disabled.

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

Отправка заказов из OpenCart в группу​

Копируем файл из каталога OpenCart /catalog/controller/common/order.php в /system/storage/modification/catalog/controller/common/order.php если его там нет.

Внимание! Если у вас OpenCart 2.x, то можете пропустить этот раздел и сразу перейти к следующему.

Добавляем после строк:

Скрытое содержимое доступно для зарегистрированных пользователей!

Это практически самый конец файла, примерно 216 строка.

Следующий код:

Скрытое содержимое доступно для зарегистрированных пользователей!

TELEGRAM_TOKEN необходимо заменить на токен вашего бота, который получили ранее. TELEGRAM_CHATID можете указать свой, который так же получили ранее, тогда заказы будут приходить только вам. Если же необходима отправка в группу Telegram, то там нужно будет указать ID группы. Как его получить рассмотрим в статье далее.

Теперь после строк:

Код:
array_multisort($sort_order, SORT_ASC, $totals);
$pr = array();

Перед началом цикла foreach. Это примерно 82 строка.

Добавляем туда следующий код:

Код:
$totalPrice = 0;

И чуть ниже, в конце цикла foreach перед закрывающей скобкой добавляем:

Код:
$totalPrice = $totalPrice + (($product['price'] + $this->tax->getTax($product['price'], $product['tax_class_id'])) * $product['quantity']);

Это примерно 110 строка. Это нужно для расчёта общей стоимости покупки, которая будет отправлена ботом.

Код для OpenCart 2.x​

Для OpenCart 2.x код будет немного другой, его необходимо будет добавить в функцию addOrder() в файле /catalog/model/checkout/order.php, предварительно переместив его в каталог /system/storage/modification/catalog/model/checkout/

Находим функцию addOrder() и в самом её конце перед закрывающей скобкой и return $order_id; добавляем следующий код:


Скрытое содержимое доступно для зарегистрированных пользователей!

TELEGRAM_TOKEN необходимо заменить на токен вашего бота, который получили ранее. TELEGRAM_CHATID можете указать свой, который так же получили ранее, тогда заказы будут приходить только вам. Если же необходима отправка в группу Telegram, то там нужно будет указать ID группы. Как его получить рассмотрим в статье далее.

Теперь перед циклом:

Код:
foreach ($data['products'] as $product) {

Добавляем:

Код:
$totalPrice = 0;

И затем в конце этого цикла перед закрывающей скобкой добавляем следующий код:

Код:
$totalPrice = $totalPrice + (float)$product['total'];

Этот код рассчитывает общую сумму товаров, которая заносится в переменную $totalPrice.


Отправка сообщений в группу​

Чтобы бот мог отправлять сообщения в группу, необходимо его туда добавить. Сделать это можно в настройках группы в разделе Добавить участника. В поиске необходимо ввести имя вашего бота и нажать OK.

Теперь в настройках скрипта нужно изменить chat id пользователя, на chat id нужной группы. Для этого предварительно нужно написать любое сообщение в чат, а затем в адресной строке ввести <YourBOTToken>/getUpdates где <YourBOTToken> — это ранее полученный токен вашего бота. После находим объект chat и в нем id — это и будет chat id группы.


Функция для отправки заказов в Telegram​

Давайте оформим наш пример в функцию OpenCart. Так будет правильнее.

Открываем на редактирование файл /catalog/controller/common/order.php и самом начале добавляем константы с токеном бота и ID чата Telegram, куда будут приходить сообщения. В TELEGRAM_CHATID можно указать пользователя, группу или сразу несколько чатов, указав их ID через запятую.

Скрытое содержимое доступно для зарегистрированных пользователей!

И внутри класса class ModelCheckoutOrder extends Model пишем нашу функцию:

Скрытое содержимое доступно для зарегистрированных пользователей!

Далее ниже внутри функции public function addOrder($data) вызываем функцию нашего бота для каждого чата:

Скрытое содержимое доступно для зарегистрированных пользователей!

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

tester99

Пользователь
Вы с нами 2 года! Спасибо. За год с нами За классный аватар
Регистрация
11.07.22
Сообщения
2
Симпатии
0
Супер!
 

Arcvi

Пользователь
За год с нами За классный аватар
Регистрация
24.09.23
Сообщения
1
Симпатии
0
инструкция в начале для какой версии opencart?
 
Регистрация
02.06.21
Донат
50.00 ₽
Сообщения
12,619
Решения
1
Симпатии
13,119
Веб-сайт
itnull.info
  • Друг форума
  • Программист
  • Автор темы
  • Администратор
  • Модер.
  • Команда форума
  • #4

Создайте аккаунт или войдите, чтобы комментировать

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

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизация

Уже есть аккаунт? Авторизуйтесь.

Похожие темы

Telegram Control PC v4.0 | Перед вами софт, который позволяет управлять компьютером через...
Ответы
0
Просмотры
386
ITnull добавил(а) новый ресурс: Уведомления о заказах в Telegram - Уведомления о новых заказах...
Ответы
0
Просмотры
1K
Ответы
0
Просмотры
346
Удобная панель для фишинга Telegram аккаунтов которая работает через бота. От вас необходим...
Ответы
0
Просмотры
1K
Сверху Снизу