← All work

Integration

Erply × Woo Sync

Idempotent two-way stock and order sync between Erply and WooCommerce.

Role
Developer
Year
2026
Stack
Erply · WooCommerce
Status
Connected
Erply × Woo Sync, rendered as the L3 · Queues layer of the Veltix module

Connected · erply link

1,284products synced
0conflicts
5 mininterval
99.98%success

Stock and orders live in two places at once.

An Erply account and a WooCommerce shop each hold their own view of the same business. Erply knows what is on the shelf and what it costs; WooCommerce knows what has just been bought. Left alone the two drift apart, and the drift is expensive in both directions — overselling stock that has already gone, or holding back stock that is sitting in the warehouse. Orders taken online then have to be re-entered into the ERP by hand.

The hard part is running it a second time.

A sync that works once is straightforward. The difficulty is that this one runs every five minutes, indefinitely, across two APIs and a network that will eventually fail mid-request. A timeout that arrives after the write but before the acknowledgement is indistinguishable from a write that never happened. If the job simply retries, an order is created twice and stock is decremented twice.

Idempotency is the answer to that. Every operation is written so that performing it a second time leaves both systems in exactly the same state as performing it once. Stock is pushed as an absolute quantity rather than a relative adjustment, so a repeated write settles on the same number instead of compounding. Orders carry their WooCommerce identifier through to Erply and are matched on it before anything is created, so a replayed order finds its existing counterpart and updates it rather than duplicating it. A persisted cursor records how far the last run reached, and the next run deliberately overlaps it instead of trimming to the second — re-reading a few records costs nothing once re-reading is harmless.

The sync dashboard — 1,284 products synced, 0 conflicts, a five-minute interval and 99.98% success, above a live sync log showing stock and price changes and orders pushed to Erply
The sync dashboard — 1,284 products synced, 0 conflicts, a five-minute interval and 99.98% success, above a live sync log showing stock and price changes and orders pushed to Erply

Matching, not guessing.

Products are paired through a stored mapping between Erply and WooCommerce identifiers rather than by comparing names or SKU strings at write time. The mapping is established once and then consulted, so renaming a product on one side does not quietly create a duplicate on the other. Anything that cannot be matched is reported instead of guessed at, which is what makes a conflict count of zero meaningful rather than merely quiet.

Sync Cycle

  1. 01Read Erply stock
  2. 02Map identifiers
  3. 03Write Woo stock
  4. 04Read Woo orders
  5. 05Match order ID
  6. 06Write Erply order
  7. 07Advance cursor
  8. 08Append log

Features

Idempotent Writes

Running a sync twice leaves the same result as running it once.

Absolute Stock Levels

Quantities are set rather than incremented, so a repeat cannot compound.

Order Deduplication

WooCommerce order identifiers are matched in Erply before anything is created.

Overlapping Cursor

Each run re-reads a small window of the previous one, because re-reading is safe.

Product Mapping

Stable identifier pairs replace name and string matching between the two systems.

Live Sync Log

Every run records what it read, what it wrote and what is still queued.

A log you can actually read.

Stock movements, price changes, newly created products and orders pushed to Erply each appear as a line with its own status, including the ones still queued. When a shop owner asks why a product shows the wrong quantity, the answer is in the log rather than in a database dump.

Technical Highlights

  • Idempotent write operations
  • Absolute stock quantities
  • Order identifier deduplication
  • Persisted sync cursor
  • Overlapping read window
  • Erply to WooCommerce ID mapping
  • Retry-safe scheduled runs
  • Price and stock sync
  • Queued and synced states
  • Live sync log

Results

  • 1,284 products synced
  • 0 conflicts
  • 99.98% success
  • 5 minute interval
  • Safe to re-run

Two-way Erply and WooCommerce synchronisation

Erply × Woo Sync keeps product stock, prices and customer orders aligned between an Erply retail ERP and a WooCommerce shop. Stock and price changes flow from Erply to the storefront, orders flow from the storefront back into the ERP, and the cycle repeats on a five-minute interval. Because every step is idempotent, the sync can be retried, resumed after a failure or replayed over an earlier window without duplicating an order or double-counting stock.

Topics

  • erply integration
  • woocommerce integration
  • erply woocommerce sync
  • two way stock sync
  • idempotent sync
  • order sync
  • inventory sync
  • retail erp integration
  • ecommerce stock sync
  • api integration
  • woocommerce inventory sync
  • erply api

Contact

Build something that lasts.

Got a Laravel project, a WooCommerce mess or an integration that needs untangling? Tell me what's breaking.

© 2026 Veltix · Kristen LõokeGitHub · Tallinn