The challenge
Only approved supplier brands should reach Shopify, with stock and prices kept current and no duplicate listings.
What we built
- Brand-filtered imports with automatic collections
- SKU, barcode and handle matching before anything is created
- Saved progress, sync lock, dry-run mode and run logs
- One-click import for a single missing SKU
The full story
The situation
A cycling retailer wanted supplier products in Shopify, but only from approved brands. Stock and prices had to stay current, existing listings had to be kept, and duplicates were not acceptable.
What we built
A Laravel middleware app between the supplier’s API and the Shopify Admin API, with a dashboard for the store team.
How it works
- Approved brands define what gets imported, and brand collections are created or reused automatically
- Before creating a product, the app checks saved mappings, SKUs, barcodes and handles to avoid duplicates
- Stock is written to the store’s Shopify location, and pricing follows set rules, including brands whose price stays fixed
- Long catalogue runs save their position and resume, and a sync lock stops overlapping runs
- Dry-run mode shows what would change before anything is written
- A single missing SKU can be imported on demand
By the numbers
The dashboard snapshot showed 3,683 products and 7,212 variants mapped across 45 approved brands. A logged single-SKU import created, assigned and published the product with zero failures, with price and stock matching the supplier.
Honest note
In one test, product images were sent but didn’t appear in Shopify, so image delivery is checked separately. We keep “the API said OK” apart from “the listing is complete”.