Skip to content
Hardik Zinzuvadiya
Let's connect

integration

Shopify to ERPNext operations suite

Shopify orders become submitted Sales Orders, Invoices and Delivery Notes on a schedule, with monitors for orders and products.

Shopify Order Monitor desk page: summary cards for total, not synced, synced, undelivered, unpaid and outstanding, date and customer filters, quick filters, and a list of Shopify orders where unsynced orders carry a Sync to ERPNext button and synced ones show Sales Order, Delivery Note and Sales Invoice badges

Overview

A one-way sync that makes ERPNext the system of record for a Shopify shop: a cron job every 10 minutes turns new and changed orders into submitted Sales Orders, Invoices and Delivery Notes, and ERPNext pushes nothing back. Two Desk pages, the Order Monitor and the Product Monitor, show what is synced, shipped and paid without opening raw documents. Live in production since May 2026.

Features

Order sync

  • Shopify order becomes a submitted Sales Order; a Sales Invoice follows once paid
  • Delivery Note when Shopify reports a successful fulfilment, partials included
  • Cancellation in Shopify unwinds the order, all or nothing, only if nothing shipped
  • Shopify quantity variants map to pack sizes on one item via Item Sales Pack
  • Keyed on the Shopify order id: re-running a window never duplicates a document

Monitors

  • Order Monitor reads Shopify and checks each order against ERPNext documents
  • Sync, Re-sync and Import historical orders from the card
  • Product Monitor with Shopify, ERPNext and Inventory tabs and bulk sync
  • Sync Monitor maps 401, 403, 429, 5xx and timeouts to plain errors, flags stale runs

Reliability

  • Cron every 10 minutes over a watermark window with overlap, under a Redis lock
  • Cursor pagination against the Shopify API with a page cap per run
  • Client-credentials access token refreshed on a schedule
  • Historical import reconciled with compensating Stock Entries
  • Integration tests run against a real site with bench execute

Technical details

Built with
Python, Frappe v16, ERPNext, Shopify REST 2025-10, Shopify GraphQL, Redis, RQ background jobs, MariaDB
Type
integration
Status
In production

Private code. Contact me for details.

Have something slow, manual, or fragile in production?

Tell me what it is. I reply within two working days, with questions.

Let's connect