К содержимому

Люкс · ETL

Интеграция каталога и стоков для Luxclusif — ETL-конвейер под витрины партнёров.

LUX забирает остатки напрямую у Luxclusif, мапит их в таксономию каждого партнёра и по расписанию отдаёт CSV, готовые для Matrixify — без ручных таблиц между поставщиком и магазинами Shopify.

Luxclusif Aug 2025 10 мин чтения
Luxclusif кейс
CSV-экспорты
Авто
таксономия магазинов
Мульти
ручных шагов
0

Контекст и задача

Зоопарка источников здесь нет — входящий поток один, Luxclusif. Сложность в другом: у каждого партнёра своя таксономия, словари категорий/брендов/цвета/размера, правила округления, налоговая и ценовая политика, своя раскладка колонок CSV.

Собрали конфигурируемый пайплайн: один вход даёт много целевых представлений, каждое жёстко под Matrixify-схему конкретного магазина. Ключевое решение — двухфазный релиз: все трансформации сначала в драфт, проходят валидацию и сверку, затем атомарно коммитятся в финальный релиз с неизменяемой версией.

Технологический фундамент

Ядро — нативный Go без тяжёлых фреймворков сверху: низкая латентность, минимум накладных расходов, точный контроль потока данных. Параллелизм через горутины и каналы: стадии пайплайна идут параллельно и не блокируют критический путь.

Хранение — обычный SQL с явными транзакциями на стадиях драфт → релиз: атомарность и согласованность. Когда партнёру нужно сменить версию CSV за один тик, двойная буферизация держит старую версию живой, пока новая атомарно не станет активной.

От Luxclusif к таксономии партнёра

Поток начинается с забора актуального каталога Luxclusif по расписанию и снимка в staging. Дельты считаем без агрессивной инвалидации: драфт собирается как полная целевая таблица, затем накладываются правила трансформации.

Трансформы делятся на шаблонные и AI-assisted. Шаблоны закрывают предсказуемые маппинги (семейства категорий, бренды, суффиксы названий, шаблоны размеров). AI-матчер, обученный на реальных примерах, закрывает дыры, которые ручные правила неизбежно оставляют.

Каждое поле карточки — категория, тип, материал, размер, цвет, бренд, теги — нормализуется в словарь партнёра. Непокрытые случаи уходят в отчёт и никогда не ломают релиз.

Цены, налоги и валюты

Ценообразование сидит в той же транзакционной границе. Исходные цены Luxclusif проходят через настраиваемые правила: проценты налога, комиссии, наценки/скидки, конвертация валют и округление в формате, который принимает Matrixify.

Расчёты детерминированы: одинаковый вход и конфиг всегда дают одинаковый выход. Смена политики — новая версия правил и безопасный перерелиз. Тихого дрифта нет, любой исторический релиз можно собрать заново по запросу.

Медиа и AI для визуальной согласованности

Картинки проходят через AI-детект цвета фона и доминирующего оттенка — нужно, когда витрина партнёра требует жёстких меток фона (чисто белый vs тёплый белый) или когда цвет гоняет фильтры и виджеты.

Проверяем доступность ссылок, помечаем подозрительные рамки/паддинги, нормализуем форматы и метаданные. Посчитанные атрибуты ложатся в отдельные колонки CSV — командам Shopify не нужно ничего допиливать.

Драфты, cron и релизы без простоя

Релиз — двухфазная транзакция. Драфт собирает полное представление партнёра, гоняет валидацию схемы и контрольные суммы, отдаёт отчёт по каждой правке и её причине. После проверок релиз атомарно переключает активную версию.

Cron оркестрирует заборы по расписанию, трансформы, драфт, релиз и публикацию артефактов. Два поколения релиза всегда доступны: откат или повторная проверка не блокируют импорт партнёра.

CSV как контракт, Matrixify как потребитель

CSV — формат контракта: Matrixify его стабильно ест, бизнес может глазами проверить содержимое. У каждой таблицы фиксированная схема: стабильный порядок колонок, гарантированные типы, строгие заголовки, предсказуемые кодировки.

Строки, которые ломают таксономию, получают причину исключения и уходят в отчёт; в релизный CSV попадают только валидные — одна плохая запись не валит ночной импорт.

Параллелизм, производительность и стабильность

Пайплайн сидит на горутинах Go и воркерах через каналы. Тяжёлые стадии батчатся по индексам БД — большие объёмы без просадки памяти. Дельты считаются на уровне строки и поля; финальный релиз собирается из нормализованной правды, а не слепой полной перезагрузкой.

Идемпотентность: повтор на неизменном входе даёт бит-в-бит тот же CSV. Батчевые checksum сразу показывают расхождение драфта и релиза.

Безопасность, версии и аудит

Секреты и параметры публикации живут в environment/secret storage. Направления загрузки получают минимальный скоуп. У релизов неизменяемые version ID.

Логи ведут каждую строку по стадиям и фиксируют причины автоправок. Спорные случаи собираются заново из снимков драфта теми же правилами — проще разговаривать с Luxclusif и партнёрами.

Наблюдаемость и алерты Shopify Flow

Метрики пайплайна: латентность стадий, доля поправленных строк, причины исключений, латентность публикации. На стороне Shopify Flow срабатывает на покупки и заказы по SKU из наших релизов — видно, как новые таксономии и ценовые правила ведут себя в проде.

Сигналы уходят в алерты Telegram/email и дашборды, где спрос можно сравнить с разбросом цен, ошибками импорта и исключениями. Всплеск аномалии (например, отмены в одной категории) быстро указывает на правило, которое надо поправить, и перерелиз уходит без остановки магазинов.

Что получает бизнес

Партнёры получают стабильные CSV-таблицы по расписанию — готовые для Matrixify, смапленные в их таксономию, с посчитанным налогом/ценой и AI-полями вроде цвета фона картинки.

Luxclusif получает предсказуемый, транзакционный, масштабируемый процесс: драфты и релизы атомарно разделены, повторы бит-в-бит идентичны. Любое изменение в источнике доходит до полок партнёров быстро, безопасно и детерминированно — прозрачно, аудируемо, по правилам, которые можно менять, не останавливая поток.

Технологии

  • Go
  • SQL
  • Postgres
  • Qwen AI API

Результаты

  • +100% быстрее новые интеграции
  • Простые алерты, по которым можно действовать
  • Автоматизация процесса от края до края
Все кейсы