# Ресторант Касапи - Пълна Документация (Kasapi Restaurant) Това е подробна техническа документация за уебсайта на ресторант Касапи. ## 1. Въведение Проектът е уебсайт за ресторант "Касапи" в гр. Пловдив, кв. Коматево. Поддържа поръчки за доставка на храна, онлайн резервации за маси, запитвания за събития (сватби, кръщенета) и специален конфигуратор за детски рождени дни (Bubbu Bear). ## 2. Технологичен стек - **Backend**: Vanilla PHP (без фреймуърк). - **Frontend**: HTML, CSS, JavaScript (Vanilla + jQuery). - **База данни**: MySQL (чрез PDO). Файл за конфигурация: `includes/db_config.php`. - **Интеграции**: Telegram Bot API (за известия), Meta Conversions API (CAPI), SMTP за изпращане на имейли (чрез custom `SmtpSender` или `mail()`). ## 3. Структура на базата данни (MySQL) Основни таблици: - `orders`: Онлайн поръчки за доставка (клиент, детайли, цена, статус). - `inquiries`: Резервации и запитвания за събития (тип, име, телефон, дата, час, статус). - `campaign_logs`: Лог на изпратени автоматични имейл кампании (реактивиране, оценка). - `campaign_survey_responses`: Отговори от анкети за обратна връзка. - `feedback`: Отговори от анкети след доставка. ## 4. Основни Функционалности ### 4.1 Онлайн Поръчки (Доставка) - Фронтендът управлява количката чрез JavaScript и изпраща заявката към `api/process_order.php`. - След успешна поръчка, данните се записват в `orders`, изпраща се имейл до ресторанта и съобщение в Telegram група. Задейства се и Meta CAPI event `Purchase`. ### 4.2 Резервации и Събития - Формите за резервация (в `reservation-contactform.php` и `organizirane-na-subitiya.php`) изпращат POST заявки към `mail.php`. - `mail.php` записва запитването в `inquiries`, изпраща имейл, Telegram известие и Meta CAPI event `Lead` / `CompleteReservation`. ### 4.3 Автоматизирани Имейл Кампании (CRON) Файлът `api/campaign_cron.php` се изпълнява автоматично (cron job) и съдържа логика за: - **Оценка (Feedback 1 day)**: Изпраща анкета 1 ден след датата на резервацията (чете от таблица `inquiries`). - **Реактивиране**: Изпраща имейл с комплимент на клиенти, които не са поръчвали/резервирали повече от 60 дни. Връзките водят към `campaign-feedback.php`, където отговорите се записват в `campaign_survey_responses`. ### 4.4 Админ Панел (`admin.php`) Унифициран админ панел, защитен с парола, който съдържа табове: 1. Поръчки / Доставки. 2. Резервации / Събития. 3. Статистика & Анализ (Месечни и дневни разбивки). 4. Имейл Кампании (Статуси на изпратени имейли и отговори от анкетите). ## 5. Security & GDPR - Сайта има `gdpr_cron.php`, който анонимизира данни след определен период (напр. 6 месеца). - SQL инжекции са предотвратени чрез използване на PDO Prepared Statements навсякъде.