Shopify price automation platform
Built a custom price automation system for an Italian Shopify store. The system eliminates manual price review workflows, by syncing all products prices with real market data. Prices are synced through scheduled pipelines, ensuring daily up-to-date prices.
Note: This is a custom solution built for a private client.
Three independent services in a monorepo, each with a distinct responsibility and sharing the same PostgreSQL database via Prisma.
Shopify stores sizes as free-text while external providers use structured size arrays.
Sizes are normalized into a shared format (region labels stripped, formats standardized) before comparison, ensuring consistent matching across sources.
Handling inconsistent product data without breaking the matching pipeline.
Each mapping is persisted with a status (mapped, not_found, manual_review). Failed items are skipped on subsequent runs, avoiding redundant API calls.
Running multiple Node.js services on a Windows VPS with Cloudflare, Caddy and PM2.
Caddy handles HTTPS via Cloudflare origin certificates, while PM2 runs and monitors all services. A Docker setup is available as a fallback for portability.
The backend writes to Shopify GraphQL first, then commits to PostgreSQL. If the DB transaction fails after the Shopify mutation succeeds, prices silently drift. I'd implement an outbox pattern or idempotency keys from day one to guarantee consistency across both systems.
weeklyPriceUpdate.js has a take: 10 limit that was hardcoded during development and never replaced. At scale it silently under-processes the catalog. I'd replace it with a paginated processor and a configurable chunk size from the start.
Backend and Shopify App each maintain separate Prisma instances pointing to the same database. Schema changes require migrating and generating in both services independently. I'd extract the shared schema into a dedicated monorepo package to avoid the duplication.
I build custom internal tools and automation systems tailored to specific business workflows from pricing pipelines to inventory dashboards.