XML feed requirements
What a supplier XML feed must contain for Product XML Import: a reachable HTTPS URL, one element per product, a SKU, a title and a price, plus the optional fields that improve the import.
Reviewed by Koray Sarı
Docs
Required
| Requirement | Details |
|---|---|
| URL | http:// or https://, publicly reachable, may include a token in the query string. No FTP, no login forms. |
| Well-formed XML | The feed must parse. One unclosed tag anywhere makes the whole file unreadable. |
| One element per product | For example <product>, <item> or <entry>, repeated for every product. |
| Unique code per product | SKU, article number or ID. Used to match products on every run. |
| Title | Product name. |
| Price | A number. Decimal comma or point both work; currency symbols are stripped. |
Recommended
| Field | Used for |
|---|---|
| Description | Product body (HTML allowed, CDATA recommended) |
| Quantity or availability | Inventory; without it products import with the default stock you choose |
| Images | Product and variant media |
| Barcode (EAN, GTIN) | Variant barcode |
| Brand | Vendor |
| Category | Product type and tags |
| Old or list price | Compare-at price |
| Weight | Shipping weight |
| Variant option (size, colour) | Variants; see below |
Variants
Two shapes are supported. Either variants are nested inside the product:
<product>
<code>TS-2043</code>
<name>Cotton T-shirt</name>
<variants>
<variant><sku>TS-2043-S</sku><size>S</size><price>24.90</price><stock>12</stock></variant>
<variant><sku>TS-2043-M</sku><size>M</size><price>24.90</price><stock>37</stock></variant>
</variants>
</product>
or each variant is its own item sharing a parent code:
<item><sku>TS-2043-S</sku><parent>TS-2043</parent><size>S</size>…</item>
<item><sku>TS-2043-M</sku><parent>TS-2043</parent><size>M</size>…</item>
Size and update frequency
Feeds up to 512 MB are read with a streaming parser. There is no product count limit in the parser. If the supplier regenerates the feed at fixed times, tell support so sync runs are scheduled after the regeneration.
Frequently asked questions
Is a SKU really required?
Yes. The SKU (or a unique product code) is how the app matches products between runs. Products without one are skipped and listed in the run log.
What about images?
Image URLs must be absolute (starting with http:// or https://) and publicly reachable. Shopify downloads them; unreachable images are skipped without failing the product.
Does the feed need to be UTF-8?
UTF-8 is recommended. Feeds that declare another encoding in the XML prolog are converted; feeds that declare nothing and are not UTF-8 may show wrong characters.