Data Files
Every sync writes two CSV files into the output folder you configured:
products.csv— your full product catalogue.stock.csv— live stock levels for the products in your price list.
This page explains what's in each file and how to interpret the more unusual columns.
File format
Both files are standard comma-separated values (CSV) by default:
- The first row is the header.
- Every subsequent row is one product or one stock entry.
- Text values that contain commas or new lines are enclosed in double quotes; embedded double quotes are doubled per the standard CSV convention.
- Files are saved as UTF‑8 with BOM by default, which Microsoft Excel opens correctly with international characters intact.
You can change the encoding and delimiter on the Advanced part of the Settings screen if your downstream system needs something different (see Configuration → Advanced).
How files are written safely
The Datafeed App writes each CSV to a temporary file first, then renames it once writing is complete. This means a downstream file watcher will never see a half-written file. If a sync fails partway through, no file is replaced — your previous good copy remains in place.
products.csv — what's in it
products.csv contains the catalogue you're entitled to see — every
non-obsolete product that exists in your assigned price list. Each row
is one product (one SKU). The columns are produced directly from the
live Kiss data service, so any new field added by Kiss will
automatically appear as an extra column without an app update.
Typical columns include:
| Column | Description |
|---|---|
sKU | The unique product code (stock-keeping unit). |
name | The short product name. |
description | The long product description. |
productCategoryCode | The category the product belongs to. |
mainColour | Primary colour description. |
gender, audience, theme | Classification fields used for filtering and faceting. |
barcode, amazonASIN | External identifiers where available. |
countryOfOrigin | ISO country code (two-letter, e.g. CN). |
status | ACTIVE for in-catalogue products. Obsolete items are filtered out. |
| Packaging dimensions | packagedLength_in_cm, packagedWidth_in_cm, packagedHeight_in_cm, packagedWeight_in_g. |
| Carton dimensions | cartonLength_in_cm, cartonWidth_in_cm, cartonHeight_in_cm, cartonWeight_in_g, cartonQty. |
productImages | Pipe-separated list of image filenames — see Array columns. |
productAccessories | Pipe-separated list of related accessory SKUs. |
productSubstitutions | Pipe-separated list of substitute SKUs. |
productComposition | Pipe-separated materials, each with code, name, and percentage. |
productPrices | Your price-list entries — usually one item, with the price already discounted to your terms. |
For a full field-by-field reference, see the Customer API products endpoint; the CSV columns are exactly the same fields, in the same order.
A note on column names
The header row contains column names like sKU, mOQ, hSCode, and
amazonASIN. These are not typos — they come directly from the
Kiss data service's schema endpoint, which produces these slightly
quirky lowercase-first spellings for fields whose names begin with an
acronym (SKU, MOQ, HSCode, AmazonASIN). Always reference columns
by the exact name in the header row.
Do not rename these in your downstream tooling. A future Kiss release may regularise the names, at which point your CSVs will automatically update — but any hard-coded "corrected" names in your import logic would then no longer match.
If your team also uses the Customer API
directly, note that the JSON response bodies on the API use PascalCase
(SKU, MOQ, etc.) rather than the schema's lowercase-first form.
Only the CSVs and the API schema endpoint share the lowercase-first
spelling.
stock.csv — what's in it
stock.csv contains current stock levels for the products in your
price list at your assigned warehouse. Each row is one product.
| Column | Description |
|---|---|
sKU | The product code. |
stockLocation | The warehouse the stock is held in. |
availableQTY | Quantity currently available to order. |
nextAvailableETA | If the product is currently out of stock, the expected next-availability date. Blank if not known. |
How stock.csv and products.csv relate
Both files are scoped to the products on your assigned price list — you
will never see a product or stock entry for a SKU you're not entitled
to buy. In normal operation, both files contain the same set of
SKUs, so you can join them safely on the sKU column.
If you notice a SKU appearing in one file but not the other, it usually means one of two things:
- A product on your price list does not currently have a stock entry at
your assigned warehouse — it will be in
products.csvbut not instock.csv. - A product has been retired (marked obsolete) but still has a stock
entry at your warehouse — it will be in
stock.csvbut not inproducts.csv.
If either situation looks wrong for your account, contact your Kiss account manager and they'll have the underlying data reviewed.
Array columns
Several columns in products.csv represent lists of related values.
Because CSV is a flat format, these are flattened into a single cell
using two separator characters:
- The array separator (default
|) separates items in the list. - The composition delimiter (default
:) separates the fields inside a single item, where the item itself has multiple fields.
Both separators are configurable on the Advanced part of the Settings screen.
Examples
productImages
A pipe-separated list of image filenames. The primary image is always listed first.
abc-123-main.jpg|abc-123-alt1.jpg|abc-123-alt2.jpg
productAccessories, productSubstitutions
Each is a pipe-separated list of SKUs.
ACC-001|ACC-045|ACC-102
productComposition
Each item describes one material: code, description, and percentage.
COT:Cotton:80.00|PES:Polyester:20.00
productPrices
Each item is a single price-list entry: currency, ex-VAT price, minimum order quantity, and order multiple.
GBP:9.99:1:1
Empty and single-item arrays
- An empty list produces an empty cell.
- A single-item list contains no array separator, just the one item.
Working with the CSVs in Excel
Both files open directly in Microsoft Excel. If you see odd characters
for international product names (for example accented letters appearing
as é instead of é), it usually means Excel has opened the file
with the wrong encoding. The fix is either to open the file via
Data → From Text/CSV and select UTF‑8, or to change the CSV
encoding setting in the app to Windows‑1252.
Excel output
The Datafeed App's writer can also produce .xlsx Excel files instead
of CSVs. However, in v1.0.0 the filename used by the writer is not
surfaced as a configurable setting in the configuration tool — the
shipping defaults are products.csv and stock.csv. If you need
Excel output, please contact support; we can advise
on the right approach for your environment. CSV remains the
recommended format for most downstream pipelines.
Next: download the product image archive
Continue to Image archive to learn how to grab the current product image pack on demand.