How to Integrate iDempiere ERP with Shopify and WooCommerce: A Practical Guide

Proven patterns for integrating iDempiere ERP with Shopify, WooCommerce, BigCommerce and WinxCommerce — what to sync, how to sync it, the edge cases nobody tells you about, and monitoring that catches failures before customers complain.

By SCM Software Lab Published 2026-04-23 10 min read iDempiere · Open-Source ERP
iDempiereShopifyWooCommerceeCommerceIntegration

Why Integrate iDempiere With Your Storefront?

If your eCommerce store lives in Shopify (or WooCommerce, BigCommerce, WinxCommerce) and your accounting, inventory, and fulfillment live in iDempiere, you are either double-keying orders or living with stale data. Neither scales.

A well-designed integration makes iDempiere the single source of truth for master data (products, prices, inventory) and the system of record for financial transactions (orders → invoices → payments → GL). Your storefront becomes a sales channel, not a data island.

What Actually Gets Synced

The integration scope we recommend for 95% of clients:

EntityDirectionFrequency
Products (catalog)iDempiere → ShopifyOn change + daily full sync
Prices / price listsiDempiere → ShopifyOn change
Inventory / stockiDempiere → ShopifyNear real-time (every 5 min)
OrdersShopify → iDempiereWebhook (real-time)
CustomersBi-directional (Shopify → iDempiere primary)On order creation
Fulfillment statusiDempiere → ShopifyOn shipment confirmation
InvoicesGenerated in iDempiere, emailed / displayed to customerOn invoice

Integration Architecture

We build this as an OSGi plugin inside iDempiere plus a thin middleware layer (a Spring Boot service or serverless functions) depending on volume. Key components:

  • Shopify Admin API (REST + GraphQL) for catalog / inventory / order operations
  • Shopify Webhooks for order create / order update / order cancel events
  • iDempiere REST Web Services (Adaxa REST or Dev-mode REST) for ERP-side operations
  • A message queue (Redis Streams, RabbitMQ, or SQS) for async processing and retries
  • An audit table in iDempiere logging every sync event with payload, status, and retry count

Products & Pricing Sync

Product master lives in iDempiere. When a product is created or updated, an iDempiere model-validator triggers an outbound message: "Product SKU XYZ has changed, push to Shopify." The middleware maps iDempiere attributes to Shopify fields:

  • M_Product.Value → Shopify product.handle + product_variant.sku
  • M_Product.Name → Shopify product.title
  • M_Product.Description → Shopify product.body_html
  • Price from the linked M_PriceList (currency-specific) → variant.price
  • Product images from M_Attachment → Shopify product.images

We handle variants using iDempiere Attribute Sets (Size/Color) mapped to Shopify product options. Don't try to sync SKUs without attribute discipline — it will fall apart in week two.

Inventory / Stock Sync

Inventory is the spicy part. iDempiere's M_StorageOnHand is your source of truth per warehouse. Shopify has inventory_levels per Location. Map iDempiere warehouses to Shopify locations 1:1.

Two modes:

  • Event-driven: every M_Transaction triggers a partial sync. Low latency (~30s) but spiky.
  • Scheduled: every 5 minutes push a delta. Simpler and more resilient.

Always send absolute quantities, not deltas. Delta-based syncs drift; absolute-quantity syncs self-heal.

Orders, Fulfillment & Invoices

When a customer places an order on Shopify, a webhook hits your middleware — within seconds we create:

  1. A BPartner (customer) in iDempiere if this is a new customer
  2. A Sales Order (C_Order) with document type "Standard Order" in the correct sales channel
  3. Order lines (C_OrderLine) with product, quantity, price, and tax from iDempiere's tax rules
  4. An optional payment allocation (C_Payment) if the order is paid-on-placement

When the warehouse ships, iDempiere generates the M_InOut (shipment), the C_Invoice (invoice), posts to GL, and sends the Shopify fulfillment update with carrier + tracking number.

Customer Master & Addresses

Deduplication is the hardest problem. We match on email first, then phone, then name + pincode. New customers get a C_BPartner record with a generated customer code. Existing customers get their address list merged, not overwritten.

B2B customers with GSTIN / VAT-ID on the storefront need special handling — we validate the tax ID against the official registry (GSTN, HMRC, etc.) before creating the tax-included invoice.

Common Pitfalls (and How to Avoid Them)

  • Race conditions during flash sales: 500 orders in 60 seconds saturates the webhook queue. Pre-warm your middleware, raise queue concurrency, and pre-allocate sequence numbers.
  • Tax calculation drift: never trust Shopify's calculated tax for the final invoice. Let iDempiere's tax engine (with your local rules) recompute and post.
  • Partial fulfillments: if you ship 8 of 10 items, the Shopify fulfillment payload must exactly match the iDempiere shipment line quantities or the customer sees the wrong tracking.
  • Refunds and returns: model them as separate iDempiere documents (RMA → return shipment → credit memo), not as edits to the original order.
  • Multi-storefront: if you run Shopify, WooCommerce, and Amazon simultaneously, make "sales channel" a first-class dimension in iDempiere from day one.

Monitoring & Reconciliation

Build the dashboard before you go live. Minimum KPIs:

  • Orders received vs. orders booked in iDempiere (hourly)
  • Inventory sync lag per SKU (p50 / p95 / p99)
  • Failed webhook queue depth
  • Daily reconciliation: Shopify orders total vs. iDempiere sales journal total

We wire these into Grafana or Power BI and alert on anomalies. Customers notice inventory-sync failures faster than you do — don't let them tell you first.

Need a robust iDempiere ↔ eCommerce integration?

We've built and run these integrations in production for 50+ clients. Get a free architecture review and a fixed-price proposal.

Get a Fixed-Price Quote →

Ready to roll out iDempiere for your business?

Get a free Proof of Concept — we build a working iDempiere environment with your data, modules, and integrations in 2–3 weeks. Zero upfront cost, zero obligation.

Talk to an iDempiere Expert