4.8 KiB
Шаг 3. Первые PHP-классы и вывод данных
Что сделано
Созданы первые классы для работы сайта на чистом PHP:
app/Controllers/HomeController.phpapp/Repositories/BaseRepository.phpapp/Repositories/CategoryRepository.phpapp/Repositories/ProductRepository.phpapp/Repositories/ProductVariantRepository.phpapp/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 руб. за наличный расчет.
Это не отменяет ввод промокода в корзине. Это только понятная подсказка в каталоге, чтобы человек заранее видел выгоду крупного заказа.
Что нужно проверить
- Если база еще не установлена, открыть
/install.php?token=rybstock-local-install. - После установки открыть главную страницу.
- На главной должны появиться стартовые категории из
database/seed.sql. - Открыть
/admin/и проверить стартовые разделы админки.
Стартовые категории:
- Рыба;
- Рыбное филе;
- Рыбные стейки;
- Охлажденная рыба;
- Малосольная рыба;
- Копченая рыба;
- Вяленая рыба;
- Морепродукты;
- Фрукты, овощи, ягоды, грибы;
- Икра;
- Бакалея;
- Полуфабрикаты;
- Мясная гастрономия;
- Мясо;
- Сыры;
- Молочная продукция.
Важно: названия категорий уже приведены к старому дереву. Для полного сохранения индексации еще нужны точные старые URL категорий и товаров. В схеме для этого предусмотрены legacy_path и таблица redirects.
Следующий шаг
Шаг 4:
- Сделать базовый роутинг для страниц сайта.
- Создать страницу полного каталога.
- Вывести категории и товары из базы.
- Подготовить первые формы админки для категорий и товаров.
Перенос товаров вынесен в отдельный документ: docs/ПЛАН_ПЕРЕНОСА_ТОВАРОВ.md.