Написание сайта по готовому ТЗ

Бюджет: по договоренности
Тз с сайта Битрикс 24, можно сделать шаблонно на нем или на любой другой платформе.

Техническое задание (ТЗ) для разработки сайта доставки готовых рационов с заменой блюд на базе шаблона «Интернет-магазин с подпиской» в Bitrix24:

ТЗ: Сайт доставки готовых рационов с заменой блюд
Цель: Создать сайт, где пользователь может выбрать подписку на ежедневные рационы, просматривать меню на неделю вперёд и заменять блюда по одному — с автоматическим пересчётом цены, если новое дороже. Замены доступны только за 3 дня до доставки.

1. Общие требования
- Платформа: Bitrix24 (шаблон «Интернет-магазин с подпиской» — база).
- Язык: Русский.
- Адаптивный дизайн — корректное отображение на ПК, планшете, телефоне.
- Авторизация: Пользователь регистрируется/логинится — его данные и предпочтения сохраняются.
- Подписка: Автоматические еженедельные заказы (можно отключить/приостановить).

2. Функционал

2.1. Календарь меню
- На главной странице — календарь с отображением блюд на 7 дней вперёд (сегодня + 6 дней).
- Каждый день — блок с 3–5 блюдами (завтрак, обед, ужин — по одному на приём).
- Блюда — как товары из каталога, привязанные к дате доставки через поле DATE_DELIVERY.
- Возможность переключения между неделями («Предыдущая», «Следующая»).
- Если блюдо уже заменено — отображать значок 🔄 и название замены (например: «Курица → Тунец»).

2.2. Замена блюд
- Каждое блюдо в календаре имеет кнопку «Заменить».
- При клике — открывается модальное окно:
- Список альтернатив — только товары из того же типа (завтрак/обед/ужин), в наличии, подходящие по диете/аллергиям пользователя (если указаны в профиле).
- Сортировка: по популярности, по цене (по умолчанию — по алфавиту).
- Только одно блюдо за раз — выбор фиксируется при нажатии «Подтвердить».
- После замены:
- В календаре обновляется название блюда + значок 🔄.
- В корзине/заказе — автоматически пересчитывается итоговая сумма.

2.3. Перерасчёт цены
- При замене:
- Если новое блюдо дороже — разница добавляется к итоговой сумме.
- Если дешевле — разница возвращается на счёт пользователя (можно использовать как бонус для следующего заказа).
- Сумма обновляется в реальном времени в шапке сайта и в заказе.
- В истории заказов — отображается:
- Исходное блюдо + цена
- Заменённое блюдо + цена
- Разница (с плюсом/минусом)

2.4. Ограничение по времени
- Замены разрешены только если до даты доставки осталось 3+ дня.
- Если пользователь пытается заменить блюдо раньше —
- Показывается модальное окно:
    > «Замены доступны только за 3 дня до доставки. Вы можете изменить блюдо с [дата].»
- Кнопка «Заменить» — неактивна (серая, с подсказкой).
- После истечения срока — кнопка исчезает, замены блокируются.

2.5. Сохранение предпочтений
- История замен сохраняется в профиле пользователя.
- При повторном оформлении подписки — система предлагает применить прошлые замены (чекбокс: «Применить мои предыдущие замены» — по умолчанию выключен).
- Пользователь может сбросить историю замен в настройках профиля.

2.6. Интеграция с подпиской
- Каждый заказ — это автоматический цикл подписки (раз в неделю).
- Замены не влияют на график доставок — только на содержимое заказа.
- Если пользователь отменяет подписку — все его замены сохраняются, но не применяются автоматически при повторной активации.

2.7. Управление контентом (админка)
- Админ может:
- Добавлять/редактировать блюда (название, описание, фото, цена, тип — завтрак/обед/ужин, диета — например: низкоуглеводная, без глютена).
- Привязывать блюда к датам доставки (через поле DATE_DELIVERY).
- Управлять списком альтернатив — указывать, какие блюда можно заменить на какие (например: «Курица» → «Тунец», «Говядина»).
- Видеть статистику: какие блюда чаще заменяют, какие альтернативы популярны.

3. Технические требования
- Кастомный компонент: «Календарь меню» — на основе bitrix:catalog.section + JS-логика.
- Поля в товаре:
- DATE_DELIVERY (дата доставки)
- DIET_TYPE (диета: например, «Без сахара», «Веган»)
- ALTERNATIVES (связь с другими — через многозначное поле)
- Скрипты:
- Пересчёт цены — на стороне клиента (JS) + сервер (PHP) для безопасности.
- Проверка срока замены — на сервере (сравнение DATE_DELIVERY с текущей датой).
- Кэширование: Календарь кэшируется на 1 час — чтобы не грузить базу при каждом обновлении.
- Безопасность: Проверка прав доступа — пользователь может менять только свои блюда.

4. Тестирование
- Проверить:
- Корректность пересчёта цены при замене на дороже/дешевле.
- Блокировка замен за 3 дня до доставки.
- Сохранение истории замен и их применение при новой подписке.
- Отображение календаря на мобильных.
- Работа подписки после замены — не сбивается ли график.

5. Дополнительно (опционально)
- Уведомления: email/SMS за 24 часа до даты замены — «У вас есть возможность изменить блюда».
- Форма в профиле: «Мои предпочтения» — выбор диет, аллергий, нелюбимые ингредиенты.
- Возможность скачать меню в PDF.

Итог:
Шаблон интернет-магазина с подпиской — 80% готового функционала.
Оставшиеся 20% — кастомный календарь + логика замен товара
Опубликован 08.05.2026 в 08:21

Выберите способ верификации:

Обновите страницу после прохождения верификации.