Promotions file
Discounts applied at checkout: a percentage or an amount off, for everyone or for customers with a tag, between two dates if you want.
File name: Promotions.csv, Promotions_2026-11-01.json or Promotions-export.xml. The name starts with the record type, in any case, and anything after a _ or - is yours.
Required: PromoCode. 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 promotions.
PromoCode,Title,Description,DiscountType,DiscountValue,MinOrderValue,AppliesTo,FreeDelivery,ValidFrom,ValidUntil,IsActive
WINTER10,10% off orders over 250,Ten per cent off any order of 250 or more before tax.,percentage,10,250,BAR,Yes,2026-12-01,2026-12-31,Yes[
{
"id": "WINTER10",
"title": "10% off orders over 250",
"description": "Ten per cent off any order of 250 or more before tax.",
"type": "percentage",
"discount_value": 10,
"min_order_value": 250,
"applies_to": [
"BAR"
],
"free_delivery": true,
"valid_from": "2026-12-01",
"valid_until": "2026-12-31",
"is_active": true
}
]<?xml version="1.0" encoding="UTF-8"?>
<Feed>
<Promotion>
<id>WINTER10</id>
<title>10% off orders over 250</title>
<description>Ten per cent off any order of 250 or more before tax.</description>
<type>percentage</type>
<discount_value>10</discount_value>
<min_order_value>250</min_order_value>
<applies_to>BAR</applies_to>
<free_delivery>Yes</free_delivery>
<valid_from>2026-12-01</valid_from>
<valid_until>2026-12-31</valid_until>
<is_active>Yes</is_active>
</Promotion>
</Feed>In XML each record is a <Promotion> element; the element around them can be called anything.
Fields
PromoCode
Your code for the promotion.
| CSV column | JSON | XML |
|---|---|---|
PromoCode | id | id |
- Format: Text, matched exactly, capitals included.
- Required: Yes.
- Example:
WINTER10
Title
The name reps see.
| CSV column | JSON | XML |
|---|---|---|
Title | title | title |
- Format: Text.
- Required: No.
- Example:
10% off orders over 250
Description
What it is, in a sentence.
| CSV column | JSON | XML |
|---|---|---|
Description | description | description |
- Format: Text.
- Required: No.
- Example:
Ten per cent off any order of 250 or more before tax.
DiscountType
percentage for a percentage off, fixed for an amount off.
| CSV column | JSON | XML |
|---|---|---|
DiscountType | type | type |
- Format: Text.
- Required: No.
- Example:
percentage - Tip: Read in any case, with spaces or underscores: Percent, fixed_amount and Fixed Amount all work.
DiscountValue
How much: 10 is 10% for a percentage, or 10.00 off for a fixed amount.
| CSV column | JSON | XML |
|---|---|---|
DiscountValue | discount_value | discount_value |
- Format: A number; decimals allowed.
- Required: No.
- Example:
10
MinOrderValue
The smallest order it applies to. 0 or blank for any.
| CSV column | JSON | XML |
|---|---|---|
MinOrderValue | min_order_value | min_order_value |
- Format: A number such as
9.99. A currency symbol, thousands separators and a decimal comma are read too. - Required: No.
- Example:
250
AppliesTo
The customer tags it is for. Blank is for everyone.
| CSV column | JSON | XML |
|---|---|---|
AppliesTo | applies_to | applies_to |
- Format: Codes separated by
|, each matched exactly. In JSON, a list. - Required: No.
- Example:
BAR
FreeDelivery
Yes to make delivery free with it.
| CSV column | JSON | XML |
|---|---|---|
FreeDelivery | free_delivery | free_delivery |
- Format: Yes or no: see Yes and no below.
- Required: No.
- Example:
Yes
ValidFrom
First day it applies. Blank means already started.
| CSV column | JSON | XML |
|---|---|---|
ValidFrom | valid_from | valid_from |
- Format: A date.
2026-12-31is always read; other shapes are in Dates. - Required: No.
- Example:
2026-12-01
ValidUntil
Last day it applies, that day included. Blank means no end.
| CSV column | JSON | XML |
|---|---|---|
ValidUntil | valid_until | valid_until |
- Format: A date.
2026-12-31is always read; other shapes are in Dates. - Required: No.
- Example:
2026-12-31
IsActive
Yes to use it, No to switch it off.
| CSV column | JSON | XML |
|---|---|---|
IsActive | is_active | is_active |
- 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