Get in touch
CRM and integrations · WordPress

OneBox Sync — order synchronisation for WooCommerce

Автоматична відправка замовлень WooCommerce у OneBox OS: процес-замовлення з клієнтом і товарами створюється в CRM одразу після checkout. Дедуплікація, повторні спроби, журнал подій, зашифровані доступи.

Version
v0.2.0
Compatibility
WordPress 6.2+, WooCommerce 6.0+
Platform
WordPress
OneBox Sync — order synchronisation for WooCommerce

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

OneBox Sync settings in WooCommerce
Settings page: your OneBox domain, the employee’s API login and API password, trigger statuses for sending, and optional routing — business process, stage and source IDs. The “Test connection” button instantly shows whether the credentials are valid, and the “Log” tab shows the latest sync events.
OneBox metabox in a WooCommerce order
Each order gets a OneBox metabox: sync status, the CRM process ID and a “Resend” button. Resending updates the same process — items are updated, not duplicated.
OneBox Sync log
The “Log” tab: the latest sync attempts — date, order, event (create / update / adopted / no_response), attempt number, HTTP code and OneBox response. You see both successful sends and the reason something failed.

How it works, step by step

  1. The customer places an order — the plugin supports both the classic checkout and Checkout Blocks.
  2. 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.
  3. 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.
  4. OneBox returns a process ID — it is stored in the _cc_onebox_order_id meta; an externalid of wc-{id} is also sent, so duplicates are ruled out twice over.
  5. 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_payload filter lets you change the data before sending, and the cc_onebox_order_sent hook lets you run your own code after a successful sync.

How to install

  1. 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).
  2. Upload catcode-order-sync-with-onebox-for-woocommerce-0.2.0.zip via Plugins → Add New → Upload Plugin and activate it.
  3. Open WooCommerce → OneBox Sync and enter your OneBox domain, API login and API password.
  4. Click “Test connection” — the plugin will fetch a token and the list of business processes.
  5. If needed, set the business process, stage and source ID (leave blank for the first business process automatically) and save.
  6. 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.

@catcode_support

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about your task and we will prepare an estimate.

Order a custom module