шаг 3 завершен
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
# Шаг 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`.
|
||||
Reference in New Issue
Block a user