Import field reference

The sample files are the quickest way to start: each one has a header row and an example record that imports as it is. This page explains every column in them.

Every column below is optional unless your own process needs it; a blank cell is left alone rather than overwriting what is already on the device. Column names are matched case-insensitively and ignoring surrounding spaces.

Which names to use

The three formats do not share names. A CSV file wants ItemCode; the same field in JSON is sku and in XML is SKU, inside a <Product> element. The XML paths below write it as Item/SKU: only the part after the last / has to match. Each entity below lists its CSV columns first, then the JSON and XML equivalents, so start from the format your system actually exports.

The example beside each column is taken from the sample file for it, which imports exactly as shipped. A blank example means the samples leave that column empty.

Price lists and quantity breaks

PriceLists and QtyBreaks hold several named values, and most systems export those in a shape that does not fit one cell. All three of these work, so you should not need to reshape your export:

  • One cell. {"TRADE": 12.50, "WHOLESALE": 9.99}, or the shorter TRADE:12.50|WHOLESALE:9.99.
  • A column per price list. Name them all in the mapping, separated by |: a PriceLists mapping of Trade|Wholesale|Pallet reads those three columns and uses the names you typed as the price list names.
  • A row per price list. Repeat the item code on each row with one price list on it; they are combined into one item. Every other column takes its value from the last row.

A blank cell means that price list does not apply. A cell with something in it that cannot be read as a price stops that row importing and is reported, rather than the item arriving with no contract prices and nothing said.

If your export does not fit any of the above

Almost all do. When one genuinely does not (a price list whose name is in one column and its value in another, or one row that has to become several products), the app can reshape the file before reading it, so you do not have to change your ERP.

Settings › Data Integration › Import Profiles › Reshape Feed. You write a short Liquid template that rewrites the rows into any of the shapes on this page, and Validate shows you what it produces before you save it. Everything else on this page then applies as normal.

Leave it empty (as every profile ships) and your file is used exactly as it arrives.

Products

44 recognised columns in a CSV file.

Column in your fileWhat goes in itExample
ItemCodeYour product code. A row with a code already on the tablet updates that product.WH002
BarcodeThe barcode number (EAN, UPC or your own). Scanning with the camera or a Bluetooth scanner finds the product by it.5012345678900
BrandBrand name.Example Cellars
ManufacturerWho makes it.Example Wines Ltd
MPNThe manufacturer’s own part number.EC-RR-75
SupplierCodeYour supplier’s code for it.SUP-EC
ParentSKUThe ItemCode of the product this is a variant of, if any.
CountryOfOriginWhere it was made: a country name or two-letter code.ES
DescriptionThe product name reps see on the tile. Keep it short.Rioja Reserva 75cl
LongDescriptionThe full description on the product page.Aged for three years in oak.
CategoryPathsThe categories it belongs in.WINE|WINE-RED
BulletPointsKey features, shown on the product page.75cl|13.5% ABV|Vegan
AttributesName and value pairs for the specification table on the product page.{"Region": "Rioja"}
PriceListsContracted prices by price list. A customer whose PriceList is TRADE pays the TRADE price.TRADE:11.50|WHOLESALE:9.99
PriceRRPThe list price everybody without a contract pays.15.99
PriceSaleA sale price, charged while IsOnSale is Yes.13.99
IsOnSaleYes to charge PriceSale.Yes
CurrencyThe currency these prices are in, as a three-letter code such as GBP or EUR.GBP
CostPriceWhat it costs you, kept for reference.8.20
PriceValidFromFirst day the sale price applies. Blank means already started.2026-11-01
PriceValidToLast day the sale price applies, that day included. Blank means no end.2026-12-31
TaxCodeThe VAT code that sets its rate.T1
MOQThe fewest that can be ordered.6
OrderMultipleOrdered in multiples of this, such as 6 for a case of six.6
MaxOrderQtyThe most one order may take.600
QtyInnerUnits in an inner pack.6
QtyOuterUnits in an outer case.12
QtyPalletUnits on a pallet.600
QtyBreaksVolume prices: a lower price each from a quantity up.24:9.50|48:8.75
WeightWeight of one unit, in kilograms.1.3
DimensionsSize, written however you like.8 x 8 x 30 cm
HazardousFlagYes if it is classed as hazardous.No
ShippingClassYour own shipping class code, if you use one.STANDARD
StockQtyHow many you have.240
IncomingQtyHow many are on order from your supplier.120
AllowBackorderYes to let reps order it when stock runs out.Yes
IncomingDateWhen the incoming stock is due.2026-12-01
RelatedSKUsItemCodes of products to suggest alongside this one.WH001
SubstituteSKUsItemCodes to offer when this one is out of stock.WH003
StatusActive, Coming Soon, Clearance or Discontinued, in any case.Active
DiscontinuedDateWhen it was or will be discontinued.
WarrantyInfoWarranty terms.Replaced if faulty on delivery
BatchLotTrackingYes if it is tracked by batch or lot.Yes
CustomDataAnything else you want kept with the product.{"Vintage": "2021"}

Products in JSON or XML

The same fields, under different names. Do not use the CSV column names in a JSON or XML file: they will not be found, and every field will come through empty.

CSV columnJSON propertyXML path
ItemCodeskuItem/SKU
BarcodebarcodeItem/Barcode
BrandbrandItem/Brand
ManufacturermanufacturerItem/Manufacturer
MPNmpnItem/MPN
SupplierCodesupplier_codeItem/SupplierCode
ParentSKUparent_skuItem/ParentSKU
CountryOfOrigincountry_of_originItem/CountryOfOrigin
DescriptiontitleItem/Title
LongDescriptiondescriptionItem/Desc
CategoryPathscategoriesItem/Categories
BulletPointsbulletsItem/Bullets
AttributesattributesItem/Attributes
PriceListspricesItem/Prices
PriceRRPrrpItem/RRP
PriceSalesale_priceItem/SalePrice
IsOnSaleon_saleItem/OnSale
CurrencycurrencyItem/Currency
CostPricecost_priceItem/CostPrice
PriceValidFromprice_valid_fromItem/PriceValidFrom
PriceValidToprice_valid_toItem/PriceValidTo
TaxCodetaxItem/TaxCode
MOQmoqItem/MOQ
OrderMultipleorder_multItem/OrderMult
MaxOrderQtymax_order_qtyItem/MaxOrderQty
QtyInnerinnerItem/Inner
QtyOuterouterItem/Outer
QtyPalletpalletItem/Pallet
QtyBreaksqty_breaksItem/QtyBreaks
WeightweightItem/Weight
DimensionsdimensionsItem/Dimensions
HazardousFlaghazardousItem/Hazardous
ShippingClassshipping_classItem/ShippingClass
StockQtystockItem/Stock
IncomingQtyincomingItem/Incoming
AllowBackorderbackorderItem/Backorder
IncomingDateincoming_dateItem/IncomingDate
RelatedSKUsrelatedItem/Related
SubstituteSKUssubstitutesItem/Substitutes
StatusstatusItem/Status
DiscontinuedDatediscontinued_dateItem/DiscontinuedDate
WarrantyInfowarrantyItem/Warranty
BatchLotTrackingbatch_trackingItem/BatchTracking
CustomDatacustom_dataItem/CustomData

Customers

29 recognised columns in a CSV file.

Column in your fileWhat goes in itExample
AccountIdYour account code. A row with a code already on the tablet updates that customer.C1002
OriginalAccountIdFor a customer a rep added on the tablet: the NEW- code it was sent out with. Blank otherwise.
CompanyNameThe business name reps see.Example Wine Bar Ltd
ContactNameWho to ask for.Alex Example
EmailEmail address.buyer@example.com
PhonePhone number.01632 960002
MobileMobile number.07700 900002
WebsiteWeb address.https://example.com
VatRegistrationTheir VAT number.GB123456789
EoriNumberTheir EORI number, for exports.GB123456789000
TaxCodeBlank for normal VAT.
PriceListWhich price list they pay, matching a name in the products PriceLists. Blank pays the list price.TRADE
CurrencyThe currency they buy in, as a three-letter code such as GBP or EUR.GBP
CreditLimitTheir credit limit, checked before an order is placed.5000.00
CreditBalanceWhat they owe you now.1250.50
AccountStatusActive, or a status that warns the rep before they take an order.Active
CarriageCodeYour own carriage or delivery code for them.CARR1
TagsLabels for grouping customers.BAR|PREMIUM
NotesNotes reps see on the account.Deliveries before 10am only.
CustomDataAnything else you want kept with the customer.{"Route": "North"}
ShippingAddressesTheir delivery addresses, each with name, line1, line2, city, county, postcode and country.[{"name": "Warehouse", "line1": "Unit 4 Example Park", "city": "Anytown", "postcode": "AB1 3EF", "country": "GB"}]
BillingNameName on the billing address.Example Wine Bar Ltd
BillingLine1First line of the billing address.2 Market Square
BillingLine2Second line.Market Hall
BillingCityTown or city.Anytown
BillingCountyCounty, state or region.Exampleshire
BillingPostcodePostcode or ZIP.AB1 2CG
BillingCountryCountry name or two-letter code.GB
AssignedUserIdThe UserId of the rep whose customer this is, from the users file.REP01

Customers in JSON or XML

The same fields, under different names. Do not use the CSV column names in a JSON or XML file: they will not be found, and every field will come through empty.

CSV columnJSON propertyXML path
AccountIdidCustomer/ID
OriginalAccountIdoriginal_idCustomer/OriginalID
CompanyNamecompanyCustomer/Company
ContactNamecontactCustomer/Contact
EmailemailCustomer/Email
PhonephoneCustomer/Phone
MobilemobileCustomer/Mobile
WebsitewebsiteCustomer/Website
VatRegistrationvatCustomer/VAT
EoriNumbereoriCustomer/EORI
TaxCodetax_codeCustomer/TaxCode
PriceListprice_tierCustomer/PriceTier
CurrencycurrencyCustomer/Currency
CreditLimitcredit_limitCustomer/CreditLimit
CreditBalancebalanceCustomer/Balance
AccountStatusstatusCustomer/Status
CarriageCodecarriageCustomer/Carriage
TagstagsCustomer/Tags
NotesnotesCustomer/Notes
CustomDatacustom_dataCustomer/CustomData
ShippingAddressesshippingCustomer/Shipping
BillingNamebilling.nameCustomer/Billing/Name
BillingLine1billing.line1Customer/Billing/Line1
BillingLine2billing.line2Customer/Billing/Line2
BillingCitybilling.cityCustomer/Billing/City
BillingCountybilling.countyCustomer/Billing/County
BillingPostcodebilling.postcodeCustomer/Billing/Postcode
BillingCountrybilling.countryCustomer/Billing/Country
AssignedUserIdassigned_user_idCustomer/AssignedUserId

Categories

6 recognised columns in a CSV file.

Column in your fileWhat goes in itExample
CategoryIdYour category code, which products list in CategoryPaths.WINE-RED
ParentIdThe CategoryId this sits inside. Blank for a top-level category.WINE
TitleThe name reps see on the tile.Red wine
ImagePathThe file name of its picture in the Images folder.WINE-RED.jpg
SortOrderLower numbers show first.1
IsActiveYes to show it, No to hide it.Yes

Categories in JSON or XML

The same fields, under different names. Do not use the CSV column names in a JSON or XML file: they will not be found, and every field will come through empty.

CSV columnJSON propertyXML path
CategoryIdcategory_idCategory/CategoryId
ParentIdparent_idCategory/ParentId
TitletitleCategory/Title
ImagePathimageCategory/ImagePath
SortOrdersort_orderCategory/SortOrder
IsActiveis_activeCategory/IsActive

Promotions

11 recognised columns in a CSV file.

Column in your fileWhat goes in itExample
PromoCodeYour code for the promotion.WINTER10
TitleThe name reps see.10% off orders over 250
DescriptionWhat it is, in a sentence.Ten per cent off any order of 250 or more before tax.
DiscountTypepercentage for a percentage off, fixed for an amount off.percentage
DiscountValueHow much: 10 is 10% for a percentage, or 10.00 off for a fixed amount.10
MinOrderValueThe smallest order it applies to. 0 or blank for any.250
AppliesToThe customer tags it is for. Blank is for everyone.BAR
FreeDeliveryYes to make delivery free with it.Yes
ValidFromFirst day it applies. Blank means already started.2026-12-01
ValidUntilLast day it applies, that day included. Blank means no end.2026-12-31
IsActiveYes to use it, No to switch it off.Yes

Promotions in JSON or XML

The same fields, under different names. Do not use the CSV column names in a JSON or XML file: they will not be found, and every field will come through empty.

CSV columnJSON propertyXML path
PromoCodeidPromotion/id
TitletitlePromotion/title
DescriptiondescriptionPromotion/description
DiscountTypetypePromotion/type
DiscountValuediscount_valuePromotion/discount_value
MinOrderValuemin_order_valuePromotion/min_order_value
AppliesToapplies_toPromotion/applies_to
FreeDeliveryfree_deliveryPromotion/free_delivery
ValidFromvalid_fromPromotion/valid_from
ValidUntilvalid_untilPromotion/valid_until
IsActiveis_activePromotion/is_active

Announcements

6 recognised columns in a CSV file.

Column in your fileWhat goes in itExample
AnnouncementIdYour code for the message.ANN001
TitleThe heading reps see.Christmas deliveries
MessageThe message itself.The last delivery before Christmas is on 22 December.
ValidFromFirst day it shows. Blank means now.2026-12-01
ValidUntilLast day it shows, that day included. Blank means until removed.2026-12-22
IsActiveYes to show it, No to hide it.Yes

Announcements in JSON or XML

The same fields, under different names. Do not use the CSV column names in a JSON or XML file: they will not be found, and every field will come through empty.

CSV columnJSON propertyXML path
AnnouncementIdidAnnouncement/id
TitletitleAnnouncement/title
MessagemessageAnnouncement/message
ValidFromdate_postedAnnouncement/date_posted
ValidUntilexpires_atAnnouncement/expires_at
IsActiveis_activeAnnouncement/is_active

DeliveryMethods

11 recognised columns in a CSV file.

Column in your fileWhat goes in itExample
CodeYour code for the method. It goes out on every order that uses it.PALLET
NameWhat reps and customers see at checkout.Pallet delivery
RateRuleHow it charges: flat, free_over, weight_band or destination_band.weight_band
RateThe charge. For a banded method, what is charged when no band matches.25.00
FreeOverValueFor free_over: orders at or above this are delivered free.
BandsFor weight_band, from-weight:charge in kilograms, such as 0:25.00|500:45.00. For destination_band, country:charge, such as GB:9.95|IE:19.95.0:25.00|500:45.00
LeadTimeDaysWorking days to deliver. Blank shows no delivery date.5
CutOffTimeOrders placed after this time count from the next working day. Blank for no cut-off.12:00
TaxCodeBlank taxes delivery as the goods on the order are taxed. A code fixes its rate.T1
SortOrderLower numbers show first.1
IsActiveYes to offer it, No to withdraw it.Yes

DeliveryMethods in JSON or XML

The same fields, under different names. Do not use the CSV column names in a JSON or XML file: they will not be found, and every field will come through empty.

CSV columnJSON propertyXML path
CodecodeDeliveryMethod/code
NamenameDeliveryMethod/name
RateRulerateRuleDeliveryMethod/rateRule
RaterateDeliveryMethod/rate
FreeOverValuefreeOverValueDeliveryMethod/freeOverValue
BandsbandsDeliveryMethod/bands
LeadTimeDaysleadTimeDaysDeliveryMethod/leadTimeDays
CutOffTimecutOffTimeDeliveryMethod/cutOffTime
TaxCodetaxCodeDeliveryMethod/taxCode
SortOrdersortOrderDeliveryMethod/sortOrder
IsActiveisActiveDeliveryMethod/isActive

Users

7 recognised columns in a CSV file.

Column in your fileWhat goes in itExample
UserIdYour code for the person, which AssignedUserId in the customers file refers to.REP01
NameTheir name, recorded on every order they take.Sam Example
EmailTheir email address.sam@example.com
RoleAdmin or Rep. Admins can change the settings.Rep
PinCodeThe four-digit PIN they sign in with.3907
BackupCodesOne-off codes for a forgotten PIN.739154|204861|551029|682304|918476
IsActiveYes to let them sign in, No to stop them.Yes

Users in JSON or XML

The same fields, under different names. Do not use the CSV column names in a JSON or XML file: they will not be found, and every field will come through empty.

CSV columnJSON propertyXML path
UserIduser_idUser/UserId
NamenameUser/Name
EmailemailUser/Email
RoleroleUser/Role
PinCodepin_codeUser/PinCode
BackupCodesbackup_codesUser/BackupCodes
IsActiveis_activeUser/IsActive