Output formats: CSV and XML

MartechFlow exports product feeds as CSV or XML. What each format looks like, how they differ, and which to choose for your channel.

Output formats: CSV and XML

Two formats, same data

Every channel feed is produced in one of two formats: CSV or XML. Both carry the same product data, validated the same way and built from the same canonical fields. The format only changes how the file is written, not what is in it.

You pick the format when you create a channel feed. If a channel accepts both, the choice is yours; pick whichever the channel's documentation prefers.

How the CSV looks

The CSV is a header row followed by one row per product. The columns are the channel's output fields in a fixed order (id, title, description, link, image link, availability, price, sale price, and so on).

Values that contain commas, quotes, or line breaks are quoted and escaped correctly, so a comma inside a title never breaks the columns. Custom column names you add are treated as data and escaped the same way. Empty fields are written as empty cells.

  • First line is the header; each following line is one product.
  • Fields are comma-separated in a fixed channel order.
  • Commas, quotes, and newlines inside values are quoted and escaped.
  • Empty fields appear as empty cells (the column still exists).

How the XML looks

The XML is a Google-style RSS 2.0 feed (the same structure Meta also accepts). It opens with a channel block carrying your feed's name, then one <item> per product. Most fields use the g: namespace (for example <g:price>), while title, description, and link use plain RSS tags.

There is one important difference from CSV: in XML, empty fields are omitted entirely rather than written as empty tags. So a product with no GTIN simply has no GTIN element. Special characters in values are XML-escaped so the file stays well-formed.

  • RSS 2.0 with the Google g: namespace; Meta accepts the same shape.
  • One <item> per product, inside a <channel> titled with your feed name.
  • title, description, link are plain tags; the rest are g:-namespaced.
  • Empty fields are omitted, not written as empty tags.

Which format to choose

Both formats are channel-valid, so the choice is mostly about preference and tooling. CSV is the simplest to open in a spreadsheet and eyeball. XML omits empty fields, which can make files cleaner when many optional fields are unused, and it is the native shape for RSS-based imports.

If your channel's setup guide names a format, follow it. Otherwise, CSV is a safe, readable default. You can create both a CSV and an XML feed for the same channel if you want, since each format is its own export with its own URL.

Both formats stream and stay current

Whichever format you choose, the file is generated by streaming your products through, so even large catalogs build with bounded memory. Both formats are rebuilt on the same schedule and protected by the same safe-publish guard, so format choice has no effect on freshness or safety.

Questions

Will commas in my titles break the CSV?

No. Any value containing a comma, quote, or line break is quoted and escaped, so columns stay aligned. The same applies to any custom column names you add.

Why are some fields missing from my XML but present in the CSV?

XML omits empty fields entirely, so a product with no value for a field has no tag for it. CSV keeps the column and leaves the cell empty. Both are correct; the data is the same.

Does Meta accept the Google-style XML?

Yes. The XML is RSS 2.0 with the Google g: namespace, which Meta also accepts. The format is shared; only the required fields and value formatting differ per channel.

Can I publish the same channel as both CSV and XML?

Yes. Each format is a separate export with its own public URL, so you can run both for one channel if you need them.

Ready to try it?

Start free, no credit card. Your first feed can be live in minutes.

Start free