How to Make CSV/TXT/JSON Product Feed?.

Not every channel wants XML. Many marketplaces, ad platforms, and internal tools prefer a plain delimited file — a CSV (comma-separated), a TSV (tab-separated), or a TXT file with a delimiter you choose. CTX Feed can output any of these from the same product mapping. This guide shows you how to pick the file type, set the delimiter and enclosure, control the columns, and avoid the encoding pitfalls that make a spreadsheet look garbled.

A delimited feed is really just a table: the first row is a header of column names, and every product below is one row of values. In CTX Feed, the columns come from your attribute mapping and the file mechanics — separator, quoting, encoding — come from a few dropdowns in Feed settings.

Choose the file type

  1. Open CTX Feed → Make Feed (or edit a feed from Manage Feeds).
  2. In Feed settings, pick your Template (channel). Some channels only offer certain file types; the File type dropdown lists what the channel supports.
  3. Set File type to CSV, TSV, or TXT:
    • CSV — comma-separated, the most widely accepted spreadsheet format.
    • TSV — tab-separated; choose this when a channel specifically asks for tab-delimited data.
    • TXT — a plain text file where you pick the delimiter yourself.
  4. Enter a File name and finish the feed.
CTX Feed Make Feed Feed settings card of a Google Shopping CSV feed with the eight relevant fields numbered, including Delimiter, Enclosure and UTF-8 BOM
  1. Country — the market whose tax and currency rules apply.
  2. Template — the channel; some channels only offer certain file types.
  3. File type — set to CSV, TSV, or TXT to produce a delimited file.
  4. Delimiter — the character between columns (see below).
  5. Enclosure — the character wrapped around each value (see below).
  6. UTF-8 BOM — whether to prepend a byte-order mark for Excel (see below).
  7. Include variations — how variable products are exported.
  8. Update interval — how often the feed auto-regenerates.

Delimiter, Enclosure and UTF-8 BOM appear as soon as you pick a delimited file type. They are hidden for XML and JSON because those formats don’t use them.

Other fields on this card are also conditional: Variable price / Variable quantity appear for the parent-row variation options, Sort direction after you pick a sort field, Feed Language / Feed Currency only with a multilingual or multi-currency plugin (needs CTX Feed Pro), and Vendors only with a multi-vendor plugin. The full list is in How to make a WooCommerce product feed.

Set the delimiter

The Delimiter is the character that separates one column’s value from the next. CTX Feed offers:

  • Comma ( , ) — the default in the form, and what most tools expect.
  • Tab — good when values contain commas. A TSV file is always tab-separated, whatever the Delimiter field says; the field matters for CSV and TXT.
  • Pipe ( | ), Semi Colon ( ; ), Colon ( : ), or Space.

Choose whatever the receiving channel documents. If your product data commonly contains commas (descriptions, titles), a Tab or Pipe delimiter avoids ambiguity — though a correct enclosure (below) handles commas too.

Set the enclosure

The Enclosure is the character wrapped around each value so that a delimiter inside a value isn’t mistaken for a column break. Options:

  • Double quote ( ” ) — the standard choice; a title like Shirt, Blue is written "Shirt, Blue" and stays in one column.
  • Single quote ( ‘ ) — only when a channel explicitly asks for it. Google Merchant Center does not accept single-quoted files.
  • None — no wrapping, for TXT files only (see below). For CSV and TSV keep Double quote: None does not currently leave CSV/TSV values unwrapped.

For almost every CSV, leave the enclosure on Double quote. It’s what keeps commas, line breaks, and quotes inside a field from breaking the column layout.

CTX Feed wraps every field in the enclosure, including the header row and empty values, so an empty cell is written as "" rather than a bare gap between two delimiters. Google and other strict importers count columns per line and reject a row whose empty column has no enclosure, which is why this is the default. A quote inside a value is doubled ("") as the CSV standard requires.

TXT files follow the same Delimiter and Enclosure settings, and None writes TXT values without any wrapping. Whatever the enclosure, a tab or line break inside a TXT value is replaced with a space so it cannot split a column or a row.

UTF-8 BOM (fix garbled characters in Excel)

The UTF-8 BOM control adds a byte-order mark to the start of the file. It defaults to No BOM. Set it to Add UTF-8 BOM when you’ll open the file in Microsoft Excel and non-English characters (accents, currency symbols, non-Latin scripts) show up garbled — the BOM tells Excel to read the file as UTF-8. Leave it off for channels that ingest the file programmatically, as some parsers dislike the extra bytes.

Define the columns

The columns of your CSV/TXT come from the attribute mapping on the Config tab. Each row you map becomes one column:

CTX Feed Make Feed Config tab of a Google Shopping CSV feed with the tab bar and the attribute mapping table numbered
  1. The tab bar — Config, Filters, Advanced filters, FTP / SFTP, and Report.
  2. The attribute mapping table — each row is one column; the Channel attribute becomes the header and rows read left-to-right (drag to reorder).
  • The Channel attribute name becomes the column’s header in the first row of the file.
  • The Value (a product attribute or fixed text) supplies each product’s cell in that column.
  • The rows appear left-to-right in the same order they sit in the table. Drag a row by its handle to reorder columns.

For a channel with a published spec — Google, Meta, and others — a new feed starts with the required columns and the correct header names already in place. For a generic export, choose Custom Template 1 as the template: it lets you type any column header you like and map each to a product value, so you can match any tool’s expected format. Use the More button on a row to add a Prefix or Suffix, and the Output column to format a value (strip HTML, force a price format, upper/lower-case, and so on).

Build and download the feed

  1. With the file type, delimiter, enclosure, and columns set, click Save & generate.
  2. On Manage Feeds, copy the Feed URL to hand to a channel, or use the row’s ⋮ menu → Download to save the .csv/.txt file to your computer, or Preview to open it.

The feed keeps its own public URL, so a channel that fetches on a schedule always pulls the latest file after each regeneration.

When to use CSV/TXT vs. XML

  • Use CSV/TSV when a channel’s spec asks for it, when you’re importing into a spreadsheet or another tool, or for a simple flat list of products.
  • Use XML when a channel requires nested structures (Google Shopping’s g: namespace, shipping/tax blocks) — a flat CSV can’t express nesting.
  • Use TXT with a custom delimiter for legacy systems or partners that specify an exact separator.

Troubleshooting

  • Excel shows garbled or boxed characters. Set UTF-8 BOM to Add UTF-8 BOM and regenerate, or import the file into Excel with UTF-8 encoding.
  • Everything lands in one column. The tool opening the file expects a different delimiter than the one you chose. Match the Delimiter to what the channel documents (comma vs. tab most often).
  • A value spills into the next column. The value contains your delimiter and the enclosure is set to None (TXT). Switch Enclosure to Double quote.
  • Google reports a wrong number of columns, or a single-quote enclosure is rejected. Set Enclosure to Double quote and regenerate; every field, empties included, is then enclosed the way Google expects.
  • A column is missing from the file. Add a row for it on the Config tab; only mapped rows become columns.
  • The header names are wrong for the channel. Edit the Channel attribute on each row (with Custom Template 1 you type these directly), or, if the mapping has gone wrong, use Load template defaults — it replaces every row with the channel’s defaults and discards your changes.
Try CTX Feed for WooCommerce - Free Download or Upgrade to Pro

Leave a comment.