System · Printing & ergonomic products distributor · Montréal, Canada

SuiteChannel

Multi-tenant NetSuite → Shopify channel platform: a 10,000-item catalog synced on resumable runs, dealers curating, pricing and publishing to their own stores.

Live · 2025 → 2026
SuiteChannel — Multi-tenant NetSuite → Shopify channel platform: a 10,000-item catalog synced on resumable runs, dealers curating, pricing and publishing to their own stores.

For decision-makers

The problem
A Canadian distributor kept its item master, price tiers and stock in NetSuite while its dealers sold on Shopify. Two hand-maintained catalogs drifted; one-shot exports published everything at the wrong price; nobody could say what a dealer's store actually held.
What I built
A platform where NetSuite stays the source of truth. Six custom NetSuite scripts feed the whole catalog — items, the full price-level matrix, stock, collections — into Postgres on scheduled runs that pause, resume, retry from their cursor and cannot double-run. Each dealer installs the Shopify app, sees the items they are entitled to, approves new ones, overrides prices, sets margins and decides where every field lands on their store; the platform pushes products, prices and inventory through the GraphQL Admin API and reads them back to report honest sync health. Bilingual English/French, with GDPR webhooks, encrypted credentials, rate limits and structured logs.
Where it stands
Live at the dealer portal with 10,062 catalog items synced and multiple dealer stores connected.

System map

Dealer portalportal · Next.js 15 App RouterSuperAdmin consolestaff · same Next.js app, role-…APIapi · NestJS 11Sync engine (in-proce…worker · @nestjs/schedule 1-…PostgreSQLNetSuiteShopify Admin GraphQL API 202…Shopify OAuth + webhooksResendSurfacesCoreExternal services