Решение
Telegram-бот для приёма заказов: от идеи до запуска за неделю
Telegram-бот для приёма заказов: от идеи до запуска за неделю
Telegram становится основным каналом продаж для малого бизнеса. В этой статье расскажем, как создать бота для приёма заказов с автоматическим сохранением в Google Таблицу.
Почему Telegram?
- Конверсия: 15-20% против 2-3% на сайте
- Скорость: Клиент получает ответ мгновенно
- Удержание: Бот всегда под рукой в мессенджере
Архитектура решения
Пользователь → Telegram Bot → Google Apps Script → Google Sheets
↓
Уведомление продавцу
Создание бота
1. Регистрация в BotFather
/newbot
Название: Мой магазин
Username: my_shop_bot
Получите токен вида: 123456789:ABCdefGHIjklMNOpqrsTUVwxyz
2. Webhook на Google Apps Script
const BOT_TOKEN = 'ваш-токен';
const SPREADSHEET_ID = 'id-таблицы';
const ADMIN_CHAT_ID = 'ваш-chat-id';
function doPost(e) {
const update = JSON.parse(e.postData.contents);
const message = update.message;
if (message && message.text) {
handleMessage(message);
}
return ContentService.createTextOutput('OK');
}
function handleMessage(message) {
const chatId = message.chat.id;
const text = message.text;
if (text === '/start') {
sendMessage(chatId, 'Добро пожаловать! Выберите действие:', {
keyboard: [
['📝 Оформить заказ'],
['📞 Связаться с нами']
]
});
} else if (text === '📝 Оформить заказ') {
startOrder(chatId);
} else {
processOrder(chatId, text);
}
}
function sendMessage(chatId, text, options = {}) {
const url = `https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`;
const payload = {
chat_id: chatId,
text: text,
parse_mode: 'HTML'
};
if (options.keyboard) {
payload.reply_markup = JSON.stringify({
keyboard: options.keyboard.map(row => row.map(text => ({ text }))),
resize_keyboard: true
});
}
UrlFetchApp.fetch(url, {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify(payload)
});
}
function saveOrder(orderData) {
const sheet = SpreadsheetApp.openById(SPREADSHEET_ID)
.getSheetByName('Заказы');
sheet.appendRow([
new Date(),
orderData.chatId,
orderData.name,
orderData.phone,
orderData.items,
orderData.total
]);
// Уведомление админу
sendMessage(ADMIN_CHAT_ID, `🆕 Новый заказ!\n\n${JSON.stringify(orderData)}`);
}
3. Настройка Webhook
function setWebhook() {
const scriptUrl = ScriptApp.getService().getUrl();
const webhookUrl = `${scriptUrl}?token=${BOT_TOKEN}`;
UrlFetchApp.fetch(`https://api.telegram.org/bot${BOT_TOKEN}/setWebhook`, {
method: 'post',
payload: { url: webhookUrl }
});
}
Структура таблицы
| Дата | Chat ID | Имя | Телефон | Товары | Сумма |
|---|---|---|---|---|---|
| 01.02.24 | 123456 | Иван | +7900… | Товар 1, 2 шт | 2000 |
Что дальше?
- Добавить каталог товаров
- Оплату через Telegram Payments
- Отслеживание статуса заказа
Читайте также
Готовое решение
Нужен бот под ваши задачи? Свяжитесь с нами — разработаем за 1-2 недели.
Подписывайтесь — делимся скриптами, кейсами и лайфхаками