sync orders between two WooCommerce sites automatically dashboard view

Sync Orders Between WooCommerce Sites: 7 Best Proven Methods

To sync orders between two WooCommerce sites automatically, you need a reliable bridge that transfers order data, cart totals, and customer details from Site A to Site B in real time — without requiring manual exports or third-party spreadsheets. This guide covers the 7 most effective methods to sync orders between stores, from dedicated plugins to API-based approaches, so you can choose the right solution for your business model.

sync orders between WooCommerce stores using REST API webhooks
Sync Orders Between WooCommerce Sites: 7 Best Proven Methods
Quick Summary:

  • Sync orders between two WooCommerce sites can be achieved via plugins, REST API calls, or checkout redirect solutions.
  • Real-time synchronization prevents duplicate entries, missed orders, and customer confusion.
  • High-risk merchants especially benefit from syncing orders between a front-end store and a low-risk payment site.
  • CODARAB Redirect is a purpose-built plugin that syncs orders between WooCommerce stores instantly and automatically.
  • Order status notifications should only reach customers from the primary store to maintain a professional experience.
  • Choosing the right sync method depends on your store volume, technical resources, and risk profile.
Key Takeaways:

  • Sync orders between stores automatically to eliminate manual data entry and order gaps.
  • REST API and webhooks are the most flexible native WooCommerce tools for cross-site sync.
  • Dedicated plugins like CODARAB Redirect handle sync orders between high-risk and low-risk stores seamlessly.
  • Always configure email notifications to fire only from Site A to avoid confusing customers.
  • Test your sync pipeline thoroughly before going live — a missed order costs real revenue.
  • The dual-store strategy protects payment processor accounts while keeping the customer experience unified.

Why You Need to Sync Orders Between Two WooCommerce Sites

The need to sync orders between two WooCommerce stores arises most often when a merchant operates a dual-store strategy: one public-facing store where customers browse and add products to cart, and a second store that handles the actual payment processing. This architecture is especially common for high-risk merchants who sell digital products, IPTV subscriptions, peptides, or high-copy items.

Without a reliable sync mechanism, orders placed on Site B (the payment site) never appear on Site A (the customer-facing site). That creates support chaos, unfulfilled digital deliveries, and a broken customer experience.

Beyond high-risk use cases, syncing orders between stores is also useful when:

  • You run a multi-region setup with separate WooCommerce installs per country.
  • You have a staging site that must mirror live orders for testing fulfillment workflows.
  • You use a headless front end on one domain and WooCommerce on another.

Whatever the reason, the goal is identical: every order created on either site must be reflected accurately and immediately on the other, with the correct status, customer data, and product line items.

Method 1 — CODARAB Redirect Plugin (Automatic Real-Time Sync)

The CODARAB Redirect plugin is the most complete solution to sync orders between a high-risk WooCommerce store and a low-risk payment store automatically and instantly. When a customer clicks Add to Cart, Buy Now, or Proceed to Checkout on Site A, the plugin transfers the cart data to Site B and creates a mirrored order on both sites simultaneously.

How CODARAB Redirect Syncs Orders

The plugin intercepts the checkout trigger on Site A and sends the cart payload — product IDs, quantities, customer details, and applied coupons — to Site B via a secure API call. Site B processes the payment and returns the order status back to Site A.

Key features that make this sync orders between stores approach unique:

  • Three redirect triggers: Add to Cart, Proceed to Checkout, or selecting a custom payment method on Site A’s checkout page.
  • iFrame mode: Site B’s checkout page loads inside Site A’s domain, so the customer never sees a URL change.
  • Order name masking: Product names are replaced by the WooCommerce Order ID on PayPal receipts, protecting high-risk keywords from processor detection.
  • Unified notifications: Only Site A sends order status emails to the customer, preventing duplicate or confusing messages.

This approach is ideal for merchants who need to sync orders between stores while keeping their payment processor account safe from suspension. You can learn more about how this works in depth in the article How CODARAB Redirect Syncs Orders Between Two WooCommerce Stores Instantly.

Method 2 — WooCommerce REST API with Custom Webhooks

The WooCommerce REST API provides a native way to sync orders between two WooCommerce installations without any additional plugin. When an order is created or updated on Site B, a webhook fires and a custom PHP script on Site A receives the payload and creates or updates the corresponding order.

Setting Up REST API Order Sync

To sync orders between stores using the REST API, follow this process:

Step 1Generate API keys on both Site A and Site B under WooCommerce > Settings > Advanced > REST API. Assign read/write permissions.
Step 2On Site B, navigate to WooCommerce > Settings > Advanced > Webhooks and create a webhook for the “Order created” and “Order updated” topics. Set the delivery URL to a custom endpoint on Site A.
Step 3Write a lightweight PHP receiver on Site A that validates the webhook secret, parses the order payload, and calls the WooCommerce REST API on Site A to create or update the order.
Step 4Test the full flow with a real order on Site B and verify the mirrored order appears on Site A with the correct status, line items, and customer email. Monitor webhook delivery logs for failures.

This method gives you full control and no plugin dependency, but it requires PHP development skills. Any error in the receiver script can silently drop orders, so robust logging and error alerts are essential when you sync orders between stores this way.

Method 3 — Third-Party Order Sync Plugins

Several WordPress plugins are designed specifically to sync orders between WooCommerce stores. These plugins typically use REST API calls under the hood but wrap them in a user-friendly admin interface.

What to Look for in a Sync Plugin

When evaluating plugins to sync orders between two WooCommerce sites, prioritize these capabilities:

  • Real-time sync: Orders should appear on the destination site within seconds, not on a cron schedule.
  • Bidirectional sync: Status updates on Site B (e.g., Completed, Refunded) should propagate back to Site A.
  • Conflict resolution: The plugin must handle simultaneous updates gracefully without creating duplicate orders.
  • Field mapping: Custom order meta, shipping zones, and product variations must map correctly across both stores.

The article WooCommerce Order Sync Plugin: Real-Time Sync Between Two WooCommerce Sites covers the key criteria in detail and helps you evaluate which plugin fits your workflow.

Always test any third-party plugin in a staging environment before deploying to production. A misconfigured sync can overwrite live order data in ways that are difficult to reverse.

Method 4 — n8n or Zapier Automation Workflows

Automation platforms like n8n (self-hosted) or Zapier (cloud-based) can sync orders between two WooCommerce stores by listening for webhook events and relaying the data through a visual workflow. This approach requires no custom PHP code and is accessible to non-developers. For more background on this subject, see WooCommerce official documentation.

Building an n8n Workflow to Sync Orders

An n8n workflow to sync orders between stores typically uses these nodes:

  • Webhook trigger node: Receives the order payload from Site B when WooCommerce fires an order webhook.
  • Set node: Maps the incoming fields (customer name, email, line items, total) to the format expected by Site A’s REST API.
  • HTTP Request node: Posts the mapped data to Site A’s WooCommerce REST API endpoint to create the mirrored order.
  • Error handler node: Sends a Slack or email alert if the sync fails so you can intervene manually.

n8n is particularly useful because it can be self-hosted on your own server, keeping order data within your infrastructure. Zapier is faster to set up but routes data through third-party servers, which may raise data privacy concerns for some merchants.

Both tools introduce a small latency (typically a few seconds) when you sync orders between stores, which is acceptable for most use cases but may be noticeable during high-traffic flash sales.

Method 5 — Shared Database Approach

If both WooCommerce sites run on the same server or within the same managed hosting environment, it is technically possible to sync orders between them by pointing both installs at a shared or replicated database. This is the fastest possible sync because there is no API round-trip.

Risks and Limitations of a Shared Database

Despite its speed, the shared database approach carries significant risks:

  • WooCommerce uses table prefixes (e.g., wp_posts, wp_woocommerce_order_items) that must be carefully namespaced to avoid collisions.
  • Plugin and theme conflicts between the two installs can corrupt shared tables.
  • A database error on one site can bring down both stores simultaneously.
  • This approach is not supported by most managed hosting providers and violates their terms of service.

For most merchants, the shared database method is not recommended. The API-based approaches described above are safer and more maintainable when you need to sync orders between stores at scale.

Method 6 — iFrame Checkout with Embedded Order Creation

The iFrame checkout method is a specialized variation of the checkout redirect approach that allows you to sync orders between sites while keeping the customer visually on Site A’s domain. Site B’s checkout page is embedded inside an iFrame on Site A, so the customer sees the familiar URL but completes payment on Site B.

How iFrame Checkout Creates Orders on Both Sites

When the customer submits the iFrame checkout form on Site B, WooCommerce creates an order on Site B with full payment details. Simultaneously, a postMessage event or a server-side callback notifies Site A to create a corresponding order record.

CODARAB Redirect supports this iFrame mode natively, making it straightforward to sync orders between stores without requiring the customer to notice any domain change. This is described in more detail in the article WooCommerce Checkout Inside iFrame: How to Show External Pages on Your Domain.

The main advantage of this method is a seamless user experience: no redirect, no visible domain change, and no customer confusion. The main limitation is that iFrames can be blocked by some browsers or security extensions, so you should always provide a fallback redirect for those cases.

Method 7 — Manual CSV Export and Import (Last Resort)

Manual CSV export and import is not a true automatic sync, but it remains a viable fallback when all automated methods fail or when you need to perform a one-time migration of historical orders between two WooCommerce sites.

When Manual CSV Sync Makes Sense

Use the CSV approach only in these specific scenarios:

  • You are migrating from an old WooCommerce store to a new one and need to import past orders for record-keeping.
  • Your automated sync experienced a failure window and you need to backfill missed orders.
  • You are testing order data mapping before configuring an automated pipeline.

WooCommerce does not natively export orders to CSV, so you will need a plugin such as the built-in WooCommerce order export feature (available in WooCommerce 8.x and later) or a dedicated export plugin. After export, use the WooCommerce Customer and Order CSV Import plugin or a similar tool to import the orders on the destination site.

This method is slow, error-prone, and completely unsuitable for ongoing operations. It should never be your primary strategy to sync orders between stores in a live production environment.

How to Keep Order Notifications Under Control

One of the most overlooked challenges when you sync orders between two WooCommerce sites is email notification management. If both sites send order confirmation emails, customers receive duplicate messages with different order numbers, different branding, and potentially different amounts — creating serious trust issues.

Configuring Notifications for a Dual-Store Setup

The correct approach is to disable all customer-facing order emails on Site B and allow only Site A to communicate with customers. Here is how to implement this:

  • On Site B, go to WooCommerce > Settings > Emails and disable all customer-facing emails: New Order (customer copy), Processing Order, Completed Order, and Refunded Order.
  • Keep admin-facing emails active on Site B so your team still receives internal order alerts.
  • On Site A, configure all customer emails to fire based on the synchronized order status received from Site B.
  • If using CODARAB Redirect, this notification control is built into the plugin — customers only receive emails from Site A automatically.

Proper notification control is essential for a professional customer experience. The article WooCommerce Order Notifications: How to Send Emails Only from Your Main Store provides a complete configuration walkthrough.

Comparing All 7 Sync Methods Side by Side

To sync orders between WooCommerce sites effectively, you need to match the method to your technical resources, order volume, and risk profile. The table below summarizes the key differences.

MethodReal-TimeTechnical Skill RequiredBidirectionalHigh-Risk SafeBest For
CODARAB Redirect PluginYesLow (plugin UI)YesYesHigh-risk merchants, dual-store strategy
WooCommerce REST API + WebhooksYesHigh (PHP dev)YesYesDevelopers with custom requirements
Third-Party Sync PluginsYesMediumVariesVariesStandard multi-store setups
n8n / Zapier WorkflowsNear real-timeMedium (visual builder)YesYesNo-code teams, flexible automation
Shared DatabaseInstantVery High (server admin)YesNoSame-server installs (not recommended)
iFrame CheckoutYesLow (with CODARAB)YesYesSeamless UX without domain change
Manual CSV Export/ImportNoLowNoN/AOne-time migrations, backfill only

Common Mistakes When You Sync Orders Between Stores

Even experienced developers make avoidable errors when they first attempt to sync orders between two WooCommerce sites. Understanding these pitfalls saves hours of debugging and prevents revenue loss.

Mistake 1 — Not Validating Webhook Signatures

WooCommerce webhooks include an HMAC-SHA256 signature in the X-WC-Webhook-Signature header. If your receiver script does not validate this signature, any external party can send fake order data to your Site A endpoint and create fraudulent orders. Always validate the signature before processing any incoming webhook payload.

Mistake 2 — Syncing Without Idempotency Checks

Webhooks can fire multiple times for the same event due to network retries. Without an idempotency check (verifying that the order ID has not already been processed), you risk creating duplicate orders on Site A every time you sync orders between stores. Store processed webhook IDs in a transient or custom database table and reject duplicates.

Mistake 3 — Forgetting to Sync Order Status Updates

Many implementations only sync orders between stores at creation time and forget to propagate status changes. When Site B marks an order as Completed or Refunded, Site A must receive that update too — otherwise your fulfillment team works from stale data and customers never receive their completion emails.

Mistake 4 — Ignoring Tax and Currency Differences

If Site A and Site B operate in different tax zones or currencies, the order totals may not match after sync. Always map tax rates and currency codes explicitly in your sync logic, or configure both stores to use identical tax settings before you sync orders between them.

Mistake 5 — No Monitoring or Alerting

Silent sync failures are the most dangerous. Set up a monitoring job that compares order counts between Site A and Site B every hour and sends an alert if the numbers diverge by more than a defined threshold. This catches broken webhooks, expired API keys, or server errors before they affect a significant volume of orders.

For a broader look at protecting your dual-store setup, the article WooCommerce Dual Store Strategy: How to Protect Your Business from Shutdowns covers the full operational picture, including sync, payment protection, and account safety.

Frequently Asked Questions

Can I sync orders between two WooCommerce sites without a plugin?

Yes. You can sync orders between two WooCommerce sites using the native REST API and webhooks without any additional plugin. Site B fires a webhook on order creation, and a custom PHP endpoint on Site A receives the payload and creates the mirrored order via the REST API. This requires PHP development skills and robust error handling to avoid silent failures. For more background on this subject, see WordPress plugin repository.

How fast is real-time order sync between WooCommerce stores?

With a direct REST API or webhook approach, sync orders between stores typically completes within one to three seconds of order creation. Plugin-based solutions like CODARAB Redirect achieve near-instant sync because the order is created on both sites as part of the same checkout flow, rather than as a separate asynchronous event.

Will customers receive two order confirmation emails if I sync orders between sites?

Only if you fail to disable customer-facing emails on Site B. When you sync orders between two WooCommerce stores, you must disable all customer notification emails on the payment site (Site B) and allow only Site A to communicate with customers. CODARAB Redirect handles this automatically by design.

Is it safe to sync orders between a high-risk store and a low-risk store?

Yes, and this is precisely the use case CODARAB Redirect was built for. The plugin syncs orders between a high-risk WooCommerce store (Site A) and a low-risk payment site (Site B) while masking product names on PayPal receipts and keeping the customer experience unified on Site A’s domain. This protects your payment processor account from suspension.

What data is transferred when I sync orders between two WooCommerce sites?

A complete order sync transfers the customer’s billing and shipping address, email, phone number, all line items with product names and quantities, applied coupons, shipping method and cost, tax amounts, and the order total. Order meta fields and custom checkout fields can also be included depending on your sync implementation.

Can I sync orders between WooCommerce sites if they use different currencies?

Yes, but you must explicitly map the currency codes and convert amounts if the stores operate in different currencies. If both stores use the same currency, sync orders between them directly without conversion. Mismatched currency settings are a common cause of order total discrepancies after sync.

Does syncing orders between stores affect SEO or site performance?

Sync orders between stores happens server-side via API calls and has no direct impact on SEO. The performance impact is minimal — a single REST API call adds a few hundred milliseconds to the checkout process. For high-volume stores, use asynchronous webhook processing so the sync does not block the customer’s checkout confirmation page.

What happens if the sync fails and an order is not transferred?

A failed sync means Site A has no record of the order placed on Site B. To handle this, implement a retry mechanism on your webhook receiver and a reconciliation job that compares order counts between both sites on a scheduled basis. CODARAB Redirect includes built-in error handling to minimize failed syncs.

Can I sync orders between more than two WooCommerce sites?

Yes. The REST API and webhook approach scales to multiple sites by adding additional webhook endpoints and receiver scripts. However, the complexity increases significantly with each additional site. For most merchants, a two-site architecture is sufficient to sync orders between a customer-facing store and a payment processing store.

Do I need two separate hosting accounts to sync orders between WooCommerce sites?

No. Both WooCommerce sites can be hosted on the same server under different domains, provided each has its own WordPress installation and database. However, using separate hosting accounts provides better isolation — if one site experiences a server issue, the other remains operational, which is important for business continuity when you sync orders between stores.

To sync orders between two WooCommerce sites automatically and protect your payment processor accounts at the same time, the most complete solution available is the CODARAB Redirect plugin. It handles the full sync pipeline, iFrame checkout, order name masking, and unified customer notifications out of the box. Visit WooCommerce Order Redirect Plugin: Sync Orders Between Two Sites Automatically to see the full feature set and get started.

COMMANDEZ MAINTENANT