0

Товар успешно добавлен в корзину

Оформить заказ

Рефакторинг комплектаций товаров в административной панели ReadyScript

Процесс создания большого программного продукта – это много итерационный процесс, где с каждой итерацией продукт становится лучше и удобнее. Мы приверженцы стиля программирования под кодовым названием «прогрессивный джипег» - это означает, что функциональность постепенно получает все большую детализацию, хотя ею можно пользоваться и на самой первой итерации, но с каждой следующей итерацией ею можно пользоваться еще более удобно. К чему это? Дело в том, что последний месяц мы как раз занимались рефакторингом комплектаций в административной панели. Ниже я расскажу о деталях данной задачи.

Чем нас не устраивала предыдущая реализация комплектаций?

Архитектурно комплектации идеально решали свою задачу, однако существовали некоторые моменты, которые нас не устраивали и мы хотели их улучшить, в частности:

  1. Отсутствовала возможность группового редактирования комплектаций.
  2. Отсутствовала возможность быстрого поиска нужной комплектации
  3. Наличие слишком большого объема информации на одном экране.
  4. Наличие большого числа переменных в форме карточки товаров, которые обязательно отправлялись на сервер вместе с другими сведениями о товаре, ввиду этого требовалось выставлять большое значение max_input_vars.
  5. Ограничение в 500 «простых» комплектаций, порождаемых «многомерными комплектациями»

Какими комплектации стали сейчас?

Визуально мы отделили форму основной комплектации от дополнительных. Форма основной комплектации всегда представлена в развернутом виде, так как она используется повседневно, при заполнении любой карточки товара, а вот таблица с дополнительными комплектациями теперь располагается ниже и содержит только краткие сведения о комплектации.

tab-offers

Как и любые списки в системе, комплектации теперь можно фильтровать, постранично выводить, устанавливая любое кол-во элементов страницы, массово редактировать, отмечать несколько элементов или все элементы на всех страницах. Для индикации установленных фильтров, применены привычные для ReadyScript стикеры.

tab-offers-filter

Для перехода в режим редактирования комплектации, достаточно кликнуть по ней.

tab-offers-edit

В процессе реализации такого механизма редактирования мы столкнулись с проблемой наличия двух кнопок “Сохранить” (одна принадлежит товару, другая - комплектации) на экране, что приводит к замешательству и в большинстве случаев нажатию на неверную кнопку. Решение нашлось быстро – делать неприоритетную кнопку неактивной.

В новой реализации, комплектации можно править массово, выделяя нужные элементы и нажимая кнопку «Редактировать». Теперь без проблем можно установить положительный остаток, цену или назначить определенное фото сразу всем комплектациям.

tab-offers-multiedit

Мы сохранили всю предшествующую функциональность, в частности массовое назначение фотографий комплектациям через вкладку «Фото» карточки товара, импорт/экспорт комплектаций, и т.д.

Ограничение в 500 «простых» комплектаций, порождаемых «многомерными» увеличено до 10 000.

Есть также приятная новость для разработчиков, объект комплектаций теперь можно расширять как любой другой ORM объект в системе и новые поля автоматически будут отображаться в карточке товара без дополнительных действий.

В сегодняшний релиз вошли и другие важные изменения, но об этом мы расскажем в следующем посте…


31 июля 2015 18:36, Артем Полторанин
Рассказать друзьям: