Zoho Creator and Razorpay Integration: Build a Custom Payment Collection Portal for Indian Businesses
Build a custom payment collection portal using Zoho Creator and Razorpay. Step-by-step setup with Deluge…
A WooCommerce to Zoho Inventory migration is not a one-click import. It involves exporting structured product data, customer records, and order history from WordPress, mapping fields to Zoho’s schema, and validating everything before going live. Done correctly, you end up with a centralised inventory system that handles purchasing, warehousing, and fulfilment without the patchwork of WooCommerce plugins. Done incorrectly, you end up with duplicate SKUs, missing customer addresses, and order history that cannot be reconciled. This guide walks through each stage of the migration in sequence, with field-level detail for the data that most teams get wrong.
WooCommerce is a capable storefront tool, but it was built for selling, not for managing inventory operations at scale. As order volumes grow, the friction shows up in specific places: no native multi-warehouse support, stock adjustments require plugins that conflict with each other, and purchase order management is absent unless you bolt on WooCommerce-specific extensions that rarely talk to each other cleanly.
Zoho Inventory is purpose-built for the operational side. It handles purchase orders, vendor management, batch tracking, multi-warehouse stock, packing slips, and shipping integrations within a single system. It also integrates with Zoho Books for accounting, which eliminates the manual journal entries that WooCommerce-to-QuickBooks or WooCommerce-to-Xero workflows typically require.
The migration case is strongest when a business is hitting one or more of these thresholds:
If your operation checks two or more of these, the migration cost is almost always recovered within the first quarter through reduced manual work and fewer stock discrepancies.

Before exporting a single row, spend time on a data audit. WooCommerce stores accumulate noise: test products, duplicate SKUs created by plugin migrations, orders in non-standard states, and customer records with partial data. Migrating dirty data into Zoho does not clean it — it just moves the problem to a new system.
| WooCommerce field | Zoho Inventory field | Notes |
|---|---|---|
| SKU | SKU | Must be unique in Zoho — deduplicate first |
| Product name | Item name | Direct match |
| Regular price | Sales rate | Use USD or your currency |
| Stock quantity | Opening stock / quantity on hand | Enter as opening stock on migration date |
| Product categories | Category / product type | Zoho has a single category field per item |
| Weight / dimensions | Weight / dimensions | Check unit settings in Zoho preferences |
| Product description | Description | Plain text; HTML stripped by Zoho importer |
| Variation attributes | Item group attributes | Requires item group setup in Zoho first |
| Customer email | Contact email | Primary key for deduplication |
| Billing address | Billing address on contact | State code format may differ by country |
| Order total | Invoice / sales order amount | Tax lines must be mapped separately |
WooCommerce includes a built-in product exporter at Products > All Products > Export. This produces a CSV with all standard fields. For a clean migration export, configure the following settings:
After the export, open the CSV and apply these transformations before importing to Zoho:
For stores with more than 1,000 products, split the import into batches of 500. Zoho’s bulk importer handles large files, but smaller batches make it easier to identify and fix row-level errors without re-processing the entire dataset.

Navigate to Items > Import Items in Zoho Inventory. The importer accepts CSV and XLS formats. On the mapping screen, match your column headers to Zoho’s fields. Any column Zoho cannot auto-match will appear in an “Unmapped” list — map these manually before proceeding.
Variable products in WooCommerce become item groups in Zoho. The process is:
The import date becomes your stock-as-of date. Enter the physical stock quantity on that date in the “Opening stock” column. Do not use the WooCommerce stock figure directly if you have unfulfilled orders in transit — subtract those quantities first. The Zoho Inventory product page outlines how opening stock interacts with inventory valuation methods (FIFO, LIFO, average cost).
Order history migration is the most time-consuming part of a WooCommerce to Zoho Inventory migration. You have three options, and the right choice depends on how much historical data you actually need in Zoho.
Export orders from WooCommerce using the native order exporter or a plugin like “Order Export and Order Import for WooCommerce.” The export produces a CSV with one row per order and one row per line item. In Zoho, historical orders are imported as invoices. Use Sales > Invoices > Import. Each invoice row needs: customer name or ID, invoice date, line items with SKU, quantity, rate, and total.
If your accounting system already holds historical order data and you only need Zoho Inventory for forward-looking fulfilment, import customer contacts without order history. Go to Contacts > Import Contacts. The minimum required fields are: contact name, contact type (customer), and email address. Billing and shipping addresses are optional but recommended for fulfilment accuracy.
Agree on a cutover date — typically the first day of a new month or quarter. All orders placed before that date remain in WooCommerce for historical reference. All orders placed on or after the cutover date are processed in Zoho. This eliminates historical migration entirely and is appropriate for businesses where order history reporting is handled outside both systems.
For a broader view of planning a platform switch, the data migration to zoho guide covers pre-migration planning principles that apply across Zoho applications.

Once historical data is in Zoho Inventory, most businesses want to keep WooCommerce as the customer-facing storefront while Zoho handles the back-end inventory. This requires a live integration, not a one-time import.
Zoho Inventory includes a native WooCommerce integration under Settings > Integrations > Webstore > WooCommerce. Once connected with your store URL and API keys, it syncs:
For the detailed configuration of this sync, including how to handle tax mapping and fulfilment status updates, the post on zoho inventory woocommerce sync covers the integration setup step by step.
Before switching off WooCommerce as your primary system, run through these validation checks in Zoho Inventory:
Teams who have done this migration — or who have seen it fail — consistently report the same failure points:
Multiple WooCommerce plugins (especially product bundle and subscription plugins) create child product records with duplicated or auto-generated SKUs. These cause import failures or silent overwrite errors in Zoho. Always run a deduplication pass on the SKU column before import. A simple Excel formula (=COUNTIF($A:$A,A2)>1) flags every duplicate.
WooCommerce tax is configured per zone and per product class. Zoho Inventory has its own tax setup under Settings > Taxes. If tax rates are not pre-configured in Zoho before importing orders, invoice totals will import as zero-tax lines, which creates accounting discrepancies. Set up all tax rates first, then map them in the import template.
Zoho records the opening stock date as the transaction date. If you import opening stock with today’s date but your accounting cutover date is the 1st of the month, you will have a 15-day gap in your stock movement history. Set the import date field in Zoho to match your agreed cutover date.
Zoho Inventory is multi-warehouse by design. If you are using multiple warehouses, each item import must specify a warehouse. If you leave the warehouse field blank, Zoho assigns stock to the default warehouse, which may cause fulfilment routing errors later. Define your warehouse structure in Zoho before importing stock.
WooCommerce guest checkouts create order records without a user account. These often result in multiple contact records in Zoho for the same customer, differentiated only by a slightly different address format. Use customer email as the deduplication key during import and merge any duplicates identified in the post-migration audit.
Can I migrate WooCommerce orders directly into Zoho Inventory?
Yes. Zoho Inventory’s invoice importer accepts CSV exports of historical WooCommerce orders. Each order imports as an invoice with line items. You need to map WooCommerce order fields (order ID, customer email, line item SKU, quantity, rate) to Zoho’s invoice template. The importer runs under Sales > Invoices > Import. For very large order histories, use a cutover date and only migrate orders from the past 12–24 months rather than the full archive.
How long does a WooCommerce to Zoho Inventory migration take?
For a store with up to 500 products and 12 months of order history, a migration typically takes 3–5 business days of dedicated work: one day for data export and cleaning, one day for product import, one day for order and customer import, and one to two days for validation and integration testing. Larger catalogues (1,000+ SKUs) or complex variant structures add time proportionally. Running a parallel operation period (both systems live simultaneously) adds a further 1–2 weeks before full cutover.
Does Zoho Inventory support WooCommerce variable products?
Yes. WooCommerce variable products map to Zoho Inventory item groups. Each variable product becomes an item group, and each variation (size, colour, etc.) becomes an individual item within that group. You must create item groups in Zoho before importing variations — the import process links variations to existing groups using the group name as the key. Zoho’s item group import template handles this mapping in a flat CSV format.
What is the best way to handle WooCommerce guest order customers in Zoho?
Guest orders in WooCommerce do not have user accounts, so customer data exists only on the order itself. When migrating, create contact records using the guest’s email address as the primary key. If the same email appears on multiple guest orders, merge them into a single contact. Zoho’s contact importer deduplicates by email when the “Skip duplicates” option is selected. Any guest order without an email must be assigned to a generic “Guest Customer” contact to avoid import errors.
Will WooCommerce product images transfer automatically to Zoho Inventory?
WooCommerce product images do not transfer automatically. The product export CSV contains the image URLs hosted on your WordPress site. When you import products into Zoho, those URLs are stored as references but Zoho does not download or host the images. If you migrate your WordPress site to a new hosting environment or change the domain, all image URLs will break. The reliable approach is to download all product images from WooCommerce and re-upload them to Zoho’s item records, or host them on a separate CDN with a permanent URL.
Aaxonix handles end-to-end WooCommerce to Zoho Inventory migrations, including data mapping, import validation, integration setup, and post-migration support. Book a free consultation and get a migration scope and timeline for your catalogue size within 48 hours.
Book a free consultationA WooCommerce to Zoho Inventory migration is a precision task. The businesses that complete it cleanly are the ones that invest in the data audit before touching the import tools. Start with your product SKUs, map your fields carefully, validate against a sample before running the full import, and agree on a cutover date that gives you time to run both systems in parallel. If you are managing a catalogue with more than 500 SKUs or complex variant structures, working with an implementation partner cuts the typical migration timeline by half and eliminates the rework that comes from discovering field mapping errors after a full import.
Our team builds systems that actually work. No fluff, just honest architecture and clean implementation.