Importing your data

TradeOS imports CSV files from Settings. This page is the exact format — it is public so you can give the link to ChatGPT, Claude or whatever you use, alongside an export from your current system, and have it produce files in the right shape.

Give this to your AI assistant

“Here is the TradeOS import format: tradeos.mcmanussolutions.co.uk/docs/import. Here is an export from my current system. Convert it into the four files TradeOS wants, in the order listed, and tell me anything you had to guess.”

Four rules

  1. Order matters. Customers, then products, then order headers, then order lines. Each step matches against what the previous one created.
  2. Column names must match exactly. Lower case, underscores, no spaces. Surrounding whitespace is trimmed; anything else is not recognised and the column is ignored.
  3. Extra columns are ignored, so you can leave the rest of an export in place rather than stripping it out.
  4. Nothing saves until you say so. Every import previews first, telling you what would be created and what would be skipped and why. Fix and re-upload as many times as you need.

Customers

Import first

Your customer book. Orders match to these by email, so bring them in before orders.

ColumnNotes
namerequiredPerson or business name. The only required column.
emailUsed to match orders to customers on a later import. Worth including.
phoneFree text — any format.
company_nameFor trade accounts.
account_typeretail or trade. Defaults to retail.
credit_limitNumber, no currency symbol. Trade accounts only.
notesAnything else worth keeping.
name,email,phone,company_name,account_type,credit_limit,notes
Mrs T. Reynolds,treynolds@example.com,07700 900142,,retail,,Prefers morning delivery
Davidson & Sons,orders@davidson.co.uk,028 9145 6712,Davidson & Sons Ltd,trade,5000,Account since 2019

Products

Import second

Your catalogue. SKUs must be here before order lines, which match products by SKU.

ColumnNotes
namerequiredProduct name as customers see it.
skuYour own code. Strongly recommended — order lines match on it.
unit_priceNumber, no currency symbol. e.g. 1299.00
categoryFree text. Used for grouping on the shop and in reports.
descriptionShown on the storefront.
statusactive or archived. Defaults to active.
name,sku,unit_price,category,description,status
Lagan 3-Seater Sofa,LSF-003,1299.00,Sofas,Solid oak frame with feather cushions,active
Mourne Dining Table,MRN-DT-L,749.00,Dining,Six-seat solid oak table,active

Orders — headers

Import third

One row per order. Creates or matches the customer by email, so import customers first.

ColumnNotes
order_numberrequiredYour existing reference. Must be unique.
customer_emailMatches an existing customer. Without it a new one is created.
customer_nameUsed when creating a customer this order does not match.
customer_phoneAs above.
company_nameAs above.
statusquote, confirmed, dispatched, delivered, complete or cancelled. Defaults to quote.
delivery_typedelivery or collection. Defaults to delivery.
delivery_dateYYYY-MM-DD.
promised_dateYYYY-MM-DD. What the customer was told.
delivery_address_lineStreet address.
delivery_address_city—
delivery_address_county—
delivery_address_postcode—
notesAnything the office should see on the order.
order_number,customer_email,customer_name,status,delivery_type,promised_date,delivery_address_line,delivery_address_city,delivery_address_postcode,notes
SO-1042,treynolds@example.com,Mrs T. Reynolds,confirmed,delivery,2026-10-02,14 Malone Road,Belfast,BT9 5BN,Ring bell twice

Orders — line items

Import last

One row per line. Matches orders by order_number and products by SKU, so both must already be in.

ColumnNotes
order_numberrequiredMust match an order imported in the previous step.
product_skurequiredMust match a product already in the catalogue.
quantityNumber. Defaults to 1.
unit_priceNumber. Defaults to the product price if left blank.
notesPer-line note, e.g. a fabric choice.
order_number,product_sku,quantity,unit_price,notes
SO-1042,LSF-003,1,1299.00,Oatmeal fabric
SO-1042,MRN-DT-L,1,749.00,

Getting the data out first

Most systems will export CSV from a reports or admin screen. If yours only exports Excel, save it as CSV — one sheet per file. If it exports nothing useful, tell us what you are running and we will look at it with you.

Also see the API documentation if you would rather move data in and out programmatically, and the error code reference if an import tells you something went wrong.