Skip to Content

ChannelEngine Orders Sync for WooCommerce — Documentation

ChannelEngine Orders Sync for WooCommerce — Documentation

What this plugin does

ChannelEngine Orders Sync for WooCommerce connects one ChannelEngine tenant to WooCommerce through the Merchant API. It imports new marketplace orders every 15 minutes, acknowledges them, pushes shipments when you fulfil, pulls cancellations, and pushes stock every hour.

Background jobs run on Action Scheduler (WP-Cron if unavailable). Nothing runs until Enable syncing is ticked.

Requirements

  • WordPress 5.8 or later and PHP 7.4 or later
  • WooCommerce 7.0 or later, HPOS or legacy order storage
  • A ChannelEngine account with a Merchant API key
  • Products whose WooCommerce SKU equals the Merchant Product Number in ChannelEngine

Installation

  1. Install the zip at Plugins → Add New → Upload Plugin and activate it with WooCommerce active.
  2. Open WooCommerce → ChannelEngine Sync. Tabs: Settings, Sync log, Status.

Connecting to ChannelEngine

  1. In ChannelEngine open Settings → Merchant API keys and create a key.
  2. In the plugin, enter your tenant name — just the name, e.g. acme for acme.channelengine.net, not the full URL.
  3. Paste the API key and save.
  4. Press Test connection. When it succeeds, tick Enable syncing and save.
  5. Optionally press Sync orders now to pull immediately rather than waiting for the schedule.
ChannelEngine Orders Sync settings with tenant name, API key, import and acknowledge options and status mapping
WooCommerce → ChannelEngine Sync: tenant name, Merchant API key, acknowledgement and the status rules for shipments and cancellations.

Settings reference

SettingWhat it does
Tenant nameThe first part of your ChannelEngine URL.
API keyMerchant API key. Stored encrypted; leave the masked value to keep it.
Enable syncingMaster switch. Turn off to pause background jobs without losing settings.
Import ordersImport new marketplace orders every 15 minutes, and acknowledge them back to ChannelEngine after import (both on by default).
Status for imported ordersWooCommerce status for new orders, usually Processing.
Push shipment when status becomesWhen an order reaches this status (usually Completed), the shipment is sent to ChannelEngine.
Status for cancelled ordersThe status given to orders the marketplace cancels.
Look back (days)How far back each sync looks. Up to 30 days in the free version.
Marketplace pricesWhether channel prices include VAT, and whether WooCommerce should recalculate taxes on import.
Stock syncPush WooCommerce stock levels to ChannelEngine every hour.

Buttons on the settings screen

ButtonWhat it does
Test connectionCalls the Merchant API with your tenant and key and logs the result.
Sync orders nowImports and acknowledges new orders immediately.
Push stock nowSends stock levels immediately.

How orders are imported

The plugin fetches orders with status NEW from ChannelEngine every 15 minutes. Each becomes a WooCommerce order with line items, billing and shipping addresses, shipping costs, currency and taxes, and records the originating channel and the channel’s order number.

Lines are matched by SKU against the Merchant Product Number. A line that doesn’t match is still imported as a placeholder with a warning note on the order. After import, the order is acknowledged so ChannelEngine moves it to IN_PROGRESS and the marketplace knows it has been accepted.

Imports are keyed on the ChannelEngine order ID, so repeating a sync never duplicates an order. Orders fulfilled by the marketplace itself are flagged and excluded from shipment pushes.

Pushing shipments and handling cancellations

The ChannelEngine panel on the order screen shows the channel, the channel order number, the ChannelEngine ID, whether the order was acknowledged and whether the shipment was sent. Enter the carrier or shipping method and the tracking number there and save the order.

When the order reaches the status in Push shipment when status becomes, the plugin creates a shipment for all lines with that carrier and tracking number. ChannelEngine forwards it to the marketplace. You can change the payload with the rau_ceos_shipment_payload filter — useful for a custom tracking URL or method.

If the marketplace cancels an order, the next sync sets the WooCommerce order to your cancelled status and adds a note.

WooCommerce order with the ChannelEngine panel showing channel Amazon.de, channel order number, acknowledged, shipment sent, DHL tracking
An Amazon.de order imported through ChannelEngine. The panel shows the originating channel, the channel’s own order number, the ChannelEngine ID, acknowledgement and shipment state, plus carrier and tracking.

Stock sync

Every hour the plugin sends stock for products with a SKU. Out-of-stock products push zero; products that don’t manage stock push a placeholder quantity you can change with rau_ceos_unmanaged_stock_value. Filter the full offer list with rau_ceos_stock_offers.

The sync log and Status tab

The Sync log records imports, acknowledgements, shipments, cancellations, stock pushes and errors with raw request and response detail. Filter by level; order-related entries link to the order. Entries are kept for seven days.

The Status tab shows connection and syncing state, the API endpoint, last and next order sync, last and next stock push, orders this month, errors in the last 24 hours and the scheduler in use.

ChannelEngine Orders Sync log with imports from Amazon.de and Bol.com, acknowledgement and shipment entries
Orders from Amazon.de and bol.com imported through ChannelEngine, acknowledged, and a DHL shipment pushed back.

What the free version includes

  • Up to 100 imported orders per month
  • One ChannelEngine tenant
  • 15-minute order sync and hourly stock sync
  • 30-day order look-back
  • 7-day log retention
  • One tracking number per order

Troubleshooting

What you seeWhat to do
Test connection failsCheck the tenant is only the name (no https or .channelengine.net) and that the API key is a Merchant API key.
Orders import with placeholder linesThe WooCommerce SKU doesn’t equal the Merchant Product Number in ChannelEngine.
Totals are off by the VAT amountSet Marketplace prices to match how your channels send prices (incl. or excl. VAT).
A shipment isn’t pushedCheck the order reached the mapped status, has a tracking number, and isn’t marketplace-fulfilled. The log explains any rejection.
The monthly limit was reachedThe free version imports up to 100 orders a calendar month and logs a warning when it stops.

For developers: hooks

Every hook below is part of the plugin’s public surface and safe to use from a theme’s functions.php or a small site plugin.

HookTypeUse it to
rau_ceos_order_importedactionRun code after an order is created. Receives the WC_Order and the ChannelEngine order.
rau_ceos_shipment_payloadfilterChange the shipment sent to ChannelEngine. Receives the payload array and the WC_Order.
rau_ceos_stock_offersfilterAdjust the stock rows before they are pushed.
rau_ceos_unmanaged_stock_valuefilterQuantity for products that don’t manage stock.
rau_ceos_loadedactionFires once the plugin has booted.
// Add a tracking URL to every shipment.
add_filter( 'rau_ceos_shipment_payload', function ( $payload, $order ) {
	if ( ! empty( $payload['TrackTraceNo'] ) ) {
		$payload['TrackTraceUrl'] = 'https://track.example.com/' . $payload['TrackTraceNo'];
	}
	return $payload;
}, 10, 2 );

Uninstalling

Deleting the plugin removes its settings, counters and log table. Imported orders remain in WooCommerce.

Questions people ask

Does it create products in WooCommerce?

No. It never touches your catalogue — only orders, order notes and stock.

Can I import orders from only some channels?

Per-channel rules are part of the Pro edition. The free version imports every channel connected to the tenant.