Telegram-бот для приёма заказов: от идеи до запуска за неделю
Решение

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.24123456Иван+7900…Товар 1, 2 шт2000

Что дальше?

  • Добавить каталог товаров
  • Оплату через Telegram Payments
  • Отслеживание статуса заказа

Читайте также

Готовое решение

Нужен бот под ваши задачи? Свяжитесь с нами — разработаем за 1-2 недели.

Нужна помощь с автоматизацией?

Разработаем решение под ваши задачи.

Написать в Telegram

Подписывайтесь — делимся скриптами, кейсами и лайфхаками