Case Study
Trove Gifting — Shopify · Stripe · Xero Sync System
A production-grade multi-vendor gifting platform with end-to-end revenue orchestration — from customer checkout through vendor payout — across Stripe, Shopify, Xero, and AWS infrastructure.
- 90%
- Reduction in manual reconciliation overhead
- 3
- Platforms unified into a single orchestration layer
- 100%
- Automated vendor invoice generation via Xero
- < 2s
- Webhook-to-order processing latency
Overview
What was built
Trove Gifting is a B2B gifting platform connecting corporate buyers with curated vendors. The core engineering challenge was orchestrating payments, inventory, accounting, and fulfillment across three separate SaaS platforms — Stripe, Shopify, and Xero — without manual intervention at any step.
The solution is a NestJS backend that acts as the central orchestration hub. It receives webhooks from Stripe and Shopify, processes them through a typed event bus, persists state in MySQL via MikroORM, dispatches async jobs via AWS SQS, and automatically generates Xero invoices per vendor on payout cycle completion.
Two React frontends are served: a customer-facing storefront for gift selection and checkout, and a vendor admin dashboard for order management, packing manifests, and financial reporting. Static assets and uploaded files are stored in AWS S3 with presigned URL delivery.
Architecture
System Architecture Overview
End-to-end revenue and fulfillment orchestration across payments, commerce, accounting, and cloud infrastructure.
Customer Frontend
React-based storefront where customers browse gifts, build bundles, and initiate checkout.
React · Next.js · Tailwind CSS
Stripe Payment Processing
Handles payment intents, subscription billing, webhook event verification, and refund lifecycle.
Shopify Webhooks + OAuth
Syncs product catalog, inventory levels, and order state via Shopify's Admin REST API using OAuth 2.0.
Shopify Admin API · OAuth 2.0 · Webhooks · Inventory Sync
NestJS Backend API
Core application layer. Orchestrates all service integrations, enforces business rules, and exposes RESTful endpoints.
MySQL via MikroORM
Relational persistence layer. Manages entities for orders, vendors, products, invoices, and audit logs.
MySQL · MikroORM · Migrations · Transactions
AWS Queue — Async Processing
Decouples heavy workloads such as email dispatch, PDF generation, and third-party sync into resilient job queues.
Vendor Admin Frontend
Dedicated dashboard for vendors to manage their product listings, review orders, and download packing manifests.
React · Admin Dashboard · Role-based Access
Xero Invoice Payments + AWS S3
Auto-generates and reconciles invoices in Xero per vendor payout cycle. AWS S3 handles all document and asset storage.
Engineering
Technical highlights
Stripe Webhook Reliability
Idempotent event handlers with signature verification and a persistent event log prevent double-processing across retries.
Shopify OAuth + Catalog Sync
OAuth 2.0 merchant onboarding with automated product, variant, and inventory sync on every Shopify webhook event.
Async Job Architecture
Heavy tasks (PDF generation, email, Xero sync) are decoupled into SQS-backed workers with dead-letter queue handling.
Xero Invoice Automation
Invoices are created, line-itemised, and marked paid in Xero automatically when vendor payouts are confirmed.
Role-based Access Control
NestJS Guards enforce vendor-scoped data access, ensuring each vendor can only view and action their own orders.
Typed ORM with Migrations
MikroORM entities are the single source of truth. Schema migrations are versioned and run on deploy inside Docker.
Stack
Technologies used
NestJS · Next.js · React · TypeScript · MySQL · MikroORM · Stripe · Shopify Admin API · Xero API · AWS SQS · AWS S3 · BullMQ · DigitalOcean VPS · Docker · Nginx
More work
Other case studies
Brickbro — Platform Modernization & ETL
Modernized a legacy NestJS marketplace backend using Hexagonal Architecture and quickly ramped up on an existing Apache Airflow DAG-based ETL system to implement data processing enhancements and workflow improvements.
NestJS · Airflow · PostgreSQL · MongoDB
Lead Intake → CRM → Payment Pipeline
End-to-end automation from form submission to CRM entry to payment collection. Converted manual 12-step process into a single trigger.
n8n · REST API · Stripe · Automation
Need a similar system?
Let's scope your integration and automation requirements.