Уведомления о заказе в telegram для Shopkeeper - плагин SendOrderToTelegram
- Готовые примеры
- Уведомления о заказе в telegram для Shopkeeper
Уведомления о заказе в telegram для Shopkeeper - плагин SendOrderToTelegram
Telegram набирает все больше и больше популярности. Накидал небольшой плагин, который позволяет получить уведомление админа, менеджера или владельца магазина о новом заказе прямо в telegram. Это позволит ускорить обработку заказа, ведь не всегда email или sms о новом заказе приходит сразу.
Шаг 1: регистрация бота у @BotFather
Регистрация проходит в 5 простых этапов:
- Открываете чат с @BotFather;
- Вводите или выбираете из списка команду /newbot;
- Отправляете желаемое название для бота, например: evoShkOrderBot;
- Пишете юзернейм бота, по которому его будут находить через поиск. Обязательно на конце вашего юзернейма должно быть слово «bot» или «_bot». Например: evoShkOrder_bot;
- После этого botFather пришлет нам сообщение с токеном, он то нам и нужен
- Добавляем нашего бота в контакты (ссылка на него будет в сообщении с токеном).
Далее заходим по ссылке:
https://api.telegram.org/bot<bot_token>/getUpdates
где <bot_token> – тот самый токен который мы получили.
Там смотрим свой id получателя, он нам тоже понадобится.
И всё, можем слать себе уведомления подставляя текст в ссылку.
https://api.telegram.org/bot<bot_token>/sendMessage?chat_id=&text=Привет+Бот
Шаг 2: Создаём плагин который будет отправлять нам уведомление
Создаём новй плагин и назовем его SendOrderToTelegram и вешаем на событие OnSHKsaveOrder
Далее вставляем код плагина
$e = &$modx->Event;
if ($e->name == 'OnSHKsaveOrder') {
$id = isset($id) ? $id : '';
//сюда вставляем токен полученый от botFather
$token = 'your_token';
// сюда наш id (на него будут приходить сообщения от бота)
$recipient = 'your_id';
$order_data = $modx->db->getRow($modx->db->select("*", $modx->getFullTableName('manager_shopkeeper'), "id = '$id'"), 'assoc');
$products_in_order = unserialize($order_data['content']);
$i = 0;
$products = '';
foreach($products_in_order as $product) {
$i++;
$products .= "{$i}. {$product['3']} ({$product['1']} шт.)";
}
$message = "
Новый заказ #{$id}
на сумму {$order_data['price']} {$order_data['currency']}
-----
{$products}
-----
Телефон: {$order_data['phone']}";
$message = urlencode($message);
$url = "https://api.telegram.org/bot{$token}/sendMessage?chat_id={$recipient}&text={$message}";
$ch = curl_init();
curl_setopt_array($ch, array(CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true));
$result = curl_exec($ch);
curl_close($ch);
}