What this plugin does
Rithum (ChannelAdvisor) Orders Sync for WooCommerce connects one Rithum account to WooCommerce through the Rithum REST API. It imports orders every 15 minutes, pushes shipments and cancellations when order statuses change, and syncs stock by SKU every hour.
Jobs run on Action Scheduler (WP-Cron as a fallback) once 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 Rithum (ChannelAdvisor) account and a developer account at developer.channeladvisor.com
- WooCommerce SKUs that match your Rithum product SKUs
Installation
- Upload the zip at Plugins → Add New → Upload Plugin and activate it with WooCommerce active.
- Open WooCommerce → Rithum Sync. Tabs: Settings, Sync log, Status.
Connecting your Rithum account
- Request a developer account at developer.channeladvisor.com.
- In the Developer Console, create an Application. It generates an Application ID and Shared Secret.
- Grant the application access to your Rithum account. This produces a refresh token.
- Paste all three into the plugin. Add a Profile ID only if the application can see more than one profile and you want a specific one.
- Save, press Test connection, then tick Enable syncing.

Settings reference
| Setting | What it does |
|---|---|
| Application ID / Shared Secret | From your Developer Console application. Both stored encrypted. |
| Refresh token | Long-lived token from granting access. Exchanged for a one-hour access token automatically. |
| Profile ID (optional) | Restrict imports to one Rithum profile. |
| Enable syncing | Master switch for scheduled jobs. |
| Import | Import Rithum orders every 15 minutes. |
| Import orders with status | Active (the default), Complete or Cancelled. |
| Status for imported orders | WooCommerce status for new orders, usually Processing. |
| Push shipment when status becomes | When the order reaches this status (usually Completed), the shipment is sent to Rithum. |
| Push cancellation when status becomes | Cancelling in WooCommerce with this status cancels the order on Rithum if no shipment exists. |
| Look back (days) | How far back each import looks, up to 30 days. |
| Stock sync | Push WooCommerce stock to Rithum every hour, matched by SKU. |
| Distribution centre ID | The Rithum distribution centre that receives stock quantities. |
Buttons on the settings screen
| Button | What it does |
|---|---|
| Test connection | Gets an access token and makes a read-only call. |
| Sync orders now | Runs an import immediately. |
| Push stock now | Sends stock immediately. |
| Clear cached SKU map | Forgets the SKU → Rithum product ID lookups. Use after adding products in Rithum. |
How orders are imported
Every 15 minutes the plugin queries /v1/Orders for orders with your chosen status created within the look-back window, expanding items and fulfilments, page by page. Each becomes a WooCommerce order with buyer and shipping addresses, marketplace shipping charges, tax, the marketplace name and its site order ID.
Lines are matched by SKU. Unmatched lines are imported as placeholders with a warning note. Imports are keyed on the Rithum order ID, so repeat syncs never duplicate.
Pushing shipments and cancellations
The Rithum panel on the order screen shows the marketplace, site order ID, Rithum order ID and whether the shipment was sent, with fields for carrier, shipping class (for example Ground) and tracking number.
When the order reaches Push shipment when status becomes, the plugin sends the shipment with those values. Rithum passes it to the marketplace. Adjust the payload with rau_ros_shipment_payload if your carrier needs extra fields.
Cancelling the order in WooCommerce with the mapped status, before a shipment exists, cancels it on Rithum.

Stock sync
Rithum addresses products by its own internal product ID, so the plugin looks each SKU up once and caches the mapping. SKUs with no Rithum product are remembered as misses and skipped. After adding products in Rithum, press Clear cached SKU map.
Quantities go to the distribution centre you set. Hold back a safety quantity with rau_ros_stock_buffer.
The sync log and Status tab
The Sync log records imports, shipments, cancellations, stock pushes and errors, with raw API detail and links to orders. Entries are kept for seven days.
The Status tab shows connection and syncing state, the API endpoint, how long the access token is valid, last and next sync, last stock push, orders this month, errors in the last 24 hours and the scheduler.

What the free version includes
- Up to 100 imported orders per month
- One Rithum account
- 15-minute order sync and hourly stock sync
- 30-day order look-back
- 7-day log retention
- Whole-order shipments with one tracking number
Troubleshooting
| What you see | What to do |
|---|---|
| Test connection fails with invalid_grant | The refresh token doesn’t belong to this Application ID and Secret, or access was revoked. Grant access again and paste the new token. |
| Stock sync skips products | Those SKUs aren’t in Rithum, or were added after the map was cached. Press Clear cached SKU map. |
| Nothing imports | Check the status filter is Active, the look-back covers the orders, and a Profile ID isn’t excluding them. |
| Shipment rejected | The log shows Rithum’s reason — typically a carrier or class value the marketplace doesn’t accept. |
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.
| Hook | Type | Use it to |
|---|---|---|
rau_ros_order_imported | action | Run code after a Rithum order is created. Receives the WC_Order and the Rithum order. |
rau_ros_shipment_payload | filter | Change the shipment sent to Rithum. Receives the payload and the WC_Order. |
rau_ros_stock_buffer | filter | Hold back a safety quantity per product. |
rau_ros_unmanaged_stock_value | filter | Quantity for products that don’t manage stock. |
rau_ros_stock_rows | filter | Adjust rows before stock is pushed. |
rau_ros_loaded | action | Fires once the plugin has booted. |
// Hold back 1 unit on every product sold through Rithum.
add_filter( 'rau_ros_stock_buffer', function () {
return 1;
} );Uninstalling
Deleting the plugin removes its settings, tokens, SKU map, counters and log table. Imported orders remain in WooCommerce.
Questions people ask
Can I import only one marketplace’s orders?
Per-marketplace rules are part of the Pro edition; the free version imports all Rithum orders matching the status filter.

