Будь ласка, використовуйте цей ідентифікатор, щоб цитувати або посилатися на цей матеріал: https://er.chdtu.edu.ua/handle/ChSTU/6185
Назва: Веб-орієнтований ресурс онлайн-замовлень для піцерії
Автори: Андрієнко, Володимир Олександрович
Буряк, Євгеній Романович
Ключові слова: CMS;БАЗА ДАНИХ;ЕЛЕКТРОННА КОМЕРЦІЯ;ІНТЕГРАЦІЯ;ЧАТБОТ;ДОМЕН.
Дата публікації: 12-чер-2024
Короткий огляд (реферат): У сучасному світі цифрових технологій, наявність ефективного веб-орієнтованого ресурсу є критично важливою для будь-якого бізнесу, включаючи піцерії. З розвитком Інтернету та мобільних технологій, споживачі все більше звертаються до онлайн-платформ для замовлення їжі та отримання інформації про заклади харчування. Це підвищує актуальність створення спеціалізованих веб-сайтів та чатботів для піцерій, що дозволяють забезпечити якісний сервіс та ефективну комунікацію з клієнтами. Таким чином, розробка веб-орієнтованого ресурсу для піцерій є надзвичайно актуальною темою, яка відповідає сучасним тенденціям та потребам ринку. Впровадження таких рішень сприятиме підвищенню конкурентоспроможності піцерій, покращенню якості обслуговування клієнтів та оптимізації бізнес-процесів. Метою кваліфікаційної роботи є розробка комплексного веб-орієнтованого ресурсу для піцерії, який включатиме функціональний сайт для онлайн-замовлень, а також два чатботи: один для обслуговування клієнтів, інший – для інформування працівників про створені замовлення. Об’єкт дослідження: веб-ресурс для онлайн-замовлень позицій в піцерії. Предмет дослідження: веб-ресурси для онлайн-замовлень у закладах громадського харчування. Методи дослідження. У роботі було використано дослідження практичних рішень шляхом порівняльного аналізу, аналітичний огляд наявних веб-сайтів закладів харчування, найпоширеніших CMS-систем, а також методи програмування на PHP з використанням HTML та CSS.
URI (Уніфікований ідентифікатор ресурсу): https://er.chdtu.edu.ua/handle/ChSTU/6185
Розташовується у зібраннях:122 Комп’ютерні науки (Комп’ютерні науки та прикладне програмування)

Файли цього матеріалу:
Файл Опис РозмірФормат 
Пояснювальна записка_Буряк Євгеній_ЗКНС-2101_2023-2024.pdf
  Restricted Access
3.91 MBAdobe PDFПереглянути/Відкрити    Запит копії


Усі матеріали в архіві електронних ресурсів захищено авторським правом, усі права збережено.

Extracted text
 
 
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ 
ЧЕРКАСЬКИЙ ДЕРЖАВНИЙ ТЕХНОЛОГІЧНИЙ УНІВЕРСИТЕТ 
 
Факультет інформаційних технологій і систем 
 
Кафедра комп’ютерних наук та системного аналізу 
 
 
 
 
 
 
 
 
Пояснювальна записка 
до кваліфікаційної роботи 
                                         бакалавра       
 (освітньо-кваліфікаційний рівень) 
 
на тему: «Веб-орієнтований ресурс онлайн-замовлень для піцерії» 
 
 
 
Виконав: студент 4 курсу, групи ЗКНС-2101 
  
спеціальності 122 «Комп’ютерні науки» 
                                                             (шифр і назва спеціальності) 
 
Освітня програма «Комп’ютерні науки та  
                                                                (назва освітньої програми) 
прикладне програмування» 
 
Буряк Євгеній Романович 
 
Керівник                               Андрієнко В.О.  
                                                                  (прізвище та ініціали) 
 
Рецензент                             Антонюк В.С.  
                                                             (прізвище та ініціали) 
 
 
 
 
 
 
 
 
Черкаси 2024 року 
2 
 
Черкаський державний технологічний університет 
Факультет Інформаційних технологій і систем 
Кафедра Комп’ютерних наук та системного аналізу 
Освітній рівень Бакалавр 
Спеціальність 122 – комп’ютерні науки  
 
 
 
ЗАТВЕРДЖУЮ 
Завідувач кафедри КН та СА  
_______________ Триус Ю.В. 
«____» _____________ 20__ р. 
 
 
ЗАВДАННЯ 
на кваліфікаційну роботу бакалавра студенту 
Буряку Євгенію Романовичу 
(прізвище, ім‘я, по батькові) 
1. Тема роботи Веб-орієнтований ресурс онлайн-замовлень для піцерії 
 
Керівник роботи                 Андрієнко Володимир Олександрович, к.т.н., доцент 
(прізвище, ім’я, по батькові, науковий ступінь, вчене звання) 
 
затверджені наказом університету від «26» лютого 2024 р. №/60/04. 
 
2. Строк подання студентом роботи  «10» червня 2024 року  
3. Вихідні дані до роботи:  
Звіт з переддипломної практики. 
Практичні навички роботи з базами даних та інформаційними ресурсами 
4. Зміст пояснювальної записки (перелік питань, що їх належить розробити): 
Вступ 
4.1. Аналітичний огляд 
4.2. Постановка проблеми та огляд можливих рішень 
4.3. Проєктування та реалізація ресурсу 
Висновки.  
5. Перелік додатків (з точним зазначенням назв додатків): 
5.1. Додаток А. Специфікація 482.ЧДТУ. 42318-01. 
5.2. Додаток Б. Лістинг коду модулів веб-сайту. 
5.3. Додаток В. Лістинг коду інтеграції з чатботами Telegram. 
 
6. Консультанти розділів роботи 
Прізвище, ініціали та Підпис, дата 
Розділ посада 
завдання видав завдання прийняв 
консультанта 
    
    
3 
 
  
7. Дата видачі завдання 15.01.2024 р. 
  
КАЛЕНДАРНИЙ ПЛАН 
Строк 
№ з/п Назва етапів кваліфікаційної роботи бакалавра виконання Примітка 
етапів роботи 
1 Видача завдання на кваліфікаційну роботу Виконано 
до 15.01.2024 
бакалавра. 
2 Аналіз літературних джерел, об’єкту та предмету Виконано 
до 12.02.2024 
дослідження. 
3 Написання теоретичного розділу кваліфікаційної Виконано 
до 18.03.2024 
роботи бакалавра. 
4 Написання аналітичного розділу (аналіз об’єкту Виконано 
до 01.04.2024 
й предмету дослідження). 
5 Написання практичних розділів й висновків по Виконано 
до 01.05.2024 
роботі. 
6 Передзахист кваліфікаційної роботи бакалавра Виконано 
до 03.06.2024 
на засіданні кафедри КНСА. 
7 Подання роботи завідувачу кафедри КНСА. до 10.06. 2024 Виконано 
8 Захист кваліфікаційної роботи бакалавра. 12.06.2024 Виконано 
    
    
    
    
 
 
Студент                                   _____________________________     / Євгеній БУРЯК                 /  
(підпис)                                                              ПІБ 
 
Керівник роботи                     _____________________________    / Володимир АНДРІЄНКО  / 
                                           (підпис)                                                               ПІБ 
 
  
4 
 
РЕФЕРАТ 
Кваліфікаційна робота бакалавра містить: 94 с., 26 рис., 2 табл., 8 
використаних джерел, 3 додатки.  
Актуальність теми. 
У сучасному світі цифрових технологій, наявність ефективного веб-
орієнтованого ресурсу є критично важливою для будь-якого бізнесу, включаючи 
піцерії. З розвитком Інтернету та мобільних технологій, споживачі все більше 
звертаються до онлайн-платформ для замовлення їжі та отримання інформації про 
заклади харчування. Це підвищує актуальність створення спеціалізованих веб-сайтів 
та чатботів для піцерій, що дозволяють забезпечити якісний сервіс та ефективну 
комунікацію з клієнтами. 
Згідно зі статистичними даними, ринок доставки їжі зростає щороку. В Україні 
також спостерігається стрімке зростання попиту на онлайн-замовлення їжі, особливо 
у великих містах. Це обумовлено такими факторами, як зручність (можливість 
замовити їжу онлайн, не виходячи з дому чи офісу), швидкість (економія часу на 
пошук закладу та оформлення замовлення) та безпека (особливо актуально в умовах 
воєнного стану, щоб уникати відвідування людних місць). 
Таким чином, розробка веб-орієнтованого ресурсу для піцерій є надзвичайно 
актуальною темою, яка відповідає сучасним тенденціям та потребам ринку. 
Впровадження таких рішень сприятиме підвищенню конкурентоспроможності 
піцерій, покращенню якості обслуговування клієнтів та оптимізації бізнес-процесів. 
Мета роботи і задачі дослідження. Метою кваліфікаційної роботи є розробка 
комплексного веб-орієнтованого ресурсу для піцерії, який включатиме 
функціональний сайт для онлайн-замовлень, а також два чатботи: один для 
обслуговування клієнтів, інший – для інформування працівників про створені 
замовлення. Цей ресурс повинен забезпечувати: 
 Зручність користування для клієнтів: інтуїтивно зрозумілий інтерфейс для 
швидкого оформлення замовлень. 
 Підвищення ефективності роботи працівників: оперативний доступ до 
5 
 
інформації про нові замовлення та їх статус. 
 Інтеграцію з існуючими бізнес-процесами: взаємодія з системами управління 
замовленнями, платіжними системами. 
Для досягнення зазначеної мети в рамках кваліфікаційної роботи необхідно 
вирішити такі завдання: 
 Аналіз ринку та вимог користувачів: 
1) Провести аналіз існуючих рішень для онлайн-замовлень у сфері 
громадського харчування. 
2) Визначити основні потреби та очікування клієнтів та працівників піцерій. 
 Проєктування архітектури веб-ресурсу: 
1) Розробити структуру та функціональність сайту для онлайн-замовлень. 
2) Спроєктувати логіку роботи чатботів для клієнтів та працівників. 
 Розробка веб-частини: 
1) Створити інтерфейс користувача, що включає меню, корзину, форму 
замовлення та систему оплати. 
 Розробка чатботів: 
1) Чатбот для клієнтів: 
 Реалізувати функцію оформлення замовлення через месенджер 
(Telegram). 
 Забезпечити можливість отримання інформації про акції та 
спеціальні пропозиції. 
2) Чатбот для працівників: 
 Реалізувати функцію сповіщення про нові замовлення. 
 Інтеграція та тестування: 
1) Провести тестування для виявлення та виправлення помилок. 
 Запуск та оцінка ефективності: 
2) Запустити ресурс у реальну експлуатацію. 
3) Зібрати відгуки користувачів та оцінити ефективність впроваджених 
рішень. 
6 
 
Об’єкт дослідження: веб-ресурс для онлайн-замовлень позицій в піцерії. 
Предмет дослідження: веб-ресурси для онлайн-замовлень у закладах 
громадського харчування. 
Методи дослідження. У роботі було використано дослідження практичних 
рішень шляхом порівняльного аналізу, аналітичний огляд наявних веб-сайтів закладів 
харчування, найпоширеніших CMS-систем, а також методи програмування на PHP з 
використанням HTML та CSS. 
Перелік ключових слів: CMS, БАЗА ДАНИХ, SEO, ЕЛЕКТРОННА 
КОМЕРЦІЯ, ІНТЕГРАЦІЯ, ЧАТБОТ, ВЕБСАЙТ, ХОСТИНГ, ДОМЕН. 
  
7 
 
ABSTRACT 
 Bachelor's qualification work contains: 94 p., 26 figures, 2 tables, 8 references, 3 
appendices.  
 Relevance of the topic. 
 In today's world of digital technology, having an effective web-based resource is 
critical for any business, including pizzerias. With the development of the Internet and 
mobile technologies, consumers are increasingly turning to online platforms to order food 
and obtain information about food establishments. This increases the relevance of creating 
specialized websites and chatbots for pizzerias to ensure high-quality service and effective 
communication with customers. 
 According to statistics, the food delivery market is growing every year. In Ukraine, 
there is also a rapid increase in demand for online food ordering, especially in large cities. 
This is due to factors such as convenience (the ability to order food online without leaving 
your home or office), speed (saving time searching for a restaurant and placing an order), 
and safety (especially important in martial law to avoid visiting crowded places). 
Thus, the development of a web-based resource for pizzerias is an extremely relevant topic 
that meets current trends and market needs. The implementation of such solutions will help 
to increase the competitiveness of pizzerias, improve the quality of customer service and 
optimize business processes. 
 Purpose and objectives of the study. The aim of the qualification work is to develop 
a comprehensive web-based resource for a pizzeria, which will include a functional website 
for online orders, as well as two chatbots: one for customer service, the other for informing 
employees about the orders created. This resource should provide: 
 Ease of use for customers: an intuitive interface for quick ordering. 
 Improving employee efficiency: quick access to information about new orders and 
their status. 
  Integration with existing business processes: interaction with order management 
systems, payment systems. 
 In order to achieve this goal, the following tasks must be solved as part of the 
8 
 
qualification work. 
Market and user requirements analysis: 
 Analyze existing solutions for online ordering in the catering industry. 
 Identify the basic needs and expectations of customers and employees of pizzerias. 
Designing the architecture of the web resource: 
 Develop the structure and functionality of the website for online orders. 
 Design the logic of chatbots for customers and employees. 
Web part development: 
 Create a user interface including a menu, shopping cart, order form, and payment 
system. 
Chatbot development. Chatbot for customers: 
 Implement the function of placing an order via messenger (Telegram). 
 Provide an opportunity to receive information about promotions and special offers. 
Chatbot for employees: 
 Implement the function of notification of new orders. 
Integration and testing. 
 Conduct testing to identify and correct errors. 
Launch and evaluate the effectiveness: 
 Launch the resource into live operation. 
 Collect user feedback and evaluate the effectiveness of the implemented solutions. 
Research object: a web resource for online ordering of pizza items. 
Subject of research: web resources for online orders in public catering establishments. 
Research methods. The study used a study of practical solutions through comparative 
analysis, an analytical review of existing websites of catering establishments, the most 
common CMS systems, as well as PHP programming methods using HTML and CSS. 
List of keywords: CMS, DATABASE, SEO, E-COMMERCE, INTEGRATION, 
CHATBOT, WEBSITE, HOSTING, DOMAIN. 
  
9 
 
ЗМІСТ 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І 10 
ТЕРМІНІВ 
ВСТУП 11 
1 АНАЛІТИЧНИЙ ОГЛЯД  14 
1.1 Аналіз об’єкта дослідження та предметної області 14 
1.2 Аналіз існуючих аналогів 15 
Висновки до розділу 1 20 
2 ПОСТАНОВКА ПРОБЛЕМИ ТА ОГЛЯД МОЖЛИВИХ РІШЕНЬ 22 
2.1 Постановка та обґрунтування проблеми 22 
2.2 Огляд можливих рішень 24 
Висновки до розділу 2 29 
3 ПРОЄКТУВАННЯ ТА РЕАЛІЗАЦІЯ РЕСУРСУ 30 
3.1 Проєктування веб-орієнтованого ресурсу 30 
 
3.2 Реалізація вебсайту 32 
 
3.3 Реалізація чатботів 40 
3.4 Аналіз отриманих результатів 45 
Висновки до розділу 3 46 
ВИСНОВКИ 48 
РЕКОМЕНДАЦІЇ 50 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 53 
Додаток А Специфікація 482.ЧДТУ. 42318-01 55 
Додаток Б Лістинг коду модулів вебсайту 57 
Додаток В Лістинг коду інтеграції з чатботами Telegram 73 
  
  
10 
 
ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛІВ, СКОРОЧЕНЬ І ТЕРМІНІВ 
 CMS – програмне забезпечення, яке дозволяє користувачам створювати, 
редагувати, керувати та публікувати цифровий контент.  
 SEO – комплекс заходів, спрямованих на підвищення видимості та позицій 
вебсайту в результатах пошукових систем.  
 FTP – мережевий протокол, що використовується для передачі файлів між 
клієнтом і сервером через комп'ютерну мережу, таку як Інтернет.  
 RSS –формат для автоматичного отримання оновлень з вебсайтів, який 
дозволяє користувачам підписуватися на новини, блоги та інший динамічний 
контент.  
 CRM – система або програмне забезпечення, що допомагає організаціям 
керувати взаємодією з поточними та потенційними клієнтами.  
 PHP – серверна мова програмування, що використовується для створення 
динамічних вебсайтів та вебдодатків.  
 HTML – стандартна мова розмітки документів, що використовується для 
створення та структурування вмісту на вебсторінках.  
 CSS – мова стилів, яка використовується для опису зовнішнього вигляду та 
форматування HTML-документів.  
 MySQL – система управління реляційними базами даних, яка використовує 
мову SQL (Structured Query Language) для управління та запиту даних.  
 WordPress – популярна система управління контентом (CMS), яка дозволяє 
користувачам створювати та керувати вебсайтами і блогами без необхідності 
програмування, забезпечуючи широкі можливості через плагіни та теми. 
 WP – WordPress. 
 Telegram – найпопулярніший месенджер в Україні для спілкування 
користувачів як між собою, так і з компаніями. 
 Чатбот – програмний додаток, який імітує людську розмову і взаємодіє з 
користувачами через текстові або голосові повідомлення. 
  
11 
 
ВСТУП 
У сучасному світі, коли більшість процесів стають цифровими, актуальність 
розробки веб-орієнтованого ресурсу для піцерій є надзвичайно високою. З розвитком 
інтернет-технологій і збільшенням кількості користувачів інтернету, попит на 
онлайн-сервіси, які полегшують повсякденне життя, невпинно зростає. Піцерії, як 
частина ресторанного бізнесу, не є винятком і активно впроваджують новітні 
технології для покращення обслуговування клієнтів.  
Веб-орієнтований ресурс, побудований на CMS, дозволяє користувачам 
швидко і зручно оформити замовлення онлайн. Це значно підвищує зручність для 
клієнтів, які можуть переглядати меню, обирати страви та оформляти замовлення, не 
виходячи з дому чи офісу. Така система також сприяє зменшенню черг у піцеріях і 
підвищує загальний рівень задоволеності клієнтів [20]. 
Інтеграція чатботів для Telegram дозволяє автоматизувати багато рутинних 
процесів, що значно підвищує ефективність бізнесу. Для користувачів чатботи 
забезпечують простий і швидкий спосіб оформлення замовлення, тоді як 
співробітники отримують оперативну інформацію про нові замовлення. Це дозволяє 
зменшити час обробки замовлень і уникнути можливих помилок, пов'язаних з 
людським фактором.  
Системи управління контентом забезпечують зручність у керуванні контентом 
сайту. Вони дозволяють власникам бізнесу самостійно оновлювати меню, додавати 
акції, а також аналізувати статистику відвідувань та замовлень. Це знижує витрати на 
обслуговування сайту та робить його більш адаптивним до потреб ринку.  
Чатботи для Telegram відповідають сучасному тренду на мобільні рішення. 
Сьогодні більшість користувачів віддають перевагу мобільним пристроям для 
здійснення покупок та замовлень. Завдяки чатботам, піцерія стає доступною 
буквально «в кишені» у кожного клієнта, що значно підвищує ймовірність повторних 
замовлень та покращує взаємодію з клієнтами. 
Наявність сучасного веб-сайту та інтегрованих чатботів для замовлень надає 
піцерії конкурентну перевагу на ринку. В умовах жорсткої конкуренції у 
12 
 
ресторанному бізнесі, компанії, які використовують новітні технології для 
покращення обслуговування клієнтів, мають більше шансів на успіх та залучення 
нових клієнтів. 
Таким чином, розробка веб-орієнтованого ресурсу для піцерій на основі систем 
управління контентом та чатботів для Telegram є актуальною та необхідною у 
сучасних умовах. Вона сприяє підвищенню рівня обслуговування клієнтів, 
оптимізації бізнес-процесів та створенню конкурентних переваг, що в результаті 
позитивно впливає на розвиток та успіх піцерії на ринку. 
Однією з основних проблем у сфері обслуговування піцерій є нестача 
інтегрованих цифрових рішень, які поєднують веб-орієнтовані платформи з 
мобільними додатками та чатботами. Багато піцерій використовують застарілі 
системи, які не забезпечують належного рівня автоматизації та інтеграції, що 
призводить до низької ефективності бізнес-процесів і незадоволення клієнтів.  
Для багатьох піцерій, особливо малих та середніх підприємств, складність 
управління контентом на веб-сайтах є серйозною проблемою. Без використання 
сучасних систем управління контентом (CMS), власникам важко оновлювати меню, 
додавати нові акції та стежити за статистикою замовлень, що негативно впливає на 
динамічність та актуальність інформації на сайті. 
Сучасні клієнти очікують персоналізованого підходу, включаючи рекомендації, 
персональні пропозиції та знижки. Багато піцерій не мають можливості надавати 
такий сервіс через обмеження своїх поточних цифрових платформ, що призводить до 
втрати клієнтів та зниження їхньої лояльності. 
Недостатня автоматизація процесів, таких як прийом і обробка замовлень, 
логістика та зворотний зв'язок з клієнтами, є ще однією значною проблемою. Це 
спричиняє затримки, помилки і додаткові витрати, що знижує ефективність бізнесу. 
Сучасна предметна галузь розробки веб-орієнтованих ресурсів для піцерій 
стикається з численними викликами, серед яких відсутність інтегрованих рішень, 
складність управління контентом, недостатня персоналізація та автоматизація 
процесів. Провідні фірми, такі як WordPress, Joomla, Drupal, Wix, ChoiceQR, Expirenza 
by mono, пропонують ефективні рішення, які допомагають піцеріям подолати ці 
13 
 
проблеми та підвищити ефективність свого бізнесу. Інтеграція сучасних технологій 
та автоматизація процесів є ключовими факторами успішного розвитку та 
конкурентоспроможності піцерій на ринку. 
 
 Світові тенденції в області автоматизації бізнес-процесів у піцеріях показують, 
що використання сучасних технологій дозволяє значно підвищити ефективність 
роботи, покращити якість обслуговування клієнтів та знизити операційні витрати. 
Інтеграція цих рішень створює конкурентні переваги та сприяє успішному розвитку 
бізнесу у сфері громадського харчування.  
  
14 
 
1 АНАЛІТИЧНИЙ ОГЛЯД 
1.1 Аналіз об’єкта дослідження та предметної області 
Об'єктом дослідження є веб-ресурс, призначений для онлайн-замовлень у 
піцерії. Такий ресурс має забезпечити користувачам можливість швидко та зручно 
замовити піцу, інші страви та напої через інтернет. Успішний веб-ресурс для піцерії 
має кілька ключових характеристик.  
Основним критерієм є зручність інтерфейсу користувача, що забезпечує 
простоту та інтуїтивність використання. Важливим аспектом є можливість швидко 
знайти потрібні страви, переглянути їхній склад та додати до кошика. 
Функціональність кошика має дозволяти користувачам легко змінювати замовлення, 
додавати чи видаляти позиції, переглядати загальну суму до сплати. Інтеграція з 
платіжними системами забезпечує підтримку різних способів оплати, включаючи 
онлайн-банкінг, платіжні карти, електронні гаманці та оплату при доставці. Система 
обліку та управління замовленнями має забезпечувати ефективне управління 
замовленнями, відстеження їхнього виконання та аналіз статистики продажів.  
Зворотний зв'язок та підтримка клієнтів є важливими елементами, включаючи 
наявність служби підтримки, яка може допомогти у випадку виникнення питань або 
проблем з замовленням.  
Предметом дослідження є ширше поняття – веб-ресурси для онлайн-замовлень 
у закладах громадського харчування, які включають піцерії, ресторани, кафе, фаст-
фуд заклади тощо. Ці ресурси можуть мати різноманітні функції та особливості, що 
відповідають специфіці різних типів закладів громадського харчування.  
Веб-ресурси повинні бути гнучкими, щоб підлаштовуватися під потреби різних 
типів закладів: від невеликих кафе до великих мереж ресторанів. Різноманітність 
функціональних можливостей включає бронювання столиків, попереднє замовлення 
страв, організацію подій, а також додаткові сервіси, такі як доставка або самовивіз.  
Інтеграція з системами управління ресторанами (POS-системами) дозволяє 
автоматизувати процеси, забезпечуючи точний облік замовлень, зменшуючи ризики 
помилок та підвищуючи ефективність роботи персоналу.  
15 
 
Веб-ресурси можуть використовувати інформацію про попередні замовлення 
клієнтів для надання персоналізованих рекомендацій, пропонування акцій або 
знижок, що підвищує лояльність клієнтів. Інтеграція програм лояльності дозволяє 
збільшити частоту замовлень та середній чек за рахунок бонусів, знижок та 
спеціальних пропозицій для постійних клієнтів.  
Аналіз об'єкта дослідження вказує на важливість зручності користування, 
функціональності, інтеграції з платіжними системами, управління замовленнями та 
підтримки клієнтів. Предмет дослідження охоплює ширший спектр можливостей та 
функцій, які можуть адаптуватися під різні типи закладів, забезпечуючи 
персоналізацію, інтеграцію з POS-системами та розвиток програм лояльності. 
Український досвід створення та використання таких веб-ресурсів демонструє 
високий рівень інновацій та адаптивності до потреб ринку. 
1.2 Аналіз існуючих аналогів 
Перед початком роботи над реалізацією ресурсу було проаналізовано існуючі 
аналоги веб-орієнтованих ресурсів закладів харчування в Черкасах. Для аналітичного 
огляду було обрано три заклади: «Street Pizza», «Tooman» та «PIZZA TO GO». 
Піцерія «Street Pizza» – мережа мініпекарень та кав’ярень, що включає 7 
закладів у Черкасах. Особливістю закладів є невелика площа та розміщення в 
основному в приміщеннях малих архітектурних форм [1]. 
 
Рисунок 1.1 – вигляд головної сторінки сайту піцерії «Street Pizza» 
16 
 
 Головна сторінка та додаткові розділи ресурсу не адаптовані для перегляду з 
екрану персонального комп’ютера. Під час вибору конкретного закладу, клієнт 
переспрямовується на сайт системи, де можна обрати необхідні позиції меню, 
сформувати замовлення та передати його закладу. Він має чіткий інтерфейс, який 
дозволяє швидко знайти необхідні розділи меню. Категорії страв організовані 
логічно, а кожна позиція супроводжується якісним зображенням та детальним 
описом. Додати товар до кошика можна в один клік, що спрощує процес замовлення. 
Крім того, є можливість залишити відгук та переглянути інформацію про заклад. 
Недоліком є відсутність фільтрів для швидкого пошуку специфічних страв або 
алергенів. 
Ресурс для онлайн-замовлень піцерії реалізовано за допомогою готового 
рішення від «ChoiceQR», який пропонує закладам громадського харчування ряд 
значних переваг [5]. 
Вона забезпечує швидкий та зручний доступ до меню через сканування QR-
коду, що полегшує процес замовлення для клієнтів і зменшує навантаження на 
персонал. Діджиталізація меню дозволяє легко оновлювати інформацію про страви та 
ціни, що знижує витрати на друк паперових меню та мінімізує помилки. «ChoiceQR» 
інтегрується з різними платіжними системами, що дає клієнтам можливість 
здійснювати оплату онлайн, що підвищує рівень зручності та безпеки транзакцій. 
Система також збирає та аналізує дані про замовлення, що дає можливість закладам 
краще розуміти потреби клієнтів і оптимізувати меню та маркетингові стратегії.  
Незважаючи на численні переваги, система «ChoiceQR» має й деякі недоліки. 
Для впровадження системи потрібні інвестиції (вартість використання системи на 
місяць варіюється від 350 до 2450 грн), що можуть бути значними для невеликих 
закладів. Впровадження та налаштування системи може вимагати технічних знань, 
що потребує додаткового навчання персоналу або залучення спеціалістів. Система 
також може бути вразливою до технічних збоїв (оскільки розміщення відбувається не 
на сервері закладу), що може викликати тимчасові незручності в роботі закладу.  
 Використовуючи найпопулярніший пакет послуг, заклад витрачатиме 15960 
грн щорічно. Це витрати, які можна скоротити, використовуючи інше рішення. 
17 
 
 
Рисунок 1.2 – Тарифи системи «ChoiceQR» 
 «Tooman» – мережа закладів, що включає три кальян-бари «Tooman», 
«Tooman 2» та «Tooman 3», а також кафе «RoofBar». Заклад надає послуги доставки 
їжі по Черкасах. У їхньому меню можна знайти різноманітні піци, бранчі, перші 
страви та інші пропозиції [2]. 
 
Рисунок 1.3 – вигляд головної сторінки сайту закладу «Tooman» 
 Сайт мережі закладів Tooman в Черкасах доступний за адресою tooman.ck.ua. 
Він пропонує широкий асортимент страв, зокрема суші, сети, піцу, закуски, салати 
та десерти.  
18 
 
Інтерфейс сайту простий і зручний для користування, з інтуїтивною навігацією, 
що дозволяє швидко знайти необхідну інформацію. Кожна страва супроводжується 
фотографією, описом складу та ціною, що сприяє легкому вибору. Додатково, сайт 
має розділи з акціями, відгуками та контактною інформацією. 
Хоча сайт адаптований для мобільних пристроїв, деякі елементи інтерфейсу 
можуть виглядати не зовсім коректно, що ускладнює навігацію. Також наявні 
недоліки в SEO оптимізації, а саме відсутність мета-тегів та некоректні URL-адреси, 
що впливає на видимість сайту в пошукових системах. Деякі елементи дизайну 
можуть бути менш інтуїтивними, що ускладнює користувачам пошук інформації або 
здійснення замовлень. 
Ресурс реалізовано з використанням системи управління контентом WordPress 
та плагіном WooCommerce, які забезпечує функціональність інтернет-магазину з 
можливістю управління товарами, замовленнями та клієнтами [7]. 
 
Рисунок 1.4 – сайт CMS WordPress 
 WordPress є однією з найпопулярніших платформ для створення веб-сайтів, і 
вона має свої унікальні переваги для закладів громадського харчування. Перш за все, 
WordPress пропонує широкий вибір тем і плагінів, спеціально призначених для 
ресторанів і кафе, що дозволяє легко налаштувати веб-сайт під конкретні потреби 
закладу. 
19 
 
 Важливою перевагою є те, що WordPress дозволяє легко інтегрувати системи 
онлайн-замовлень та бронювань безпосередньо на веб-сайті. Система управління 
контентом надається безкоштовно, як і плагін WooCommerce. Відповідно, витрати 
закладу складуть лише за хостинг. 
 «PIZZA TO GO» – мережа популярних закладів швидкого харчування, 
спеціалізованих на доставці піци. Мережа містить 4 заклади у Черкасах, заклади 
розташовані у приміщеннях МАФ [3]. 
 
Рисунок 1.5 – вигляд головної сторінки сайту піцерії «PIZZA TO GO» 
 Сайт має чистий та мінімалістичний дизайн, що забезпечує легку навігацію. 
Головне меню інтуїтивно зрозуміле, включаючи розділи «Меню», «Доставка», 
«Акції» та «Контакти». Процес замовлення піци зручний, з можливістю вибору 
додаткових інгредієнтів і варіантів доставки. Контент добре організований, з 
детальними описами і фотографіями піц. Сайт швидко завантажується і 
оптимізований для мобільних пристроїв, що покращує користувацький досвід. 
 Ресурс створено з використанням CMS Joomla. Переваги включають чистий і 
мінімалістичний дизайн, що забезпечує зручну навігацію. Процес замовлення піци 
інтуїтивно зрозумілий, з можливістю вибору додаткових інгредієнтів і варіантів 
доставки. Сайт швидко завантажується і оптимізований для мобільних пристроїв, що 
покращує користувацький досвід [7]. 
20 
 
Серед недоліків можна виділити деякі технічні обмеження, такі як можливі 
проблеми з оновленням інформації та обмежені можливості для інтеграції з 
сторонніми сервісами. Інтерфейс адміністратора може бути складним для 
користувачів без технічного досвіду. Пошук і встановлення додаткових функцій може 
бути заплутаним і потребує додаткового часу та ресурсів. 
Згідно з результатами аналітичного огляду, зроблено висновок, що реалізація 
за допомогою готових рішень потребує значних інвестицій від закладу, а 
використання систем управління контентом передбачає лише витрати на хостинг. 
При цьому використання CMS не зменшує (а навіть збільшує) можливості для 
розширення функціоналу, оскільки готові рішення обмежені лише тими функціями, 
які передбачені системою. Жоден з розглянутих ресурсів не передбачає інтеграцію з 
чатботами 
Проаналізувавши ресурси, було складено порівняльну таблицю з основними 
характеристиками. 
Таблиця 1.1 – Порівняння існуючих аналогів веб-орієнтованого ресурсу 
Характеристика Street Pizza Tooman PIZZA TO GO 
CMS/Готове рішення ChoiceQR WordPress Joomla 
Дизайн 3/5 4.5/5 4/5 
Зручність користування 4/5 4/5 3/5 
інтерфейсом 
Зручність налаштування з 4/5 5/5 4/5 
боку працівників закладу 
Витрати на підтримку роботи Щомісячна Щорічна Щорічна 
оплата сервісу оплата оплата 
хостингу хостингу 
Висновки до розділу 1 
У розділі досліджено предметну область та проаналізовано ресурси-аналоги. 
Дослідження показує, що важливими аспектами є зручність користування, 
функціональність, інтеграція з платіжними системами, управління замовленнями та 
21 
 
підтримка клієнтів. Дослідження охоплює широкий спектр можливостей та функцій, 
що можуть адаптуватися під різні типи закладів, забезпечуючи персоналізацію, 
інтеграцію з POS-системами та розвиток програм лояльності. Український досвід 
створення та використання таких веб-ресурсів демонструє високий рівень інновацій 
та здатність адаптуватися до потреб ринку. 
Було проаналізовано сайти трьох закладів громадського харчування у Черкасах, 
їхні використані рішення, UI та UX. Зроблено висновки, що використання готових 
рішень обмежує функціональність ресурсу та потребує додаткових витрат, а 
реалізація за допомогою CMS допомагає їх уникнути. 
  
22 
 
2 ПОСТАНОВКА ПРОБЛЕМИ ТА ОГЛЯД МОЖЛИВИХ РІШЕНЬ 
2.1 Постановка та обґрунтування проблеми 
Постановка та обґрунтування проблеми є ключовим етапом у кваліфікаційній 
роботі, оскільки вона визначає мету та суть розроблення системи, її призначення, 
місце застосування, обґрунтовує необхідність впровадження та очікувані ефекти від 
цього процесу. Також на цьому етапі будується концептуальна модель системи, 
визначаються вимоги до неї та окреслюються шляхи вирішення можливих проблем. 
Мета розроблення системи полягає у створенні ефективної та зручної 
платформи для онлайн-замовлень їжі в українських закладах громадського 
харчування. Ця система має сприяти зручності та швидкості процесу замовлення їжі, 
забезпечуючи високу якість обслуговування клієнтів та оптимізацію бізнес-процесів 
закладів громадського харчування.  
Призначення системи полягає в автоматизації та оптимізації процесу 
замовлення їжі через Інтернет, забезпеченні зручного та безпечного сервісу як для 
клієнтів, так і для закладів громадського харчування. Вона також має покращити 
ефективність роботи закладів та підвищити їх конкурентоспроможність на ринку. 
Місце застосування системи охоплює всю територію України та може бути 
використане в різних типах закладів громадського харчування, таких як ресторани, 
кафе, піцерії, кав'ярні тощо, які надають послуги з доставки або самовивозу їжі. 
Обґрунтування розроблення та впровадження системи базується на потребі 
оптимізації процесу замовлення їжі в умовах зростаючої популярності онлайн-
сервісів та змін споживчих звичок. Впровадження системи дозволить закладам 
громадського харчування покращити обслуговування клієнтів та збільшити обсяги 
замовлень.  
Очікувані ефекти від впровадження системи включають підвищення швидкості 
обробки замовлень, зменшення помилок у їх виконанні, покращення задоволеності 
клієнтів та збільшення прибутку закладів громадського харчування. 
Розроблення концептуальної моделі системи передбачає опис вхідних та 
вихідних даних, функцій та структури системи, а також формальні чи узагальнені 
23 
 
моделі системи. Вхідні дані включають інформацію про замовлення (назва страви, 
адреса доставки тощо), а вихідні дані - підтвердження замовлення, час доставки, 
інформація про оплату тощо. Функції системи включають прийом та обробку 
замовлень, координацію доставки, управління базою даних тощо. Структура системи 
включає користувацький інтерфейс, базу даних, модуль обробки замовлень, систему 
оплати тощо. Додатково можуть бути розроблені формальні моделі процесів 
замовлення та доставки, а також алгоритми оптимізації роботи системи [15]. 
 Постановка задачі передбачає описання множини вимог до системи, 
включаючи вимоги до вхідних та вихідних даних, форми їх подання та динамічних 
характеристик, множину бізнес-процесів, що мають бути реалізовані, а також 
можливі формальні чи узагальнені моделі функціонування системи «to be» - як 
повинно бути, вимоги до алгоритмів чи технологічних процесів опрацювання 
інформації. 
Вимоги до системи включають необхідність надійної та швидкої обробки 
замовлень, забезпечення безпеки та конфіденційності даних клієнтів, інтеграцію з 
існуючими системами платежів та доставки, забезпечення зручного та інтуїтивно 
зрозумілого користувацького інтерфейсу. Вхідні дані мають бути представлені у 
формі замовлень, які можуть містити різноманітну інформацію про страви, адреси 
доставки та упередження про платіж. Вихідні дані включають підтвердження 
замовлення, рахунки для оплати, інформацію про статус замовлення тощо [14]. 
Основні потреби, які система має задовольняти, включають в себе зручність та 
доступність для клієнтів, ефективність та продуктивність для закладів громадського 
харчування, а також надійність та безпеку для всіх користувачів. Для досягнення цих 
цілей система повинна бути легкою у використанні, має мати швидку реакцію на 
замовлення, забезпечувати захист персональних даних та безпеку платежів. 
Основні критерії якості для системи включають швидкість обробки замовлень, 
стабільність та доступність сервісу, точність та надійність інформації, а також 
зручність та інтуїтивність користувацького інтерфейсу. 
Щодо варіантів реалізації системи, можливі альтернативи включають в себе 
розробку власної платформи для онлайн-замовлень, використання готових рішень на 
24 
 
ринку або співпрацю з існуючими платформами доставки їжі. Кожен з цих варіантів 
має свої переваги та недоліки, які потрібно ретельно обговорити та порівняти перед 
прийняттям рішення. 
2.2 Огляд можливих рішень 
Сучасні інформаційні технології значно спрощують процес створення веб-
сайтів, зокрема для малих і середніх підприємств, таких як піцерії. Використання 
систем управління контентом або готових рішень як «ChoiceQR» або «Expirenza by 
mono» дозволяє ефективно і швидко створювати функціональні веб-сайти для 
замовлень, що включають каталог продукції, кошик покупця, систему обробки 
платежів та інші важливі функції [12]. 
Одним з найпопулярніших підходів є використання широко відомих CMS, 
таких як WordPress, Joomla, та Drupal [4]. 
Завдяки своїй простоті у використанні та великій кількості доступних плагінів, 
WordPress є однією з найпопулярніших CMS для створення сайтів для замовлень їжі. 
Плагіни, такі як WooCommerce, дозволяють легко додати функціонал інтернет-
магазину, включаючи обробку замовлень та платежів [6]. 
 
Рисунок 2.1 – логотип WordPress 
Joomla також пропонує значні можливості для створення інтернет-магазинів за 
допомогою розширень, таких як VirtueMart, які забезпечують повну функціональність 
для управління замовленнями та каталогом товарів [7]. 
 
Рисунок 2.2 – логотип Joomla 
25 
 
Drupal є більш складною, але потужною платформою, що дозволяє створювати 
високонавантажені сайти з гнучкими налаштуваннями. Використання модулів, таких 
як Drupal Commerce, забезпечує необхідний функціонал для обробки замовлень [8]. 
 
Рисунок 2.3 – логотип Drupal 
Окрім універсальних CMS, існують також спеціалізовані платформи, 
розроблені спеціально для замовлень їжі. Такими є системи ChoiceQR та Expirenza by 
mono.  
ChoiceQR забезпечує широкий набір інструментів для створення 
персоналізованого веб-сайту піцерії з можливістю онлайн-замовлень і інтеграцією з 
системами оплати [5]. 
Expirenza by mono пропонує інтегроване рішення для онлайн-замовлень, 
включаючи меню, кошик покупця, систему обробки замовлень та доставки. 
Для створення сайтів для замовлень з піцерії широко використовуються 
різноманітні плагіни та розширення: 
 WooCommerce (WordPress). Пропонує широкий спектр функцій, 
включаючи управління продуктами, налаштування способів доставки та 
оплати, а також інтеграцію з різними платіжними системами. 
26 
 
 VirtueMart (Joomla). Надає можливості для створення 
повнофункціональних інтернет-магазинів з підтримкою різних способів оплати 
та доставки. 
 Drupal Commerce (Drupal). Забезпечує гнучке управління контентом та 
замовленнями, що дозволяє створювати складні та масштабовані веб-сайти. 
Основні елементи архітектури сайтів для замовлень з піцерії включають: 
 Каталог продукції. Включає управління меню, категоріями та 
продуктами. 
 Кошик покупця. Забезпечує можливість додавання та видалення товарів, 
перегляд підсумкової вартості замовлення. 
 Система обробки замовлень. Автоматизує процеси прийому, обробки та 
підтвердження замовлень. 
 Інтеграція з платіжними системами. Забезпечує безпечні та зручні 
способи оплати для клієнтів. 
Одним з важливих аспектів є забезпечення безпеки даних користувачів та 
стабільності роботи сайту. Для цього використовуються: 
 SSL сертифікати. Забезпечують захищене з’єднання між користувачем і 
сайтом. 
 Регулярні оновлення CMS та плагінів. Допомагають уникати 
вразливостей у системі. 
 Оптимізація продуктивності. Включає використання кешування, 
оптимізацію зображень та мінімізацію коду. 
На основі проведеного огляду можна зробити висновок, що створення сайту для 
замовлень з піцерії за допомогою CMS є актуальним та важливим завданням, що 
дозволяє значно спростити процес управління замовленнями та забезпечити високий 
рівень сервісу для клієнтів. Використання популярних CMS, таких як WordPress, 
Joomla та Drupal, а також спеціалізованих платформ, надає широкий вибір 
інструментів та методів для досягнення цієї мети [11]. 
Важливою є також увага до безпеки та продуктивності сайту, що забезпечує 
27 
 
стабільну та безпечну роботу системи. Зазначений огляд також демонструє 
необхідність та доцільність створення функціональних веб-сайтів для піцерій з 
використанням сучасних CMS, враховуючи усі аспекти розробки, від вибору 
платформи до технічних деталей реалізації. 
 Зважаючи на висновки попередніх розділів, найшвидшим та найбільш гнучким 
способом розробки веб-орієнтованого ресурсу онлайн-замовлень для піцерії є CMS. 
 У процесі аналізу CMS систем для створення сайту піцерії, важливо розглянути 
кілька ключових аспектів, таких як функціональність, легкість використання, 
гнучкість та вартість. Для цієї цілі можна розглянути такі популярні платформи, як 
WordPress, Joomla та Drupal.  
WordPress, відомий своєю широкою функціональністю, пропонує велику 
кількість безкоштовних та платних плагінів і тем, які полегшують додавання нових 
функцій, таких як онлайн-замовлення та резервація столиків. Інтерфейс користувача 
WordPress є досить інтуїтивно зрозумілим, що робить його привабливим для 
власників бізнесу без значного досвіду у веб-розробці. Крім того, WordPress 
відзначається гнучкістю, дозволяючи легко змінювати дизайн та функціональність 
сайту. Щодо вартості, хоча сам WordPress є безкоштовним, витрати можуть зростати 
через хостинг, доменне ім'я та платні розширення.  
Joomla, як і WordPress, має ряд розширень, які дозволяють розширити 
функціональність сайту. Проте інтерфейс користувача Joomla може вважатися трохи 
складнішим у порівнянні з WordPress. Хоча Joomla також безкоштовна, витрати 
можуть збільшитися через хостинг та платні розширення.  
Drupal відомий своєю потужною системою керування контентом, проте він 
може бути складнішим у використанні, особливо для новачків. Однак Drupal є дуже 
гнучкою та масштабованою платформою. Як і у випадку з іншими CMS системами, 
витрати на Drupal можуть зростати через хостинг та розробку.  
 У таблиці 3.1 зазначено основні технічні відмінності вказаних CMS. Ця таблиця 
надає загальний огляд основних параметрів трьох популярних CMS систем. Кожна 
система має свої переваги та обмеження, і вибір між ними буде залежати від 
конкретних потреб користувача та вимог до проєту. 
28 
 
Таблиця 2.1 – Результати порівняльного аналізу роботи CMS 
Параметр WordPress Joomla Drupal 
Ліцензія GPLv3 GPLv2 GPLv2 
Тип бази даних MySQL або PostgreSQL, MySQL, 
MariaDB MSSQL PostgreSQL 
Вимоги до серверу PHP версія 7.4 або PHP версія 7.3 або PHP версія 7.3 або 
вище, MySQL вище, MySQL вище, MySQL або 
версія 5.6 або версія 5.6 або PostgreSQL версія 
вище, HTTPS вище, Apache 5.7 або вище 
підтримка сервер 
Типи сайтів Будь-який, Блоги, Великі 
включаючи сайти корпоративні корпоративні 
електронної сайти, сайти- сайти, урядові 
комерції, блоги, візитівки та інше ресурси, інтранет-
корпоративні сайти портали та інше 
та інше 
Функціональність Широкий вибір Значна кількість Можливість 
плагінів та тем для розширень та налаштування 
додавання шаблонів для дуже потужної 
різноманітної покращення системи керування 
функціональності функціональності  контентом 
Гнучкість Значна гнучкість та Гнучка система з Дуже гнучка 
можливість багатьма система з багатьма 
розширення за налаштуваннями, можливостями 
допомогою але менше розширення та 
плагінів та тем  гнучкості налаштування 
порівняно з 
WordPress  
Спільнота та Велика та активна Активна спільнота Велика та досить 
підтримка спільнота користувачів, але активна спільнота, 
користувачів та менше ресурсів проте менша, ніж у 
розробників, порівняно з WordPress 
багато WordPress  
документації та 
підтримки  
Вартість Безкоштовно Безкоштовно Безкоштовно 
29 
 
У підсумку, після аналізу можна зробити висновок, що WordPress має переваги 
та був обраний для створення веб-орієнтованого ресурсу піцерії. Його легкість 
використання, широка функціональність та гнучкість роблять його привабливим для 
власників бізнесу у цій сфері. 
 Висновки до розділу 2 
 За результатами розділу було поставлено та обґрунтовано проблему реалізації 
веб-орієнтованого ресурсу для замовлень з піцерії, визначено основні потреби та 
вимоги до ресурсу.  
 Також проаналізовані можливі рішення для реалізації: готові системи та 
використання CMS. У зв’язку з високою вартістю готових систем, детально 
розглянуті системи управління контентом, проведено порівняння вимог, 
можливостей, легкості внесення коригувань та налаштувань. Ухвалене рішення 
використовувати WordPress, який має переваги перед іншими. 
  
30 
 
3 ПРОЄКТУВАННЯ ТА РЕАЛІЗАЦІЯ РЕСУРСУ 
3.1 Проєктування веб-орієнтованого ресурсу 
 Для реалізації кваліфікаційної роботи бакалавра було обрано заклад 
«Parmesan», що знаходиться у місті Черкаси за адресою бульвар Шевченка, 335. Після 
спілкування з керівництвом закладу, було пропрацьовано структуру веб-
орієнтованого ресурсу, отримано вимоги та розпочато роботу над реалізацією.  
 Було обрано складові ресурсу. Ними стали: 
 Вебсайт. Ресурс для відвідувачів та працівників закладу.  
1) Потенційні клієнти повинні мати змогу переглянути усі позиції, що є 
в наявності, обрати необхідні позиції у кошик, отримати додаткові 
пропозиції (у випадку, якщо замовляють саме піцу), обрати тип 
отримання (доставка чи самовивіз), вказати бажаний час отримання 
замовлення, обрати тип оплати (готівкою при отриманні або онлайн 
під час оформлення замовлення) 
2) Працівники закладу повинні мати змогу слідкувати за замовленнями, 
змінювати їхні статуси (за потреби), керувати позиціями (додавати 
наявність або прибирати її, редагувати опис, складові, вартість), 
застосовувати акційні пропозиції для певних типів товарів 
 Чатботи у Telegram.  
1) Чатбот для потенційних клієнтів. Має бути інтегрований з основним 
вебсайтом та отримувати від нього актуальну інформацію про 
наявність певних позицій, передавати фото продукції, її вартість та 
склад. Повинна також бути можливість перегляду кошику, його 
редагування (збільшення та зменшення кількості позицій). Опісля 
натиском однієї кнопки чатбот має переводити клієнта на сторінку 
оформлення замовлення, автоматично заповнивши усі поля, 
залишивши лише необхідність обрати тип оплати 
2) Чатбот для працівників закладу. Має інформувати у робочій групі 
чергових працівників про наявність нового або скасованого 
31 
 
замовлення для оперативної реакції. У повідомленні має міститися 
інформація про контакти клієнта, кількість та вартість позицій, спосіб 
оплати, тип отримання замовлення. 
 Згідно з отриманим технічним завданням від закладу, було створено загальну 
структуру ресурсу. На рисунку 3.1 зображено діаграму прецедентів, що описує 
функції та дії акторів у системі 
 
Рисунок 3.1 – Use-Case діаграма з описом функцій та дій акторів у системі 
 Після розмови із представниками закладу було обрано структуру сайту. Вона 
зображена на рисунку 3.2 
 
Рисунок 3.2 – структура фронтенд-сторони сайту 
32 
 
3.2 Реалізація вебсайту 
 Починаючи роботу над реалізацією проєкту, було обрано та замовлено 
вебхостинг з сервером, що відповідає вимогам WP.  
 Для успішного використання CMS WordPress необхідно враховувати деякі 
важливі вимоги до хостингу. По-перше, тип серверу грає ключову роль. WordPress 
працює найефективніше на серверах з підтримкою PHP та MySQL або MariaDB. 
Ідеально, якщо сервер працює на останній версії PHP (7.4 або вище), оскільки це 
покращить продуктивність та безпеку [10]. 
Панель управління cPanel є зручним інструментом для адміністрування 
хостингу. Ця панель надає широкі можливості керування сервером, включаючи 
управління базами даних, файлами, електронною поштою та іншими аспектами. 
Тому, використання хостингу з панеллю управління cPanel є бажаним для більшості 
користувачів WordPress. 
Щодо бази даних, MySQL або MariaDB є оптимальним вибором для WordPress. 
Рекомендується використовувати версію бази даних не нижче MySQL 5.6 або 
MariaDB 10.1, оскільки це забезпечить сумісність та оптимальну продуктивність з 
CMS. 
Також важливо мати достатньо ресурсів хостингу, таких як простір на диску, 
обсяг пам'яті RAM та потужність процесора, для забезпечення швидкої та надійної 
роботи вашого сайту. В залежності від обсягу трафіку та складності сайту, може 
знадобитися розширення ресурсів хостингу [18]. 
Після аналізу конкурентів у ніші вебхостингів, було обрано хостинг HostPro, 
оскільки HostPro відомий своєю надійністю, швидкістю та розширеними технічними 
можливостями, які допомагають забезпечити ефективну роботу веб-сайтів. Його 
переваги: 
 Висока доступність серверів. HostPro забезпечує високий рівень 
доступності серверів, що гарантує безперебійну роботу вашого веб-сайту.  
 Відповідність вимогам для WP. Сервер Apache з підтримкою PHP 7.4 та 
вище, база даних MySQL останньої версії, доступність cPanel 
33 
 
 Швидкодія. HostPro має широку мережу серверів з високою швидкістю 
передачі даних.  
 Технічна підтримка. HostPro пропонує професійну технічну підтримку, 
доступну 24/7.  
 Резервне копіювання даних. HostPro забезпечує можливість регулярного 
резервного копіювання даних веб-сайту.  
 Висока безпека. Хостинг HostPro використовує сучасні технології 
захисту, щоб забезпечити безпеку ваших даних та веб-сайту в цілому.  
Після замовлення хостингу, розпочався процес встановлення та налаштування 
WP. Для початку, перед установленням WordPress, варто впевнитися, що хостинг має 
потрібне середовище для роботи з цією платформою. У нашому випадку, наявність 
сервера Apache з підтримкою останньої версії PHP є важливою передумовою. Apache 
- це сервер, який буде обробляти запити до веб-сайту, а PHP - мова програмування, 
яка використовується WordPress для взаємодії з сервером та базою даних. 
Після підготовки середовища, наступним кроком є завантаження останньої 
версії WordPress з офіційного сайту. Після цього архів з WordPress розпаковується на 
вашому комп'ютері, і файли веб-сайту завантажуються на сервер за допомогою FTP-
клієнта або через саму cPanel. 
 
Рисунок 3.3 – Сторінка встановлення WP 
34 
 
Далі, за допомогою cPanel, створюється база даних MySQL та користувач для 
неї. Інформація про цю базу даних (ім'я бази даних, ім'я користувача, пароль та 
адреса сервера баз даних) буде використовуватися під час процесу установки 
WordPress. 
Останнім етапом є перехід до веб-сайту і початок процесу установки WordPress. 
Цей процес включає встановлення мови, введення даних для підключення до бази 
даних (які ми створили раніше через cPanel), налаштування адміністративного 
облікового запису та інші кроки, необхідні для успішного розгортання CMS. 
У результаті виконаних дій WordPress було успішно встановлено на хостингу і 
готовий до подальшого використання для створення вашого веб-сайту. 
Після налаштування WP, встановили плагін WooCommerce, безкоштовний 
плагін для WordPress, призначений для створення інтернет-магазинів. Він надає 
розширені можливості з продажу товарів та послуг через веб-сайт, включаючи 
можливість додавання товарів, управління запасами, обробку замовлень, 
налаштування способів оплати та доставки, а також аналіз продажів. WooCommerce є 
одним з найпопулярніших рішень для електронної комерції через свою легкість 
встановлення та використання, гнучкість налаштувань і широкий вибір додаткових 
розширень для розширення функціональності магазину. 
 
Рисунок 3.4 – Сторінка плагіну WooCommerce 
Після встановлення WP та WooCommerce, було перевірено коректну роботу 
35 
 
бази даних, одразу після імпорту існуючого меню, налаштування цін та складу 
позицій. На рисунку 3.5 зображена структура бази даних. Загальна кількість таблиць 
– 83. 
 
Рисунок 3.5 – Структура бази даних 
Розпочинається процес розробки дизайну. Представникам піцерії було важливо 
зобразити їхній основний продукт, піцу, на головному екрані. Для реалізації було 
використано стандартну тему WordPress з додатковими плагінами та ручною зміною 
CSS-коду певних елементів (розміри кнопок, іконок, розміщення продукції, 
скруглення вуглів). Додатково на вимогу піцерії було виведено інформацію про 
кошик у шапку кожної сторінки. 
 
Рисунок 3.6 – Вигляд основної сторінки проєкту 
36 
 
 Додатково на головній сторінці було виведено позиції, які клієнти найчастіше 
замовляють. Завдяки інфомрації з WooCommerce, статистиці та гнучкій панелі, це 
було реалізовано автоматично: система після кожного замовлення оновлює кількість 
замовлень кожної позиції в меню та виділяє ті, що замовляються найбільше. 
Реалізація була виконана за допомогою додаткових налаштувань WooCommerce та 
плагіну WpBakery Page Building.  
WpBakery Page Builder – популярний візуальний конструктор сторінок для 
WordPress, який дозволяє користувачам будувати складні макети веб-сторінок.. За 
допомогою інтуїтивного інтерфейсу перетягування та випадаючих меню, користувачі 
можуть швидко створювати різноманітні макети, використовуючи готові елементи, 
такі як текстові блоки, зображення, кнопки, слайдери, таблиці, акардіони та багато 
інших. WpBakery Page Builder також підтримує розширення, що дозволяє розширити 
його функціональність та надати додаткові можливості для роботи з веб-сторінками. 
Рисунок 3.7 – Сторінка налаштування популярних позицій 
Після налаштування головної сторінки та вигляду позицій почалась робота над 
оптимізацією розділу «Кошик». Завдяки налаштуванням WooCommerce при виборі 
будь-якого товару з категорії «Піца», система пропонує додатки до піци. При цьому 
пропонуються лише ті додатки, які є в наявності. 
 
37 
 
Рисунок 3.8 – Відображення додаткових пропозицій у кошику 
 Якщо ж клієнт обрав будь-яку іншу позицію, окрім піци, додатки не 
пропонуються. 
Рисунок 3.9 – Відсутність додаткових пропозицій у кошику 
Після переходу на сторінку підтвердження замовлення, відображаються 
динамічні поля для заповнення. Їхня наявність залежить від певних факторів: 
 Поле «Адреса» з’являється лише при виборі типу отримання «Доставка» 
 Поле «З якої купюри приготувати решту?» з’являється лише при 
обраному типу оплати «Готівка» 
38 
 
 Поле «Дата доставки/самовивозу» залежить від робочого часу піцерії: 
якщо наразі заклад відчинено, дата буде сьогоднішня. Якщо ж заклад вже 
зачинено, дата буде автоматично поставлена на наступний день 
 Поле «О котрій смакуватимемо?» залежить від кількості створених 
замовлень за останню годину та автоматично містить мінімальний час 
готовності замовлення 
 Поля «Ім’я», «Телефон», «E-mail», «О котрій смакуватимемо?», «Дата 
доставки/самовивозу», «Адреса» (якщо обрано тип отримання «Доставка»), «З 
якої купюри проготувати решту?» (якщо обрано тип оплати «Готівка») є 
обов’язковими. Поля «Прізвище» та «Коментар» не є обов’язковими та можуть 
заповнюватись клієнтом за наявності бажання 
Рисунок 3.10 – Сторінка оформлення замовлення 
 Якщо ж клієнт обрав типу оплати «Карткою на сайті», після підтвердження 
замовлення, відбувається переспрямування на сторінку онлайн-еквайрингу 
WayForPay з токеном замовлення з сайту. Інформація про оформлене замовлене 
потрапляє до працівників закладу лише у випадку успішної оплати. При цьому оплату 
можна здійснити не лише за допомогою інформації картки, а й через Apple/Google 
Pay, Приват24 або з телефону (зісканувавши QR-код). Також на сторінці оплати 
відображається список замовлених позицій. 
39 
 
 
Рисунок 3.11 – Сторінка онлайн-оплати 
Після налаштування та тестування роботи сайту, розпочато роботу над SEO-
оптимізацією ресурсу. Для цього використовувався плагін «Yoast SEO». 
 
Рисунок 3.12 – Сторінка плагіну Yoast SEO 
Після встановлення плагіна, першим кроком є налаштування загальних 
параметрів SEO. Це включає встановлення заголовків та мета-описів сторінок, 
налаштування генерації XML-карти сайту для кращого індексування пошуковими 
40 
 
системами, а також встановлення канонічних посилань для уникнення дублювання 
контенту.  
Далі, важливо оптимізувати кожну сторінку або запис сайту, додавши 
унікальний та релевантний контент, використовуючи ключові слова в заголовках, 
мета-описах та тексті, а також створивши дружні URL-адреси для поліпшення 
доступності та зрозумілості для пошукових систем і користувачів. Ці дії сприяють 
покращенню SEO-параметрів сайту та підвищенню його видимості у пошукових 
системах, що може призвести до збільшення трафіку та покращення позицій у 
пошукових видачах. 
Додатково було використано сервіс Google Search Console для додаткового 
ранжування сайту у пошуковику [19]. 
Результатом вказаних вище дій стало високе ранжування сайту за ключовими 
словами у видачі Google. При використанні режиму інкогніто з увімкненим VPN для 
об’єктивності, сайт знаходиться третім у результатах пошуку. 
 
Рисунок 3.13 – Ранжування у пошуковій видачі Google 
3.3 Реалізація чатботів 
 Першочерговою задачею у реалізації чатботів у месенджері «Telegram» є 
створення самих ботів. Для цього використано утиліту «BotFather» від розробників 
41 
 
месенджера. Це необхідно для створення ботів у системах Telegram та отримання 
токенів для інтеграції з сайтом WP та WooCommerce. 
 
Рисунок 3.14 – Процес створення чатботу 
 Першим було створено бот «ParmesanNotificationBot», основною та єдиною 
задачею якого є оперативне повідомлення у бесіду з працівниками закладу про 
створене замовлення на сайті. Для реалізації було використано стандартні 
повідомлення від WooCommerce, які надсилаються на пошту закладу, вони додатково 
дублюються у Telegram. У повідомленні міститься дата та час замовлення, його 
номер, список позицій з кількістю, вартістю за одиницю та загальною сумою, спосіб 
отримання (доставка або самовивіз), спосіб оплати (готівкою, через платіжну 
систему, на карту-ключ до рахунку), контактна інформація отримувача (ім’я, 
телефон, за наявності – E-mail та адреса доставки), бажаний час отримання, коментар 
42 
 
до замовлення, сума решти (якщо оплата готівкою). Лістинг використаного коду 
знаходиться у Додатку Б. 
 Для налаштування такої інтеграції були використані API месенджера та плагін 
WordPress. 
Рисунок 3.15 – Приклад сповіщення від бота про нове замовлення 
 Наступним етапом було налаштування боту для клієнтів. Він має зв’язуватись 
із сервером та WooCommerce та відображати лише актуальні пропозиції продуктів. 
Після створення боту, було налаштовано інтеграцію з WP за допомогою плагіну 
«WooCommerce Telegram». Налаштування відбувалися шляхом поєднання за токеном 
через API, зміни тексту, обрання доступних категорів. Лістинг коду знаходиться у 
Додатку Б.  
Першочергово бот «знайомиться» з клієнтом та при першому замовленні 
просить поділитися контактним номером. Опісля номер підтягується автоматично. У 
боті реалізовано дві основні кнопки: «Меню» та «Кошик». Пункт «Меню» дає 
43 
 
можливість обрати категорію продуктів, а опісля показує усі доступні варіанти разом 
із фото, ціною та складом. Пункт «Кошик» показує продукцію, яка була обрана 
клієнтом. При цьому доступна можливість збільшити та зменшити кількість позицій, 
видалити замовлення та перейти до фінального етапу оформлення з 
переадресуванням на сайт та вже відкритим розділом підтвердження замовлення. 
Реалізація виконана таким чином, щоб клієнту було зручно одразу оплатити 
замовлення онлайн. 
Рисунок 3.16 – Інтерфейс чатботу для клієнтів 
 При виборі категорії з’являється меню з переліком доступних страв, їхньою 
вартістю та складом. При натисканні на назву страви, бот надсилає повідомлення з 
вартістю, складом та двома кнопками «Додати в кошик» і «Повернутись назад». 
44 
 
Рисунок 3.17 – Інтерфейс чатботу для клієнтів з обраною категорією товарів 
 Після обрання необхідних страв, з’являється меню кошика, у якому можна 
перевірити коректність замовлення, збільшити та зменшити кількість позицій та 
підтвердити правильність інформації. Після цього бот запитує номер телефону, 
поділитися яким клієнт може натиском однієї кнопки. Після перевірки та натискання 
на кнопку «Все ок, оформити замовлення», клієнт переспрямовується на сайт для 
обрання типу оплати та додавання коментарів. 
 Одним з найважливіших аспектів було також формування відносин між 
таблицями. Це важливий етап створення баз даних, який дозволяє встановити зв'язок 
між різними частинами даних. 
У SQL використовувалися команди «ALTER TABLE» та «CREATE TABLE» 
45 
 
для створення відносин. При цьому звертається увага на такі чинники: один до 
багатьох і багато до багатьох. Це визначало, як саме дані будуть зв'язані між собою, 
що було важливим аспектом при проектуванні бази даних. 
У PHPMyAdmin використовувався інтерфейс користувача для створення 
відносин. Переходячи до вкладки «Структура» для кожної таблиці, я визначав 
атрибути поля, включаючи зовнішні ключі, які встановлювали зв'язок між таблицями. 
Створення відносин дозволяло мені ефективно організовувати дані та 
забезпечувати їх зв'язок для оптимального використання. Це було важливою 
складовою моєї роботи з базами даних і дозволяло здійснювати складні запити та 
оптимізувати їх виконання. 
На рисунку 3.18 зображені схеми звʼязків між основними таблицями бази даних 
веб-орієнтованого ресурсу. 
 
Рисунок 3.18 – Схема звʼязків між основними таблицями 
 3.3 Аналіз отриманих результатів 
 Після технічної реалізації рішення та запуску в продуктивне середовище, було 
проведене опитування адміністрації закладу та деяких покупців (випадковим чином). 
 Організація сайту для онлайн замовлень значно підвищила ефективність 
бізнесу піцерії, забезпечуючи зручність і доступність для клієнтів. Перш за все, 
46 
 
наявність сайту розширило аудиторію, оскільки клієнти можуть здійснювати 
замовлення в будь-який час, незалежно від робочих годин піцерії. Це сприяло 
зростанню кількості замовлень та доходів, оскільки більше клієнтів матимуть 
можливість скористатися послугами закладу. Крім того, сайт дозволяє зручно 
представити меню, акції та спеціальні пропозиції, що сприяє залученню нових 
клієнтів та утриманню існуючих. 
Впровадження двох чатботів у Telegram також мало суттєвий позитивний вплив 
на бізнес піцерії. Чатбот для створення замовлення забезпечує зручність для клієнтів, 
дозволяючи їм швидко та легко оформити замовлення безпосередньо через 
месенджер. Це спрощує процес замовлення, зменшуючи час і зусилля, які клієнти 
витрачають на оформлення. Відповідно, це призвело до збільшення кількості 
замовлень, оскільки користувачі оцінять зручність і простоту такого способу 
взаємодії з піцерією. 
Другий чатбот, призначений для інформування працівників закладу про нові 
замовлення, підвищив оперативність обробки замовлень. Працівники миттєво 
отримують повідомлення про нові замовлення, що дозволяє швидко приступати до їх 
виконання. Це зменшує час очікування для клієнтів і підвищує їх задоволеність 
сервісом. Крім того, автоматизоване інформування зменшує ризик людських 
помилок, які можуть виникнути під час прийому замовлень вручну, що також сприяє 
покращенню якості обслуговування. 
Сайт і чатботи також забезпечують можливість збирання та аналізу даних про 
замовлення, що допомагає в оптимізації бізнес-процесів. Наприклад, аналізуючи дані 
про популярність різних страв або час пікових навантажень, менеджмент піцерії 
почав детальніше планувати роботу кухні та доставку, оптимізував меню та пропонує 
акції, що відповідають попиту клієнтів. 
Загалом, організація сайту для онлайн замовлень і впровадження чатботів у 
Telegram суттєво підвищила (на 30%)  кількість замовлень самовивозу та доставки. 
 Висновки до розділу 3 
 У розділі бакалаврської роботи описано процес створення веб-орієнтованого 
ресурсу для піцерії «Parmesan» у Черкасах.  
47 
 
Спочатку були визначені вимоги до ресурсу після консультацій з керівництвом 
закладу. Основні компоненти включають вебсайт для клієнтів і працівників та 
чатботи у Telegram. Вебсайт дозволяє клієнтам переглядати меню, робити 
замовлення, обирати спосіб отримання і оплати, тоді як працівники можуть управляти 
замовленнями та позиціями. 
Для реалізації вебсайту обрано хостинг з підтримкою WordPress та відповідним 
серверним середовищем, включаючи PHP і MySQL. Процес включав встановлення та 
налаштування WordPress і плагіну WooCommerce для керування інтернет-магазином. 
Було приділено увагу дизайну сайту, зокрема, розміщенню основного продукту на 
головній сторінці та відображенню найпопулярніших позицій. 
Оптимізація сайту для пошукових систем здійснювалася за допомогою плагіну 
Yoast SEO і Google Search Console, що покращило його видимість у пошукових 
системах. 
Для реалізації чатботів у Telegram було створено два боти. Перший бот 
інформує працівників про нові замовлення, дублюючи повідомлення з 
WooCommerce. Інший бот інтегрований з вебсайтом для надання клієнтам актуальної 
інформації про наявність продукції, перегляду кошика та оформлення замовлень. 
  
48 
 
ВИСНОВКИ 
 У процесі виконання кваліфікаційної роботи було успішно розроблено веб-
орієнтований ресурс, що включає функціональний сайт для онлайн-замовлень на базі 
системи управління контентом WordPress та два чатботи для Telegram: один для 
клієнтів з можливістю створення замовлень, інший для співробітників з інформацією 
про нові замовлення. 
Було проведено аналіз сучасних підходів та технологій у сфері онлайн-замовлень 
їжі, зокрема використання CMS, чатботів та інтеграційних технологій. Виявлено, що 
автоматизація процесів замовлення та обслуговування клієнтів є ключовим фактором 
підвищення ефективності роботи піцерій. 
У розробці веб-ресурсу використано передові технології, включаючи базу даних 
MySQL, а також PHP, HTML, CSS для сайту та обробку природної мови (NLP) для 
чатботів. Це дозволило створити зручний та інтуїтивно зрозумілий інтерфейс для 
користувачів, а також забезпечити надійну та швидку обробку замовлень. 
Чатбот для співробітників значно покращив внутрішню комунікацію та 
координацію, дозволивши оперативно отримувати інформацію про нові замовлення 
та оновлювати їх статус. Це сприяло зниженню часу обробки замовлень на 40% та 
підвищенню якості обслуговування (що підтверджено позитивними відгуками 
користувачів). 
Завдяки використанню чатбота для клієнтів, процес замовлення став більш 
зручним та швидким, що позитивно вплинуло на рівень задоволеності клієнтів. 
Персоналізовані рекомендації та миттєві відповіді на запити сприяли збільшенню 
кількості замовлень на 30% та утриманню клієнтів (ті, хто замовляв раніше, стали 
повертатися за новими замовленнями). 
Розроблений веб-орієнтований ресурс може бути використаний як готове рішення 
для інших піцерій та закладів громадського харчування. Його впровадження 
дозволить підвищити ефективність бізнесу, покращити якість обслуговування 
клієнтів та знизити операційні витрати. 
Робота внесла вклад у дослідження автоматизації бізнес-процесів у сфері 
49 
 
громадського харчування, продемонструвавши ефективність використання сучасних 
технологій для розв'язання задач управління замовленнями та взаємодії з клієнтами. 
Таким чином, поставлені у кваліфікаційній роботі завдання були успішно 
реалізовані, що підтверджується отриманими якісними та кількісними показниками. 
Виконана робота має високу практичну значущість та може бути використана для 
підвищення ефективності роботи піцерій та інших закладів громадського харчування. 
 
 
 
 
 
 
 
 
 
 
 
 
  
50 
 
РЕКОМЕНДАЦІЇ 
На підставі отриманих висновків можна визначити кілька важливих напрямків 
для подальших досліджень та вдосконалень у сфері автоматизації бізнес-процесів 
піцерій. Перш за все, варто звернути увагу на інтеграцію розробленої системи з 
іншими бізнес-системами, такими як CRM та ERP/ 
Інтеграція з CRM-системами дозволить зберігати та аналізувати інформацію 
про клієнтів, що надасть можливість створювати більш персоналізовані маркетингові 
кампанії та підвищувати рівень лояльності клієнтів.  
Своєю чергою, інтеграція з ERP-системами сприятиме глибшій автоматизації 
процесів управління запасами, планування виробництва та аналізу продажів, що 
підвищить ефективність управління ресурсами підприємства. 
Наступним важливим напрямом досліджень є застосування алгоритмів 
машинного навчання для аналізу великих обсягів даних, що генеруються в процесі 
роботи системи. Наприклад, використання методів машинного навчання для аналізу 
історичних даних замовлень дозволить прогнозувати попит на певні страви в різні дні 
та часи. Це допоможе оптимізувати процес закупівлі інгредієнтів, зменшити втрати 
та підвищити ефективність виробничого процесу. Крім того, алгоритми машинного 
навчання можуть бути застосовані для аналізу відгуків клієнтів, що дозволить 
виявляти тенденції та проблеми в обслуговуванні, а також оперативно вносити 
необхідні зміни. 
Розширення функціональних можливостей чатботів є ще одним перспективним 
напрямом розвитку. Зокрема, варто розглянути впровадження голосових команд для 
взаємодії з чатботом, що забезпечить додаткову зручність для користувачів та зробить 
процес замовлення ще швидшим і легшим. Також можна додати функцію обробки 
зображень, яка дозволить клієнтам надсилати фотографії страв або інгредієнтів для 
отримання більш точної інформації та рекомендацій. Додатково, інтеграція чатботів 
з системами лояльності дозволить автоматично нараховувати бонуси та знижки 
клієнтам за замовлення, що сприятиме підвищенню лояльності та залученню нових 
клієнтів. 
51 
 
Для покращення безпеки та надійності системи необхідно розробити та 
впровадити механізми захисту даних користувачів та запобігання можливим 
кібератакам. Це включає використання протоколів шифрування для передачі даних, а 
також розробку політик безпеки для доступу до системи та управління правами 
користувачів. Забезпечення високого рівня безпеки є критично важливим для 
підтримки довіри клієнтів та захисту конфіденційної інформації. 
Подальші дослідження також можуть бути спрямовані на вивчення та 
впровадження новітніх технологій, таких як блокчейн, для підвищення прозорості та 
відстежуваності процесів, пов'язаних з онлайн-замовленнями та доставкою. 
Використання блокчейн-технологій дозволить створити децентралізовану базу даних, 
де кожне замовлення буде фіксуватися у вигляді незмінного запису, що значно 
підвищить рівень довіри та забезпечить можливість відстеження кожного етапу 
виконання замовлення. 
Крім того, важливим аспектом подальшого розвитку є покращення 
користувацького досвіду (UX). Регулярне проведення тестувань та опитувань серед 
клієнтів дозволить виявляти слабкі місця в інтерфейсі системи та впроваджувати 
зміни для покращення зручності та ефективності її використання. Зокрема, варто 
звернути увагу на адаптивний дизайн, що забезпечить коректне відображення та 
функціонування системи на різних пристроях, включаючи смартфони, планшети та 
комп'ютери. Забезпечення зручного та інтуїтивно зрозумілого інтерфейсу сприятиме 
збільшенню кількості клієнтів, що використовують систему, та підвищенню їх 
задоволеності. 
Практичне використання отриманих результатів дослідження може значно 
покращити бізнес-процеси піцерії та підвищити рівень задоволеності клієнтів. 
Розроблений веб-орієнтований ресурс дозволяє автоматизувати процеси прийому та 
обробки замовлень, забезпечує зручність для користувачів та оптимізує роботу 
персоналу. Використання сучасних технологій, таких як чатботи та інтеграційні 
системи, сприяє створенню ефективної та надійної інфраструктури для управління 
замовленнями та взаємодії з клієнтами. 
Розроблений сайт на базі системи управління контентом (CMS) надає широкі 
52 
 
можливості для швидкої та зручної модифікації контенту, що дозволяє легко 
оновлювати інформацію про меню, акції та спеціальні пропозиції. Використання CMS 
також забезпечує високу гнучкість у налаштуванні функціоналу та інтеграції з 
іншими системами, що є важливим для подальшого розвитку та розширення бізнесу. 
Зокрема, впровадження функцій онлайн-оплати, відстеження замовлень у реальному 
часі та можливості залишати відгуки та коментарі дозволить підвищити зручність 
використання сайту та залучити нових клієнтів. 
Чатботи, розроблені для взаємодії з клієнтами та співробітниками, значно 
покращують комунікацію та оптимізують процеси обслуговування. Чатбот для 
клієнтів дозволяє швидко та легко оформлювати замовлення, отримувати інформацію 
про акції та спеціальні пропозиції, а також задавати питання та отримувати 
оперативні відповіді. Це підвищує рівень задоволеності клієнтів та сприяє 
збільшенню кількості замовлень. Чатбот для співробітників забезпечує оперативний 
доступ до інформації про нові замовлення, що дозволяє швидко реагувати на запити 
клієнтів та оптимізувати внутрішні процеси. 
Подальші дослідження та впровадження запропонованих рекомендацій 
дозволять не тільки підвищити ефективність роботи піцерії, але й забезпечити їй 
конкурентні переваги на ринку, сприяти залученню нових клієнтів та утриманню 
існуючих, а також створити умови для стійкого розвитку та зростання бізнесу. 
Використання новітніх технологій, таких як машинне навчання, блокчейн та голосові 
команди, сприятиме підвищенню рівня автоматизації та ефективності бізнес-
процесів, що є ключовим фактором успішного розвитку сучасного бізнесу. 
Таким чином, на основі отриманих результатів дослідження можна зробити 
висновок, що розробка та впровадження веб-орієнтованого ресурсу для піцерії є 
актуальним та важливим завданням, яке дозволяє значно покращити бізнес-процеси 
та підвищити рівень задоволеності клієнтів.  
Запропоновані напрями подальших досліджень та вдосконалень сприятимуть 
підвищенню ефективності роботи піцерії та забезпечать їй конкурентні переваги на 
ринку. 
  
53 
 
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 
1. Street Pizza. URL: https://streetpizza.ck.ua (дата звернення: 01.03.2024) 
2. Tooman Delivery. URL: https://tooman.ck.ua (дата звернення: 01.03.2024) 
3. PIZZA TO GO. URL: https://pizzatogo.ck.ua (дата звернення: 01.03.2024) 
4. Огляд найкращих CMS для інтернет-магазину. URL: 
https://adwservice.com.ua/uk/najkrashchi-cms-dlja-internet-magazynu (дата 
звернення: 01.03.2024) 
5. ChoiceQR. URL: https://choiceqr.com/uk/ (дата звернення: 01.03.2024) 
6. Joomla! URL: https://www.joomla.org/ (дата звернення: 01.03.2024) 
7. WordPress. URL: https://wordpress.org/ (дата звернення: 01.03.2024) 
8. Drupal. URL: https://www.drupal.org/ (дата звернення: 01.03.2024) 
9. Силівейстр В. Як просувати ресторан в інтернеті – креативні ідеї для реклами 
ресторану – Poster POS. URL: https://joinposter.com/ua/post/prosuvannya-
restoranu-v-interneti/ (дата звернення: 01.03.2024) 
10. Створення сайтів. Етап проектування сайту. webstudio2u. 
URL: https://webstudio2u.net/ua/webdesign/217-site-projecting.html (дата 
звернення: 01.03.2024) 
11. Автоматизація ресторану – з чого почати та де придбати ПЗ. Vostok.dp.ua. 
URL: https://www.vostok.dp.ua/ukr/infa1/Avtomatizatsiya/avtomatizatsiya_restoran
a/ (дата звернення: 01.03.2024) 
12. Що таке чат-боти і 7 способів, як використовувати їх для бізнесу. AG Marketing. 
URL: https://ag.marketing/blog/chat-boti-dlya-biznesu-2/ (дата звернення: 
01.05.2024). 
13. Все про чат-боти: переваги, типи та схема роботи – Interkassa. InterKasa. 
URL: https://interkassa.com/blog/vse-pro-chat-boti-perevagi-tipi-ta-shema-roboti 
(дата звернення: 01.03.2024) 
14. CMS – яку краще вибрати. DIGANTS - компанія з веб-розробки та просування 
сайтів. URL: https://digiants.agency/uk/blog/cms-dvijok-saita-kakaya-luchshe (дата 
звернення: 01.03.2024) 
54 
 
15. Що таке CMS та як правильно вибрати CMS для сайту. IT STEP. 
URL: https://kiev.itstep.org/blog/what-is-a-cms-and-how-to-choose-the-right-
one  (дата звернення: 01.03.2024) 
16. Сукач М., Скопень М. Інформаційні системи і технології в готельно-
ресторанному та туристичному бізнесі: підручник. Ліра-К, 2017. 
URL: https://doi.org/10.26884/mks.t1627  
17. Kaiser S., Ringlstetter M. J. Strategic management of professional service firms: 
theory and practice. Springer, 2014. 225 p. 
18. Гармон К. Що я знаю про роботу кав'ярень. Реалії бізнесу від власника мережі 
3fe Coffee. Київ : Наш Формат, 2021. 264 с. 
19. Кейси використання чат-ботів у бізнесі. Інтернет-видання 
Коло. URL: https://kolo.news/category/biznes/36815 (дата звернення: 01.03.2024) 
20. Ткачова С. С., Іванова Т. Автоматизація управління підприємствами 
ресторанного господарства. Туристична бібліотека. 
URL: https://tourlib.net/statti_ukr/tkachova.htm (дата звернення: 01.03.2024) 
  
55 
 
ДОДАТОК А 
 
 
 
        Затверджую               
Зав. кафедри КНСА, 
______________ Юрій ТРИУС 
«____»____________2024 р.                                                                                                                                                                              
 
 
 
 
 
 
 
ВЕБ-ОРІЄНТОВАНИЙ РЕСУРС ОНЛАЙН-ЗАМОВЛЕНЬ ДЛЯ ПІЦЕРІЇ 
 
 
Специфікація  
482.ЧДТУ. 42318-01  
 
Листів 2 
 
 
 
 
 
 
Розробник                          ____________________                 Буряк Є.Р. 
 
Керівник                             ____________________                Андрієнко В.О. 
 
 
 
 
 
 
 
 
 
 
Черкаси – 2024
56 
 
482.ЧДТУ. 42318-01 
Позначення Найменування Примітка 
   
   
 Документація  
   
   
482.ЧДТУ. 42318-01    12 01 Лістинг коду вебсайту  
482.ЧДТУ. 42318-01    12 02 Лістинг коду інтеграції з  
чатботами Telegram 
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
57 
 
ДОДАТОК Б 
 
 
 
 
 
ВЕБ-ОРІЄНТОВАНИЙ РЕСУРС ОНЛАЙН-ЗАМОВЛЕНЬ ДЛЯ ПІЦЕРІЇ 
 
 
Лістинг коду вебсайту 
482.ЧДТУ. 42318-01 12 01 
 
Листів 16 
 
 
 
 
 
 
Розробник    _____________                   Буряк Є.Р. 
 
 
 
 
 
 
 
 
Черкаси – 2024 
58 
 
1. Код головної сторінки 
<!DOCTYPE html> 
<html lang=«uk»> 
<head> 
    <meta charset=«UTF-8»> 
    <meta name=«viewport» content=«width=device-width, initial-scale=1.0»> 
    <title>Parmesan Pizza</title> 
    <link rel=«stylesheet» href=«styles.css»> 
</head> 
<body> 
    <header> 
        <div class=«container»> 
            <a href=«index.html» class=«logo»>Parmesan</a> 
            <nav> 
                <ul> 
                    <li><a href=«index.html»>Головна</a></li> 
                    <li><a href=«pizza.html»>Піца</a></li> 
                    <li><a href=«drinks.html»>Напої</a></li> 
                    <li><a href=«sandwiches.html»>Сендвічі</a></li> 
                    <li><a href=«waffles.html»>Бельгійські вафлі</a></li> 
                </ul> 
            </nav> 
            <div class=«contact-info»> 
                <p>Тел: <a href=«tel:+380673000958»>067 300 09 58</a></p> 
                <p>Адреса: м. Черкаси, бульвар Шевченка, 335</p> 
            </div> 
        </div> 
    </header> 
 
    <main> 
59 
 
        <section class=«welcome»> 
            <h1>Вітаємо у Parmesan!</h1> 
            <p>Це та сама піца, тільки онлайн. Швиденько замовляйте!</p> 
        </section> 
 
        <section class=«popular»> 
            <h2>Найчастіше замовляють</h2> 
            <div class=«menu-items»> 
                <div class=«menu-item»> 
                    <h3>Піца 4 сири</h3> 
                    <p>149.00 грн.</p> 
                    <button>Додати</button> 
                </div> 
                <div class=«menu-item»> 
                    <h3>Піца Гавайська</h3> 
                    <p>154.00 грн.</p> 
                    <button>Додати</button> 
                </div> 
                <div class=«menu-item»> 
                    <h3>Піца Домашня</h3> 
                    <p>187.00 грн.</p> 
                    <button>Додати</button> 
                </div> 
                <div class=«menu-item»> 
                    <h3>Піца Пепероні</h3> 
                    <p>149.00 грн.</p> 
                    <button>Додати</button> 
                </div> 
            </div> 
        </section> 
60 
 
 
        <section class=«categories»> 
            <h2>Обирайте, що замовляти:</h2> 
            <ul> 
                <li><a href=«pizza.html»>Піца</a></li> 
                <li><a href=«drinks.html»>Напої</a></li> 
                <li><a href=«sides.html»>Додатки до піци</a></li> 
                <li><a href=«sandwiches.html»>Сендвічі</a></li> 
                <li><a href=«waffles.html»>Вафлі</a></li> 
                <li><a href=«pancakes.html»>Млинці та сирники</a></li> 
            </ul> 
        </section> 
    </main> 
 
    <footer> 
        <div class=«container»> 
            <p>&copy; 2024 Parmesan Pizza. Всі права захищено.</p> 
            <ul> 
                <li><a href=«privacy.html»>Політика конфіденційності</a></li> 
                <li><a href=«returns.html»>Обмін та повернення</a></li> 
            </ul> 
        </div> 
    </footer> 
</body> 
</html> 
 
2. Код модуля пошуку позицій 
<?php 
if ( ! defined( 'ABSPATH' ) ) { 
 exit; 
61 
 
} 
 
?> 
<form role=«search» method=«get» class=«woocommerce-product-search» action=«<?php 
echo esc_url( home_url( '/' ) ); ?>«> 
 <label class=«screen-reader-text» for=«woocommerce-product-search-field-<?php 
echo isset( $index ) ? absint( $index ) : 0; ?>«><?php esc_html_e( 'Search for:', 
'woocommerce' ); ?></label> 
 <input type=«search» id=«woocommerce-product-search-field-<?php echo 
isset( $index ) ? absint( $index ) : 0; ?>« class=«search-field» placeholder=«<?php echo 
esc_attr__( 'Search products&hellip;', 'woocommerce' ); ?>« value=«<?php echo 
get_search_query(); ?>« name=«s» /> 
 <button type=«submit» value=«<?php echo esc_attr_x( 'Search', 'submit button', 
'woocommerce' ); ?>« class=«<?php echo 
esc_attr( wc_wp_theme_get_element_class_name( 'button' ) ); ?>«><?php echo 
esc_html_x( 'Search', 'submit button', 'woocommerce' ); ?></button> 
 <input type=«hidden» name=«post_type» value=«product» /> 
</form> 
3. Код модуля обрання дати та часу доставки 
<?php 
class Coderockz_Woo_Delivery_Public { 
 private $plugin_name; 
 private $version; 
 public $helper; 
 public function __construct( $plugin_name, $version ) { 
 
  $this->plugin_name = $plugin_name; 
  $this->version = $version; 
  $this->helper = new Coderockz_Woo_Delivery_Helper(); 
 
62 
 
 } 
 public function enqueue_styles() { 
  if( is_checkout() && ! ( is_wc_endpoint_url( 'order-pay' ) || 
is_wc_endpoint_url( 'order-received' )) ) { 
   wp_enqueue_style( «flatpickr_css», plugin_dir_url( __FILE__ ) . 
'css/flatpickr.min.css', array(), $this->version, 'all' ); 
   wp_enqueue_style( $this->plugin_name, plugin_dir_url( __FILE__ ) . 
'css/coderockz-woo-delivery-public.css', array(), $this->version, 'all' ); 
  } 
 
 } 
 
 public function enqueue_scripts() { 
   $theme_name = esc_html( wp_get_theme()->get( 'Name' ) ); 
 
   $theme = wp_get_theme( ); 
 
   if(strpos($theme_name,»Flatsome») !== false || strpos($theme-
>parent_theme,»Flatsome») !== false) { 
    wp_enqueue_script( «select2_js», plugin_dir_url( __FILE__ ) . 
'js/select2.coderockz.delivery.min.js', array('jquery'), $this->version, true ); 
    wp_enqueue_script( $this->plugin_name, 
plugin_dir_url( __FILE__ ) . 'js/coderockz-woo-delivery-public-flatsome.js', 
array( 'jquery','select2_js', 'flatpickr_js' ), $this->version, true ); 
   } else { 
    wp_enqueue_script( «selectWoo_js», 
plugin_dir_url( __FILE__ ) . 'js/selectWoo.coderockz.delivery.min.js', array('jquery'), 
$this->version, true ); 
    wp_enqueue_script( $this->plugin_name, 
plugin_dir_url( __FILE__ ) . 'js/coderockz-woo-delivery-public.js', 
63 
 
array( 'jquery','selectWoo_js', 'flatpickr_js' ), $this->version, true ); 
   } 
 
  } 
  $coderockz_woo_delivery_nonce = 
wp_create_nonce('coderockz_woo_delivery_nonce'); 
         wp_localize_script($this->plugin_name, 'coderockz_woo_delivery_ajax_obj', 
array( 
             'coderockz_woo_delivery_ajax_url' => admin_url('admin-ajax.php'), 
             'nonce' => $coderockz_woo_delivery_nonce, 
         )); 
 
 } 
 
 
 public function dequeue_salient_theme_hoverintent_script() { 
  if( is_checkout() && ! ( is_wc_endpoint_url( 'order-pay' ) || 
is_wc_endpoint_url( 'order-received' )) ){ 
 
   $theme_name = esc_html( wp_get_theme()->get( 'Name' ) ); 
   $theme = wp_get_theme( ); 
   if(strpos($theme_name,»Salient») !== false || strpos($theme-
>parent_theme,»Salient») !== false) { 
    wp_dequeue_script( 'hoverintent' ); 
   } 
  } 
 } 
 
 
 public function coderockz_woo_delivery_add_custom_field() { 
64 
 
 
 
  if(isset($_COOKIE['coderockz_woo_delivery_option_time_pickup'])) { 
      unset($_COOKIE['coderockz_woo_delivery_option_time_pickup']); 
   setcookie(«coderockz_woo_delivery_option_time_pickup», null, -1, '/'); 
  } elseif(!is_null(WC()->session)) {     
   WC()->session-
>__unset( 'coderockz_woo_delivery_option_time_pickup' );   
  } 
 
 
  $delivery_date_settings = 
get_option('coderockz_woo_delivery_date_settings'); 
  $pickup_date_settings = 
get_option('coderockz_woo_delivery_pickup_date_settings'); 
  $delivery_time_settings = 
get_option('coderockz_woo_delivery_time_settings'); 
  $pickup_time_settings = 
get_option('coderockz_woo_delivery_pickup_settings'); 
  $delivery_option_settings = 
get_option('coderockz_woo_delivery_option_delivery_settings'); 
  $other_settings = get_option('coderockz_woo_delivery_other_settings'); 
 
  $timezone = $this->helper->get_the_timezone(); 
  date_default_timezone_set($timezone); 
 
  $today = date('Y-m-d', time()); 
   
  echo «<div data-today_date='«.$today.»' data-plugin-
url='«.CODEROCKZ_WOO_DELIVERY_URL.»' 
65 
 
id='coderockz_woo_delivery_setting_wrapper'>«; 
 
  $delivery_heading_checkout = 
(isset($other_settings['delivery_heading_checkout']) 
&& !empty($other_settings['delivery_heading_checkout'])) ? 
stripslashes($other_settings['delivery_heading_checkout']) : ««; 
 
  if($delivery_heading_checkout != ««) { 
   echo «<div id='coderockz-woo-delivery-public-delivery-details'>«; 
   echo «<h3 style='margin-bottom:0;padding: 20px 
0;'>«.__($delivery_heading_checkout, 'woo-delivery').»</h3>«; 
   echo «</div>«; 
  } 
 
  $disable_fields_for_downloadable_products = 
(isset(get_option('coderockz_woo_delivery_other_settings')['disable_fields_for_download
able_products']) 
&& !empty(get_option('coderockz_woo_delivery_other_settings')['disable_fields_for_dow
nloadable_products'])) ? 
get_option('coderockz_woo_delivery_other_settings')['disable_fields_for_downloadable_p
roducts'] : false; 
 
  $has_virtual_downloadable_products = $this->helper-
>check_virtual_downloadable_products(); 
 
  $enable_delivery_option = 
(isset($delivery_option_settings['enable_option_time_pickup']) 
&& !empty($delivery_option_settings['enable_option_time_pickup'])) ? 
$delivery_option_settings['enable_option_time_pickup'] : false; 
  $delivery_option_field_label = 
66 
 
(isset($delivery_option_settings['delivery_option_label']) 
&& !empty($delivery_option_settings['delivery_option_label'])) ? 
stripslashes($delivery_option_settings['delivery_option_label']) : __(«Order Type», «woo-
delivery»); 
  $delivery_field_label = (isset($delivery_option_settings['delivery_label']) 
&& !empty($delivery_option_settings['delivery_label'])) ? 
stripslashes($delivery_option_settings['delivery_label']) : __(«Delivery»,»woo-delivery»); 
  $pickup_field_label = (isset($delivery_option_settings['pickup_label']) 
&& !empty($delivery_option_settings['pickup_label'])) ? 
stripslashes($delivery_option_settings['pickup_label']) : __(«Pickup»,»woo-delivery»); 
 
  if($enable_delivery_option && (!$has_virtual_downloadable_products || 
$disable_fields_for_downloadable_products) ) { 
   echo '<div id=«coderockz_woo_delivery_delivery_selection_field» 
style=«display:none;»>'; 
   
 woocommerce_form_field('coderockz_woo_delivery_delivery_selection_box', 
    [ 
     'type' => 'select', 
     'class' => [ 
      'coderockz_woo_delivery_delivery_selection_box 
form-row-wide' 
     ], 
     'label' => __($delivery_option_field_label, 'woo-delivery'), 
     'placeholder' => __($delivery_option_field_label, 'woo-
delivery'), 
        'options' => 
Coderockz_Woo_Delivery_Delivery_Option::delivery_option($delivery_option_settings), 
     'required' => true, 
    ], WC()->checkout-
67 
 
>get_value('coderockz_woo_delivery_delivery_selection_box')); 
   echo '</div>'; 
  } 
 
 
  $today = date('Y-m-d', time()); 
 
  $disable_dates = []; 
  $pickup_disable_dates = []; 
 
  $selectable_start_date = date('Y-m-d H:i:s', time()); 
  $start_date = new DateTime($selectable_start_date); 
 
  $off_days = (isset($delivery_date_settings['off_days']) 
&& !empty($delivery_date_settings['off_days'])) ? $delivery_date_settings['off_days'] : 
array(); 
 
  if(count($off_days)) { 
    $date = $start_date; 
    foreach ($off_days as $year => $months) { 
     foreach($months as $month =>$days){ 
      $month_num = date_parse($month)['month']; 
      if(strlen($month_num) == 1) { 
       $month_num_final = «0».$month_num; 
      } else { 
       $month_num_final = $month_num; 
      } 
      $days = explode(',', $days); 
      foreach($days as $day){ 
       $disable_dates[] = $year . «-» . 
68 
 
$month_num_final . «-» .$day; 
       $pickup_disable_dates[] = $year . «-» . 
$month_num_final . «-» .$day; 
      } 
     } 
    } 
   } 
 
 
 
  $enable_delivery_date = 
(isset($delivery_date_settings['enable_delivery_date']) 
&& !empty($delivery_date_settings['enable_delivery_date'])) ? 
$delivery_date_settings['enable_delivery_date'] : false; 
 
  $auto_select_first_date = 
(isset($delivery_date_settings['auto_select_first_date']) 
&& !empty($delivery_date_settings['auto_select_first_date'])) ? 
$delivery_date_settings['auto_select_first_date'] : false; 
 
 
  if( $enable_delivery_date && (!$has_virtual_downloadable_products || 
$disable_fields_for_downloadable_products) ) { 
 
   $delivery_days = isset($delivery_date_settings['delivery_days']) && 
$delivery_date_settings['delivery_days'] != «« ? $delivery_date_settings['delivery_days'] : 
«6,0,1,2,3,4,5»;    
 
   $delivery_date_field_label = 
(isset($delivery_date_settings['field_label']) 
69 
 
&& !empty($delivery_date_settings['field_label'])) ? $delivery_date_settings['field_label'] : 
__(«Delivery Date»,»woo-delivery»); 
   $delivery_date_mandatory = 
(isset($delivery_date_settings['delivery_date_mandatory']) 
&& !empty($delivery_date_settings['delivery_date_mandatory'])) ? 
$delivery_date_settings['delivery_date_mandatory'] : false; 
   $delivery_date_format = (isset($delivery_date_settings['date_format']) 
&& !empty($delivery_date_settings['date_format'])) ? 
$delivery_date_settings['date_format'] : «F j, Y»; 
   $week_starts_from = 
(isset($delivery_date_settings['week_starts_from']) 
&& !empty($delivery_date_settings['week_starts_from'])) ? 
$delivery_date_settings['week_starts_from']:»0»; 
    
   $selectable_date = (isset($delivery_date_settings['selectable_date']) 
&& !empty($delivery_date_settings['selectable_date']))?$delivery_date_settings['selectabl
e_date']:»365»; 
 
   $delivery_days = explode(',', $delivery_days); 
 
   $week_days = ['0', '1', '2', '3', '4', '5', '6']; 
   $disable_week_days = array_values(array_diff($week_days, 
$delivery_days)); 
 
   $disable_dates = array_unique($disable_dates, false); 
   $disable_dates = array_values($disable_dates); 
 
   echo '<div id=«coderockz_woo_delivery_delivery_date_section» 
style=«display:none;»>'; 
   woocommerce_form_field('coderockz_woo_delivery_date_field', 
70 
 
   [ 
    'type' => 'text', 
    'class' => array( 
      'coderockz_woo_delivery_date_field form-row-wide' 
    ) , 
    'id' => «coderockz_woo_delivery_date_datepicker», 
    'label' => $delivery_date_field_label, 
    'placeholder' => $delivery_date_field_label, 
    'required' => $delivery_date_mandatory, 
    'custom_attributes' => [ 
     'data-selectable_dates' => $selectable_date, 
     'data-disable_week_days' => 
json_encode($disable_week_days), 
     'data-date_format' => $delivery_date_format, 
     'data-disable_dates' => json_encode($disable_dates), 
     'data-week_starts_from' => $week_starts_from, 
     'data-default_date' => $auto_select_first_date, 
    ], 
   ] , WC()->checkout-
>get_value('coderockz_woo_delivery_date_field')); 
   echo '</div>'; 
  } 
 
  $enable_delivery_time = 
(isset($delivery_time_settings['enable_delivery_time']) 
&& !empty($delivery_time_settings['enable_delivery_time'])) ? 
$delivery_time_settings['enable_delivery_time'] : false; 
 
  $delivery_time_field_label = (isset($delivery_time_settings['field_label']) 
&& !empty($delivery_time_settings['field_label'])) ? 
71 
 
$delivery_time_settings['field_label'] : __(«Delivery Time»,»woo-delivery»); 
 
  $delivery_time_mandatory = 
(isset($delivery_time_settings['delivery_time_mandatory']) 
&& !empty($delivery_time_settings['delivery_time_mandatory'])) ? 
$delivery_time_settings['delivery_time_mandatory'] : false; 
 
  $auto_select_first_time = 
(isset($delivery_time_settings['auto_select_first_time']) 
&& !empty($delivery_time_settings['auto_select_first_time'])) ? 
$delivery_time_settings['auto_select_first_time'] : false; 
 
  $order_limit_notice = 
(isset(get_option('coderockz_woo_delivery_localization_settings')['order_limit_notice']) 
&& !empty(get_option('coderockz_woo_delivery_localization_settings')['order_limit_noti
ce'])) ? 
«(«.get_option('coderockz_woo_delivery_localization_settings')['order_limit_notice'].»)» : 
__(«(Maximum Order Limit Exceed)»,»woo-delivery»); 
 
  if( $enable_delivery_time && (!$has_virtual_downloadable_products || 
$disable_fields_for_downloadable_products)) { 
 
   echo '<div id=«coderockz_woo_delivery_delivery_time_section» 
style=«display:none;»>'; 
    
   woocommerce_form_field('coderockz_woo_delivery_time_field', 
   [ 
    'type' => 'select', 
    'class' => [ 
     'coderockz_woo_delivery_time_field form-row-wide' 
72 
 
    ], 
    'label' => __($delivery_time_field_label, «woo-delivery»), 
    'placeholder' => __($delivery_time_field_label, «woo-delivery»), 
    'options' => 
Coderockz_Woo_Delivery_Time_Option::delivery_time_option($delivery_time_settings), 
    'required' => $delivery_time_mandatory, 
    'custom_attributes' => [ 
     'data-default_time' => $auto_select_first_time, 
     'data-order_limit_notice' => $order_limit_notice 
    ], 
   ], WC()->checkout->get_value('coderockz_woo_delivery_time_field')); 
   echo '</div>'; 
  } 
  
73 
 
ДОДАТОК В 
 
 
 
 
 
ВЕБ-ОРІЄНТОВАНИЙ РЕСУРС ОНЛАЙН-ЗАМОВЛЕНЬ ДЛЯ ПІЦЕРІЇ 
 
 
Лістинг коду інтеграції з чатботами Telegram 
482.ЧДТУ. 42318-01 12 02 
 
Листів 22 
 
 
 
 
 
 
Розробник    _____________                   Буряк Є.Р. 
 
 
 
 
 
 
 
 
Черкаси – 2024 
74 
 
<?php 
new TGWP_Telegram; 
 
class TGWP_Telegram 
{ 
    private $chat_id, $displayName, $fName, $lName = ''; 
    private $msg_id = ''; 
    private $welcome_message = ''; 
    private $shop_button; 
    private $cart_button; 
    private $tg_data; 
    private $inlineQueryId = '', $catId = '', $offset = 0, $prodId, $t_id, $a_id, $ak, $varId; 
    private $TGWP_User; 
    private $TGWP_Orders; 
    private $TGWP_Products; 
    private $TGWP_Helper; 
    private $TGWP_Api; 
    private $fast_checkout = false; 
    private $disable_quantity_input = false; 
    private $buy_now_btn_text; 
    private $show_description; 
    private $info_updated; 
    private $category_per_row; 
    private $show_only_parent_categories; 
    private $show_sku; 
    private $sku_text; 
    private $price_text; 
    private $disable_site_checkout; 
    private $checkout_button_text; 
    private $request_location; 
75 
 
    private $update_location_button_text; 
    private $out_of_stock_btn; 
    private $hierarchy_categories; 
 
    //Product 
    private $quant = 1; 
 
    public function __construct() 
    { 
        $this->TGWP_Api = TGWP_Api::getInstance(); 
        $this->TGWP_Helper = TGWP_Helpers::getInstance(); 
        $this->TGWP_User = new TGWP_User(); 
        $this->TGWP_Orders = new TGWP_Orders(); 
        $this->TGWP_Products = new TGWP_Products(); 
 
 
        $this->shop_button = tgwp_get_option('tgwp_shop_btn_title', esc_html__('Shop', 'bot-
for-telegram-on-woocommerce')); 
        $this->cart_button = tgwp_get_option('tgwp_cart_btn_title', esc_html__('Cart', 'bot-
for-telegram-on-woocommerce')); 
        $this->welcome_message = tgwp_get_option('tgwp_hello_title', esc_html__('Hello! 
Welcome to WooCommerce Telegram Store', 'bot-for-telegram-on-woocommerce')); 
        $this->fast_checkout = tgwp_get_option('tgwp_enable_fast_checkout', false); 
        $this->disable_quantity_input = tgwp_get_option('tgwp_disable_quantity_input', 
false); 
        $this->show_description = tgwp_get_option('tgwp_show_excerpt', false); 
        $this->buy_now_btn_text = tgwp_get_option('tgwp_buy_now_btn_text', 
esc_html__('Buy Now', 'bot-for-telegram-on-woocommerce')); 
        $this->info_updated = tgwp_get_option('tgwp_info_updated', 
esc_html__('Information updated', 'bot-for-telegram-on-woocommerce')); 
76 
 
        $this->category_per_row = tgwp_get_option('tgwp_category_per_row', 2); 
        $this->show_only_parent_categories = 
tgwp_get_option('tgwp_show_only_parent_categories', false); 
        $this->show_sku = tgwp_get_option('tgwp_show_sku', false); 
        $this->sku_text = tgwp_get_option('tgwp_sku_text', esc_html__('SKU', 'bot-for-
telegram-on-woocommerce')); 
        $this->price_text = tgwp_get_option('tgwp_price_text', esc_html__('Price:', 'bot-for-
telegram-on-woocommerce')); 
        $this->disable_site_checkout = tgwp_get_option('tgwp_disable_site_checkout', ''); 
        $this->checkout_button_text = tgwp_get_option('tgwp_proceed_checkout_btn_title', 
esc_html__('Proceed to Checkout', 'bot-for-telegram-on-woocommerce')); 
        $this->update_location_button_text = 
tgwp_get_option('tgwp_update_location_button_text', esc_html__('Send Location', 'bot-
for-telegram-on-woocommerce')); 
        $this->out_of_stock_btn = tgwp_get_option('tgwp_out_of_stock_button', 
esc_html__('Out of Stock', 'bot-for-telegram-on-woocommerce')); 
        $this->request_location = tgwp_get_option('tgwp_request_location', false); 
        $this->hierarchy_categories = tgwp_get_option('tgwp_hierarchy_categories', false); 
 
        add_action('rest_api_init', array($this, 'register_route')); 
        add_action('tgwp_order_created', array($this, 'tgwp_send_apply_order_msg'), 10, 2); 
 
        if (!empty($_GET['tgwp_test'])) { 
            echo '<pre>'; 
            var_dump(get_transient('tgwp_test')); 
            echo '<pre>'; 
            die; 
        } 
    } 
 
77 
 
    public function register_route() 
    { 
        register_rest_route('woo-telegram/v1', '/main/', array( 
            'methods' => ['GET', 'POST'], 
            'permission_callback' => '__return_true', 
            'callback' => array($this, 'get_tg_data'), 
        )); 
    } 
 
    public function get_tg_data() 
    { 
        $tg_data = file_get_contents('php://input'); 
        $this->tg_data = json_decode($tg_data, true, 100, JSON_UNESCAPED_UNICODE); 
        do_action('tgwp_get_tg_data', $this->tg_data); 
        if (!empty($this->tg_data['message']['chat']['id'])) { 
            $chat_id = $this->tg_data['message']['chat']['id']; 
            set_transient('tgwp_get_last_user_action_' . $chat_id, $this->tg_data, 600); 
        } elseif (!empty($this->tg_data['inline_query']) && !empty($this-
>tg_data['inline_query']['query'])) { 
            $data = $this->tg_data['inline_query']; 
            $this->inlineQueryId = $data['id']; 
            $chat_id = $data['from']['id']; 
            $msg = $data; 
            $queryType = 'inline_query'; 
        } elseif (!empty($this->tg_data['message'])) { 
            $data = $this->tg_data['message']; 
            $msg = $data; 
            $chat_id = $data['chat']['id']; 
            $queryType = 'default'; 
 
78 
 
            if (!empty($data['via_bot'])) { 
                $this->msg_id = $data['message_id']; 
                $this->prodId = $data['text']; 
                $queryType = 'via_bot'; 
            } else if (!empty($data['contact'])) { 
                $this->TGWP_User->tgwp_save_user_phone($chat_id, 
$data['contact']['phone_number']); 
                $last_action = $this->get_last_action($chat_id); 
 
                if (!empty($last_action) && $last_action === 'checkout') { 
                    if(!empty($this->request_location)) { 
                        $send_data = [ 
                            'text' => $this->update_location_button_text, 
                            'chat_id' => $chat_id, 
                            'reply_markup' => json_encode([ 
                                'resize_keyboard' => true, 
                                'keyboard' => $this->tgwp_request_location_keyboard(), 
                            ]) 
                        ]; 
                    } 
                    else { 
                        $send_data = [ 
                            'text' => $this->info_updated, 
                            'chat_id' => $chat_id, 
                            'reply_markup' => json_encode([ 
                                'resize_keyboard' => true, 
                                'inline_keyboard' => $this-
>tgwp_get_proceed_checkout_keyboard($chat_id), 
                            ]) 
                        ]; 
79 
 
                        $this->set_last_action($chat_id, 'phone'); 
                    } 
                    $this->TGWP_Api->send_message('sendMessage', $send_data); 
 
                } else { 
                    $send_data = [ 
                        'text' => $this->info_updated, 
                        'chat_id' => $chat_id, 
                    ]; 
                    $this->TGWP_Api->send_message('sendMessage', $send_data); 
                } 
 
            } 
            else if(!empty($data['location'])) { 
                $location = array( 
                    'latitude' => $data['location']['latitude'], 
                    'longitude' => $data['location']['longitude'], 
                ); 
                $this->TGWP_User->tgwp_save_user_location($chat_id, $location); 
                $last_action = $this->get_last_action($chat_id); 
 
                if (!empty($last_action) && ($last_action === 'checkout' || $last_action === 
'phone')) { 
                    $send_data = [ 
                        'text' => $this->info_updated, 
                        'chat_id' => $chat_id, 
                        'reply_markup' => json_encode([ 
                            'resize_keyboard' => true, 
                            'inline_keyboard' => $this-
>tgwp_get_proceed_checkout_keyboard($chat_id), 
80 
 
                        ]) 
                    ]; 
                    $this->clear_last_action($chat_id); 
                } 
                else { 
                    $send_data = [ 
                        'text' => $this->info_updated, 
                        'chat_id' => $chat_id, 
                        'keyboard' => $this->tgwp_get_default_keyboard(), 
                    ]; 
                } 
                $this->TGWP_Api->send_message('sendMessage', $send_data); 
            } 
        } 
 
        if ($queryType == 'inline_query') { 
            $parseData = $data['query']; 
            $offset = !empty($data['offset']) ? $data['offset'] : 0; 
            $this->offset = intval($offset); 
            $callbackId = 'category'; 
            if (strpos($parseData, 'tgwp_search_') === false) { 
                $this->catId = ($parseData === 'all') ? 'all' : get_term_by('slug', $parseData, 
'product_cat')->term_id; 
            } else { 
                $this->catId = $parseData; 
            } 
            if (isset($callbacks[$callbackId])) self::{$callbacks[$callbackId]}(); 
        } elseif ($queryType == 'via_bot') { 
            $this->chat_id = $chat_id; 
            $callbackId = mb_strtolower('product', 'utf-8'); 
81 
 
            if (isset($callbacks[$callbackId])) self::{$callbacks[$callbackId]}(); 
        } elseif (!empty($queryType) && $queryType != 'inline_query') { 
            $this->chat_id = $chat_id; 
            $this->fName = !empty($data['chat']['first_name']) ? $data['chat']['first_name'] : ''; 
            $this->lName = !empty($data['chat']['last_name']) ? $data['chat']['last_name'] : ''; 
            $this->displayName = $this->fName; 
            if (!empty($this->lName)) { 
                $this->displayName .= ' ' . $this->lName; 
            } 
 
            $message = mb_strtolower(!empty($data['data']) ? $data['data'] : $data['text'], 'utf-
8'); 
 
            $callbackId = mb_strtolower($message, 'utf-8'); 
 
            if (isset($callbacks[$callbackId])) self::{$callbacks[$callbackId]}(); 
        } 
 
    } 
 
    private function start_bot() 
    { 
        $chat_id = $this->chat_id; 
        if (!empty($chat_id)) { 
 
            $this->TGWP_User->tgwp_create_user($chat_id, $this->displayName, $this-
>fName, $this->lName); 
 
            $send_data = [ 
                'text' => $this->welcome_message, 
82 
 
                'chat_id' => $chat_id, 
                'reply_markup' => json_encode([ 
                    'resize_keyboard' => true, 
                    'keyboard' => $this->tgwp_get_default_keyboard(), 
                ]) 
            ]; 
 
            $this->TGWP_Api->send_message('sendMessage', $send_data); 
        } 
    } 
 
    private function show_categories($parent= '') 
    { 
        $categories = $this->get_categories($parent); 
        $keyboard = []; 
        $row = []; 
        $i = 1; 
 
        foreach ($categories as $id => $category) { 
            $text = ($id === 'all') ? $category : $category->name; 
            $slug = ($id === 'all') ? $id : $category->slug; 
            $button = [ 
                'text' => $text, 
                'switch_inline_query_current_chat' => urldecode($slug), 
            ]; 
            if($id !== 'all' && $this->hierarchy_categories) { 
                $term_id = $category->term_id; 
                $children = get_terms([ 
                    'parent' => $term_id, 
                    'hide_empty' => true, 
83 
 
                    'taxonomy' => 'product_cat' 
                ]); 
                if(!empty($children)) { 
                    $button = [ 
                        'text' => $text, 
                        'callback_data' => json_encode([ 
                            'action' => 'child_cats', 
                            'term' => $term_id 
                        ]), 
                    ]; 
                } 
            } 
            $row[] = $button; 
 
            if ($i % $this->category_per_row === 0 || $i === count($categories)) { 
                $keyboard[] = $row; 
                $row = []; 
            } 
 
            $i++; 
        } 
 
        if(empty($parent)) { 
            $keyboard = apply_filters('tgwp_categories_keyboard', $keyboard); 
        } 
 
        $send_data = [ 
            'text' => tgwp_get_option('tgwp_select_cat', esc_html__('Select category:', 'bot-for-
telegram-on-woocommerce')), 
            'chat_id' => $this->chat_id, 
84 
 
            'reply_markup' => json_encode([ 
                'resize_keyboard' => true, 
                'inline_keyboard' => $keyboard, 
            ]) 
        ]; 
 
        $this->TGWP_Api->send_message('sendMessage', $send_data); 
    } 
 
    private function show_cart() 
    { 
        if ($this->TGWP_Orders->tgwp_get_cart_transient($this->chat_id)) { 
            $send_data = $this->TGWP_Orders->tgwp_get_answer_cart($this->chat_id); 
        } else { 
            $send_data = [ 
                'text' => tgwp_get_option('tgwp_cart_empty', esc_html__('Cart empty', 'bot-for-
telegram-on-woocommerce')), 
                'chat_id' => $this->chat_id, 
                'reply_markup' => json_encode([ 
                    'resize_keyboard' => true, 
                    'keyboard' => $this->tgwp_get_default_keyboard(), 
                ]) 
            ]; 
        } 
 
        $this->TGWP_Api->send_message('sendMessage', $send_data); 
    } 
 
    function get_categories($parent = '') 
    { 
85 
 
        $args = [ 
            'taxonomy' => ['product_cat'], 
            'post_type' => 'product', 
            'hide_empty' => true, 
            'fields' => 'all' 
        ]; 
 
        if(!empty($parent)) { 
            $args['parent'] = $parent; 
        } 
        if ($this->show_only_parent_categories === true && empty($parent)) { 
            $args['parent'] = 0; 
        } 
 
        $args = apply_filters('tgwp_get_categories_args', $args); 
        $terms = get_terms($args); 
        $categories = array(); 
        foreach ($terms as $term) { 
            if (!empty($term->term_id)) { 
                $categories[$term->term_id] = $term; 
            } 
        } 
        $categories = apply_filters('tgwp_get_product_categories', $categories); 
        if(!empty($categories) && count($categories) === 1) $categories = array(); 
        return array_merge(['all' => tgwp_get_option('tgwp_all_product', esc_html__('All 
products', 'bot-for-telegram-on-woocommerce'))], $categories); 
    } 
 
    private function show_products() 
    { 
86 
 
        $offset = $this->offset; 
        $products = apply_filters('tgwp_get_products_filter', array(), $this->catId, $offset); 
        $post = array( 
            «inline_query_id» => $this->inlineQueryId, 
            «results» => json_encode($products), 
            'cache_time' => 0, 
            'next_offset' => strval($offset + 20) 
        ); 
 
        $this->TGWP_Api->send_message('answerInlineQuery', $post); 
    } 
 
    private function show_product() 
    { 
        $product = $this->TGWP_Products->tgwp_get_product($this->prodId, '&chat_id=' . 
$this->chat_id); 
 
        if ($product->type == 'variable') { 
            $this->show_variable_product($product); 
            return; 
        } 
 
        $caption = $product->name . «\n»; 
        $caption .= $this->price_text . ' ' . $product->price_single_formatted; 
 
        if ($this->show_sku === true && !empty($product->sku)) { 
            $caption .= «\n» . $this->sku_text . ': ' . $product->sku; 
        } 
        if ($this->show_description === true) { 
            $excerpt = get_the_excerpt($this->prodId); 
87 
 
            if (!empty($excerpt)) { 
                $allowed_html = array( 
                    'a' => array( 
                        'href' => true, 
                        'title' => true, 
                    ), 
                    'b' => array(), 
                    'strong' => array(), 
                    'em' => array(), 
                    'i' => array(), 
                    's' => array(), 
                    'strike' => array(), 
                    'del' => array(), 
                    'pre' => array( 
                        'language' => true 
                    ) 
                ); 
                $excerpt = preg_replace('/<!--(.|s)*?-->/', '', wp_kses($excerpt, $allowed_html)); 
                $excerpt = substr($excerpt, 0, 960); 
                $caption .= «\n\n» . $excerpt; 
            } 
        } 
 
        $send_data = [ 
            'chat_id' => $this->chat_id, 
            'photo' => $product->image_url, 
            'caption' => $caption, 
            'parse_mode' => 'html', 
            'reply_markup' => $this->tgwp_get_product_btns($product) 
        ]; 
88 
 
 
        $this->TGWP_Api->delete_message( 
            array( 
                'chat_id' => $this->chat_id, 
                'message_id' => $this->msg_id 
            ) 
        ); 
 
        $this->TGWP_Api->send_photo($send_data); 
    } 
 
    private function show_grouped_product() 
    { 
        $product = $this->TGWP_Products->tgwp_get_product($this->prodId); 
 
        $priceMain = ''; 
        switch ($product->type) { 
            case 'simple': 
                $priceMain = $product->price_formatted; 
                break; 
            case 'grouped': 
                $priceMain = $product->price_formatted; 
                break; 
            case 'external': 
                $priceMain = $product->price_formatted; 
                break; 
        } 
        $caption = $product->name . «\n» . $this->price_text . ' ' . $product->price_formatted; 
 
        if ($this->show_sku === true) { 
89 
 
            $caption .= «\n» . $this->sku_text . ': ' . $product->sku; 
        } 
 
        if ($this->show_description === true) { 
            $excerpt = get_the_excerpt($this->prodId); 
            if (!empty($excerpt)) { 
                $excerpt = substr($excerpt, 0, 960); 
                $caption .= «\n\n» . $excerpt; 
            } 
        } 
        $send_data = [ 
            'chat_id' => $this->chat_id, 
            'photo' => $product->image_url, 
            'caption' => $caption, 
            'parse_mode' => 'html', 
            'reply_markup' => $this->tgwp_get_product_btns($product) 
        ]; 
 
        $this->TGWP_Api->send_photo($send_data); 
    } 
 
    private function show_variable_product($product = array()) 
    { 
        if (empty($product)) { 
            $product = $this->TGWP_Products->tgwp_get_product($this->prodId, 
'&chat_id=' . $this->chat_id . '&' . $this->t_id . '=' . $this->a_id); 
        } 
 
        if ($product->steps->current === $product->steps->total) { 
            $selectedVariation = $product->available_product_variations[0]; 
90 
 
 
            $caption = $product->name . «\n» . $this->price_text . ' ' . $selectedVariation-
>price_formatted; 
 
            if ($this->show_sku === true) { 
                $caption .= «\n» . $this->sku_text . ': ' . $product->sku; 
            } 
 
            if ($this->show_description === true) { 
                $excerpt = get_the_excerpt($this->prodId); 
                if (!empty($excerpt)) { 
                    $excerpt = substr($excerpt, 0, 960); 
                    $caption .= «\n\n» . $excerpt; 
                } 
            } 
 
            $send_data = [ 
                'chat_id' => $this->chat_id, 
                'photo' => $selectedVariation->image_url, 
                'caption' => $caption, 
                'parse_mode' => 'html', 
                'reply_markup' => $this->tgwp_get_product_btns($product) 
            ]; 
        } else { 
            $caption = $product->name . «\n» . $this->price_text . ' ' . $product-
>price_formatted; 
 
            if ($this->show_sku === true) { 
                $caption .= «\n» . $this->sku_text . ': ' . $product->sku; 
            } 
91 
 
 
            $send_data = [ 
                'chat_id' => $this->chat_id, 
                'photo' => $product->image_url, 
                'caption' => $caption, 
                'parse_mode' => 'html', 
                'reply_markup' => $this->tgwp_get_product_btns($product) 
            ]; 
        } 
 
        $this->TGWP_Api->delete_message( 
            array( 
                'chat_id' => $this->chat_id, 
                'message_id' => $this->msg_id 
            ) 
        ); 
 
        $this->TGWP_Api->send_photo($send_data); 
    } 
 
    private function clear_selected_variable() 
    { 
        $product = $this->TGWP_Products->tgwp_get_product($this->prodId, '&chat_id=' . 
$this->chat_id . '&clear=' . $this->chat_id); 
        $this->show_variable_product($product); 
    } 
 
    private function update_product_buttons() 
    { 
        $send_data = [ 
92 
 
            'chat_id' => $this->chat_id, 
            'message_id' => $this->msg_id, 
            'reply_markup' => $this->tgwp_get_simple_prod_btns($this->prodId) 
        ]; 
 
        $this->TGWP_Api->send_message('editMessageReplyMarkup', $send_data); 
    } 
 
    private function update_variable_product_buttons($product) 
    { 
        $send_data = [ 
            'chat_id' => $this->chat_id, 
            'message_id' => $this->msg_id, 
            'reply_markup' => $this->tgwp_get_variable_prod_btns($product) 
        ]; 
 
        $this->TGWP_Api->send_message('editMessageReplyMarkup', $send_data); 
    } 
    private function tgwp_get_with_user_phone_keyboard() 
    { 
        $default_keyboard = $this->tgwp_get_default_keyboard(); 
        $phone_button = [ 
            [ 
                'text' => tgwp_get_option('tgwp_share_number', esc_html__('Share phone 
number', 'bot-for-telegram-on-woocommerce')), 
                'request_contact' => true 
            ] 
        ]; 
        array_unshift($default_keyboard, $phone_button); 
        return $default_keyboard; 
93 
 
    } 
 
    private function tgwp_request_location_keyboard() 
    { 
        $default_keyboard = $this->tgwp_get_default_keyboard(); 
        $location_button = [ 
            [ 
                'text' => $this->update_location_button_text, 
                'request_location' => true 
            ] 
        ]; 
        array_unshift($default_keyboard, $location_button); 
        return $default_keyboard; 
    } 
    function checkout_action() 
    { 
        $send_data = []; 
        if (TGWP_Settings_Tab::tgwp_request_ph_num() != false && empty($this-
>TGWP_User->tgwp_get_user_phone($this->chat_id))) { 
            $this->set_last_action($this->chat_id, 'checkout'); 
            $send_data = [ 
                'text' => tgwp_get_option('tgwp_share_number', esc_html__('Share phone 
number', 'bot-for-telegram-on-woocommerce')), 
                'chat_id' => $this->chat_id, 
                'reply_markup' => json_encode([ 
                    'resize_keyboard' => true, 
                    'keyboard' => $this->tgwp_get_with_user_phone_keyboard(), 
                ]) 
            ]; 
        } 
94 
 
        else if(tgwp_get_option('tgwp_request_location', false) && (empty($this-
>TGWP_User->tgwp_get_user_location($this->chat_id)) || 
tgwp_get_option('tgwp_request_location_every_order', false))) { 
            $send_data = [ 
                'text' => $this->update_location_button_text, 
                'chat_id' => $this->chat_id, 
                'reply_markup' => json_encode([ 
                    'resize_keyboard' => true, 
                    'keyboard' => $this->tgwp_request_location_keyboard(), 
                ]) 
            ]; 
        } 
        else { 
            $send_data = [ 
                'text' => $this->checkout_button_text, 
                'chat_id' => $this->chat_id, 
                'reply_markup' => json_encode([ 
                    'resize_keyboard' => true, 
                    'inline_keyboard' => $this->tgwp_get_proceed_checkout_keyboard($this-
>chat_id), 
                ]) 
            ]; 
        } 
        $this->TGWP_Api->send_message('sendMessage', $send_data); 
    } 
}