−20%

20% off all services

Skip to content

We value your privacy

We use necessary cookies to keep the site working and, if you agree, Google Analytics to see which pages are useful. You can change your choice at any time at the bottom of the page. Cookie Policy

Supplier XML product import: how to make it reliable

How to import products from supplier XML reliably: field mapping, validation, stock and price updates, discontinued products, several suppliers, alerts.

Updated 13 min read

Five supplier data streams from the left converge into a glass prism and leave it as neat product rows; one stream is marked red with a warning sign.

In short

A reliable XML import is not a one-off file upload but a process: fetch the supplier's file, validate its structure and required fields, map supplier fields to store fields, update only what the supplier owns (prices, stock), hide discontinued products rather than deleting them, and hear about every failed import straight away. Match products to your store by SKU or EAN, never by name.

Key takeaways

  • An XML import has five parts: fetching, validation, field mapping, creating or updating, and monitoring. Validation and mapping are where it usually breaks.
  • Under the XML specification, a malformed file is a fatal error – processing must stop, not load half the catalogue.
  • Match products by a stable identifier (SKU, EAN) and let the supplier change only prices and stock – descriptions and SEO fields stay yours.
  • Products that disappear from the supplier's file shouldn't be deleted: mark them out of stock or hide them so you keep the URL and search traffic.
  • WooCommerce's built-in importer takes CSV and Shopify takes CSV up to 15 MB, so supplier XML almost always needs an integration or automation layer.

What a supplier XML is and why imports break

Many suppliers and wholesalers share their products as an XML file: an address from which a store can download the whole catalogue with prices, stock, descriptions and image links. The idea is simple – products appear and update by themselves. In practice, the import often becomes constant manual work: images vanish, the wrong prices update, and half the catalogue ends up in the wrong category.

Supplier XML (product feed)
A structured XML file in which a supplier publishes product data: identifiers, titles, prices, stock, descriptions, categories and image addresses. Every supplier's structure and tag names differ, so there is no universal format.
Field mapping
A set of rules stating which supplier XML field goes into which store field and how it is transformed on the way – a price with a mark-up, say, or a supplier category rewritten into yours.

Below, import as a process: what to get from the supplier, how to map fields, how to validate the file, what to do with discontinued products, what changes with several suppliers, and how to learn an import failed before a shopper notices.

Preparation

What to get from the supplier and how to match their data to your store – before the first import.

A field-mapping diagram: a column of XML tags on the left, product card fields with an image, a title and a price on the right; blue lines join them, and one red line ends at an unmapped field.
Field mapping: every supplier tag has its place in the store – and an unmapped one must be visible, not silently skipped.

What to get from the supplier before you start

Most import problems begin with knowing nothing about the supplier's file except its address. Before building or configuring an import, ask for a few things.

Ask the supplier for

  • A description of the file: which tags exist, which are required, and the formats (price with or without VAT, currency, decimal separator)
  • How often the file is updated, and whether prices and stock are in the same file or a separate one
  • Which identifier never changes for a product: supplier code, SKU, EAN
  • Whether image addresses are public, and whether an image changes when its address does
  • How the file marks a discontinued product: it disappears from the file, or stays with zero stock
  • A sample file containing both simple products and products with variants

If you also sell through Google Shopping, it helps to compare the supplier's fields with the Google Merchant Center product data specification: it shows well what data a reliable product card usually needs.

50 / 150 / 5,000

The maximum number of characters for a Google Merchant Center product identifier (id), title and description; the price carries an ISO 4217 currency code, and availability takes one of in_stock, out_of_stock, preorder or backorder.

Source: Google Merchant Center Help, 20262

Field mapping: who owns what

The mapping table is the most important import document. It states not only which field goes where but who controls each field: the supplier or you. If the supplier controls the description, every import will overwrite the text you edited.

Field mapping example: supplier XML → store (tag names are examples; every supplier's differ)
Supplier tagStore fieldOwned byRule
<code>SKUSupplier (never changes)Used to match the product to an existing one
<ean>GTIN / EANSupplierLength and check digit validated
<title>TitleFirst import onlyAfter that – your edited text
<price>PriceSupplier + your ruleMark-up, rounding, VAT
<stock>StockSupplierZero → “Out of stock”, not deleted
<category>CategoryMapping tableSupplier category → your category
<image>ImagesSupplierDownloaded only when the address changes
<description>DescriptionFirst import onlyAfter that – your text and SEO fields

Categories and variants

Supplier categories reflect their warehouse logic, not the way your shoppers choose. So categories are almost never imported directly: a table turns each supplier category into one of yours, and a new, unmapped category goes to a review list rather than into the store.

Variants – sizes, colours, capacities – are often the hardest part. Some suppliers list each variant as a separate product, others as one product with a list of variants. Before importing, decide what will be one product with variants in your store, and which field groups the variants.

The import flow

How to validate the file, what to update and what to do with products that disappear.

Validate before you load

The most important import rule: a bad file must never reach the store. The supplier's server may return half a file, an error page instead of XML, or a file with no prices – and an import that doesn't check for this corrupts the catalogue.

The XML 1.0 specification is strict here: a malformed file is a fatal error after which the processor must not continue normal processing, and every XML processor must be able to read UTF-8 and UTF-16. Carry the same logic into your import – if the file is malformed, update nothing.

Before every import, check

  • Did the whole file download, and is it well-formed XML (not an error page, not truncated)?
  • Is the encoding right, with accented and non-Latin characters intact rather than turning into “?” or odd symbols?
  • Is the product count close to the previous import? A sudden drop usually means an error, not a sold-out catalogue.
  • Does every product have the required fields: identifier, title, price, stock?
  • Are prices realistic – no zero, negative or unusually changed prices?
  • Are there no duplicate identifiers?

If validation fails, the whole import should stop rather than load whatever succeeded. A half-updated catalogue is worse than yesterday's.

The first import and updates

The first import creates products; every later one updates them. They are two different jobs, so the rules differ too.

  • First import: products, images, categories and descriptions are created. It's worth running in a staging environment and reviewing a few dozen products from different categories.
  • Update: the product is found by SKU or another stable identifier, and only supplier-owned fields change.
  • A new product in the supplier's file: it is created, but if its category isn't mapped yet it stays hidden until you've reviewed it.

Platform importers work the same way: WooCommerce's built-in CSV importer matches an imported product to an existing one by ID or SKU, and images must be uploaded beforehand or available online.

Stock and prices: how often to update

Glass warehouse shelves with boxes and an online store product grid on a screen, linked by blue sync arrows; one product is marked red both on the shelf and on screen.
Stock in the warehouse and in the store has to match – otherwise you sell what isn't there.

Prices and stock change more often than descriptions, so update them separately and more often. If the supplier provides a separate, smaller stock file, use it; if not, update only those fields without reprocessing the whole catalogue.

How often depends not on technology but on how fast your products sell and how often the supplier updates the file. Updating more often than the supplier is pointless; less often, and you risk selling what's gone.

What to do with products that vanish from the file

The simplest option is to delete a product that's no longer in the supplier's file. But then its address goes too: pages found by search engines, ads, links from other sites and shoppers' bookmarks lead to an error page.

Instead of deleting

  • Mark the product out of stock and keep the page with suggestions for similar products
  • If the product won't return, redirect its address to the closest product or category
  • Decide how long out-of-stock products stay before they're hidden from categories
  • Restore a product that vanished by mistake (in a truncated file) automatically on the next import

Multiple suppliers, platforms and monitoring

When there is more than one supplier and the import has to run every day without a person.

When there are several suppliers

Two suppliers often sell the same product under different codes and titles. If you don't recognise it, duplicates appear in categories and shoppers see two different prices for the same product.

  • Recognise the same product by EAN or another manufacturer code, not by title.
  • Decide which supplier's price and stock are shown: the cheaper one, the one with stock, or the preferred one.
  • Give each supplier its own version of the mapping table, but shared categories of yours.
  • Import suppliers separately so one supplier's error doesn't stop the rest.

WooCommerce, Shopify and custom solutions

Neither WooCommerce's nor Shopify's built-in import accepts supplier XML directly. WooCommerce's built-in importer is made for CSV files and matches products by ID or SKU; Shopify imports products from CSV and can overwrite existing products with the same identifier (handle).

15 MB

The maximum size of a Shopify product CSV file; on import you can choose to overwrite existing products whose handles match.

Source: Shopify Help Center, 20264

That's why there is almost always a layer between the supplier's XML and the store: an import plugin, a custom import script or an automation that downloads the file, validates it, applies the mapping and updates products through the platform's API. Which to choose depends on the number of suppliers, the size of the catalogue and how many rules are needed. We compare the platforms in more depth in Shopify vs WooCommerce.

Manual import

  • Once a week a file is downloaded and uploaded as CSV
  • Every import overwrites edited descriptions
  • Discontinued products are deleted along with their URLs
  • A failed import is discovered through a customer complaint

Automated import with validation

  • Prices and stock update as often as the supplier updates the file
  • The supplier changes only price, stock and identifiers
  • Discontinued products are marked out of stock and URLs stay
  • If an import fails – an alert and a log entry straight away
The same supplier catalogue: manual and automated import

Monitoring: how to know an import failed

Supplier servers sometimes don't respond, file structures change without warning, access credentials expire. An import that simply does nothing in that case is dangerous: the store looks fine while prices and stock go stale.

Response to such incidents follows your maintenance plan; without a plan, automation incidents are handled as separate work. More on how we build and look after these processes on our automation page.

XML import checklist

Is your import reliable?

  • Do you have the supplier's file description and a sample file with variants?
  • Are products matched by a stable identifier, not by title?
  • Does the mapping table state which fields the supplier owns and which you own?
  • Are supplier categories translated into yours, with new ones sent for review?
  • Are variants grouped into a single product?
  • Is the file validated before import, with the whole import stopping if validation fails?
  • Are prices and stock updated separately and often enough?
  • Are discontinued products marked out of stock rather than deleted?
  • Is the same product from several suppliers recognised by EAN?
  • Do you hear about a failed import straight away, and is there an execution log?

Where to start

For a new store, an online store costs from €2,490 – including preparing or importing up to 100 products, payments and delivery. For a range of up to 500 products the price is based on scope, and larger catalogues are quoted individually; ongoing supplier import automation is assessed by the number of suppliers and rules. Price, scope and timeline come in writing before work starts. What makes up a store's price is broken down in what building an online store costs.

Write to us: how many suppliers you have, in what format they send data and how many products you plan to sell. We reply within 1 business day.

About the data in this article

Methodology

Date
Sample
The W3C XML 1.0 specification, the Google Merchant Center product data specification, and WooCommerce and Shopify import documentation
Criteria
  • Technical facts and limits only from official specifications and platform documentation, checked on 2026-10-01
  • Tag names in the mapping table are examples, not a specific supplier's
  • The import flow and automation standard reflect how Oxtren Labs works and are marked separately
Limitations
Supplier XML structures aren't standardised, so each supplier needs its own mapping. Platform limits can change – check their documentation.

Frequently asked questions

Can I import supplier XML without development work?

Sometimes – if there's one supplier, the file structure is simple and an import plugin supports the rules you need. With several suppliers, variants, pricing rules or validation before import, you'll usually need a custom import or an automation.

How often should stock be updated?

No more often than the supplier updates their file, and no less often than your products sell out. Update prices and stock separately and more often than descriptions or images.

What if the supplier changes the file structure?

A good import stops and alerts you rather than loading empty fields. The mapping table is then updated and the import re-run. That's why it's worth agreeing with the supplier that they announce changes in advance.

Does XML import work for a Shopify store?

Yes, but Shopify doesn't import XML itself – it accepts CSV up to 15 MB or data through its API. So supplier XML reaches Shopify through an app or a custom integration that turns the file into Shopify products.

Sources and methodology

  1. W3CExtensible Markup Language (XML) 1.0 (Fifth Edition)accessed
  2. Google Merchant Center HelpProduct data specificationaccessed
  3. WooCommerceProduct CSV importer and exporteraccessed
  4. Shopify Help CenterImporting products with a CSV fileaccessed

About the author

Founder, Oxtren Labs

Julius Sūnelaitis is the founder of Oxtren Labs, a studio in Kaunas, Lithuania, operating since 2022. It builds websites, online stores (Shopify, WooCommerce, headless and custom) and digital platforms for companies in Lithuania and the EU, and maintains them after launch. The studio also builds its own product, Hesio, a Shopify app that shows what most often stops shoppers from buying. On the blog he writes about ecommerce, the purchase journey, web development and maintenance.

Author page and articles

Have a question about your project?

Tell us about your suppliers and catalogue – we'll tell you the most reliable way to set up the import in your case.

Write to us