SalesDrive Sync — CRM for WooCommerce
Free WooCommerce integration plugin for SalesDrive: an order reaches the CRM right after checkout — buyer, items, shipping. Classic checkout and Blocks.
- Compatibility
- WordPress 6.2+, WooCommerce 6.0+
- PHP
- 7.4 or newer
- Updated
- August 2026
What the module does
What it looks like
Technical requirements
WordPress 6.2+ (tested up to 7.0)
WooCommerce 6.0 or newer, including HPOS (custom order tables)
PHP 7.4+
A SalesDrive account: a domain like yourshop.salesdrive.me and a leads-database API key with “Leads: add” permission (Settings → General settings and integrations → Other services → API → API keys). “Leads: read” isn’t required but is recommended — with it, the plugin checks after a timeout whether a lead was already created, instead of risking a duplicate.
Version history
The “Resend” button in the metabox finally works.
First public release: sends orders to SalesDrive after checkout or by status trigger, deduplication by externalId, retries via WP-Cron (3 attempts), an order metabox with manual sending,…
Full module description
SalesDrive Sync for WooCommerce is a plugin that automatically sends every WooCommerce order to SalesDrive CRM. As soon as the customer completes checkout, a lead appears in SalesDrive with the buyer, items, shipping and comment — the manager works in the CRM instead of copying data from the site admin by hand. Both the classic checkout and the new Checkout Blocks are supported.
The plugin is completely free. Download: catcode-order-sync-with-salesdrive-for-woocommerce-0.2.0.zip. GPLv2 licence — no keys, no trial periods, no limits on the number of orders.
How it works, step by step
- The customer places an order in the shop — via the classic checkout or Checkout Blocks.
- The plugin builds the payload: the buyer (phone normalised to +380 format), items with SKU, price and quantity, shipping, comment. For orders paid online, an optional “Paid online” note is added to the comment.
- The data flies to SalesDrive via the leads handler — POST /handler/ with an X-Api-Key header.
- SalesDrive returns a lead number — it is stored in the order meta (_cc_salesdrive_order_id). Together with a database-level lock, this guarantees: one order — one lead.
- If the CRM is temporarily unavailable — the plugin retries the send itself: 3 attempts with 5 min / 30 min / 2 h delays via WP-Cron.
- The manager sees the result in the order metabox and in the “Log” tab on the settings page.
How much it costs
Free. The plugin is distributed under the GPLv2 licence — download it and use it without activations, subscriptions or limits.
Under the hood
- API key encrypted in the database — libsodium with an HMAC fallback for hosts without the sodium extension. The key is never stored in plain text.
- Database-level lock against duplication: checkout, a status change and a payment callback may arrive at once — exactly one request goes through, and the order is re-read past the HPOS cache before the final check.
- Check by externalId after a timeout: SalesDrive’s leads handler does NOT deduplicate (two POSTs with the same externalId create two leads), so before retrying, the plugin asks the CRM via GET /api/order/list/ whether the lead already exists and adopts its ID. If the key lacks read permission — the order is flagged in the metabox so the manager can check the CRM manually.
- HPOS compatibility — all order handling goes only through WC_Order CRUD, with no direct queries against posts.
- Phone normalisation to E.164 (+380…) before sending to the CRM.
- Currency: the leads handler has no currency field, so for non-hryvnia orders the currency code is appended to the lead’s comment.
- Extension points for developers: the cc_salesdrive_order_payload filter (change the lead body) and the cc_salesdrive_order_sent hook (react to a successful send).
How to install
- Download
catcode-order-sync-with-salesdrive-for-woocommerce-0.2.0.zipand install via Plugins → Add New → Upload Plugin. - Activate it in the “Plugins” menu.
- Open WooCommerce → SalesDrive Sync, enter the account domain and the API key.
- Click “Test connection” — make sure the CRM responds.
- Choose when to send orders (right after checkout or on moving to the chosen statuses), save the settings.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
Does the plugin change my checkout or theme?
No. The plugin only works "behind the scenes": it listens for order-creation and status-change events. No changes to templates or checkout.
Where do I get a SalesDrive API key?
SalesDrive account → Settings → General settings and integrations → Other services → API → API keys. You need a leads-database key with "Leads: add" permission; add "Leads: read" too so the post-timeout duplicate check works.
Will duplicates appear if the order status changes several times?
No. The plugin stores the SalesDrive ID in the order meta and takes a database-level lock before sending — even if checkout, a status change and a payment callback fire at once, exactly one lead is created. If no response came from the CRM at all, the plugin checks by externalId before retrying whether the lead is already there.
What does the "Resend" button do?
If the order isn't in SalesDrive yet — it creates a lead. If it was already sent — it updates it with current data via /api/order/update/. The result is shown as a notice at the top of the order page.
What happens after the plugin is deleted?
Deletion (not deactivation) removes the settings, the encrypted key and the log table. Lead IDs on orders are deliberately kept — they're exactly what stops a reinstall from pushing a second copy of an old order into the CRM.
What currency are the totals in?
In the order's currency, as plain numbers: SalesDrive's leads handler has no currency field, so totals arrive in whichever currency your account works in. For non-hryvnia orders, the plugin appends the currency code to the lead's comment.
Does it work with WooCommerce's new block checkout?
Yes, both the classic checkout and Checkout Blocks are supported.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
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
Buying the module
—
