(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-native-branding');

Заказ еды в Телеграме? Невозможно

Я встречаю очень много ботов, предлагающих заказ еды через Телеграм. У меня есть такой же, написанный давным-давно, ещё на заре появления вообще возможности создания ботов. Правда в том, что такие боты не будут пользоваться популярностью – их удобство и успех слишком индивидуальны для каждого магазина. Я расскажу об основных проблемах подобных решений и, возможно, предостерегу кого-то от написания очередного бота с этими функциями. Добро пожаловать под.. кат?

Проблема №1: основная составляющая бота – ларьки с шаурмой.

Каким бы замечательным ни был бот, никто в здравом уме не будет его использовать для выбора блюда из сотен позиций. Максимум – 10-15, иначе всё это превратится в мусор. Куда удобнее делать это через приложение для заказа еды, например, где все позиции видно сразу и с картинками. Я постоянно встречаю ботов, разработчики которых не утруждаются сделать перелистывание позиций (не только касаемо ботов для заказа чего-то, а вообще для ботов, в которых есть какая-либо галерея), а всё отправляют в чат, и сиди листай всю простыню.

Проблема №2: панель менеджера.

Можно, конечно, сделать интеграцию с базой магазина (если она вообще есть), тогда все позиции будут редактироваться в одном месте – это хорошо. Да, хорошо, когда есть то самое место. То есть боту обязательно нужна админка, чтобы редактировать каталог. Если это сделано где-нибудь на сайте или каким-то другим действительно удобным способом – хорошо. Делать это в боте – мучение для менеджера. Нужно вручную кликать на каждую позицию, открывать отдельную настройку и менять. На сайте, например, или в программе можно сделать это на одной странице, где будут все настройки на виду, и никуда не придётся лишний раз нажимать. Можно сделать загрузку всей этой радости одним файлом в бота (у меня, например, можно залить JSON), но для этого нужен программист. Можно разобраться менеджеру самому в такой упаковке данных, но нет, нельзя. Что ещё? XML туда же. Excel? За несколько месяцев раздумий я так и не придумал удобную структуру для книги. Если бы придумал, не забросил бы своего бота на этапе создания админки.

Проблема №3: конкуренция с приложениями.

Никуда не деться от существования цветных доставок. Они распиарены, они имеют рынок, они имеют курьеров, они имеют целые команды. Кто из условной усатой забегаловки в здравом уме будет интегрироваться с ноунейм-ботом без гарантий, когда есть серьёзные цветные компании, которые всё за них сделают? Как я уже писал: такие боты только для заказа шаурмы, чтобы не стоять в очереди.

Можно сделать такого бота на заказ, разумеется, но это будет индивидуальная разработка. Можно добавить курьеров (возможность устроиться курьером на время, как я хотел сделать в своём боте, без документов и прочего – для подростков, например (согласен, звучит сомнительно)), отслеживание их по геопозиции (благо последнее обновление позволяет ботам работать с этим), бронирование столиков для ресторанов и кучу интересных вещей, которые подойдут только конкретному заведению. Не нужно клепать одинаковых (плюс минус) ботов для всех, которыми никто не будет пользоваться. На заказ индивидуально – это другое дело.

(function(bannerClassName) { const sendEvent = (token, action) => { const value = 'Branding ' + token + ' – ' + action; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } else { console.log('GA send: ' + value); } }; const oneBeforePageChange = (callback) => { if (typeof Air === 'object') { const ajaxify = Air.import('module.ajaxify'); ajaxify.one('Before page changed', () => { try { if (callback) { callback(); } } catch (error) { console.log(error); } }); } }; const onLinkClick = (e) => { const link = e.target; const href = link.getAttribute('href'); sendEvent(href, 'Click'); link.removeEventListener('click', onLinkClick); }; const branding = document.querySelector(bannerClassName); if (!branding) { return; } const links = branding.querySelectorAll('a'); for (let i = 0; i < links.length; i += 1) { const isVisible = getComputedStyle(links[i]).display !== 'none'; const href = links[i].getAttribute('href'); if (isVisible) { sendEvent(href, 'Show'); } links[i].addEventListener('click', onLinkClick); } oneBeforePageChange(() => { for (let i = 0; i < links.length; i += 1) { links[i].removeEventListener('click', onLinkClick); } }); })('.entry-article-footer');
0
2 комментария
Kirill Shiryaev

Не очень понял насчет панели для менеджера, в чем проблема создать условный сайт с авторизацией по логину и паролю и там уже менеджеру добавлять блюда, цены, акции, рестораны и т.д.? Поднять БД, в которую бэкенд сайта все пишет, а бот читает. 

Ответить
Развернуть ветку
Роман Анисимов
Автор

Да, об этом и говорю - нужно отдельно делать панель на вебе, чтобы было удобно. В боте это будет очень неудобно. 

Если это сделано где-нибудь на сайте или каким-то другим действительно удобным способом – хорошо. Делать это в боте – мучение для менеджера. Нужно вручную кликать на каждую позицию, открывать отдельную настройку и менять.
Ответить
Развернуть ветку
-1 комментариев
Раскрывать всегда
null