Skip to content
Shopify operationsPrivate beta

RetailOps Bridge

A Shopify app that helps POS merchants migrate away from Stocky without losing operational history, suppliers, or replenishment context.

Role
Product design, migration architecture, and full-stack development
Source
Private repository
Started
Last repository update
Core stack
  • Shopify
  • React Router
  • Cloudflare Workers
  • D1
  • R2
  • Queues
Table of Contents

Overview

RetailOps Bridge helps Shopify POS merchants move away from Stocky without discarding the operational history that sits outside Shopify’s live inventory state. It imports Stocky CSV exports, identifies migration gaps, preserves validated records, and provides a focused workspace for suppliers, readiness checks, archive access, and replenishment guidance.

It is a bridge rather than a replacement ERP. Shopify remains the authority for live inventory and operational transactions.

The problem

Leaving a legacy retail operations tool is not only a file-import task. Merchants need to understand whether exports are complete, whether SKUs still match the live catalog, which records are duplicated, and which historical relationships will disappear after the cutover.

A successful migration needs both validation and a usable archive.

Product approach

RetailOps Bridge creates a reviewable migration flow:

  1. sync the current Shopify locations, products, variants, SKUs, and inventory levels;
  2. upload one or more Stocky exports;
  3. detect file type, delimiter, missing columns, invalid rows, duplicates, and unmatched SKUs;
  4. review findings and resolve structural issues;
  5. commit validated rows to a read-only historical archive;
  6. use supplier, reorder, checklist, and reporting views after migration.

The import model supports supplier records, purchase orders, stocktakes, adjustments, transfers, costs, and reorder settings.

Data safety

Original files are stored as private R2 objects. Normalized records are shop-scoped in D1. The product does not intentionally collect customer identity, payment, address, or order-history data, and its Shopify scopes are limited to products, inventory, and locations.

Duplicate uploads are detected with SHA-256 hashes, spreadsheet-formula prefixes are escaped in exports, and structural validation findings cannot be bypassed simply by marking them reviewed.

Architecture

The embedded application uses React Router, Shopify App Bridge, and Polaris web components. A web Worker handles the interface, authenticated APIs, uploads, exports, and webhooks. A separate jobs Worker handles queue work and scheduled reporting. D1 stores normalized data, R2 stores original imports, and Cloudflare Queues provide retry and dead-letter handling.

My role

I designed the migration product, readiness model, CSV normalization pipeline, Shopify catalog synchronization, archive structure, supplier and replenishment workflows, and the Cloudflare deployment.

Current status

RetailOps Bridge is a private beta with a deployed application surface. The repository remains private while merchant validation and Shopify distribution work continue.