# Шаг 3. Первые PHP-классы и вывод данных ## Что сделано Созданы первые классы для работы сайта на чистом PHP: - `app/Controllers/HomeController.php` - `app/Repositories/BaseRepository.php` - `app/Repositories/CategoryRepository.php` - `app/Repositories/ProductRepository.php` - `app/Repositories/ProductVariantRepository.php` - `app/Repositories/SettingRepository.php` Главная страница больше не содержит бизнес-логику напрямую. Теперь `public/index.php` вызывает `HomeController`, а контроллер получает данные через репозитории. Также в базовый layout добавлены: - meta title; - meta description; - meta keywords; - хлебные крошки; - кнопка "Вернуться назад". ## Что выводится на главной Главная страница теперь показывает: - статус подключения к MariaDB; - категории из таблицы `categories`, строго по дереву старого сайта; - вложенность категорий до третьего уровня; - каталог товаров прямо на главной странице; - настройки доставки из таблицы `site_settings`; - блок популярных товаров из опубликованных товаров и фасовок. - градации выгодной цены: базовая цена, цена от 20 000 руб. наличными, цена от 50 000 руб. наличными. Если таблицы еще не установлены, сайт не падает, а показывает сообщение с подсказкой. ## Что добавлено в админку `admin/index.php` теперь показывает стартовую сетку разделов будущей панели: - Товары; - Категории; - Фасовки; - Заказы; - Промокоды; - Акции; - Популярные товары; - Отзывы; - Настройки; - Прайс-лист. Это пока не полноценная админка, а основа навигации для следующих шагов. ## Что добавлено для цен В `promocodes` добавлены поля: - `show_in_price_tiers`; - `price_tier_label`. Создан `app/Services/PriceTierService.php`, который считает отображаемые цены для карточки товара: - базовая цена; - минус 5% при заказе от 20 000 руб. за наличный расчет; - минус 7% при заказе от 50 000 руб. за наличный расчет. Это не отменяет ввод промокода в корзине. Это только понятная подсказка в каталоге, чтобы человек заранее видел выгоду крупного заказа. ## Что нужно проверить 1. Если база еще не установлена, открыть `/install.php?token=rybstock-local-install`. 2. После установки открыть главную страницу. 3. На главной должны появиться стартовые категории из `database/seed.sql`. 4. Открыть `/admin/` и проверить стартовые разделы админки. Стартовые категории: - Рыба; - Рыбное филе; - Рыбные стейки; - Охлажденная рыба; - Малосольная рыба; - Копченая рыба; - Вяленая рыба; - Морепродукты; - Фрукты, овощи, ягоды, грибы; - Икра; - Бакалея; - Полуфабрикаты; - Мясная гастрономия; - Мясо; - Сыры; - Молочная продукция. Важно: названия категорий уже приведены к старому дереву. Для полного сохранения индексации еще нужны точные старые URL категорий и товаров. В схеме для этого предусмотрены `legacy_path` и таблица `redirects`. ## Следующий шаг Шаг 4: 1. Сделать базовый роутинг для страниц сайта. 2. Создать страницу полного каталога. 3. Вывести категории и товары из базы. 4. Подготовить первые формы админки для категорий и товаров. Перенос товаров вынесен в отдельный документ: `docs/ПЛАН_ПЕРЕНОСА_ТОВАРОВ.md`.