Расширение импорта каталога OneCatalog и синхронизации цен/остатков (B2B) для OpenCart 3.0.3.x.
⚠️ Статус: в разработке. Production-релиза пока нет. Текущая работа — в веткеdev. Вmainпопадают только подтверждённые production-версии (с тегомvX.Y.Z).
Готовый установочный архив — на странице Releases:
качайте onecatalog-opencart-<версия>.ocmod.zip и ставьте через
Расширения → Установка расширений, затем Расширения → Модификации → Обновить.
Архив собирается автоматически (GitHub Actions) при публикации тега.
- Стандарт интеграции (канон): https://github.com/OneCatalog/onecatalog-standard — соответствует стандарту v1.2
- Эталонная реализация: https://github.com/OneCatalog/onecatalog-woocommerce
- Целевая платформа: OpenCart 3.0.3.x (OCMOD;
manufacturer/attribute/categoryнативно)
- Импорт каталога из Wiki API: товары, категории-дерево, характеристики
(нативные атрибуты), габариты (конверсия единиц), изображения (обложка + галерея с
трекингом качества и дедупом). Идемпотентность по
public_id, цена импортом не задаётся, статус — только при создании. - Справочные сущности (по умолчанию выкл, нативное прежде своего): бренд →
manufacturer, теги → нативныйtag, страна → атрибут, коллекции → атрибут/категория. - Виджет выбора (пикер) + AJAX-степпер импорта: прогресс, сводка, отмена, сохранение результата.
- Синхронизация цен/остатков (B2B) по принципу scan-and-diff: пишутся только
изменившиеся товары; цена →
price, скидка →product_special, остаток →quantity. Стратегии цены × приоритет регионов. - Журнал импорта; события для сайтового слоя (см.
docs/EVENTS.md).
- Собрать архив:
./build.sh→onecatalog-opencart-<версия>.ocmod.zip. - Админка OpenCart → Расширения → Установка расширений → загрузить
.ocmod.zip. - Расширения → Модификации → «Обновить» (применить OCMOD).
- Расширения → Модули → OneCatalog Import → «Установить» (создаёт служебные таблицы, выдаёт права).
- Меню OneCatalog (или Расширения → Модули) → Настройки: внести API-токен.
- OneCatalog → Импорт: «Выбрать товары» (пикер) или вставить список
public_id→ импорт с прогрессом. - OneCatalog → Цены и остатки: внести
url_key+private_key, выбрать стратегию, «Синхронизировать сейчас». - OneCatalog → Журнал импорта: последние результаты.
install.xml OCMOD (меню + версия)
upload/system/library/onecatalog/ ядро: api, units, media, b2bapi, pricestock
upload/admin/controller/extension/module/ контроллер (страницы + AJAX)
upload/admin/model/extension/onecatalog/ import, media, b2b (логика)
upload/admin/view/template|javascript/ шаблоны + пикер/степперы
upload/admin/language/{en-gb,ru-ru}/ локализация
docs/ план, ответы, события
tests/ офлайн-тесты чистой логики
- Офлайн-тесты чистой логики (без OpenCart):
php tests/units-test.php,php tests/media-test.php,php tests/pricestock-test.php. - gitflow: работа в
dev; релиз — mergedev→main+ тегvX.Y.Zпосле проверки.