liam@portfolio:~ cat case-study.md
$ stack
01 // problem
Print-on-demand merchants on Shopify needed StationeryHQ fulfillment without re-keying orders or losing artwork files. SKUs drifted between storefronts and SHQ catalogs, and checkout had no structured place to attach print-ready assets before payment. Ops teams chased email threads when transfers failed — there was no shared order view tying Shopify line items, SHQ draft references, file uploads, and retry history.
02 // solution
Built SHQ Connect as an embedded Shopify app with admin product mapping, OAuth into the SHQ hub store, and webhooks that create SHQ draft orders when Shopify orders are paid. A checkout UI extension collects per-line artwork before checkout completes; the Rails app surfaces notifications, mapping gaps, and manual retries for Mark's operations team. Trailblazer operations keep mapping and transfer logic testable; metafield definitions sync through data migrations so new stores get the right Shopify schema on install. Production runs at shqconnect.com with Kamal-deployed Rails, Sidekiq jobs, and GDPR-compliant webhooks.
$ screenshots
Operations dashboard — revenue summary and recent Shopify orders Transfer queue for paid orders moving into StationeryHQ draft orders Order detail — line items, file uploads, and SHQ transfer payload for retries