Product feeds

How to convert a supplier's XML feed to CSV in easySales

How to convert a supplier's XML feed to CSV in easySales

Turn your supplier's XML feed into a CSV that easySales imports can read: the product tag, variants, images, the Feed URL, updates and errors.

What the XML to CSV feed does

Many suppliers share their catalogue, prices and stock as an XML file at a web address. The easySales imports read CSV and Excel files, not XML. The Convert XML to CSV feed closes that gap: easySales downloads your supplier's XML, writes one CSV row for each product and publishes the CSV at its own address, which you then use in an import.

Three things to know before you begin:

  • It converts, it does not change anything. Values are copied as they are in the XML. Your products, prices and stock change only when an import reads the CSV.
  • One field decides whether it works: Product XML tag. It is the name of the XML element that wraps one product. Set it yourself — see Step 2.
  • Save, then Regenerate. When you change an existing feed, press Save first; Regenerate rebuilds the CSV from the saved settings.

Before you start

✓

Your supplier's XML link

One that opens the XML file directly in a browser.

✓

The name of the product tag

The XML element that wraps one product. You find it by opening the link.

✓

A shop tab for the feed

Usually your Virtual Shop. The shop must stay enabled.

✓

An import that reads CSV

A Scheduled Import or an Advanced warehouses source, set up after the feed.

Step 1 — Add the feed

Go to Products → Online Shops → Feed and choose the tab of the shop the CSV is for — usually Virtual Shop, where scheduled imports live. Press Add custom feed and choose Convert XML to CSV.

The Add custom feed menu on the Feed page, open on From products, From marketplace and Convert XML to CSV.
Products → Online Shops → Feed → Add custom feed.

Step 2 — Fill in the form

The Convert XML to CSV form: Name Supplier stock, URL https://supplier-portal.example/export/products.xml, Update frequency with an empty Interval (minutes), Product XML tag Manual with product, Product variants No, Product identifier tag code, Images tag image, Skip tags with description_long, Column renames from price@net to price_net, and the Delete, Regenerate and Save buttons.
Product XML tag set to Manual, with the name of the product tag.
Field What goes in it
Name A name you will recognise, for example the supplier's name. It is shown on the card next to the Feed URL.
URL Your supplier's XML link. It must open the XML file directly in a browser — not a login page, a spreadsheet or a zip file. A link that carries its access key in the address works.
Update frequency Optional. Interval (minutes) and Start update at — see Keeping the CSV up to date.
Product XML tag Manual, and the name of the tag that wraps one product, for example product or item.
Product variants Yes if each product lists its sizes or colours as repeated tags inside it. Type the variant tag's name, for example wariant: each variant becomes its own row, with the product's columns repeated. Otherwise No.
Product identifier tag (optional) A tag whose value goes into a first column called Identifier, for example code or ean. For an attribute of the product tag, type it with @, for example @code.
Variant identifier tag (optional) Shown with variants on. The same, for each variant.
Images tag (optional) The name of the image tag, for example image. All images of a product go into one column, separated by commas — the format the product import expects.
Skip tags (optional) Tags to leave out of the CSV, with everything inside them, for example long descriptions. Add tag adds a row.
Column renames (optional) Original column name as it appears in the CSV, and the New column name you want. Add rename adds a row.
The Convert XML to CSV form

To find the product tag, open your supplier's link in a browser and look at the first product. The tag that opens before it and closes after it — for example <product> … </product> — is the one you need. Type its name without < >, exactly as it is written: SHOPITEM and shopitem are different tags.

Step 3 — Save and copy the Feed URL

Press Save. easySales creates the first CSV a few minutes later. Back on the Feed page, the card shows the Feed URL and, once the file is ready, Last generated with its date and time.

The Custom feed card on the Virtual Shop tab: Feed URL — Supplier stock, the link https://easy-sales.com/feed/1/8f3k2m9q4t/XmlToCsv, Last generated with a date and time, Connected and Edit.
The Feed URL to use in your import.

Wait for Last generated before you use the link. A file larger than 20 MB is split into parts: the card then lists one link for each part, and each part needs its own import.

Step 4 — Use the CSV in an import

Copy the Feed URL into the import that should read it:

  • Products and prices — in your Virtual Shop, open Products, press Import and create a Scheduled Import with the Feed URL. Tick Create new products for unrecognized SKUs if new products should be added too.
  • Supplier stock — create an Advanced warehouses source that reads the Feed URL.

Then map the CSV columns to easySales fields. Each column is named after its place in the XML:

In the XML Column in the CSV
<name> inside the product name
<quantity> inside <stock> stock.quantity
An attribute, such as <price net="…"> price@net
A tag that repeats, such as two <category> category[0], category[1]
A tag with a prefix, such as <g:price> g:price
How columns are named

Columns are listed in alphabetical order, after Identifier when you set a product identifier tag. To give a column a friendlier name, copy its name from the first row of the CSV into Column renames, then save and regenerate.

Keeping the CSV up to date

easySales updates the CSV every hour while something reads it, and at least once a day. The shop whose tab holds the feed must stay enabled; on a disabled shop the CSV is no longer updated.

Leave Update frequency empty unless your supplier limits how often its link may be read. An Interval (minutes) makes easySales update the CSV at most once in that many minutes — never more often than the minimum your plan allows, which the form shows under the field. Start update at keeps the first update of the day from starting before that hour.

When something goes wrong

When an update fails, the link keeps serving the last CSV that worked, and the card shows a red Errors badge. Click it to read the message; the form shows it at the top too.

The top of the form with a red message No '<product>' XML element was found, and Product XML tag set to Manual with <product> typed in angle brackets.
A product tag typed with angle brackets: type product instead.
Message or symptom What to do
No '<product>' XML element was found The product tag name does not match. Type it without < >, with the same capital and small letters as in the XML, then Save and Regenerate.
Failed to open XML file. easySales could not download the link. Open it in a private browser window: it must show the XML without asking you to log in. Ask your supplier for a direct link if it does not.
Document is empty The link returned an empty page or something that is not XML — a spreadsheet link, a web page or a CSV. Use the supplier's XML link.
Could not detect a repeating tag. Please provide one as an argument. Choose Manual and type the product tag.
The CSV has one or two columns, or one row per image Product XML tag is on Auto and picked a tag inside the product. Choose Manual.
The Identifier column is empty The identifier tag's name does not match the XML. For an attribute of the product tag, start it with @.
The Feed URL does not open yet The first CSV is not ready. Wait until Last generated appears on the card.
Messages and what to do

Frequently asked questions

The easySales imports read CSV and Excel files. Convert the XML with Products → Online Shops → Feed → Add custom feed → Convert XML to CSV, then use the CSV's Feed URL in your import.

Choose Manual and type the name of the XML element that wraps one product, without < >, with the same capital and small letters as in the file — for example product or item.

Regenerate rebuilds the CSV from the saved settings. Press Save first, then Regenerate.

Every hour while something reads it, and at least once a day, as long as the shop that holds the feed is enabled.

A CSV larger than 20 MB is split into parts, each with its own link. Set up one import for each part.

Each column is named after its place in the XML: tags inside tags are joined with a dot, and attributes start with @. Use Column renames to give them other names.

easySales could not download the link. It must open the XML directly in a browser, without a login page.

Was this guide helpful?