Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Для чего служит данный модуль:

  • Интеграция с 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 - конфигурация модуля

Порядок выполнения:

  1. /cli - скрипт для запуска
  2. /Factory - управление зависимостями для каждого скрипта
  3. /Service - единый класс для всех интеграций
    1. /Repository
    2. /Transform
    3. /API

Особенности:

  • разделение обработки товаров на чанки;
  • логирование;
  • обработка ошибок (слабая).

TODO:

MediaRepository:

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

Factory:

  • заменить на абстрактную фабрику или убрать дублирование кода

Требования к API для доработки по Wildberries:

Требования к категориям (самое важное):

Клиент обязан/должен сказать, в какую категорию будут загружены товары, т.к. характеристики устанавливаются исходя из категорий.

Требования к изображениям:

  • максимум изображений для одной карточки товара — 30;
  • минимальное разрешение — 700×900 px;
  • максимальный размер — 32 Мб;
  • минимальное качество — 65%;
  • форматы — JPG, PNG, BMP, GIF (статичные), WebP.

Требования к видео:

  • максимум одно видео для одной карточки товара;
  • максимальный размер — 50 Мб;
  • форматы — MOV, MP4.

Требования к брендам:

Бренд должен существовать в аккаунте продавца - создается клиентом с тем же названием, как и на сайте (1 в 1).

Требования к ценам:

Нельзя устанавливать одну и ту же цену подряд для товара (ограничение API).

Требования к остаткам:

Склад должен быть создан в аккаунте продавца. Тип склада должен соответствовать типам загружаемых товаров. ВАЖНО! Иначе нельзя загрузить остаток.

Требования к товарам (от Корзиллы):

У товара на момент загрузки должен быть остаток и цена.

Требования к выполнению скриптов (для разработчика):

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

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages