How to import XML products into WooCommerce
WooCommerce's built-in importer accepts CSV or TXT, not supplier XML, so a direct XML import needs an importer plugin or a custom conversion script. For a one-off catalogue, convert XML to WooCommerce CSV; for recurring supplier feeds, use an XML importer with mapping, image handling and scheduled stock updates.
- 01Inspect the XML feed first
- 02Choose the import route
- 03Create a safe test import
- 04Map the product fields
- 05Handle images and updates carefully
- 06Run, check and schedule it
What you need
- A WooCommerce store with administrator access
- The supplier XML file or FTP details
- A backup or staging copy of the store
- A stable product identifier such as a supplier SKU
Inspect the XML feed first
Open the XML and identify the repeating product element. Check whether each product has a stable SKU, name, description, price, stock quantity, category, image URL and product type.
Do not assume the feed matches WooCommerce. Supplier fields may use different names, prices may include tax, and stock values may be text such as available rather than a quantity.
Choose the import route
For a small, one-off catalogue, convert the XML into a UTF-8 CSV that follows WooCommerce's product schema, then go to Products > All Products > Import. WooCommerce's built-in tool imports CSV or TXT files; it does not directly process a supplier XML feed.
For direct XML, FTP retrieval, recurring imports or complex mappings, you need an XML import plugin or a custom script using the WooCommerce REST API. The API can create, update and batch products, but building the conversion, matching and scheduling logic is development work.
Create a safe test import
Back up the store or use staging, then import five to ten products before processing the full feed. Use a product identifier such as SKU to match later updates. Never use the product title as the only matching key because suppliers can rename products.
Set imported products to draft if you need to review descriptions, tax settings, categories or images before customers can see them.
Map the product fields
Map the XML product name to the product title, description fields to the long and short descriptions, the supplier SKU to SKU, prices to regular or sale price, and supplier stock to quantity and stock status. Map categories and attributes separately instead of putting all source text into the description.
Use the correct product type. Simple products can normally be imported as individual records. Variable products need a parent product, attributes and child variations; the parent must exist before its variations are linked. WooCommerce's variation documentation also relies on SKUs and correctly formatted attribute values for the relationship.
Handle images and updates carefully
Test every image URL in a browser before importing. The URL must return the actual image file, not a login page, cloud-storage preview or blocked request. Multiple images are commonly separated with a pipe character, with the first image used as the main product image in supported importers.
When updating products, match by SKU or another permanent identifier. Check the importer setting for products that disappeared from the feed: deleting them can remove products temporarily missing because the supplier feed failed.
Run, check and schedule it
Run the small import, then check product titles, prices, tax, categories, stock, images, variation selectors and the shop page. Look for duplicate SKUs, empty descriptions, broken images and products assigned to the wrong category before running the full file.
For a feed hosted by FTP or a URL, configure scheduled imports and decide whether each run updates price and stock only or also replaces descriptions and images. A WordPress cron schedule depends on site visits, so a low-traffic shop can run late unless the hosting system cron is configured to trigger it.
Fast way: use the Dropshipping XML WooCommerce PRO FTP addon when the supplier provides a recurring XML feed. It is suited to FTP retrieval, field mapping, scheduled imports and inventory updates, so you do not have to convert every supplier file by hand.
Let Dropshipping XML WooCommerce PRO FTP addon do it
Automated scheduled XML feed imports with field mapping and inventory updates for supplier-driven dropshipping stores.
Sources
- woocommerce.com /document/product-csv-importer-exporter/?trk=article-ssr-fro…
- woocommerce.github.io /woocommerce-rest-api-docs/?utm_source=openai
- woocommerce.com /document/product-csv-import-suite/product-csv-import-suite-…
- woocommerce.com /document/import-woocommerce-product-images/?utm_source=open…
- wpallimport.com /documentation/how-to-import-woocommerce-products-csv-xml/?u…
Questions
- Can WooCommerce import XML products without a plugin?
- Not directly through WooCommerce's built-in product importer, which accepts CSV or TXT files. You can convert the XML into WooCommerce's CSV format for a one-off import, or write a custom script that reads the XML and sends products through the WooCommerce REST API. Both approaches require you to maintain field mappings when the supplier changes the feed.
- Why are my imported products duplicated?
- Products are usually duplicated because the next import cannot match the incoming records to existing products. Use a stable supplier SKU or another permanent identifier, keep that value consistent, and check the importer's existing-product matching setting. Matching by title is unsafe because supplier names, punctuation and capitalisation can change.
- Why do product images fail during an XML import?
- Images fail when the feed contains a preview URL, a protected URL, an invalid file path or a server that blocks the importer. Open each image URL directly and confirm it returns the image itself. Also check that the importer allows remote downloads and that your server can make outbound requests. Repeated imports can create duplicate media files when the same image URL is downloaded again.
- How do I import variable products from XML?
- Import variable products as a parent with its attributes, then connect the child variations using their attribute values and unique SKUs. The parent must be created before its variations can be attached. If the supplier XML mixes parents and variations in an unsuitable structure, you may need an importer that supports nested XML mapping or transform the feed before importing.
- Can XML imports update WooCommerce stock automatically?
- Yes, if the importer can retrieve the feed repeatedly and map the supplier's stock value to WooCommerce quantity and stock status. Use SKU-based matching, test what happens when a product is absent from the feed, and schedule price and stock updates separately from descriptive content when possible. On low-traffic sites, verify that the scheduled task actually runs on time.