О проекте
Python-сервис переносит товары, цены, остатки и изображения из Saby в WooCommerce. Хеширование позволяет обновлять только изменившиеся позиции.
Задача бизнеса
Клиент (розничный магазин) столкнулся с критическими проблемами при ручном управлении каталогом:
- Риск пересорта: Из-за задержек в обновлении остатков онлайн-покупатели заказывали товар, который уже был продан в офлайн-точке.
- Трудоемкость: Менеджеры тратили часы на перенос изменений цен и номенклатуры.
- Ошибки: Человеческий фактор приводил к опечаткам в ценниках на сайте.
Задача: Создать «мост», который автоматически забирает данные из Saby, фильтрует служебные категории (например, «Other») и обновляет витрину WooCommerce, затрагивая только изменившиеся позиции.
Как работает решение
Решение представляет собой автономное Python-приложение, состоящее из двух независимых модулей.
Модуль 1: Экспорт (Saby Connector)
Отвечает за безопасное и полное извлечение данных из первоисточника.
- API Integration: Работает с Saby Retail API для получения каталога и методом leftover_goods для сбора точных остатков по всем складам.
- Консолидация: Объединяет разрозненные данные (карточка товара + остатки на разных складах) в единый объект.
- Фильтрация: Реализована бизнес-логика отсечения служебных категорий (папки «Архив», «Other»), которые не должны попасть на сайт.
- Надежность: Встроена система автоматических повторов (Retry) при разрывах соединения и пагинация для обработки больших объемов данных.
Модуль 2: Импорт (WooCommerce Sync)
Отвечает за обновление сайта с минимальной нагрузкой на сервер.
- Smart Sync (MD5 Hashing): Ключевая технология проекта. Скрипт хеширует ключевые поля товара (цена, остаток, название). Обновление происходит только если хеш изменился. Это кардинально снижает нагрузку на API сайта и ускоряет синхронизацию.
- Работа с медиа: Скрипт скачивает изображения из закрытого контура Saby и загружает их в медиабиблиотеку WordPress, автоматически привязывая к товарам.
- Обработка коллизий: Алгоритм разрешает конфликты, если товар уже существовал на сайте, но имел другой ID или артикул.
Технологии и интеграции
Проект выполнен с использованием передового подхода к написанию кода:
| Категория | Технология | Роль в проекте |
|---|---|---|
| Язык | Python 3 | Основной язык backend-логики |
| IDE | Antigravity | ИИ-агент разработки |
| ИИ-Co-pilot | Claude 4.5 Sonnet | Генерация архитектуры кода, рефакторинг и оптимизация алгоритмов |
| API | Saby Retail / Woo REST V3 | Протоколы обмена данными |
| Безопасность | OAuth 1.0a / App Passwords | Защищенная авторизация запросов |
| Алгоритмы | Hashlib (MD5) | Контроль целостности и изменений данных |
Что изменилось
Каталог обновляется программно с фильтрацией служебных категорий, повторными запросами и проверкой изменений. Время разработки и бизнес-эффект здесь не заявлены как измеренные показатели.



