
Подробнее о хостинге для размещения Телеграм бота можно узнать из статьи
Продолжение: Часть 2, Часть 3, Часть 4
Создание «Чат-Бот-Магазин в Телеграм» начнем с разработки технического задания, без использования каких-либо шаблонов, а так по-простому, для себя.
В первую очередь давайте определимся, что по итогу мы хотим получить. Я представляю это как каталог товаров, где пользователь может ознакомиться с карточкой товара, добавить товар в корзину, и оформить покупку, не выходя из мессенджера.
Это будет бот с минимально-необходимым набором функций, для ознакомительных целей, в дальнейшем вы сможете расширить функционал бота под ваши потребности.
Наполнение контентом будем осуществлять через сам бот, для этого нам надо будет сделать систему администрирования, также организовать права доступа в админ-чат.
Сделаем возможность добавления категорий и карточек товара. Редактирование товара и категорий делать не будем, при необходимости это можно будет доработать вне рамок статей. Добавление и редактирование информации в разделе Помощь.
Разделы бота:
Личный кабинет.
В кабинете пользователя будут храниться личные данные необходимые для оформления покупки. Заполнение данных нужно сделать доступным как при оформлении покупки, так и просто в разделе Личного кабинета.
Данные:
Каталог
Навигация по каталогу должна быть удобная и интуитивно понятная. Необходимо реализовать возможность перемещаться не только вглубь каталога, но и на шаг назад. Это также должно работать в любом другом разделе бота.
Корзина
Корзина покупателя позволяет сложить в нее интересующий товар и оформить покупку. В корзине обязательно должны быть инструменты по управлению:
Помощь
В этом разделе можно разместить информацию о магазине, службе поддержки, способы обратной связи и другое.
По мере продвижения вперед, будем в ТЗ что-то или дополнять, или исключать. Код будем писать в нашем уже известном файле index.php (это файл, на который у нас настроен webHook), познакомимся с PDO
Личный кабинет
Каталог
Корзина
Помощь
Структура таблиц в формате SQL
--
-- Структура таблицы `bot_shop_basket`
--
CREATE TABLE IF NOT EXISTS `bot_shop_basket` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`product_id` int(11) NOT NULL,
`product_count` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Структура таблицы `bot_shop_category`
--
CREATE TABLE IF NOT EXISTS `bot_shop_category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Структура таблицы `bot_shop_help`
--
CREATE TABLE IF NOT EXISTS `bot_shop_help` (
`description` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Структура таблицы `bot_shop_product`
--
CREATE TABLE IF NOT EXISTS `bot_shop_product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent` int(11) NOT NULL,
`name` varchar(200) NOT NULL,
`description` text NOT NULL,
`image_tlg` varchar(200) NOT NULL,
`image` varchar(200) NOT NULL,
`price` decimal(10,2) NOT NULL,
`unit` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
--
-- Структура таблицы `bot_shop_profile`
--
CREATE TABLE IF NOT EXISTS `bot_shop_profile` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`first_name` varchar(32) NOT NULL,
`last_name` varchar(32) NOT NULL,
`phone` varchar(15) NOT NULL,
`adress` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Еще будет как минимум одна таблица для промежуточной записи шагов пользователя, то есть нам нужно понимать для каких целей пришла информация от пользователя, то ли это текст для редактирования фамилии, или для раздела Помощь.
Ок, на сегодня достаточно. В следующей статье мы уже перейдем сразу к практике.
Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте бот @SiteAuthBot,
нажмите кнопку Старт/Start. Следуйте инструкциям бота.