Описание задачи
Необходимо разработать гибкий механизм управления ценами в интернет-магазине на платформе 1С-Битрикс. Цена товара должна автоматически изменяться в зависимости от:
- Бренда товара (две группы: спецбренды и обычные бренды)
- Итоговой суммы корзины (три порога: розница, опт, крупный опт)
Матрица цен
- Группа А (спецбренды):
- Розница - тип цены 1 (из 1С)
- Опт - тип цены 3 (из 1С)
- Крупный опт - тип цены 3 минус 15% (рассчитывается на лету, всегда вслед за оптовой ценой)
- Группа Б (остальные бренды):
- Розница - тип цены 2 (из 1С)
- Опт - тип цены 4 (из 1С)
- Крупный опт - тип цены 5 (из 1С)
Привязка цен к товарам выполняется по полю Бренд. Список спецбрендов для группы А выносится в настройки в админку.
Отображение в каталоге
- В карточке товара и в списке товаров выводится только розничная цена - она же основная цена.
- Все три цены (розница, опт, крупный опт) участвуют в расчёте корзины, но визуально переключаются без перезагрузки.
Логика корзины (AJAX)
- При изменении состава корзины автоматически (без перезагрузки страницы) пересчитываются цены для каждой позиции при пересечении порогов:
- до 25 000 ₽ - розничная цена
- от 25 000 ₽ (включительно) до 500 000 ₽ - оптовая цена
- от 500 000 ₽ (включительно) - крупный опт
- Уведомление в корзине: «Добавьте еще <сумма> ₽ до оптовой цены».
- Цена за единицу товара и итоговая сумма подсвечиваются и меняются при каждом добавлении/удалении товара. Полный AJAX без перезагрузок.
Требования к реализации
- Чистота кода. Внесение изменений только в свою логику, не затрагивая ядро и стандартные шаблоны. Все изменения должны переживать обновление платформы и сторонних модулей.
- Производительность. Код не должен вызывать замедлений ни при 1 товаре в корзине, ни при 500+.
- Безопасность. Обязателен Code Review: не допускаются SQL-инъекции, XSS, медленные неоптимизированные запросы или грязные условия.
Интерфейс администратора
- Создать страницу в админ‑панели для управления:
- список спецбрендов (группа А)
- привязка типов цен к группа (если требуется корректировка)
Гарантия
Исполнитель обязуется бесплатно исправлять любые ошибки, обнаруженные в течение 10 дней после сдачи проекта.