Доработка сайта E1
Главная страница
Задача
Добавить (сверстать и реализовать) формы "Остались вопросы или хотите заказать встроенный шкаф-купе?" и "Заказать консультацию специалиста", сделать 2 представления в виде встраиваемых конструкций и в виде модального окна (вызов дожен быть по событию).
Проставить цели на формы
Добавить блок "Экспресс-распродажа", в котором выводить те товары, которые помечены меткой или участвуют в соответсвующей акции. Сортировка товаров сквозная с каталогом. Внешний вид - плитка со всеми товарами, которые попали в выборку (без пагинации).
Измененить поле "Тип связи" в фильтрах и его логику в отображении в карточке.
Добавить теги с акциями в каждый из товаров.
Цветовая палитра
Особенности проекта
Или почему он включен в портфолио
Проект, помимо того что пробовался делаться из комбинации разных решений, имеет в себе очень неудобную основу, в виде цены выведенной в отдельное поле (т.е. не используется модуль sale от Битрикса). Поэтому механизмы и решения по работе с корзиной (добавление акций) работать как они задуманы - не будут. Обусловлено это дело тем что сначала проект разрабатывался на лицензии "Старт", где было сделано много логики и сверстано разделов, и уже потом расширение лицензии до "Малый бизнес", на этом моменте был вовлечен уже я, и передо мной были поставлены задачи выше.
Добавлю от себя, что на момент получения проект и его анализа, я сказал, что в дальнейшем придется проект переделывать и использовать хотя бы модуль sale как нужно. Загвоздка была в уже написаном слое логики по расчете цен, который получал товар, его комплектующий и пытался рассчитать конечную цену с учетом доставки и дополнительных наценок. От него не хотели отказываться на этом этапе.
Опишу проблемы и решения, которые возникли в процессе.
Поскольку цены рассчитываются через свой обработчик, я заметил, что при обработке на 10 000 элементах идет борьба за ресурсы, очень много выделяется памяти и на конечном этапе формирования заказа должно пройти примерно секунд 7-10, чтобы вывелась цена без доставки.
После анализа того как формируются цены на проекте, и погружению в процесс определения наличия или бронирования элементов, я добавил кеширование в поля комплектующих и уменьшил количество запросов. В расчете цены использовалась сумма базовой цены и дополнительно высчитанные ценники на основе полей и количества.
Мне удалось помимо тех задач которые были поставлены, оптимизировать время получения рассчитанной цены. Время уменьшилось до 2-3 сек.
UPD: сейчас 2021 год, проект переписан на решении от Аспро, где расчет цен уже идет по-другому. Как и тема, то что было доработано мною, уже не посмотреть.