Электронная коммерция

Система дропшипинга для Reflaunt на базе Shopify Flow и Custom Flows

Нужно было построить механизм, который автоматически решает, принимать ли Reflaunt интегрированные товары от партнёров, и дальше маршрутизирует их по правильной цепочке (публикация, отправка в канал Reflaunt, карантин/ручная проверка, снятие с витрины). Основа — стандартные триггеры Shopify Flow + набор кастомных действий (Custom Flows) через приложение-коннектор.

Клиент: Reflaunt
14 августа 2025 г.
Время чтения: 5 минут
ДропшипингShopify разработкаИнтеграция магазиновАвтоматизация процессов
Система дропшипинга для Reflaunt на базе Shopify Flow и Custom Flows

Принцип работы (high-level)

  1. Триггеры: Product created/updated, Inventory changed, Product published/unpublished, Order created (для маршрутизации заказов).
  2. Правила принятия (решение “eligible / not eligible”):
    • Теги товара/варианта: partner:<id>, condition:<A|B|C>, images:<n>, brand:<slug>, reflaunt:blocked, reflaunt:eligible.
    • Метаполя (metafields): qa.required_filled (bool), qa.images_count (int), compliance.authenticity (enum), pricing.vat_included (bool).
    • Белый/чёрный списки брендов, условия (pre-owned grade), ограничения логистики, минимальный набор фото/полей.
  3. Действия: присвоение тегов/метаполей статуса, добавление в коллекции (Reflaunt — Eligible, Reflaunt — Quarantine), вызов Webhook к внутреннему оркестратору/Reflaunt-коннектору, уведомления в Email/внутренний inbox.

Схема правил (decision matrix)

При каждом событии обновления товара:

  • Если tags содержит reflaunt:blockedNot eligible (статус: rejected | причина: manual_block).
  • Иначе, если images_count >= 3 и заполнены ≥ 95% критичных полей (title, brand, condition, price, sku, size/material, описание) и condition ∈ {A, B} и бренд в whitelist → Eligible.
  • Иначе, если недозаполнено > 3 критичных поля или images_count < 1Quarantine (на доработку).
  • Доп. фильтры:
    • brand ∈ blacklist → reject.
    • pricing.vat_included = false для регионов, требующих VAT-включения → quarantine с автозадачей пересчёта.
    • duplicate(SKU) или совпадение по (brand+title+img-fingerprint) → quarantine с меткой duplicate.

Таксономия тегов (рекомендуемая)

  • Идентификация источника: partner:<id> (напр. partner:reflaunt, partner:xyz).
  • Качество/состояние: condition:A|B|C, images:<n>, incomplete:>3_fields.
  • Решение движка: reflaunt:eligible | reflaunt:quarantine | reflaunt:rejected.
  • Служебные: duplicate, blocked:brand, blocked:policy, needs:vat_recalc.

Метаполя (namespaces → keys → тип)

  • reflaunt.statuseligible | quarantine | rejected (single-line text / enum).
  • reflaunt.reasonmanual_block | low_quality | missing_fields | duplicate | policy_mismatch (enum).
  • qa.images_count → int; qa.required_filled → bool; qa.score → int (0–100).
  • compliance.authenticityunknown | verified | pending.
  • pricing.vat_included → bool; pricing.country → ISO-код.

Shopify Flow — базовые сценарии

Flow 1 — «Product Intake»

Trigger: Product created/updated
Conditions:

  • If tag partner:* exists → proceed
  • Compute (через Custom Action) qa.score, qa.images_count, qa.required_filled
  • If reflaunt:blocked → set reflaunt.status=rejected, add reflaunt:rejected
  • Else if score ≥ 80 && images_count ≥ 3 && condition ∈ {A,B} && brand ∈ whitelist
    → set reflaunt.status=eligible, add to collection «Reflaunt — Eligible», add tag reflaunt:eligible, call webhook «push_to_reflaunt»
  • Else
    → set reflaunt.status=quarantine, add reflaunt:quarantine, add to collection «Reflaunt — Quarantine», notify Ops

Flow 2 — «Inventory/Price Drift»

Trigger: Inventory quantity changed OR Price changed
Logic: при выходе за пределы политики (минимум фото, цена ниже порога бренда, региональные VAT-правила) → вернуть в quarantine, создать задачу доработки.

Flow 3 — «Order Routing»

Trigger: Order created
Conditions: Если все позиции в заказе имеют reflaunt.status=eligible и fulfillment_service=Reflaunt
→ присвоить маршрут «Reflaunt DS», отправить payload в коннектор (идемпотентно), добавить note о внешнем партнёре.
Если смешанный заказ → split/partial route (гибридная логика, уведомить Ops).


Custom Flows (через приложение-коннектор)

Потребовались кастомные действия для Flow:

  • Compute QA: рассчитать qa.score, заполненность полей, посчитать images_count, распознать дубль (по индексам).
  • Policy Check: применять матрицу брендов/регионов (VAT-режим, запрещённые категории, габариты).
  • Push to Reflaunt: упаковать данные в целевой контракт, отправить вебхук/GraphQL-вызов, обработать ответы/ретраи.

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

  • Идемпотентность (ключи на SKU/VariantID + хеш payload).
  • Ретраи с экспоненциальной задержкой, DLQ для «залипших» пакетов.
  • Лимиты скорости: очереди и троттлинг, чтобы не уткнуться в rate-limit внешней стороны.

Мониторинг и отчётность

  • Дашборд: доля eligible/quarantine/rejected, причины отбраковки, время обработки.
  • Алерты: всплеск дублей, много policy_mismatch, падение конверсии quarantine → eligible.
  • Аудит: кто/когда изменил решение (ручное «unblock», корректировка тегов/метаполей).

Карантин и ручная доработка

Товары в quarantine не публикуются в канал Reflaunt; им назначается список задач:

  • загрузить недостающие фото;
  • заполнить ≥ 3 пропущенных критичных поля;
  • исправить несоответствие бренду/категории/политике;
  • устранить дубли (мердж/удаление).
    После исправлений Flow автоматически пересчитает статус и, при успехе, переведёт товар в eligible.

Кейсы и тонкости

  • Вариант-уровень: решение вычисляется на уровне варианта; товар получает агрегированный статус (если есть хотя бы один eligible — можно частично публиковать).
  • Переопределения: тег reflaunt:force-eligible для исключительных случаев (логируется).
  • Региональная политика: VAT/логистика различаются по рынкам; правило применяет pricing.country.

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

  • Автоматическое решение «принимать/не принимать» для интегрированных SKU без ручной рутины.
  • Прозрачный карантин с причинами и коротким путём доработки.
  • Надёжная маршрутизация заказов в сценарии дропшипинга Reflaunt.
  • Масштабируемость: добавление новых партнёров — это новые профили правил, а не переписывание логики.

Использованные технологии

Shopify FlowCustom Flows

Достигнутые результаты

🎯

Легкая интеграция

🎯

Простое управление через Flow

🎯

Автоматизация процессов

Хотите создать похожий проект?

Расскажите о вашей идее, и мы поможем её реализовать