47 KiB
План действий по созданию сайта Рыбсток
1. Цель проекта
Создать максимально готовый интернет-магазин продуктов питания Рыбсток под ключ: быстрая витрина, удобная корзина, простое оформление заказа без регистрации, логичная гибкая админка, работа с фасовками, промокодами, доставкой по Москве и Московской области, выгрузкой прайс-листа и живыми блоками доверия.
Главный покупатель: частное лицо, семья, соседи, люди, которые покупают продукты домой крупными упаковками. Юридические лица, кафе, рестораны и магазины тоже учитываются, но интерфейс должен быть в первую очередь простым, понятным и не перегруженным.
Ключевой принцип: сайт должен быть удобен людям разного возраста, включая пожилых покупателей. Оформление заказа должно быть максимально простым, без лишних условий, регистрации, оплаты на сайте и сложных шагов.
2. Основные сущности сайта
2.1. Товары
- Около 1000 товаров.
- У товара могут быть разные фасовки и для каждой фасовки своя цена.
- Пример: горбуша неразделанная:
- упаковка 20 кг по 580 руб./кг;
- пласт 10 кг по 600 руб./кг.
- Покупка возможна только кратно выбранной фасовке.
- Если выбрана фасовка 10 кг, кнопки плюс/минус меняют количество на 10 кг.
- Для каждой фасовки хранить:
- название фасовки;
- количество;
- единицу измерения;
- цену за базовую единицу;
- цену за всю фасовку;
- доступность;
- признак публикации.
- Базовая единица по умолчанию: кг.
- В админке должна быть возможность выбрать другую базовую единицу: кг, штука, литр, упаковка и т.д.
2.2. Отображение цен
- Если товар продается весом и фасовка больше 1 кг, показывать цену за кг и цену за фасовку.
- Если товар имеет единственную фасовку 1 кг, не дублировать цену за упаковку 1 кг.
- Если товар штучный или имеет единственную фиксированную фасовку, например банка 320 г, показывать цену за упаковку 320 г и не пересчитывать за кг.
- В карточке-превью и в полной карточке товара должен быть выбор фасовки.
- Над выбором фасовки текст: "Выберите доступную фасовку".
- При переключении фасовки цена должна меняться сразу.
2.3. Категории
Основные категории должны строго соответствовать старому сайту, чтобы сохранить дерево, ссылки, индексацию и целостность переноса:
- Рыба;
- Рыбное филе;
- Рыбные стейки;
- Охлажденная рыба;
- Малосольная рыба;
- Копченая рыба;
- Вяленая рыба;
- Морепродукты;
- Фрукты, овощи, ягоды, грибы;
- Икра;
- Бакалея;
- Полуфабрикаты;
- Мясная гастрономия;
- Мясо;
- Сыры;
- Молочная продукция.
Нужны категории и подкатегории. Подкатегории визуально отделить от категорий, например более мягким цветом, меньшим шрифтом или отступом. Для сохранения индексации нужны точные старые URL/slug каждой категории и товара; если они отличаются от текущих slug в seed-файле, их нужно заменить перед переносом.
3. Структура сайта
3.1. Главная страница
Первый экран:
- Название/позиционирование Рыбсток.
- Заголовок про ассортимент: рыба, готовая продукция, полуфабрикаты, мясо, сыры, ягоды, овощи с доставкой по Москве и Московской области.
- Заметное сообщение: "Работаем без предоплаты. Оплата только при получении товара."
- Поиск по сайту.
- Быстрый переход в полный каталог.
- Сам каталог должен быть уже открыт на главной странице, чтобы покупатель сразу видел товары и не делал лишних переходов.
- Понятная кнопка "Доставка и оплата".
- Верхнее меню с категориями и подкатегориями.
Первый скролл:
- Три понятных блока с картинками:
- бесплатная доставка внутри МКАД;
- доставка за МКАД;
- самовывоз.
- Блок популярных товаров: около 10 товаров из разных категорий и подкатегорий.
- Популярные товары должны быть частично случайными при каждом посещении, но с приоритетом более покупаемых за последнее время.
- В админке нужна возможность вручную закреплять или полностью собирать популярные товары.
- Ссылка на полный каталог.
Блок доверия и свежести:
- Рейтинг Яндекс.Карт.
- Отзывы Яндекс.Карт только 5 звезд.
- Автоматическая дата последнего поступления товара: текущий рабочий день.
- В выходные и официальные праздничные дни дата должна показывать последний рабочий день.
- Виртуальные счетчики температуры:
- морозильная камера: примерно от -18 до -20 градусов;
- холодильная камера: примерно от -2 до +1 градуса.
- Температура должна периодически слегка меняться и выглядеть реалистично.
- Текст про склад:
- морозильные камеры более 1800 кв. м;
- холодильные камеры более 500 кв. м.
- Небольшой, но убедительный модуль фото склада.
Дополнительные блоки:
- Акции: товары выбираются вручную в админке.
- Мягкое описание для частных покупателей.
- Неброское упоминание для юридических лиц: работаем с юрлицами, безналичный расчет +8%, счета от 15000 руб.
- Неброское упоминание систем Меркурий и Честный знак: часть ассортимента проходит через эти системы.
- Небольшая ссылка на условия возврата.
3.2. Полный каталог
- Слева лаконичное закрепленное меню категорий и подкатегорий.
- Меню должно оставаться доступным при скролле.
- В основной области сразу отображаются товары с пагинацией или удобной подгрузкой.
- Карточка-превью товара должна включать:
- изображение;
- название;
- выбор фасовки;
- цену за базовую единицу, если это уместно;
- цену за выбранную фасовку;
- кнопку добавления в корзину именно выбранной фасовки;
- кнопку сравнения;
- доступность/публикацию.
3.3. Страница категории и подкатегории
- Слева закрепленное меню категорий и подкатегорий.
- Сначала товары, потом SEO/описательный текст, чтобы текст не мешал покупателю выбирать.
- Карточки товара такие же, как в полном каталоге.
3.4. Страница товара
- Фото товара.
- Название.
- Выбор фасовки.
- Цена за базовую единицу, если применимо.
- Цена за выбранную фасовку.
- Количество с шагом выбранной фасовки.
- Кнопка "В корзину".
- Описание и информация о товаре.
- Блок "С этим товаром приобретают" не менее 15 товаров.
- Товары в блоке могут быть случайными, но желательно учитывать совместные покупки и категорию.
3.5. Сравнение товаров
- До 10 товаров в списке сравнения.
- Формат: простой список с превью.
- Из списка можно перейти к товару, добавить товар в корзину, удалить товар из сравнения.
- Внизу кнопка "Сбросить список сравнения".
- Логика должна быть похожа на избранное/отложенные товары, чтобы покупатель мог сначала собрать варианты, а потом выбрать.
3.6. Поиск
- Очень понятная строка поиска.
- Морфологический поиск: склонения, формы слов, ошибки, ассоциации.
- Голосовой ввод.
- Нужна короткая инструкция рядом с поиском или внутри модального окна помощи.
- Поиск должен быть удобен пожилым пользователям: крупное поле, понятные подсказки, простые результаты.
3.7. Корзина
- Корзина без регистрации.
- Изменение количества только кратно фасовке.
- Промокод:
- поле ввода;
- кнопка применить;
- кнопка аннулировать промокод.
- Указать, что промокоды действуют при наличном расчете.
- Указать, что весовые товары могут быть пересчитаны при передаче клиенту.
- Минимальную сумму заказа не показывать и не блокировать оформление.
- Покупатель может оформить любой заказ, после чего менеджер свяжется и при необходимости уточнит детали.
3.8. Оформление заказа
Обязательные поля:
- Имя;
- телефон;
- тип получения:
- доставка внутри МКАД;
- доставка за МКАД;
- самовывоз.
Необязательные поля:
- адрес;
- email;
- комментарий;
- желаемая дата получения.
Не нужно:
- ФИО;
- выбор оплаты;
- оплата на сайте;
- SMS.
На странице можно просто описать доступные способы оплаты:
- для физических лиц: наличные или QR-код при получении;
- заказ на сайте является предзаказом;
- оплата не требуется ни на одной странице сайта.
После оформления:
- если указан email, клиенту отправляется письмо с заказом, суммой, фасовками и составом заказа;
- администратору отправляется копия заказа на email, который будет указан позже;
- клиент видит страницу благодарности.
Текст благодарности в мягкой редакции:
"Спасибо, ваш заказ принят.
Мы благодарим вас за доверие к Рыбсток. Доставка и самовывоз выполняются после подтверждения заказа по телефону: так мы сможем уточнить наличие, фасовки и удобное время получения.
Если заказ оформлен сегодня до 14:00, мы свяжемся с вами в течение этого дня. Если заказ оформлен после 14:00, мы перезвоним на следующий рабочий день с 10:00 до 14:00.
Если вы указали желаемую дату получения, мы свяжемся с вами в этот день.
Суббота и воскресенье - выходные. Заказы, оформленные в пятницу после 14:00, обрабатываются в понедельник.
Если вопрос срочный, пожалуйста, позвоните нам: +7-977-736-33-63."
3.9. Личный кабинет и история заказов
- Регистрация не обязательна.
- История заказов хранится по email.
- Если клиент хочет посмотреть историю, он вводит email.
- На email приходит код входа.
- SMS не используются.
- Интерфейс максимально простой:
- ввести email;
- получить код;
- ввести код;
- увидеть список заказов.
- Если email при заказе не указан, история по email не сохраняется.
3.10. Доставка
Внутри МКАД
- От 5000 руб. - бесплатно.
- От 2000 до 5000 руб. - 599 руб.
- Минимальную сумму заказа на сайте не показывать как ограничение и не блокировать заказ.
За МКАД
Пользователь вводит адрес доставки. Расстояние от МКАД нужно считать по дороге, желательно через Яндекс.Карты.
Логика:
- до 10 км от МКАД: бесплатная доставка от 10000 руб.;
- от 10 км и дальше: сумма для бесплатной доставки равна расстояние в км * 1000 руб.;
- если заказ не проходит на бесплатную доставку: доставка = расстояние в км * 60 руб. + 199 руб.
Примеры:
- 15 км от МКАД: бесплатная доставка от 15000 руб.; иначе 15 * 60 + 199 = 1099 руб.
- 100 км от МКАД: бесплатная доставка от 100000 руб.; иначе 100 * 60 + 199 = 6199 руб.
Дополнительно:
- подъем до квартиры/офиса: 390 руб.;
- радиус: Московская область, близлежащие области по договоренности;
- доставка и самовывоз только после подтверждения заказа по телефону.
3.11. Самовывоз
- Понедельник - пятница: 18:00-21:00.
- Только после подтверждения заказа.
- Минимальную сумму заказа не использовать как блокировку.
3.12. Промокоды
Промокоды должны поддерживать:
- фиксированную скидку;
- процентную скидку;
- минимальную сумму заказа;
- ограничение по категориям;
- ограничение по подкатегориям;
- ограничение по отдельным товарам;
- срок действия;
- включение/выключение;
- видимость на сайте;
- ручное выделение в админке.
Стартовые промокоды:
- Рыбсток7000: 300 руб. при заказе от 7000 руб.;
- Рыбсток20000: 5% при заказе от 20000 руб.;
- Рыбсток50000: 7% при заказе от 50000 руб.
Важно: промокоды действуют при наличном расчете.
3.13. Популярные товары и рекомендации
Популярные товары:
- около 10 товаров на главной;
- из разных категорий и подкатегорий;
- случайно обновляются при новом посещении;
- приоритет у более покупаемых за последнее время;
- админ может корректировать, закреплять или собирать блок вручную.
"С этим товаром приобретают":
- не менее 15 товаров;
- название именно "С этим товаром приобретают";
- случайный выбор с возможностью улучшить алгоритм на основе заказов.
3.14. Отзывы Яндекс.Карт
- На главной странице показывать рейтинг Яндекс.Карт.
- Отображать только отзывы с оценкой 5 звезд.
- Нужно проверить техническую и юридическую возможность получения отзывов через API/виджет Яндекса.
- Если API не позволяет фильтровать отзывы, предусмотреть ручной блок отзывов в админке с ссылкой на Яндекс.Карты.
3.15. Прайс-лист
- В админке должна быть кнопка выгрузки прайс-листа в Excel.
- В прайс попадают только опубликованные позиции.
- Должны отображаться цены на разные фасовки.
- Выгрузка должна быть в текущем времени, одним нажатием.
- Желательно хранить дату и время последней выгрузки.
4. Админка
Админка должна быть логичной, быстрой и гибкой.
Минимальные разделы:
- Товары;
- Категории и подкатегории;
- Фасовки и цены;
- Заказы;
- Промокоды;
- Акции;
- Популярные товары;
- Отзывы;
- Настройки доставки;
- Настройки писем;
- Прайс-лист;
- Контентные страницы;
- Настройки живых счетчиков.
Функции админки:
- создавать и редактировать товары;
- управлять публикацией товаров;
- управлять фасовками и разными ценами;
- выбирать базовую единицу товара;
- управлять категориями и подкатегориями;
- смотреть заказы и менять статусы;
- создавать промокоды для всего сайта, категорий, подкатегорий и товаров;
- выделять промокоды на сайте;
- вручную управлять акциями;
- вручную корректировать популярные товары;
- выгружать прайс в Excel;
- управлять текстами писем;
- задавать email администратора для копий заказов.
5. Вопросы, которые стоит уточнить перед разработкой
- Какой локальный сервер и хостинг использовать для проекта на чистом PHP: Open Server Panel, Laragon, обычный хостинг, VPS или другой вариант?
- Есть ли уже текущий сайт, каталог, база товаров, Excel/CSV с товарами и фотографиями?
- Как сейчас хранятся товары: в Excel, 1С, МойСклад, вручную, в другой CMS?
- Нужно ли интегрироваться с 1С, МойСкладом или другой учетной системой?
- Нужен ли онлайн-остаток товара или достаточно статуса "в наличии/под заказ"?
- Нужны ли статусы заказов для клиента: принят, подтвержден, собран, передан, завершен?
- Какие письма нужны клиенту кроме письма о создании заказа?
- Какой email администратора использовать для копий заказов?
- Нужна ли отправка заказов в Telegram администратору, если SMS не используем?
- Нужна ли капча или другая защита от спама в оформлении заказа?
- Какие способы оплаты точно описывать на сайте: наличные, QR, безнал для юрлиц?
- Нужны ли отдельные цены для физлиц и юрлиц?
- Как округлять стоимость доставки за МКАД: километры округлять вверх, до десятых или по данным Яндекс.Карт?
- Что делать, если Яндекс.Карты не смогли определить адрес?
- Нужно ли сохранять расчет доставки в заказе или только показывать клиенту предварительно?
- Нужен ли ручной пересчет доставки администратором в заказе?
- Как учитывать подъем 390 руб.: отдельной галочкой в корзине или только текстом?
- Нужен ли выбор даты доставки в календаре..S?
- Нужно ли запрещать выбор выходных и праздников в календаре?
- Где брать производственный календарь РФ: встроенный список, API или ручная настройка в админке?
- Какой должен быть внешний стиль: более премиальный, складской/оптовый, домашний семейный или нейтральный продуктовый?
- Есть ли брендбук, логотип, цвета, шрифты?
- Какие фотографии склада и товаров уже есть?
- Нужно ли добавлять водяные знаки на изображения?
- Нужны ли SEO-страницы для категорий и подкатегорий?
- Нужна ли микроразметка товаров для поисковиков?
- Нужны ли фильтры: цена, фасовка, категория, наличие, производитель, страна, тип обработки, заморозка?
- Нужны ли бейджи: акция, хит, новинка, выгодная фасовка, свежая поставка?
- Нужна ли функция "повторить заказ" в истории заказов?
- Нужно ли администратору вручную создавать заказ из админки по телефону?
- Нужны ли разные роли в админке: владелец, менеджер, контент-менеджер?
- Нужно ли логировать изменения цен и товаров?
- Нужно ли показывать покупателю предупреждение, что итог по весовым товарам может измениться?
- Нужна ли интеграция с Яндекс.Метрикой и целями оформления заказа?
- Нужна ли интеграция с Google Analytics или только Яндекс.Метрика?
- Нужно ли подключать онлайн-чат или кнопку WhatsApp/Telegram/телефон?
- Какие страницы обязательны юридически: политика конфиденциальности, пользовательское соглашение, возврат, контакты?
- Нужно ли согласие на обработку персональных данных при оформлении заказа?
- Нужно ли хранить историю согласий на обработку персональных данных?
- Какой срок хранения кодов входа по email: 10 минут, 15 минут, 30 минут?
6. Дополнительные простые идеи для улучшения
- Кнопка "Повторить прошлый заказ" в истории заказов.
- Блок "Часто берут для семьи" на главной.
- Бейдж "Выгодно на большую семью" для крупных фасовок.
- Бейдж "Без предоплаты" рядом с корзиной и оформлением заказа.
- Быстрые подсказки в поиске: "горбуша", "креветки", "сыр", "ягоды".
- Голосовой поиск с кнопкой-микрофоном и короткой подсказкой.
- ��лок "Сегодня принимаем заказы 24/7, подтверждаем по телефону".
- В корзине подсказка: "Можно оформить как есть - менеджер уточнит фасовки и наличие".
- В админке быстрый режим редактирования цен прямо в списке товаров.
- В админке массовое включение/выключение публикации.
- В админке массовое изменение категории, подкатегории и базовой единицы.
- Импорт товаров из Excel/CSV.
- Экспорт заказов в Excel.
7. Технический подход
Проект Рыбсток делаем на чистом PHP без фреймворка.
Базовая связка:
- PHP 8.2+ или PHP 8.3+;
- MySQL или MariaDB;
- PDO для работы с базой;
- собственная админка на PHP;
- HTML, CSS и JavaScript для витрины;
- Яндекс.Карты для адресов и расчета доставки;
- email-отправка через SMTP;
- CSV/XLSX-выгрузка прайс-листа.
Чистый PHP выбран потому, что проект должен быстро запускаться на обычном хостинге, легко передаваться программисту и не зависеть от тяжелых фреймворков. При этом код нужно писать структурно: отдельные папки для контроллеров, моделей/репозиториев, сервисов, шаблонов, админки, загрузок, экспортов и настроек.
Рекомендуемая структура проекта:
public/- входная точка сайта и публичные assets;app/- основной PHP-код;app/Controllers/- обработчики страниц;app/Models/- модели данных;app/Repositories/- запросы к базе;app/Services/- бизнес-логика: доставка, промокоды, корзина, письма, прайс;views/- шаблоны сайта;admin/- собственная админка;storage/- загрузки, экспорты, логи;database/- SQL-схема, миграции или seed-файлы;docs/- рабочие документы проекта.
8. Пошаговый план работ
Этап 1. Уточнение и фиксация требований
- Подтвердить платформу.
- Получить текущий каталог товаров, фото, категории, фасовки и цены.
- Уточнить формат импорта: Excel, CSV, вручную.
- Уточнить email администратора.
- Уточнить дизайн-направление и наличие логотипа.
- Уточнить способ интеграции Яндекс.Карт.
- Уточнить юридические страницы и тексты.
Этап 2. Проектирование
- Спроектировать структуру базы данных:
- товары;
- фасовки;
- категории;
- заказы;
- позиции заказов;
- промокоды;
- пользователи/история по email;
- отзывы;
- настройки.
- Спроектировать логику расчета цен и шагов количества.
- Спроектировать логику доставки.
- Спроектировать админку.
- Спроектировать страницы сайта.
Этап 3. Быстрая обложка и витрина
- Сделать главную страницу.
- Сделать каталог.
- Сделать страницу категории.
- Сделать карточку товара.
- Сделать адаптивный интерфейс для мобильных и desktop.
- Добавить базовые блоки доверия, доставки, оплаты, свежести.
Этап 4. Каталог, фасовки и корзина
- Реализовать товары с фасовками.
- Реализовать переключение фасовок в карточках.
- Реализовать добавление в корзину выбранной фасовки.
- Реализовать изменение количества кратно фасовке.
- Реализовать предупреждение о весовых товарах.
Этап 5. Оформление заказа
- Реализовать простую форму заказа.
- Добавить выбор способа получения.
- Добавить расчет доставки.
- Добавить письмо клиенту при наличии email.
- Добавить письмо администратору.
- Добавить страницу благодарности.
Этап 6. Админка
- Раздел товаров.
- Раздел категорий.
- Раздел фасовок и цен.
- Раздел заказов.
- Раздел промокодов.
- Раздел популярных товаров и акций.
- Раздел отзывов.
- Раздел настроек доставки.
- Раздел выгрузки прайса.
Этап 7. Поиск, сравнение и история
- Реализовать морфологический поиск.
- Добавить голосовой ввод.
- Реализовать список сравнения до 10 товаров.
- Реализовать историю заказов по email-коду.
Этап 8. Интеграции
- Подключить Яндекс.Карты для адресов и расчета расстояния за МКАД.
- Подключить Яндекс.Метрику.
- Подключить рейтинг/отзывы Яндекс.Карт или ручной блок отзывов.
- Настроить email-отправку.
- Настроить производственный календарь или ручные нерабочие дни.
Этап 9. Прайс-лист
- Реализовать выгрузку Excel.
- Включать только опубликованные товары.
- Показывать все фасовки и цены.
- Добавить кнопку в админке.
Этап 10. Тестирование и запуск
- Проверить мобильную версию.
- Проверить desktop-версию.
- Проверить добавление товаров с разными фасовками.
- Проверить расчет доставки внутри МКАД.
- Проверить расчет доставки за МКАД.
- Проверить оформление заказа без email.
- Проверить оформление заказа с email.
- Проверить письма клиенту и администратору.
- Проверить промокоды.
- Проверить выгрузку прайса.
- Проверить админку.
- Запустить сайт.
9. Финальный промпт для разработки сайта
Нужно разработать интернет-магазин Рыбсток под ключ. Это сайт продуктов питания с крупными фасовками, рассчитанный в первую очередь на частных покупателей: семьи, соседей, людей, которые покупают продукты домой и делят упаковки между собой. Юридические лица, кафе, рестораны и магазины тоже важны, но интерфейс должен быть максимально простым, понятным и дружелюбным для обычных покупателей, включая пожилых людей.
Нужна быстрая готовая версия сайта с логичной гибкой админкой, чтобы владелец мог быстро управлять товарами, фасовками, ценами, промокодами, акциями, популярными товарами, заказами и выгрузкой прайс-листа.
Сайт должен включать:
- Главную страницу с каталогом, поиском, меню категорий и подкатегорий, блоками доставки, акциями, популярными товарами, рейтингом Яндекс.Карт, отзывами 5 звезд, блоками доверия, датой последнего поступления, виртуальными счетчиками температуры камер и заметным сообщением "Работаем без предоплаты. Оплата только при получении товара".
- Полный каталог с левым закрепленным меню категорий и подкатегорий, товарами, пагинацией/подгрузкой и карточками-превью.
- Страницы категорий и подкатегорий с товарами сверху и текстом под товарами.
- Карточку товара с фото, описанием, выбором фасовки, ценой за базовую единицу и ценой за фасовку, количеством с шагом выбранной фасовки, кнопкой покупки и блоком "С этим товаром приобретают" минимум на 15 товаров.
- Корзину без регистрации, с промокодом, отменой промокода, расчетом суммы, предупреждением о возможном пересчете весовых товаров и простым оформлением заказа.
- Оформление заказа с обязательными полями: имя, телефон, выбор "доставка внутри МКАД / доставка за МКАД / самовывоз". Адрес и email необязательны. ФИО, выбор оплаты и онлайн-оплата не нужны.
- После оформления заказа клиент видит страницу благодарности, получает письмо на email, если указал email, а администратор получает копию заказа на свой email.
- Историю заказов по email: клиент вводит email, получает код на email, вводит код и видит свои заказы. SMS не использовать.
- Сравнение товаров до 10 позиций в формате простого списка с превью и кнопкой сброса.
- Умный морфологический поиск со склонениями, ассоциациями, опечатками и голосовым вводом.
- Админку для товаров, категорий, фасовок, заказов, промокодов, акций, популярных товаров, отзывов, настроек доставки, email и прайс-листа.
- Выгрузку прайс-листа в Excel одним нажатием. В прайс попадают только опубликованные товары, включая все фасовки и цены.
Товары:
- около 1000 товаров;
- у товара может быть несколько фасовок;
- у каждой фасовки своя цена;
- покупка только кратно выбранной фасовке;
- базовая единица по умолчанию кг, но в админке можно выбрать кг, штука, литр, упаковка и другие единицы;
- если товар имеет фасовку больше 1 кг, показывать цену за кг и цену за упаковку;
- если товар имеет единственную фасовку 1 кг, не дублировать цену за упаковку;
- если товар штучный или фиксированной фасовки, например банка 320 г, показывать цену за упаковку 320 г и не пересчитывать за кг.
Доставка:
- внутри МКАД: от 5000 руб. бесплатно, от 2000 до 5000 руб. - 599 руб.;
- минимальную сумму заказа на сайте не показывать как ошибку и не блокировать оформление;
- за МКАД пользователь вводит адрес, расстояние от МКАД считать по дороге через Яндекс.Карты;
- до 10 км от МКАД бесплатная доставка от 10000 руб.;
- от 10 км и дальше сумма бесплатной доставки = расстояние в км * 1000 руб.;
- если заказ не проходит на бесплатную доставку, доставка = расстояние в км * 60 руб. + 199 руб.;
- пример 15 км: бесплатно от 15000 руб., иначе 1099 руб.;
- пример 100 км: бесплатно от 100000 руб., иначе 6199 руб.;
- самовывоз понедельник - пятница 18:00-21:00, только после подтверждения;
- доставка и самовывоз только после подтверждения заказа по телефону.
Промокоды:
- фиксированная скидка и процентная скидка;
- применяются к заказу, категории, подкатегории или отдельным товарам;
- можно задавать минимальную сумму, срок действия, активность и видимость;
- стартовые промокоды: Рыбсток7000, Рыбсток20000, Рыбсток50000;
- указать, что промокоды действуют при наличном расчете.
Живые блоки:
- автоматическая дата последнего поступления товара: текущий рабочий день, без выходных и официальных праздников;
- виртуальная температура морозильной камеры: от -18 до -20 градусов;
- виртуальная температура холодильной камеры: от -2 до +1 градуса;
- значения должны периодически немного меняться и выглядеть реалистично;
- текст про склад: морозильные камеры более 1800 кв. м, холодильные более 500 кв. м;
- модуль фото склада.
Дизайн:
- лаконичный, понятный, продуктовый, аккуратный;
- без лишней перегруженности;
- крупные понятные элементы;
- удобство для пожилых пользователей;
- акцент на бесплатную доставку, отсутствие предоплаты, доверие, свежесть, надежность;
- сайт должен выглядеть живым, рабочим и регулярно обновляемым.
Нужно сначала спроектировать структуру, базу данных, страницы, админку и логику, затем реализовать проект поэтапно, проверяя корзину, фасовки, доставку, промокоды, письма, прайс-лист и адаптивность.
10. Ближайший следующий шаг
Перед кодом нужно получить исходные данные по каталогу и подготовить структуру базы данных/моделей для товаров, фасовок, заказов, промокодов и доставки.
11. Статус выполнения
- Шаг 1 выполнен: выбрана техническая связка на чистом PHP, создан стартовый каркас проекта, подключение к MariaDB через
.env, базовые папки и файлШАГ_1_ТЕХНИЧЕСКОЕ_РЕШЕНИЕ.md. - Шаг 2 выполнен: создана SQL-схема базы
database/schema.sql, стартовые данныеdatabase/seed.sql, страница установкиpublic/install.phpи документdocs/ШАГ_2_БАЗА_ДАННЫХ.md. - Шаг 3 выполнен: созданы первые PHP-классы, репозитории, контроллер главной страницы, вывод категорий/настроек/популярных товаров, каталог на главной, категории старого сайта в
database/seed.sql, SEO-поля, хлебные крошки, кнопка назад, градации выгодных цен по промокодам и документdocs/ШАГ_3_PHP_КЛАССЫ.md. - Перенос товаров выделен в отдельную задачу:
docs/ПЛАН_ПЕРЕНОСА_ТОВАРОВ.md. - Шаг 4 выполнен: добавлен роутинг, страницы полного каталога и категорий, боковая навигация, вывод товаров по вложенным категориям, первые формы админки для категорий/товаров, расширенная модель атрибутов/фасовок как в старой админке, анализ первых товаров, сценарные сегменты каталога, бейджи, правила рекомендаций, события для будущего обучения и документы
docs/ШАГ_4_КАТАЛОГ_И_АДМИНКА.md,docs/АНАЛИЗ_ПЕРВЫХ_ТОВАРОВ_И_АТРИБУТОВ.md,docs/АНАЛИЗ_КАТАЛОГА_И_РЕКОМЕНДАЦИЙ.md. - Главная страница дополнена требованиями к первому экрану: видимые контакты, пункт самовывоза, меню
Главная / Каталог / Доставка / Контакты / Корзина, баннеры про доставку, день-в-день и отсутствие предоплаты, видимые промокоды и блок будущего запроса проходных цен. - Ценовые градации должны быть четыре: базовая цена, наличный расчет от 20 000 руб. со скидкой 5%, наличный расчет от 50 000 руб. со скидкой 7%, безналичный расчет с наценкой 8%.
- Следующий шаг: сделать авторизацию администратора, защитить админку, добавить редактирование категорий/товаров и заготовку страницы товара.