Get in touch
  • WordPress
  • CRM and integrations
  • v0.2.0

NetHunt Sync — CRM for WooCommerce

Free WooCommerce integration plugin for NetHunt CRM: after checkout, a record with phone, email, total and items appears in a CRM folder. Open source.

Compatibility
WordPress 6.2+, WooCommerce 6.0+
PHP
7.4 or newer
Updated
August 2026

What the module does

Feature Free
Every WooCommerce order lands as a record in a NetHunt CRM folder ✔
Phone, email, total, item list and a link to the order are sent ✔
Supports both the classic checkout and Checkout Blocks ✔
Choice of trigger statuses ✔
Record deduplication: database-level lock against parallel sends ✔
Searches for a record by "Order ID" after a timeout — no second record in the CRM ✔
Retries when the CRM is unavailable ✔
Exchange log and metabox on the order ✔
HPOS compatible ✔
Free ✔

What it looks like

NetHunt Sync settings for WooCommerce — token, folder, trigger statuses
One settings page in WooCommerce: API token, the folder for orders, the send trigger — right after checkout or when moving to one of the chosen statuses. There’s also a “Test connection” button and a “Log” tab with the latest sync events.
NetHunt metabox on a WooCommerce order with sync status
On every order page — a NetHunt metabox: sync status, the CRM record ID and a “Resend” button (since 0.2.0 it works as a nonce-protected link — previously a form nested inside the order form stopped it from firing). For orders already sent, resending updates the existing record via PATCH rather than creating a duplicate.
WooCommerce Orders folder in NetHunt CRM with order records
This is what orders look like inside NetHunt: a “WooCommerce Orders” folder with records, each order carrying a phone number, email, total, item list and payment method. The plugin creates the folder with all the fields itself.

Technical requirements

  • WordPress 6.2+ (tested up to 7.0)
  • WooCommerce 6.0 or newer
  • PHP 7.4+
  • NetHunt API token — created in the account: Settings → API & MCP → Create token

Version history

v0.2.0 Current August 2026

The “Resend” button finally works: the metabox was drawing its own form nested inside the order form, and the browser was discarding it.

v0.1.0 July 2026

First public release: sends orders to a NetHunt folder via REST API v2, auto-provisioned folder with fields, retries via WP-Cron, order metabox, sync log, connection test, token encryption.

Full module description

NetHunt Sync for WooCommerce is a plugin that automatically sends every new WooCommerce order to NetHunt CRM. Right after checkout, a record appears in the NetHunt folder with the phone number, email, total, item list and a link to the order — the manager works with the request in the CRM instead of copying data from the shop admin by hand.

How it works, step by step

  1. The customer places an order — both the classic checkout and Checkout Blocks are supported.
  2. The plugin builds the record fields: name, phone (normalised to +380 format), email, total, items, address and payment method — and sends a POST /api/v2/folders/{folderId}/records to NetHunt with an Authorization: Bearer header.
  3. NetHunt returns a record ID — it is stored in the order meta as _cc_nethunt_record_id, so duplicates are ruled out.
  4. If NetHunt is temporarily unavailable — WP-Cron retries the send automatically: up to 3 attempts — a retry after 5 min, then after 30 min.
  5. The manager sees the result in the order metabox and the sync log; orders paid online get a Paid checkbox and a “✅ Paid online” note in the comment.

How much it costs

Free. The plugin is distributed under a GPLv2 licence, with open code on GitHub. All features are available right after installation — there is no paid version.

Under the hood

  • NetHunt’s public REST API v2 with a Bearer token; the “Test connection” button does a GET /folders and instantly shows whether the token is valid.
  • Auto-provisioned folder: if no folder is set, the plugin creates “WooCommerce Orders (domain)” with all the fields in one action. If you point it to your own folder — it only adds the missing fields (Phone, Email, Total, Products, Payment method, etc.) without touching existing ones.
  • Protection against double-sending at the database level: checkout, a status change and a payment callback can hit the same order at once — a lock takes exactly one request, the rest are dropped, so no second record appears in the CRM.
  • The “Order ID” field in the folder: if no response came back from NetHunt (timeout), the plugin searches for a record by this field before retrying and adopts an existing one instead of creating a second. The field is added automatically to folders created in 0.1.0.
  • Clean removal: the log table and settings disappear along with the plugin; record IDs on orders are deliberately kept — they’re exactly what stops old orders being pushed into the CRM again on reinstall.
  • API token encrypted in the database — libsodium with an HMAC fallback; the token is never stored in plain text.
  • HPOS compatibility (custom order tables) — orders are handled only through WC_Order CRUD.
  • Extension points for developers: the cc_nethunt_order_payload filter (change the data before sending) and the cc_nethunt_order_sent hook (react to a successful sync).

How to install

  1. Upload catcode-order-sync-with-nethunt-for-woocommerce-0.2.0.zip via Plugins → Add New → Upload Plugin.
  2. Activate the plugin in the “Plugins” menu.
  3. Open WooCommerce → NetHunt Sync and paste the API token from your NetHunt account (Settings → API & MCP → Create token).
  4. Save the settings — the plugin creates the “WooCommerce Orders” folder with fields itself, or connects the one you specified.
  5. Click “Test connection” — a confirmation should appear.
  6. Place a test order and check that a record appeared in NetHunt.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
Do I need to manually create fields in NetHunt?

No. If the "Folder for orders" field is empty, the plugin creates a folder with all the fields itself. If you specify an existing folder's ID — it adds only the missing fields, leaving your existing ones untouched.

Do duplicates appear when the status changes again?

No. The plugin stores the NetHunt record ID in the order meta and checks it before creating one. Simultaneous events are handled by a database-level lock, and an attempt with no response is checked against the "Order ID" field in the folder before retrying — no second record is created.

Does the plugin touch the checkout or the theme?

No. The plugin only works with server-side order hooks — no changes to the theme, templates or checkout page. After removal, checkout stays exactly as it was.

What happens after the plugin is deleted?

Records in NetHunt and the orders in the shop remain. Deletion (not deactivation) removes the settings and the log table; record IDs on orders are deliberately kept — they guard against duplicates on reinstall.

What does the "Resend" button do?

If the order isn't in NetHunt yet — it creates a record (POST). If it was already sent — it updates it with current data via PATCH.

What happens if NetHunt is unavailable at the moment of the order?

The plugin retries automatically via WP-Cron: 3 attempts with 5 min / 30 min / 2 h delays. The status of each attempt is visible in the log.

Not quite what you are looking for?

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

Order a custom module