Skip to content
heapbyte - A name of excellence

Case study · 2025–2026

Weldaad B2B → B2C Product Synchronization

Two Shopify stores needed to share product truth without becoming identical copies of each other.

  • Shopify Admin API
  • GraphQL
  • Node.js
  • Metafields
Discipline
Multi-store sync · Shopify APIs · Product data architecture
Year
2025–2026
Engagement
Fixed scope
Status
Live
weldaad.com
weldaad

01Context

  • Synchronize technical product information from B2B to B2C.
  • Preserve independent B2C content, status, stock, and merchandising where required.
  • Give administrators field-level control over create and update behavior.

Weldaad operates a wholesale B2B Shopify store and a separate consumer-facing B2C store. Technical information overlapped, but merchandising and retail content needed to remain independent.

Copying data manually between the two stores consumed time and introduced inconsistencies. A naive full-product sync would have been equally problematic because it could overwrite B2C-specific content.

HeapByte developed a selective one-way synchronization system that lets Weldaad determine exactly what should move from B2B to B2C.

02What was in the way

  1. 01

    Selective synchronization

    Some fields should always synchronize while others must remain controlled independently on B2C.

  2. 02

    Product identity

    SKUs changed over time, forcing the matching strategy to evolve beyond a single identifier.

  3. 03

    Avoiding destructive updates

    Stock, manually added variants, product status, image ordering, and retail-specific data could not be overwritten indiscriminately.

03Architecture

What we built, and what we deliberately left alone.

  1. 01

    Configurable field maps

    Separate create and update settings determine which Shopify fields and metafields move between stores.

  2. 02

    Multi-key matching

    The sync evolved to use stored mappings, product handles, Weldaad codes, and SKU relationships to locate existing B2C products.

  3. 03

    Independent lifecycle rules

    New products can be created as drafts while existing B2C products retain their existing status during updates.

FIGMA / DESIGNERP · NETSUITECRM · KLAVIYOHEAPBYTE LAYERSTOREFRONT / THEMECHECKOUT EXTENSIONSSHOPIFY FUNCTIONS

Delivery

  1. Store connection
  2. Product & metafield sync
  3. Bulk and automatic synchronization
  4. Identity/matching improvements
  5. Production hardening

04Outcome

Sync modes
Manual + bulk + automatic

Multiple operational workflows supported

Field control
Create vs update

Separate mappings protect B2C merchandising

Product identity
Multiple fallback keys

Reduced dependency on a single SKU

Maintenance
Long-term

Sync architecture evolved alongside catalog changes

05Engineering notes

Matching hierarchy
The system can use stored B2C mappings, handles, Weldaad codes, and SKU relationships before deciding a product is new.
Retail price mapping
B2B recommended retail price can feed B2C selling price without copying wholesale pricing.
Variant protection
Update behavior can preserve B2C-specific variants and pricing rules.
Image synchronization
Image behavior was refined to handle ordering, replacement, duplication prevention, and seasonal merchandising requirements.

What we took from it

  1. 01Multi-store synchronization needs an explicit source of truth for every field.
  2. 02Product identity should never depend on one mutable property.
  3. 03Create and update rules should be configurable independently.
  4. 04Automatic synchronization should be introduced only after manual workflows are proven.

Disciplines applied

Next case study

Exact Online → Shopify Pre-Order Automation

We replaced manual Shopify pre-order management with an Exact Online integration that automatically controls availability, caps, badges, and preorder state.

Similar problem?

We will tell you whether this approach fits.

Every store is different. Send us yours and we will say what we would actually do — including when the answer is less work, not more.