CatCode Order Sync with KeyCRM for WooCommerce
The plugin connects WooCommerce to KeyCRM via its Open API (openapi.keycrm.app). Every new store order is automatically created in KeyCRM with the buyer, products, shipping and payment.
KeyCRM is a third-party product; this plugin is an independent integration and is not affiliated with or endorsed by KeyCRM.
Features
- Send the order right after checkout (classic checkout and Checkout Blocks) or when it enters one of the selected statuses
- Deduplication:
source_uuid = wc-{id}plus the KeyCRM ID stored in order meta — no duplicates - Payment status pass-through: a paid order is created with a « paid » payment record (optional)
- Automatic retries on failure: 3 attempts with 5 min / 30 min / 2 h delays (WP-Cron)
- Metabox on the order screen: sync status, KeyCRM ID, « Resend » button (already-sent orders are partially updated via PUT)
- « Test connection » button on the settings page
- Log of recent sync events (« Journal » tab)
- API key is encrypted in the database (libsodium with an HMAC fallback)
- Buyer phone normalization to E.164 (+380…)
- Order source: explicit Source ID or a source name (KeyCRM creates it automatically)
- HPOS compatible (custom order tables), works exclusively through WC_Order CRUD
catcode_keycrm_order_payloadfilter andcatcode_keycrm_order_sentaction for third-party integrations
Requirements
- WooCommerce 7.0 or newer
- PHP 7.4+
- KeyCRM API key (KeyCRM cabinet → Settings → API)
How it works
- A customer places an order in your store
- The plugin builds the payload (buyer, products, shipping, payment) and sends POST /order to KeyCRM
- KeyCRM returns the order ID, which is stored in the
_catcode_keycrm_order_idmeta - If KeyCRM is unavailable, the attempt is retried automatically (up to 3 times)
- The manager sees the status and ID in the order metabox and in the journal
The plugin interface is fully translated into Ukrainian. / Інтерфейс плагіна повністю перекладено українською.
External services
This plugin connects to the KeyCRM Open API (https://openapi.keycrm.app/v1), a third-party CRM service. The connection is the whole purpose of the plugin: it creates and updates your WooCommerce orders inside your own KeyCRM account.
What is sent and when:
POST /order— when a customer places an order, or when the order enters one of the statuses you selected as a trigger. Retried up to 3 times if KeyCRM is unavailable.PUT /order/{id}— when you press « Resend » in the order metabox for an order that already exists in KeyCRM.GET /order?limit=1— only when you press « Test connection » on the settings page.
Every request carries your KeyCRM API key in the Authorization header. The order data sent is: the WooCommerce order ID (as source_uuid, e.g. wc-123), the order source name, the customer note, the line items (name, SKU, price, quantity), the shipping method, shipping cost, delivery city and address, the payment method title, the order total and whether it is paid, and the buyer’s full name, email address and phone number as entered at checkout.
No data is sent to any other service, and nothing about your visitors, site or administrators is sent beyond the order data listed above. Nothing is sent until you enter your KeyCRM API key: without a key the plugin makes no external requests.
This service is provided by KeyCRM: terms of use, privacy policy.
