From 891315780f4952399c6612dfce53decb429396e4 Mon Sep 17 00:00:00 2001 From: Alisa Date: Wed, 3 Jun 2026 22:54:10 +0300 Subject: [PATCH] =?UTF-8?q?1=20=D1=82=D0=B5=D1=81=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/sftp.json | 11 + ПЛАН_ДЕЙСТВИЙ_РЫБСТОК.md | 634 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 645 insertions(+) create mode 100644 .vscode/sftp.json create mode 100644 ПЛАН_ДЕЙСТВИЙ_РЫБСТОК.md diff --git a/.vscode/sftp.json b/.vscode/sftp.json new file mode 100644 index 0000000..a5e73c3 --- /dev/null +++ b/.vscode/sftp.json @@ -0,0 +1,11 @@ +{ + "name": "Loveriba.ru", + "host": "cp8.iii.ovh", + "protocol": "sftp", + "port": 22, + "username": "alice", + "remotePath": "/home/alice/web/loveriba.ru", + "uploadOnSave": true, + "useTempFile": false, + "openSsh": false +} diff --git a/ПЛАН_ДЕЙСТВИЙ_РЫБСТОК.md b/ПЛАН_ДЕЙСТВИЙ_РЫБСТОК.md new file mode 100644 index 0000000..f6d9693 --- /dev/null +++ b/ПЛАН_ДЕЙСТВИЙ_РЫБСТОК.md @@ -0,0 +1,634 @@ +# План действий по созданию сайта Рыбсток + +## 1. Цель проекта + +Создать максимально готовый интернет-магазин продуктов питания Рыбсток под ключ: быстрая витрина, удобная корзина, простое оформление заказа без регистрации, логичная гибкая админка, работа с фасовками, промокодами, доставкой по Москве и Московской области, выгрузкой прайс-листа и живыми блоками доверия. + +Главный покупатель: частное лицо, семья, соседи, люди, которые покупают продукты домой крупными упаковками. Юридические лица, кафе, рестораны и магазины тоже учитываются, но интерфейс должен быть в первую очередь простым, понятным и не перегруженным. + +Ключевой принцип: сайт должен быть удобен людям разного возраста, включая пожилых покупателей. Оформление заказа должно быть максимально простым, без лишних условий, регистрации, оплаты на сайте и сложных шагов. + +## 2. Основные сущности сайта + +### 2.1. Товары + +- Около 1000 товаров. +- У товара могут быть разные фасовки и для каждой фасовки своя цена. +- Пример: горбуша неразделанная: + - упаковка 20 кг по 580 руб./кг; + - пласт 10 кг по 600 руб./кг. +- Покупка возможна только кратно выбранной фасовке. +- Если выбрана фасовка 10 кг, кнопки плюс/минус меняют количество на 10 кг. +- Для каждой фасовки хранить: + - название фасовки; + - количество; + - единицу измерения; + - цену за базовую единицу; + - цену за всю фасовку; + - доступность; + - признак публикации. +- Базовая единица по умолчанию: кг. +- В админке должна быть возможность выбрать другую базовую единицу: кг, штука, литр, упаковка и т.д. + +### 2.2. Отображение цен + +- Если товар продается весом и фасовка больше 1 кг, показывать цену за кг и цену за фасовку. +- Если товар имеет единственную фасовку 1 кг, не дублировать цену за упаковку 1 кг. +- Если товар штучный или имеет единственную фиксированную фасовку, например банка 320 г, показывать цену за упаковку 320 г и не пересчитывать за кг. +- В карточке-превью и в полной карточке товара должен быть выбор фасовки. +- Над выбором фасовки текст: "Выберите доступную фасовку". +- При переключении фасовки цена должна меняться сразу. + +### 2.3. Категории + +Основные категории для главного заголовка и меню: + +- Рыба; +- Готовая продукция; +- Полуфабрикаты; +- Мясо; +- Сыры; +- Ягоды; +- Овощи. + +Нужны категории и подкатегории. Подкатегории визуально отделить от категорий, например более мягким цветом, меньшим шрифтом или отступом. + +## 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. Вопросы, которые стоит уточнить перед разработкой + +1. На какой платформе быстрее запускать проект: Laravel/Filament, WordPress/WooCommerce с доработками, 1C-Bitrix, Django, Next.js + готовая админка или другая связка? +2. Есть ли уже текущий сайт, каталог, база товаров, Excel/CSV с товарами и фотографиями? +3. Как сейчас хранятся товары: в Excel, 1С, МойСклад, вручную, в другой CMS? +4. Нужно ли интегрироваться с 1С, МойСкладом или другой учетной системой? +5. Нужен ли онлайн-остаток товара или достаточно статуса "в наличии/под заказ"? +6. Нужны ли статусы заказов для клиента: принят, подтвержден, собран, передан, завершен? +7. Какие письма нужны клиенту кроме письма о создании заказа? +8. Какой email администратора использовать для копий заказов? +9. Нужна ли отправка заказов в Telegram администратору, если SMS не используем? +10. Нужна ли капча или другая защита от спама в оформлении заказа? +11. Какие способы оплаты точно описывать на сайте: наличные, QR, безнал для юрлиц? +12. Нужны ли отдельные цены для физлиц и юрлиц? +13. Как округлять стоимость доставки за МКАД: километры округлять вверх, до десятых или по данным Яндекс.Карт? +14. Что делать, если Яндекс.Карты не смогли определить адрес? +15. Нужно ли сохранять расчет доставки в заказе или только показывать клиенту предварительно? +16. Нужен ли ручной пересчет доставки администратором в заказе? +17. Как учитывать подъем 390 руб.: отдельной галочкой в корзине или только текстом? +18. Нужен ли выбор даты доставки в календаре? +19. Нужно ли запрещать выбор выходных и праздников в календаре? +20. Где брать производственный календарь РФ: встроенный список, API или ручная настройка в админке? +21. Какой должен быть внешний стиль: более премиальный, складской/оптовый, домашний семейный или нейтральный продуктовый? +22. Есть ли брендбук, логотип, цвета, шрифты? +23. Какие фотографии склада и товаров уже есть? +24. Нужно ли добавлять водяные знаки на изображения? +25. Нужны ли SEO-страницы для категорий и подкатегорий? +26. Нужна ли микроразметка товаров для поисковиков? +27. Нужны ли фильтры: цена, фасовка, категория, наличие, производитель, страна, тип обработки, заморозка? +28. Нужны ли бейджи: акция, хит, новинка, выгодная фасовка, свежая поставка? +29. Нужна ли функция "повторить заказ" в истории заказов? +30. Нужно ли администратору вручную создавать заказ из админки по телефону? +31. Нужны ли разные роли в админке: владелец, менеджер, контент-менеджер? +32. Нужно ли логировать изменения цен и товаров? +33. Нужно ли показывать покупателю предупреждение, что итог по весовым товарам может измениться? +34. Нужна ли интеграция с Яндекс.Метрикой и целями оформления заказа? +35. Нужна ли интеграция с Google Analytics или только Яндекс.Метрика? +36. Нужно ли подключать онлайн-чат или кнопку WhatsApp/Telegram/телефон? +37. Какие страницы обязательны юридически: политика конфиденциальности, пользовательское соглашение, возврат, контакты? +38. Нужно ли согласие на обработку персональных данных при оформлении заказа? +39. Нужно ли хранить историю согласий на обработку персональных данных? +40. Какой срок хранения кодов входа по email: 10 минут, 15 минут, 30 минут? + +## 6. Дополнительные простые идеи для улучшения + +- Кнопка "Повторить прошлый заказ" в истории заказов. +- Блок "Часто берут для семьи" на главной. +- Бейдж "Выгодно на большую семью" для крупных фасовок. +- Бейдж "Без предоплаты" рядом с корзиной и оформлением заказа. +- Быстрые подсказки в поиске: "горбуша", "креветки", "сыр", "ягоды". +- Голосовой поиск с кнопкой-микрофоном и короткой подсказкой. +- Блок "Сегодня принимаем заказы 24/7, подтверждаем по телефону". +- В корзине подсказка: "Можно оформить как есть - менеджер уточнит фасовки и наличие". +- В админке быстрый режим редактирования цен прямо в списке товаров. +- В админке массовое включение/выключение публикации. +- В админке массовое изменение категории, подкатегории и базовой единицы. +- Импорт товаров из Excel/CSV. +- Экспорт заказов в Excel. + +## 7. Предлагаемый технический подход + +Так как нужна быстрая сборка под ключ с логичной админкой, гибкими товарами и возможностью доработки программистом, оптимальные варианты: + +### Вариант A: Laravel + Filament + +Подходит, если нужен индивидуальный проект с сильной админкой, гибкими фасовками, промокодами, заказами и прайсами. + +Плюсы: + +- быстрая мощная админка; +- гибкая база данных; +- удобно дорабатывать; +- легко сделать Excel-выгрузку; +- хорошо подходит для кастомной логики доставки и фасовок. + +Минусы: + +- больше разработки, чем на готовой CMS. + +### Вариант B: WordPress + WooCommerce + доработки + +Подходит, если важнее очень быстрый запуск на готовой базе. + +Плюсы: + +- быстро поднять витрину; +- много готовых модулей; +- понятная админка. + +Минусы: + +- сложная кастомная логика фасовок, доставки и промокодов может потребовать много доработок; +- админка может стать менее аккуратной при большом количестве плагинов. + +### Рекомендация + +Для проекта Рыбсток лучше выбрать Laravel + Filament, если цель - надежный сайт с гибкой логикой и понятной админкой, который можно быстро дорабатывать. Если нужно запуститься максимально срочно любой ценой, можно рассмотреть WooCommerce, но сложность фасовок и доставки делает индивидуальную разработку предпочтительнее. + +## 8. Пошаговый план работ + +### Этап 1. Уточнение и фиксация требований + +1. Подтвердить платформу. +2. Получить текущий каталог товаров, фото, категории, фасовки и цены. +3. Уточнить формат импорта: Excel, CSV, вручную. +4. Уточнить email администратора. +5. Уточнить дизайн-направление и наличие логотипа. +6. Уточнить способ интеграции Яндекс.Карт. +7. Уточнить юридические страницы и тексты. + +### Этап 2. Проектирование + +1. Спроектировать структуру базы данных: + - товары; + - фасовки; + - категории; + - заказы; + - позиции заказов; + - промокоды; + - пользователи/история по email; + - отзывы; + - настройки. +2. Спроектировать логику расчета цен и шагов количества. +3. Спроектировать логику доставки. +4. Спроектировать админку. +5. Спроектировать страницы сайта. + +### Этап 3. Быстрая обложка и витрина + +1. Сделать главную страницу. +2. Сделать каталог. +3. Сделать страницу категории. +4. Сделать карточку товара. +5. Сделать адаптивный интерфейс для мобильных и desktop. +6. Добавить базовые блоки доверия, доставки, оплаты, свежести. + +### Этап 4. Каталог, фасовки и корзина + +1. Реализовать товары с фасовками. +2. Реализовать переключение фасовок в карточках. +3. Реализовать добавление в корзину выбранной фасовки. +4. Реализовать изменение количества кратно фасовке. +5. Реализовать предупреждение о весовых товарах. + +### Этап 5. Оформление заказа + +1. Реализовать простую форму заказа. +2. Добавить выбор способа получения. +3. Добавить расчет доставки. +4. Добавить письмо клиенту при наличии email. +5. Добавить письмо администратору. +6. Добавить страницу благодарности. + +### Этап 6. Админка + +1. Раздел товаров. +2. Раздел категорий. +3. Раздел фасовок и цен. +4. Раздел заказов. +5. Раздел промокодов. +6. Раздел популярных товаров и акций. +7. Раздел отзывов. +8. Раздел настроек доставки. +9. Раздел выгрузки прайса. + +### Этап 7. Поиск, сравнение и история + +1. Реализовать морфологический поиск. +2. Добавить голосовой ввод. +3. Реализовать список сравнения до 10 товаров. +4. Реализовать историю заказов по email-коду. + +### Этап 8. Интеграции + +1. Подключить Яндекс.Карты для адресов и расчета расстояния за МКАД. +2. Подключить Яндекс.Метрику. +3. Подключить рейтинг/отзывы Яндекс.Карт или ручной блок отзывов. +4. Настроить email-отправку. +5. Настроить производственный календарь или ручные нерабочие дни. + +### Этап 9. Прайс-лист + +1. Реализовать выгрузку Excel. +2. Включать только опубликованные товары. +3. Показывать все фасовки и цены. +4. Добавить кнопку в админке. + +### Этап 10. Тестирование и запуск + +1. Проверить мобильную версию. +2. Проверить desktop-версию. +3. Проверить добавление товаров с разными фасовками. +4. Проверить расчет доставки внутри МКАД. +5. Проверить расчет доставки за МКАД. +6. Проверить оформление заказа без email. +7. Проверить оформление заказа с email. +8. Проверить письма клиенту и администратору. +9. Проверить промокоды. +10. Проверить выгрузку прайса. +11. Проверить админку. +12. Запустить сайт. + +## 9. Финальный промпт для разработки сайта + +Нужно разработать интернет-магазин Рыбсток под ключ. Это сайт продуктов питания с крупными фасовками, рассчитанный в первую очередь на частных покупателей: семьи, соседей, людей, которые покупают продукты домой и делят упаковки между собой. Юридические лица, кафе, рестораны и магазины тоже важны, но интерфейс должен быть максимально простым, понятным и дружелюбным для обычных покупателей, включая пожилых людей. + +Нужна быстрая готовая версия сайта с логичной гибкой админкой, чтобы владелец мог быстро управлять товарами, фасовками, ценами, промокодами, акциями, популярными товарами, заказами и выгрузкой прайс-листа. + +Сайт должен включать: + +1. Главную страницу с каталогом, поиском, меню категорий и подкатегорий, блоками доставки, акциями, популярными товарами, рейтингом Яндекс.Карт, отзывами 5 звезд, блоками доверия, датой последнего поступления, виртуальными счетчиками температуры камер и заметным сообщением "Работаем без предоплаты. Оплата только при получении товара". +2. Полный каталог с левым закрепленным меню категорий и подкатегорий, товарами, пагинацией/подгрузкой и карточками-превью. +3. Страницы категорий и подкатегорий с товарами сверху и текстом под товарами. +4. Карточку товара с фото, описанием, выбором фасовки, ценой за базовую единицу и ценой за фасовку, количеством с шагом выбранной фасовки, кнопкой покупки и блоком "С этим товаром приобретают" минимум на 15 товаров. +5. Корзину без регистрации, с промокодом, отменой промокода, расчетом суммы, предупреждением о возможном пересчете весовых товаров и простым оформлением заказа. +6. Оформление заказа с обязательными полями: имя, телефон, выбор "доставка внутри МКАД / доставка за МКАД / самовывоз". Адрес и email необязательны. ФИО, выбор оплаты и онлайн-оплата не нужны. +7. После оформления заказа клиент видит страницу благодарности, получает письмо на email, если указал email, а администратор получает копию заказа на свой email. +8. Историю заказов по email: клиент вводит email, получает код на email, вводит код и видит свои заказы. SMS не использовать. +9. Сравнение товаров до 10 позиций в формате простого списка с превью и кнопкой сброса. +10. Умный морфологический поиск со склонениями, ассоциациями, опечатками и голосовым вводом. +11. Админку для товаров, категорий, фасовок, заказов, промокодов, акций, популярных товаров, отзывов, настроек доставки, email и прайс-листа. +12. Выгрузку прайс-листа в 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. Ближайший следующий шаг + +Перед кодом нужно выбрать платформу и получить исходные данные по каталогу. Рекомендуемый следующий шаг: принять решение по технической связке и подготовить структуру базы данных/моделей для товаров, фасовок, заказов, промокодов и доставки.