This guide covers how to connect WooCommerce to Junipeer and the configuration details specific to WooCommerce as an e-commerce platform.
Overview
WooCommerce is an open-source e-commerce plugin for WordPress. It is one of the most widely used e-commerce platforms, particularly popular with small to mid-sized merchants. Because WooCommerce runs on the merchant's own hosting infrastructure, API performance and reliability can vary depending on the hosting provider and server configuration.
In a Junipeer integration, WooCommerce is typically the source system — orders, customers, and product data originate in WooCommerce and are synced to an ERP system.
Connecting WooCommerce to Junipeer
WooCommerce uses REST API keys for authentication.
Generating API keys
Log in to your WordPress admin panel
Navigate to WooCommerce → Settings → Advanced → REST API
Click Add Key
Enter a description (e.g., "Junipeer Integration")
Select the user this key will be associated with — use an admin account
Set permissions to Read/Write
Click Generate API Key
Copy both the Consumer Key and Consumer Secret — they will only be displayed once
Entering credentials in Junipeer
During the Get Started onboarding wizard (Step 2 — Connect Systems), enter:
Store URL: your WooCommerce store URL (e.g.,
https://yourstore.com)Consumer Key: the key generated above
Consumer Secret: the secret generated above
Junipeer will validate the connection. If validation fails, verify that:
The REST API is enabled in WooCommerce settings
Your site uses HTTPS (required for API authentication)
The API keys have Read/Write permissions
There are no security plugins blocking API requests
Typical flows
For a WooCommerce integration, the most common flows are:
Orders: WooCommerce → ERP (the primary flow)
Customers: WooCommerce → ERP
Products/Articles: direction depends on your setup
Stock/Inventory: ERP → WooCommerce (keeps webshop stock accurate)
Refunds/Credit notes: WooCommerce → ERP
WooCommerce-specific considerations
Batch sync limits
WooCommerce syncs may stop processing after approximately 700–900 records per batch. This is typically caused by memory limits or pagination constraints on the WooCommerce server. If you notice syncs that consistently process a fixed number of records and then stop, this is likely the cause.
Solutions:
Increase the PHP memory limit on your WordPress hosting (at least 256 MB recommended for API use)
Ensure your hosting provider supports long-running API requests
Junipeer's scheduling will pick up remaining records in subsequent sync runs, but the initial backlog may take several cycles to clear
EU reverse charge (B2B)
WooCommerce does not have built-in support for EU VAT numbers or reverse charge handling. Most merchants use third-party plugins (such as EU VAT Number or similar) that store the VAT number in a custom meta field on the order.
Because the VAT number is stored in a plugin-specific meta field rather than a standard WooCommerce field, Junipeer needs to know which meta field contains the VAT number. This is configured in the flow settings. If B2B orders are being synced without reverse charge applied, check that the custom meta field mapping is correctly configured.
Refund payout handling
WooCommerce refunds paired with certain payment providers (particularly Walley) can result in double-counted refund amounts during payout reconciliation. The refund payout may be applied twice — once as a negative payout line and once as a refund deduction — resulting in a doubled negative balance on the invoice in the ERP.
If you see invoice amounts that are twice the expected refund, contact Junipeer support with the specific order and payout IDs. See the Payout Reconciliation guide for more on refund payout handling.
Order status filtering
WooCommerce has a granular order status system (pending, processing, on-hold, completed, cancelled, refunded, failed). You can filter which order statuses are synced to your ERP using the flow filter settings. By default, Junipeer typically syncs "processing" and "completed" orders.
If orders are not appearing in your ERP, verify that the order status filter includes the statuses you want to sync. See the Error Codes guide if your status filter appears to not be working.
Hosting performance
Because WooCommerce is self-hosted, API performance varies significantly. Shared hosting plans may struggle with large sync operations. For best results:
Use a hosting provider optimized for WooCommerce (managed WordPress hosting is recommended)
Ensure your server has at least 256 MB of PHP memory
Consider using object caching (Redis or Memcached) to improve API response times
Monitor your server logs during initial sync operations to catch timeout or memory issues early
For troubleshooting common errors, see the Error Codes reference or your connector pair's troubleshooting section.