Разработать WordPress модуль для импорта товаров

10 000 руб. за проект
17 июля 2023, 11:31 • 5 откликов • 48 просмотров
Нужно разработать модуль для импорта товаров из файла xml на сайте WordPress.

Ссылка на исходник данных: https://market.globalfashion.pro/ro/wordpress.xml

Товары и категории можно увидеть на сайте: https://global-fashion.ro/ru/catalog

Импорт должен выполняться каждые 60 минут по крону (планировщик задач).

Результатом работы должен быть архив с модулем, тесты будут проводиться на разных хостингах, и на разных версиях WordPress и WooComerce.

Название модуля будет: Global Fashion




Страниц у модуля должно быть несколько:

Первая страница - Настройки: Ввод ссылки на источник данных. Ссылка может отличаться от той что выше, но формат данных будет сохраняться.

И селектор языка, по умолчанию языков в селекторе не должно быть, только после ввода ссылки на источник данных должен появиться селектор языка по умолчанию. Языки должны показаться в селекторе исходя из тех языков которые содержит сам файл, например в файле выше указаны языки, ro, ru, en, uk.

Вторая и третья страница не должны открываться если еще не были выполнены все нужные настройки.




Вторая страница - Связывание категории: На этой странице должны отображаться две колонки, первая с категориями из файла, вторая с категориями с сайта где будет установлен модуль. Категории должны отображаться в виде иерархий. Прошу использовать рекурсию, чтоб количество вложенности категорий не было ограничено. Из левой колонке должно быть возможность выбирать несколько категорий а из правой только одну. Можно в левой колонке использовать чек-боксы а в правой радио кнопки. После выбора валютной связи должна появиться большая кнопка Связать под этими двумя колонками.

На этой странице так-же должны показываться все связи которые были уже настроены. Связи нужно показать в виде таблицы, с тремя колонками: Категория с источника данных, Категория с сайта (где установлен модуль), и третья колонка может назваться Действия - в ней должна быть кнопка удалить (при нажатие на нее должна удалиться связь между категориями).

Категории должны отображаться на языке который был выбран на странице настроек (если перевода на данный язык нету, то нужно отображать перевод на английском).




Третья страница - Статистика: На этой странице нужно показать:

  • количество товаров которые были уже импортированы на сайте
  • количество настроенных связей между категориями
  • когда последний раз выполнился механизм импорта товаров
  • количество товаров которые есть в наличий (из тех что были импортированы на сайте)
  • количество товаров которых нет в наличий (из тех что были импортированы на сайте)



Механизм импорта товаров: Фоновая задача должна выполняться каждые 60 минут. При повторном импорте товара нужно проверять если товар был уже добавлен, то данные нужно обновлять все данные, если товар не был еще добавлен, то создаем новую карточку. Проверять существование товара нужно по баркоду (ean).

Заполнять данные товара нужно следующим образом:

  • Название товара содержится в поле name - и язык который был выбран по умолчанию. Если перевода на выбранный язык по умолчанию нету, то нужно показать перевод на английском, если на английском тоже нет перевода то показываем любой перевод который есть в поле name.
  • производитель - поле brand
  • категория товара содержится в поле category_id, но товар нужно добавить в той категорий которая есть на сайте где установлен модуль, согласно настроенным связям. Если категория, которая имеет настроенную связь имеет дочерних категорий, то все товары из дочерних категорий так-же должны добавляться согласно настроенной связке родителя.
  • описание - description, импортируем только если есть описание на тот язык который выбран в настройках
  • картинки - images, все картинки должны быть импортированы в том порядке который указан в файле
  • ean - это баркод
  • model - это артикул
  • stock - это остаток на нашем складе
  • цены содержится в полях old_price и price, если товар имеет скидку то он будет иметь обе поля заполненных, если скидки нету то будет заполнено только поле price
  • Ширина - width_cm
  • Высота - height_cm
  • Длинна - length_cm
  • Вес - weight_kg
  • Объем - volume_ml, его нужно добавить как отдельный атрибут
  • Апсейлы - upsale
  • Кроселлеры - similar
Если товар который был ранее добавлен исчез из нашего файла, это значит что он закончился на нашем складе, поэтому на сайте где установлен модуль нужно ставить остаток 0 (ноль) и статус Нет в наличии.




Прошу весь код писать качественно, в дальнейшем нужно будет еще дополнительный функционал реализовать в этом модуле.




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

Интерфейс модуля должен быть написан на английском.