Учитывая то, что для клиента был важен продуктовый подход в разработке, а также сроки были весьма сжатые, то оптимальным форматом для итеративной работы были выбраны выделенные команды в составе менеджера проекта, тимлида разработки, разработчиков различного стека (от 2 до 5 человек в зависимости от этапа работы над проектом), аналитика и тестировщика.
На первом этапе мы проводили детальную аналитику: интервьюировали менеджеров, которые работают в PIM и составляли список функциональных требований. Было важно понять, что требуется специалистам в системе для полноценной и комфортной работы.
После этого дорабатывали PimCore в соответствии с этими требования: писали дополнительные модули, настраивали внутренний функционал, чтобы в итоге получить систему, в которой менеджеры смогут управлять всей информацией о товарах, заносить их в систему и актуализировать в зависимости от изменений у поставщиков.
Основная проблема была в том, что у клиента более 12000 типов товаров (от аэрогрилей до зубных щёток), но PimCore не предусматривает такого ассортимента в своей базовой версии.
Типы и поля описания товаров мы взяли с существующей PIM-системы, а затем преобразовали полученные данные в понятный для PimCore формат.
Процесс импорта всех данных был весьма сложным и занял около 40 часов. Предыдущая система не предусматривала возможности экспорта всех данных, поэтому многое пришлось дорабатывать и находить решения в процессе. Ещё одна сложность состояла в том, что у клиента несколько тысяч типов товаров, и PIM-система пыталась выводить их все одновременно, что занимало массу времени. Мы оптимизировали этот процесс и значительно повысили скорость вывода товаров.
Мы реализовали:
несколько видов импорта для возможности массовой загрузки типов, деревьев каталога (как потребительского, так и коммерческого),
загрузку справочников, и, наконец, самих товаров.
Для импорта товаров создали систему распознавания значений для упрощения загрузки данных. Иначе без этого для каждого типа товара необходимо было бы пользоваться своим импортом по конкретному типу.
В самом начале у нас был солидный воркфлоу, реализованный нами, с переходами от статуса к статусу (где-то автоматом, а где-то вручную в зависимости от процесса) с разбивкой доступности к тому или иному статусу для изменений конкретной роли. Это было реализовано, исходя из функциональных требований, написанных во время интервью.
Так как процессы внутри клиента во время реализации работ менялись, воркфлоу как таковой был упразднён, как и некоторые роли. Мы реализовали немного другой подход к работе со статусами, и их автоматизированные переходы в зависимости от процента или конкретных полей заполненности. Роли с усечёнными правами также остались. Так резко свернуть в направлении разработки помогло как раз то, что мы работали выделенными командами.
Процесс сейчас состоит из байера, собирающего данные с поставщиков с помощью экспорта файла для заполнения, и импорта файла с заполненными данными в PIM.
В PIM попадают данные характеристик товара. После этого заполняются данные (текстовые и картинки) в самой системе контент менеджерами, и после проверки заполненности и корректности товар ставится в публикацию на сайт. Публикация на сайт также есть экстренная (сейчас нужно выгрузить этот товар срочно) и штатная — запланированная.
У клиента был сайт на Magento, который требовалось оперативно перенести на Битрикс, сохранив весь его функционал.
Основная сложность была в том, что нужно было забрать с фронта всю информацию самостоятельно и перенести на Битрикс, так как вся документация была утеряна, а люди, которые его делали, уже в компании не работают. Помимо этого нужно было интегрироваться с существующим эквайрингом и впоследствии добавить новый. А затем интегрировать PimСore с Битрикс, чтобы товары и категории поступали непосредственно на сайт из системы.
Проинтегрирована рекомендательная система Retail Rocket: блоки для вывода в карточках товаров и на главной странице. Также реализована триггерная рассылка.
Карина Шайдулатова, group head IBRUSH: «Это очень интересный опыт параллельного переноса двух сложных систем на другие платформы одновременно. Важно было не потерять связь между сайтом и PimCore. PIM стал для нас новым, но очень быстро родным и понятным. Во время адаптации и доработки системы под нужды клиента мы увидели границы возможностей системы, что упростит работу с ней в дальнейшем, в том числе в поддержке системы в рамках данного проекта. Не менее важно было в условиях запуска MVP-версии сайта сохранить весь рабочий функционал и все текущие интеграции. Все интеграции со сторонними системами без исключения были кастомизированы для обеспечения необходимого функционала работы сайта. В условиях запуска не полного функционала мы, конечно, продолжаем работать над его расширением и улучшением, чему очень рады.
Спасибо команде клиента за отзывчивость и оперативное взаимодействие, и отдельная благодарность нашей внутренней команде супер ответственных ребят».