Get in touch
CRM and integrations · OpenCart

NetHunt Sync — CRM for OpenCart 2.3, 3.x and 4.x

Автоматична передача замовлень OpenCart 2.3 / 3.x / 4.x у NetHunt CRM: запис у папці з клієнтом, товарами й сумою одразу після оформлення. Автостворення папки з полями, ідемпотентний журнал синхронізації, cron-повтори, перевірка зʼєднання.

Version
v1.1.1 (OpenCart 4)
v1.1.1 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Compatibility
2.3.0.0 – 2.3.0.2 · 3.0.2 – 3.0.5 · 4.0.2 – 4.1.x
Platform
OpenCart
NetHunt Sync — CRM for OpenCart 2.3, 3.x and 4.x

What each licence includes

Feature Free
Every OpenCart order lands as a record in a NetHunt CRM folder
Phone, email, total, items and a link to the order
Choice of trigger statuses
Deduplication and retries
Exchange log in the admin panel
Free

NetHunt Sync for OpenCart is a module that sends OpenCart orders to NetHunt CRM without a manager’s involvement. Separate builds for OpenCart 2.3, 3.x and 4.x. As soon as a customer places an order (or the order moves into the chosen status), a record appears in the NetHunt folder with the phone number, email, total and item list. Manually copying data from the shop admin into the CRM disappears as a task.

The module is completely free, and the code is open. Repository on GitHub: github.com/catcodestudio/opencart-nethunt-sync. No activation keys, paid tiers or limits on the number of orders.

What the admin gets

NetHunt Sync settings for OpenCart — token, folder, triggers
The module’s settings page in the OpenCart admin: NetHunt API token, folder selection, send triggers (on order creation or when a chosen status is reached) and a connection-test button. Next to it — a sync log with the request body and response for each order.
NetHunt Sync general settings: send trigger, retry limit, cron token, folder
The send trigger, skipping zero-price lines, the shipping cost, a retry limit and an optional cron token to protect the public retry URL. The “Folder ID” field can be left blank — the module will create the folder itself.
Order folder in NetHunt CRM with records
The result in NetHunt: a folder with order records, each with the customer, a phone number in +380 format, the total and a list of items with delivery on its own line.

How it works, step by step

  1. The customer places an order in the shop — the module catches the order-history event, without changing anything in checkout.
  2. Data flies to NetHunt via REST API v2 with a Bearer token: customer, contacts, total, items in a convenient format.
  3. NetHunt returns a record ID — it is stored in the sync log with a UNIQUE constraint per order, so one order can never create two records.
  4. Failed sends are not lost: a cron queue retries them automatically, up to 5 attempts per order — including sends that got stuck in progress. The retry URL can be locked with your own cron token.
  5. The admin monitors the process in the log: status, request and API response for each order.

How much it costs

Free. An open-source module — download it from GitHub and use it without restrictions. There is no paid version — all features are available immediately.

Technical requirements

  • OpenCart 4.0.2 – 4.1.x — PHP 7.4 or newer (build cc_nethunt.ocmod.zip)
  • OpenCart 3.0.2 – 3.0.5 — PHP 7.0 or newer (build cc_nethunt-oc3.ocmod.zip)
  • OpenCart 2.3.0.0 – 2.3.0.2 — PHP 5.6 – 7.x (build cc_nethunt-oc2.ocmod.zip)
  • NetHunt API token — free from the account: Settings → API & MCP → Create token

The functionality is the same across all three builds. In the 2.3 build, totals are additionally converted to the order’s currency at its historical rate, and instead of the task scheduler the storefront address is used for cron — OpenCart 2.3 has no scheduler at all.

Under the hood

  • Events instead of core edits — the module subscribes to the order-history event (addHistory in OpenCart 4, addOrderHistory in 3.x and 2.3), and core and theme files are not modified.
  • Auto-provisioned folder: when settings are saved, the module creates an “OpenCart Orders” folder in NetHunt with all the required fields. If you point it at your own folder — it will only add the missing fields (Phone, Email, Total, Products, etc.).
  • Idempotency via the sync log — a UNIQUE record per order guarantees no duplicates even on repeated event firings.
  • Cron retry queue — up to 5 attempts for orders that failed to send the first time; it also picks up “stuck” sends. In 3.x and 2.3 this is the storefront address for crontab, protected by an optional token.
  • API token encrypted in the database (libsodium with an HMAC fallback) — never stored in plain text.

How to install

  1. Upload the build for your version (cc_nethunt.ocmod.zip for 4.x, cc_nethunt-oc3.ocmod.zip for 3.x, cc_nethunt-oc2.ocmod.zip for 2.3) via Extensions → Installer in your OpenCart admin.
  2. For OpenCart 2.3: the built-in Installer only copies files via FTP. If FTP isn’t configured, unpack the archive and upload the contents of the upload/ folder to the shop root.
  3. In Extensions → Modules, find NetHunt Sync and click “Install”, then open its settings.
  4. Paste the API token from your NetHunt account (Settings → API & MCP → Create token).
  5. Choose the send trigger — on order creation or when moving to a specific status.
  6. Save the settings — the module will create the “OpenCart Orders” folder with fields itself (or connect the one you specified) — then click “Test connection”.
  7. Place a test order and check the record in NetHunt and the line in the log.
  8. For OpenCart 3.x and 2.3, add a retry line to the hosting’s crontab (typically every 15 minutes), first setting a cron token in the module’s settings:
    curl -s "https://SHOP/index.php?route=extension/module/cc_nethunt_cron/retry&token=TOKEN" (in 3.x the route is extension/module/cc_nethunt/cronRetry).

Direct link to the 2.3 build: cc_nethunt-oc2.ocmod.zip.

Version history

1.1.1 — August 2026
Record and line totals are now sent in the order’s currency at its historical rate — previously NetHunt received figures in the shop’s base currency next to the order currency’s code (4.x and 3.x builds).
1.0.0 (OpenCart 2.3) — August 2026
A separate build for OpenCart 2.3.0.0 – 2.3.0.2 and PHP 5.6 – 7.x: Bootstrap 3 templates, events via addOrderHistory, cron as a storefront address with a token, sync log as its own paginated page. Totals are converted to the order’s currency at its historical rate; the “Order status” field is populated. A failed folder connection no longer cancels saving the settings.
1.1.0 — August 2026
The event is now registered in OC4 format with a * before the method (with a dot it wouldn’t fire). PHP 7.4 compatibility. Orders that got stuck mid-send now enter the retry queue. Added an optional cron token for the public retry URL. The log no longer requires mbstring.
1.0.0 — July 2026
First public release: sends OpenCart 4.x orders to NetHunt (REST API v2, Bearer token) on creation or status change, auto-provisioned “OpenCart Orders” folder with fields, idempotent sync log, cron retry queue, token encryption, connection test.

Frequently asked questions

Does the module change the checkout or the shop theme?

No. The module works through server-side OpenCart events — the checkout page, templates and theme remain untouched.

Do I need to prepare the folder and fields in NetHunt in advance?

No. When settings are saved, the module creates the "OpenCart Orders" folder with all the fields itself. If you already have your own folder — point it there and the module will add only the missing fields.

What happens if NetHunt doesn't respond at the moment of the order?

The order goes into the retry queue: cron will automatically try to send it again, up to 5 attempts in total. Each attempt is visible in the log.

Can duplicate records appear?

No. The sync log has a UNIQUE constraint per order, and the created record's ID is stored — a repeated event firing won't create a second record.

What happens after the module is deleted?

The records in NetHunt and the orders in the shop stay in place — the module only reads order data and keeps its own log, without rewriting anything in the orders.

Where can I see exactly what the module sent to the CRM?

In the sync log: the request and API response are stored for every order — handy for diagnostics without server log access.

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