После тщательного изучения API Zalando, мы приняли решение использовать фреймворк YII2 для разработки. Этот выбор обусловлен тем, что нам требовалось создать легкое приложение, которое можно быстро развернуть на любом хостинге и, кроме того, мы уже имели опыт работы с ним, что позволило ускорить процесс разработки.
Для разработки парсеров мы провели анализ клиентских сайтов, включая те, которые были построены на NodeJs и использовали асинхронную подгрузку контента во время просмотра страницы. В связи с этим, нам не подходили стандартные парсеры. Вместо этого, мы разработали специализированный парсер на NodeJs, который способен обходить асинхронную подгрузку и частично обходить защиту от парсинга. Мы сохраняли полученные данные в формате Excel, а затем интегрировали их в Yii2 и создали пользовательский интерфейс для работы с этими данными, включая функции экспорта, анализа и сравнения товаров.
Рабочий стол веб-приложения
Сайт был создан с учётом современных тенденций в дизайне и технологий, включая анимацию плавного скроллинга. Также сделали два лэндинга, для двух линеек косметики это Тату и Скрабы. На сайте описали основные натуральные составляющие ингредиенты, включая ключевые. Клиент может не просто прочитать про компонент, но и найти его в других косметических средствах.
А также создали возможность, не только отправлять как заявку, но и работать как с обычным товаром, через корзину, что потребуется в дальнейшем для учёта в личном кабинете покупателя. Покупка запчастей, износ и т.д.
![](images/portfolio/analpa/yii2/1.webp)
Мастер обновления цен на маркетплейс Zalando
Мастер обновления цен функционирует через ajax, поскольку взаимодействие с api Zalando имеет ограничения как по количеству запросов, так и по времени ожидания между ними.
Для повышения удобства наших клиентов мы разработали два мастера обновления цен: по артикулу и по ean. Мастер обновления по артикулу требует немного больше времени, так как он должен получить и согласовать ean, которые уже загружены на нашем сайте. Однако, мастер обновления по ean работает гораздо быстрее, при условии, что все ean известны. Вы можете обновлять цены как для всех каналов продаж, так и для конкретных каналов, в зависимости от ваших потребностей.
![](images/portfolio/analpa/yii2/2.webp)
![](images/portfolio/analpa/yii2/3.webp)
Профиль добавления и обновления товаров Zalando
Перед тем, как обновить цены для новых товаров, необходимо их создать. Однако в Zalando это не так просто, так как после создания каждый товар проходит модерацию, вдобавок к сложности его структуры. Только после успешной модерации можно приступить к обновлению цен.
Клиент может работать с любой таблицей xls, но важно, чтобы каждый профиль имел согласованные обязательные поля для загрузки. Перед загрузкой профиль проходит валидацию, и если нет глобальных ошибок, можно приступать к созданию товаров. После загрузки товары отображаются в таблице со статусами, где можно увидеть, какие из них прошли модерацию, а какие нет и по какой причине.
Для обеспечения более эффективной синхронизации между товарами клиента и их атрибутами, мы внедрили отдельную таблицу соответствий. Теперь синхронизация будет зависеть от выбранного типа атрибутов, учитывая различия между ними для футболок и обуви. Ниже представлены типы атрибутов Заландо и их содержание.
![](images/portfolio/analpa/yii2/9.webp)
![](images/portfolio/analpa/yii2/8.webp)
![](images/portfolio/analpa/yii2/7.webp)
![](images/portfolio/analpa/yii2/6.webp)
![](images/portfolio/analpa/yii2/5.webp)
![](images/portfolio/analpa/yii2/4.webp)
Web-оболочки парсеров
С помощью парсеров вы сможете проводить сравнительный анализ товаров, включая количество товаров (если доступно) и изменение цен со временем. Более того, вы сможете сравнивать цены в зависимости от размера, учитывая, что изменение цены может быть связано с размером товара. Все полученные данные легко экспортировать в формате Excel для дальнейшего анализа. Кроме того, вы сможете получить детальную информацию о каждом товаре, включая его характеристики.
![](images/portfolio/analpa/yii2/11.webp)
![](images/portfolio/analpa/yii2/10.webp)