- Интеграция с Wildberries.
- загрузка товаров;
- загрузка медиа товаров;
- редактирование товаров;
- обновление цен товаров;
- обновление остатков товаров.
- PHP 5.6 минимум (доработка рассчитана на 7.4);
- библиотека GuzzleHttp (для Service/ApiClient);
- autoload Composer (используются namespace);
- NetCat (только для слоя Repository и скриптов запуска).
- SOLID;
- паттерн Factory (убрать зависимость от классов в скриптах запуска).
/App- код модуля/Repository- работа с БД/Interface- все интерфейсы модуля/Transform- преобразование данных из Repository в формат API/Service- бизнес-логика в едином классе/netcat- эмуляция подключения NetCat, для локальной разработки. Использует PDO/Exceptions- обработка ошибок/Logger- логирование/Factory- фабрика для работы с классами модуля/API- API-клиенты/Interface- интерфейсы
/cli- скрипты для запуска cron или wget/Config- конфигурация модуля
/cli- скрипт для запуска/Factory- управление зависимостями для каждого скрипта/Service- единый класс для всех интеграций/Repository/Transform/API
- разделение обработки товаров на чанки;
- логирование;
- обработка ошибок (слабая).
MediaRepository:
- сделать возможность получения картинок из товара. Сейчас реализован только из таблицы медиа
Factory:
- заменить на абстрактную фабрику или убрать дублирование кода
Клиент обязан/должен сказать, в какую категорию будут загружены товары, т.к. характеристики устанавливаются исходя из категорий.
- максимум изображений для одной карточки товара — 30;
- минимальное разрешение — 700×900 px;
- максимальный размер — 32 Мб;
- минимальное качество — 65%;
- форматы — JPG, PNG, BMP, GIF (статичные), WebP.
- максимум одно видео для одной карточки товара;
- максимальный размер — 50 Мб;
- форматы — MOV, MP4.
Бренд должен существовать в аккаунте продавца - создается клиентом с тем же названием, как и на сайте (1 в 1).
Нельзя устанавливать одну и ту же цену подряд для товара (ограничение API).
Склад должен быть создан в аккаунте продавца. Тип склада должен соответствовать типам загружаемых товаров. ВАЖНО! Иначе нельзя загрузить остаток.
У товара на момент загрузки должен быть остаток и цена.
Так как API Wildberries очень капризное, товары должны быть отправлены по одному (чтобы пачки позиций не переставали обновляться, и нужно учесть ограничения методов на выполнение запросов в течение времени).