Categories file
How the catalogue is organised: the tiles a rep browses, which can sit inside one another. Products name the categories they belong in.
File name: Categories.csv, Categories_2026-11-01.json or Categories-export.xml. The name starts with the record type, in any case, and anything after a _ or - is yours.
Required: CategoryId. Everything else may be left out or left blank.
Example
One complete record, in each format. All three import as the same record. The CSV is the sample file for categories.
CategoryId,ParentId,Title,ImagePath,SortOrder,IsActive
WINE-RED,WINE,Red wine,WINE-RED.jpg,1,Yes[
{
"category_id": "WINE-RED",
"parent_id": "WINE",
"title": "Red wine",
"image": "WINE-RED.jpg",
"sort_order": 1,
"is_active": true
}
]<?xml version="1.0" encoding="UTF-8"?>
<Feed>
<Category>
<CategoryId>WINE-RED</CategoryId>
<ParentId>WINE</ParentId>
<Title>Red wine</Title>
<ImagePath>WINE-RED.jpg</ImagePath>
<SortOrder>1</SortOrder>
<IsActive>Yes</IsActive>
</Category>
</Feed>In XML each record is a <Category> element; the element around them can be called anything.
Fields
CategoryId
Your category code, which products list in CategoryPaths.
| CSV column | JSON | XML |
|---|---|---|
CategoryId | category_id | CategoryId |
- Format: Text, matched exactly, capitals included.
- Required: Yes.
- Example:
WINE-RED
ParentId
The CategoryId this sits inside. Blank for a top-level category.
| CSV column | JSON | XML |
|---|---|---|
ParentId | parent_id | ParentId |
- Format: Text, matched exactly, capitals included.
- Required: No.
- Example:
WINE
Title
The name reps see on the tile.
| CSV column | JSON | XML |
|---|---|---|
Title | title | Title |
- Format: Text.
- Required: No.
- Example:
Red wine - Tip: A new category with no title is shown by its CategoryId.
ImagePath
The file name of its picture in the Images folder.
| CSV column | JSON | XML |
|---|---|---|
ImagePath | image | ImagePath |
- Format: Text.
- Required: No.
- Example:
WINE-RED.jpg
SortOrder
Lower numbers show first.
| CSV column | JSON | XML |
|---|---|---|
SortOrder | sort_order | SortOrder |
- Format: A whole number.
- Required: No.
- Example:
1
IsActive
Yes to show it, No to hide it.
| CSV column | JSON | XML |
|---|---|---|
IsActive | is_active | IsActive |
- Format: Yes or no: see Yes and no below.
- Required: No.
- Example:
Yes
Rules for every field
- A blank cell keeps what the tablet has, with Ignore blank cells on, as it ships. Switched off, a blank clears the field.
- A column the file does not have always keeps what the tablet has, whatever that setting says.
- A value that cannot be read, such as a date, number or yes/no in a shape the app does not know, stops that record importing. The sync log names the field and the value, and the record keeps what it had. A field whose tip says otherwise is the exception.
- Column names are matched without case and ignoring surrounding spaces.
Yes and no
In any case:
- Yes:
true,t,yes,y,1,-1,x,on,active,enabled - No:
false,f,no,n,0,off,inactive,disabled