E-commerce · Automation
Automated dropship routing for Reflaunt — accept, publish, quarantine or delist without touching ops.
Built on Shopify Flow and custom flows: partner inventory is evaluated automatically, then routed through publish, Reflaunt channel sync, quarantine for manual review, or delisting.
- native triggers
- Flow
- auto routing
- 4-way
- plus custom
- Shopify
The problem
Reflaunt needed a mechanism that automatically decides whether to accept integrated products from partners, then routes them through the right chain: publish, push to the Reflaunt channel, quarantine for manual review, or delist.
The foundation is standard Shopify Flow triggers plus custom actions through a connector app — no bespoke ops spreadsheets, no guessing on every SKU update.
Eligibility rules
Accept/reject decisions combine product tags, metafields, and policy matrices:
- Tags: partner:<id>, condition:A|B|C, images:<n>, brand:<name>, reflaunt:blocked, reflaunt:eligible
- Metafields: qa.required_filled (bool), qa.images_count (int), compliance.authenticity (enum), pricing.vat_included (bool)
- Brand whitelist/blacklist, pre-owned grade, logistics constraints, minimum photo/field sets
- brand ∈ blacklist → reject; missing VAT where required → quarantine with auto recalc task
- duplicate SKU or brand+title+image fingerprint match → quarantine tagged duplicate
Tag taxonomy
Recommended tag structure keeps decisions auditable and filterable in admin:
- Source: partner:reflaunt, partner:xyz
- Quality: condition:A|B|C, images:<n>, incomplete:>3_fields
- Engine decision: reflaunt:eligible | reflaunt:quarantine | reflaunt:rejected
- Operational: duplicate, blocked:brand, blocked:policy, needs:vat_recalc
Shopify Flow scenarios
Flow 1 — Product Intake: on product create/update, if partner:* tag exists, a custom action computes qa.score, images_count, and required_filled. Blocked items → rejected. Score ≥ 80 with ≥ 3 images and condition A/B on a whitelisted brand → eligible, added to collection, webhook push_to_reflaunt. Everything else → quarantine with Ops notification.
Flow 2 — Inventory/Price Drift: quantity or price changes that violate policy (minimum photos, brand price floor, regional VAT) return the item to quarantine with a remediation task.
Flow 3 — Order Routing: on order create, if all lines are eligible with Reflaunt fulfillment → route to Reflaunt DS, send idempotent payload to connector. Mixed orders → split/partial route and notify Ops.
Custom Flow actions
Three custom actions power the logic:
- Compute QA — score, field completeness, image count, duplicate detection via indexes
- Policy Check — brand/region matrix (VAT mode, banned categories, dimensions)
- Push to Reflaunt — pack target contract, webhook/GraphQL call, handle retries
Integration requirements
Idempotency keys on SKU/VariantID plus payload hash. Exponential backoff retries and a DLQ for stuck batches. Queues and throttling to stay inside external rate limits.
Quarantine and manual review
Quarantined items never publish to the Reflaunt channel. Ops gets a task list: upload missing photos, fill critical fields, fix brand/category/policy mismatches, resolve duplicates.
After fixes, Flow recalculates status and promotes eligible items automatically. Variant-level decisions aggregate to product level — partial publish is supported when at least one variant qualifies.
Monitoring and audit
Dashboards track eligible/quarantine/rejected ratios, rejection reasons, and processing time. Alerts fire on duplicate spikes, policy_mismatch clusters, or falling quarantine → eligible conversion.
Every manual override (e.g. reflaunt:force-eligible) is logged with who/when.
What the business got
Automatic accept/reject for integrated SKUs without manual triage. Transparent quarantine with reasons and a short remediation path. Reliable order routing in Reflaunt dropship scenarios. New partners mean new rule profiles — not rewrites of core logic.
Technologies
- Shopify Flow
- Custom Flows
Outcomes
- Lightweight integration
- Ops control through Flow admin
- Full process automation
Recommended articles
Blog
The case for boring web stacks
TypeScript, Postgres and edge deployment are not exciting — they are how you still iterate fast in year three without rewriting the platform.
Blog
Shipping evals before prompts
Why we run regression suites on LLM outputs before every release — and how it changed our AI delivery cadence at ZNN.
Blog
Mobile release trains that do not break
Fastlane, staged rollouts and feature flags — a practical playbook from eighteen App Store submissions without a Friday-night rollback.
Recommended case studies
Luxury · Shopify
Her-Age
We rebuilt data flows, updated deprecated endpoints, and clarified status UX so experts, sellers and buyers follow one transparent path from verification to digital passport.
Fashion · Data
Global fashion manufacturer
A major apparel producer had no single source of truth: Amazon, Zalando, own D2C and wholesale channels each spoke different schemas. We built a governed data layer so finance and ops finally know what came from where.
Fashion · Mobile
Luxury reseller · NDA
A high-volume pre-owned luxury reseller needed floor staff to photograph, authenticate and publish items without switching between five tools. We shipped a focused mobile app tied to their warehouse ERP.