ConnectWiz + WooCommerce
Live integrationTwo-way WooCommerce sync — with an ownership contract
Most "Woo integrations" are an import button and a prayer. This one is a governed, two-way sync where you decide, per data domain, which system owns the truth — and every conflict lands on a ledger instead of overwriting silently.
E-commerce
What it does — precisely
One-click pairing
The standard WooCommerce authorization flow provisions API keys and webhooks automatically — no key-copying ritual, no webhook checklist.
Deep import
Images, category trees, regular and sale prices with their windows, GTINs, tags, upsells and cross-sells, variation prices and images — the catalog arrives whole, not as a name-and-price skeleton.
Real write-back
Product edits here can write back to Woo — governed by a per-operation switch with a rehearse mode, so you see what would change before anything does.
Field-level ownership
Per domain you choose: data lives with Woo, lives here, or syncs both ways. Owned-elsewhere fields render read-only with the reason on screen — no two-masters chaos.
A conflicts ledger
Failed or conflicting syncs land in a visible ledger with resolve-and-retry — never a silent overwrite discovered at inventory time.
Orders join the flow
Woo orders appear with their source marked, beside orders from the chat shop, the AI and the API — one order truth across surfaces.
Under the hood
Sync engineering most integrations skip
A paranoid pairing handshake
The connect link expires in 15 minutes, the callback is marked consumed before anything else so it can never be replayed with older credentials — and the store URL used is the one you typed, never the one a callback claims.
Retry-proof by design
Woo renumbers its delivery IDs on every retry, so dedupe deliberately ignores them and keys on message content instead. Outbound, the idempotency key rides in the order’s own metadata and is re-found by search — because the dangerous case is the write that landed while the response got lost.
Second-pass relations
Upsells and cross-sells arrive as shop IDs pointing at products that may not exist yet — so they resolve in a second pass after the catalog lands, and the category tree is fetched separately because a product payload only names its leaves.
Currency read once, correctly
Woo publishes currency per order and never per product — so the shop currency is read once from the store’s own settings before the catalog imports, instead of being guessed per row.
A conservative status map
Fulfillment pushes map only where the vocabularies truly agree; a "returned" order is never force-translated — it reaches a human as an order note instead. And status notes post with customer-notify off, so Woo doesn’t email your customer twice.
Your typing wins
A field a person edited by hand here is never overwritten by an import — the sync respects the human, and says so in the source card on every item.
Setup
How it connects
Pair the store
Click connect, approve in your WooCommerce admin — keys and webhooks are provisioned for you.
Choose ownership
Pick, per data domain, who owns the truth: Woo, ConnectWiz, or both ways.
Rehearse, then go live
Run write-back operations in rehearse mode first; flip to live when the diff looks right.
Better together
What it composes with
WordPress plugin
The plugin signs logged-in Woo customers into the chat — the same person the sync already knows, orders attached, no re-registering.
Product feeds
The imported catalog can publish as a Google Shopping / Meta Commerce feed — one variant per row, honest skips with reasons, no invented currency conversions. See Commerce.
Wiz + flows
The AI answers "where is my order?" from live store data, and flows can react to commerce events — the sync is the floor everything else stands on.
Security & guarantees
The boring guarantees
Keys provisioned, never pasted
The wc-auth flow has your store hand keys to us server-side — encrypted at rest, with no copy-paste ritual for a human to leak.
Every webhook proven
Inbound deliveries are HMAC-signed with a secret we mint per store and compared in constant time — a spoofed "product update" bounces at the door.
Polite to your store
Verified-but-unhandled deliveries still answer success, because Woo deactivates a webhook after five consecutive failures — we absorb oddities rather than let your store give up on us.
SSRF-guarded egress
Every call to your store URL passes an egress guard — a malicious "store address" can’t be used to probe internal networks.
The honest fine print
Boundaries, stated
No payment processing
Orders sync; charging cards stays with your store and payment provider — pretending otherwise is how platforms become half-bank, badly.
Media follows ownership
Where Woo owns content fields, they are read-only here by design — the point of an ownership contract is that it binds us too.
The 2,000-product ceiling
One import run carries up to 2,000 products — a stated engineering bound. Larger catalogs are a scaling conversation we’d rather have honestly than time out silently.
Orders are read, not copied
Store orders show live on the contact (cached for a minute, ten most recent) rather than being duplicated into a second ledger — a deliberate one-source-of-truth decision, stated here.
Connected honestly beats connected loudly.
Every integration here is described by what it really does — direction, ownership and limits included.