Процесс создания большого программного продукта – это много итерационный процесс, где с каждой итерацией продукт становится лучше и удобнее. Мы приверженцы стиля программирования под кодовым названием «прогрессивный джипег» - это означает, что функциональность постепенно получает все большую детализацию, хотя ею можно пользоваться и на самой первой итерации, но с каждой следующей итерацией ею можно пользоваться еще более удобно. К чему это? Дело в том, что последний месяц мы как раз занимались рефакторингом комплектаций в административной панели. Ниже я расскажу о деталях данной задачи.
Чем нас не устраивала предыдущая реализация комплектаций?
Архитектурно комплектации идеально решали свою задачу, однако существовали некоторые моменты, которые нас не устраивали и мы хотели их улучшить, в частности:
- Отсутствовала возможность группового редактирования комплектаций.
- Отсутствовала возможность быстрого поиска нужной комплектации
- Наличие слишком большого объема информации на одном экране.
- Наличие большого числа переменных в форме карточки товаров, которые обязательно отправлялись на сервер вместе с другими сведениями о товаре, ввиду этого требовалось выставлять большое значение max_input_vars.
- Ограничение в 500 «простых» комплектаций, порождаемых «многомерными комплектациями»
Какими комплектации стали сейчас?
Визуально мы отделили форму основной комплектации от дополнительных. Форма основной комплектации всегда представлена в развернутом виде, так как она используется повседневно, при заполнении любой карточки товара, а вот таблица с дополнительными комплектациями теперь располагается ниже и содержит только краткие сведения о комплектации.
Как и любые списки в системе, комплектации теперь можно фильтровать, постранично выводить, устанавливая любое кол-во элементов страницы, массово редактировать, отмечать несколько элементов или все элементы на всех страницах. Для индикации установленных фильтров, применены привычные для ReadyScript стикеры.
Для перехода в режим редактирования комплектации, достаточно кликнуть по ней.
В процессе реализации такого механизма редактирования мы столкнулись с проблемой наличия двух кнопок “Сохранить” (одна принадлежит товару, другая - комплектации) на экране, что приводит к замешательству и в большинстве случаев нажатию на неверную кнопку. Решение нашлось быстро – делать неприоритетную кнопку неактивной.
В новой реализации, комплектации можно править массово, выделяя нужные элементы и нажимая кнопку «Редактировать». Теперь без проблем можно установить положительный остаток, цену или назначить определенное фото сразу всем комплектациям.
Мы сохранили всю предшествующую функциональность, в частности массовое назначение фотографий комплектациям через вкладку «Фото» карточки товара, импорт/экспорт комплектаций, и т.д.
Ограничение в 500 «простых» комплектаций, порождаемых «многомерными» увеличено до 10 000.
Есть также приятная новость для разработчиков, объект комплектаций теперь можно расширять как любой другой ORM объект в системе и новые поля автоматически будут отображаться в карточке товара без дополнительных действий.
В сегодняшний релиз вошли и другие важные изменения, но об этом мы расскажем в следующем посте…