Supplier catalogue and stock sync

A US store chain sells products from a supplier, with hundreds of items and dozens of flavour and strength variants each. I built a service that keeps catalogue and stock in sync across a Shopify store and several BigCommerce stores, each with its own markup. New products arrive as hidden drafts for review.

Backend · BigCommerce · Shopify

Results

A service keeps several stores' catalogue and stock in step with a supplier, every 30 minutes.

Problem

Nobody can copy hundreds of cards and check stock every day by hand, so products the supplier no longer had kept selling. After part of the chain moved to BigCommerce, one service had to serve several stores, each with its own prices that sync must not overwrite. It also must not flood a store with products it never sold.

Solution

One service with two entry points, a shared data layer and separate syncers for Shopify (Admin GraphQL) and BigCommerce (Catalog API v3). A daily incremental run and a weekly full run bring in products, variants, photos and prices from the supplier catalogue. A separate stock pass runs every 30 minutes. Each store is synced on its own, with dry-run mode for new stores and a protected list that blocks writes.

Key decisions

  1. Chose a dedicated stock feed for stock, apart from the full catalogue run

    Why A full run takes hours, so stores saw availability once a day. The stock pass takes about a minute, so it can run every 30 minutes.

  2. Chose a baseline on first sync

    Why Only products that appear after a store is connected are created, so no store gets hundreds of items it never sold or deleted.

  3. Chose to create new products as hidden drafts

    Why A person reviews each new item before shoppers see it.

  4. Chose a safety net: dry-run for new stores and a protected-store list

    Why A mistaken sync cannot write into a live store by accident.

Have a similar task?

Send a link and a few lines about what you need. I reply within 1 business day with questions or a fixed estimate.

Get a fixed estimate
  • The estimate is the priceHours and total agreed before work starts. No re-estimates.
  • No prepayment on small projectsProjects up to 20 hours usually need none.
  • 30-day warrantyCritical bugs from my work get fixed free, even after that.

My gift: start a Shopify store for €1 for your first month

Open your store through my partner link and try Shopify for yourself. When you need a theme, an app or a migration, I'm one message away.

Claim the €1 month (opens in a new tab)

Affiliate link: I may earn a commission if you sign up. The offer is set by Shopify and may vary by region.