OneBox Sync — order synchronisation for WooCommerce
Автоматична відправка замовлень WooCommerce у OneBox OS: процес-замовлення з клієнтом і товарами створюється в CRM одразу після checkout. Дедуплікація, повторні спроби, журнал подій, зашифровані доступи.
What each licence includes
| Feature | Free |
|---|---|
| A process order is created in OneBox OS after every checkout | ✔ |
| Customer, phone, delivery address and item list are sent | ✔ |
| Supports both the classic checkout and Checkout Blocks | ✔ |
| Choice of trigger statuses | ✔ |
| Process deduplication | ✔ |
| Retry queue on failures | ✔ |
| Exchange log and metabox on the order | ✔ |
| HPOS compatible | ✔ |
| Free | ✔ |
OneBox Sync for WooCommerce is a plugin that, after every checkout, automatically creates a process order in OneBox OS with the customer, phone number, delivery address and list of items. The manager opens a ready-made request in the CRM instead of copying data from the WooCommerce order by hand — and no order gets lost between the site and OneBox.
The plugin is completely free, and the code is open. Download it from GitHub: github.com/catcodestudio/wp-onebox-sync. No paid tiers, keys or limits.
What the admin gets



How it works, step by step
- The customer places an order — the plugin supports both the classic checkout and Checkout Blocks.
- The plugin authenticates with OneBox: it obtains a token via POST
/api/v2/token/get/(the token is cached and refreshed automatically) and sends the order via POST/api/v2/order/set/to your OneBox domain. - The customer and items are mapped to the CRM: clientname/clientemail/clientphone/clientaddress plus a products array linked to the OneBox catalogue — catalogue items are matched by SKU or created automatically. Delivery is a separate line, so the process total matches the order total.
- OneBox returns a process ID — it is stored in the
_cc_onebox_order_idmeta; an externalid ofwc-{id}is also sent, so duplicates are ruled out twice over. - If OneBox is unavailable — WP-Cron retries the send: 3 attempts with 5 min / 30 min / 2 h delays. Orders paid online get a “✅ Paid online” note on the process (COD and offline methods are not marked).
How much it costs
Free. The plugin is distributed under GPLv2 with open source on GitHub — all features are available with no payment right after installation.
Technical requirements
- WordPress 6.2+ (tested up to 7.0)
- WooCommerce 6.0 or newer
- PHP 7.4+
- OneBox OS with the “API v2” component (1b.app → Apps → API services) and an employee REST API login/password (Users and employees → employee card)
Under the hood
- Double deduplication: an externalid of
wc-{id}gives an upsert on the OneBox side, and the process ID saved in the order meta blocks the plugin from creating it again. - Database-level lock — if the checkout hook, a status change and a payment callback hit the same order at once, exactly one create request goes to OneBox (verified with 24 parallel requests against 3 orders).
- An unanswered attempt doesn’t duplicate the deal — if OneBox doesn’t respond (timeout), the order is flagged, and before retrying the plugin asks the CRM for the externalid (POST
/order/get/) and picks up the process already created. - API password encrypted in the database — libsodium with an HMAC fallback; the access token is cached and refreshed automatically.
- Phone normalisation to E.164 (+380…) — numbers arrive in the CRM in a single format.
- HPOS compatibility (custom order tables) — orders are handled exclusively through WC_Order CRUD.
- Extensibility: the
cc_onebox_order_payloadfilter lets you change the data before sending, and thecc_onebox_order_senthook lets you run your own code after a successful sync.
How to install
- Install the “API v2” component in OneBox (1b.app → Apps → API services) and set a login and password for the employee in their card (Users and employees → Login, password, permissions).
- Upload
catcode-order-sync-with-onebox-for-woocommerce-0.2.0.zipvia Plugins → Add New → Upload Plugin and activate it. - Open WooCommerce → OneBox Sync and enter your OneBox domain, API login and API password.
- Click “Test connection” — the plugin will fetch a token and the list of business processes.
- If needed, set the business process, stage and source ID (leave blank for the first business process automatically) and save.
- Place a test order — a process order will appear in OneBox.
Version history
- 0.2.0 — 13 August 2026
- Fixed the “Resend” button in the metabox: the metabox form was nested inside the order form, and the browser was discarding it — it’s now a nonce-protected link, with the result shown as an admin notice. Parallel requests for the same order can no longer send it twice — a database-level lock plus re-reading the order past the HPOS cache. An attempt that got no response now searches OneBox for the process by externalid before retrying. Deleting the plugin now removes the log table, settings and leftover locks. The interface has been moved to English with a Ukrainian translation, and styles are enqueued as a separate handle. The plugin was renamed to
catcode-order-sync-with-onebox-for-woocommerce(settings, order meta and the table are unchanged — no migration needed). - 0.1.0 — July 2026
- First public release: sends orders to OneBox OS via API v2 (token/get + order/set), double deduplication (externalid + meta), item-to-catalogue mapping, routing by business process/stage/source, retries via WP-Cron, metabox, log, connection test, API password encryption.
Frequently asked questions
Where do I get the API login and password?
OneBox OS admin panel → "Users and employees" app → employee card → REST API password. The login is that employee's login. The plugin exchanges them for a token itself via /api/v2/token/get/.
Do duplicates appear when the status changes again?
No. The plugin sends an externalid of wc-{id} — OneBox updates the matching process itself — and additionally checks the OneBox ID saved in the order meta.
What does the "Resend" button do?
If the order isn't in OneBox yet — it creates a process. If it was already sent — it updates the same process with current data: items are updated, not duplicated.
Does the plugin touch the checkout or the theme?
No. All the work happens on the server via order hooks — the front end, the theme and the checkout page are not changed.
What happens if an item has no match in the OneBox catalogue?
The plugin sends items linked to the catalogue (productinfo: name, SKU, externalid) — the item is matched by SKU or created in the catalogue automatically.
What happens if OneBox doesn't respond at all?
The order is marked as a "no-response attempt", and before retrying, the plugin asks OneBox whether a process with that externalid already exists. If it does — it adopts that ID and writes a note on the order; a second process is not created.
What happens after the plugin is deleted?
The processes in OneBox and the orders themselves remain. The plugin removes its own log table and settings, but deliberately leaves the meta with the process ID in place — that's exactly what prevents old orders from being resent after reinstalling.
Questions about the module?
Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.
No reviews yet. Be the first — right below.
Leave a review
Reviews are moderated before publication, which usually takes up to 24 hours.
No questions yet. Ask one — we answer within 24 hours.
Ask a question
We usually reply within 24 hours during working hours.
Buying the module
—