E-commerce

Syncing WooCommerce with 1C without the usual pain

Stock, prices and orders flowing both ways between a warehouse and a storefront — the architecture that keeps the two in step, and the mistakes that quietly break it.

A reliable WooCommerce–1C sync requires three decisions: agree which system owns each data type before writing code, match products on an immutable identifier (article number or GUID, never a name), and log every exchange so failures surface as alerts rather than wrong stock numbers. Most broken syncs fail on one of these three points.

Key takeaways
  • Agree the data-flow direction before coding: 1C owns catalog and stock; the site owns orders.
  • Match products on a stable, immutable key (article number / GUID) — never on a name or slug.
  • Log every exchange and alert on failure — a silent sync that swallows errors is worse than no sync.
  • Schedule syncs at the cadence the business actually needs: stock every few minutes, full catalog overnight.

For a serious store, the website is not the source of truth — the back office is. In a lot of businesses that means 1C. If the storefront and 1C disagree about price or stock, you either oversell or lose the sale. Getting the sync right is the whole game.

Decide what flows which way

Before any code, agree the direction of each data type. Typically products, prices and stock flow from 1C to the site, and orders flow from the site back to 1C. Writing that contract down first prevents the most common failure: two systems both trying to own the same field.

  • Catalog & prices. 1C is master; the site mirrors. The site never edits a price that 1C will overwrite.
  • Stock levels. 1C is master, synced often enough that the storefront is never confidently wrong.
  • Orders. The site creates; 1C consumes and updates status back to the customer.

Match on a stable key

Sync breaks when records are matched on something that changes — a name, a slug, a position in a list. Match on an immutable identifier (an article number or GUID) so a renamed product doesn’t become a duplicate or an orphan.

Every painful 1C sync we’ve inherited had the same root cause: it matched products on something a human could edit.

Fail loudly, not silently

A sync that swallows errors is worse than no sync, because you trust numbers that are wrong. Build in logging and an alert when an exchange fails, so a problem surfaces as a notification — not as an angry customer who bought something you don’t have.

Schedule for the business, not the demo

Real-time everything sounds great and usually isn’t necessary. Stock might sync every few minutes, the full catalog overnight. Tune the cadence to how fast the business actually moves so you get freshness without hammering either system. Done this way, a WooCommerce–1C bridge is boring in the best sense: it just works.

Quick answers

Products matched on a mutable key — usually a name or a slug that someone edited in one system without updating the other. This turns a renamed product into a duplicate or an orphan. Always match on an immutable identifier such as an article number or GUID.

Stock levels typically need to sync every few minutes for a busy store, or at each order event. The full product catalog (descriptions, images, prices) can usually sync less frequently — nightly is common. Tune the cadence to how fast your business actually moves to avoid hammering either system unnecessarily.

Yes — and they usually do. Products, prices and stock typically flow from 1C to WooCommerce. Orders flow from WooCommerce to 1C, which then pushes status updates back. The contract (who owns which field) must be written down before build, or you end up with two systems overwriting each other.

P
Pavel Founder & architect

Architecture, WordPress and the hard back-end problems.

Liked the article?

Join our Telegram — practical notes on WordPress, performance and getting found by AI search. No fluff.

Subscribe on Telegram

Have a project in mind?

Send a short brief — free fixed quote within a few business hours.

Let's discuss your project

Tell us what you need. We'll come back with a free, fixed quote and a realistic timeline — usually within a few hours.