← All case studies Case study · Anonymised Educational supply · B2B + DTC Dec 2025 → ongoing Custom operations layer
Case study01 of 02

A custom ops layer that replaced broken automation and filled the B2B gaps Shopify doesn't natively cover.

A Canadian educational-supply retailer migrated to Shopify in late 2025. The catalog moved cleanly, but a layer of operational logic that had been invisible on their prior platform had no native home. I built one operations layer that now owns bundle recompute, customer-segment sync, order classification, and catalog tagging — hosted on infrastructure the merchant owns end to end.

The result
13 13
What changedAll 13 drifted bundles backfilled and reconciled to real component-derived totals.
What didn't changeNo subscription stack growing month over month for the same coverage.
OwnershipApp and code repo handed to the merchant's in-house developer, April 2026.
Engagement
Client

AnonymisedCanadian educational-supply retailer — childcare centres, schools, B2B + DTC

Engagement shape

Migration + custom buildDecember 2025 onwards

Stack touched

Shopify · merchant-owned cloudScheduled jobs · event listeners · web UI

What it replaced

A broken bundle automationPlus three manual workflows

Diagram of the operations layer sitting between Shopify and the merchant's other systems
Fig. 01 · The operations layer — scheduled jobs, event listeners, and a password-protected web UI.

The challenge

A long-running Canadian educational-supply retailer — serving childcare centres, schools, and the broader B2B and DTC market — migrated their storefront to Shopify in late 2025. The catalog moved over cleanly, but a layer of operational logic that had been invisible on their prior platform didn't have a native home on Shopify.

Three gaps surfaced once orders started flowing:

  • A broken bundle-recompute automation that was supposed to roll component price and inventory changes up to the bundle parent. Thirteen bundles drifted out of sync; one had a stale availability number well below the real component-derived total.
  • B2B order classification by eye. Different payment methods (bank deposit, manual card capture, purchase order on terms) needed different fulfillment workflows. The team read payment data off each order manually.
  • Customer-segment knowledge trapped in an external system. The team knew which customers belonged to which segment, but that data lived outside Shopify in their marketing system, out of reach of the storefront.
Diagram showing where Shopify's standard features meet the needs of a combined B2B and DTC operation
Fig. 02 · Where Shopify Standard meets a real B2B + DTC operation.

The fix

Built a single operations layer hosted on cloud infrastructure the merchant owns end to end. The system runs scheduled jobs, listens to events from Shopify, exposes a password-protected web UI for the team, and logs every run with live streaming so the team can see exactly what ran and whether it succeeded.

Components shipped:

  • Bundle Recompute. Replaced the broken automation. Recomputes each bundle's available inventory from its components and keeps it current as components change. Runs daily plus on every product update.
  • B2B Order Tagger. Classifies each order by payment method so the team knows the right fulfillment workflow on sight. Retries on orders that arrive before payment data lands.
  • Customer-Segment Sync. Keeps the Shopify customer-segment field current with the marketing system's source of truth. Daily sync covers about 26,000 matchable contacts; built-in retry handles transient upstream API hiccups.
  • Tagging suite. Auto-tags products by attribute — multi-variant, clearance with reverse-tag-on-clear, eBook, kit, and new-collection badge. 154 products auto-tagged on the new-collection backfill; tags update in real time when the catalog changes.

Infrastructure migrated to the client. April 2026: the operations-layer app moved into the merchant's own cloud account with zero downtime. The system belongs to the merchant. Code repository handed over to their in-house developer the same month, audit-clean and ready to extend.

Alongside the operations layer, the broader work covered theme architecture migration onto a modern build pipeline (bundled with a customer-type form, a minimum-quantity feature, and a bundle-image-swap PDP component), plus the pre-launch build of a sister-brand storefront including a search-engine port and a quote-only checkout-removal flow.

Results

Diagram comparing a stack of separate app subscriptions against one owned operations layer
Fig. 03 · A subscription stack versus one operations layer the merchant owns.

Operational gaps closed. Bundle recompute, B2B order tagging, customer-segment sync, and catalog tagging — all on one operations layer the merchant owns. No subscription stack growing month-over-month for the same coverage.

Bundle data corrected. All 13 bundles backfilled; stale availability numbers reconciled to real component-derived totals; the bundles that previously had no index now indexed.

Before-and-after of a bundle's availability number being recomputed from its components
Fig. 04 · Bundle availability recomputed from real component-derived totals.

Customer-segment bridge running. Around 26,000 matchable customers synced between Shopify and the upstream marketing system; a daily delta keeps it current.

Infrastructure owned by the client. Operations-layer app and code repo handed over to the merchant in April 2026. Their in-house developer can extend, audit, and run the system without me as a single point of failure. The system grows with the business rather than against it.

The client is a Canadian educational-supply retailer serving childcare centres, schools, and the broader B2B and DTC market. Work spans December 2025 onwards, with a sister-brand pre-launch build included. Published with the client's permission; details are anonymised at their request.