> ## Documentation Index
> Fetch the complete documentation index at: https://docs.retailgrid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Import and map CSV data

> Upload a product, sales, or competitor file and let Retailgrid map its columns to the right fields with AI-assisted guidance.

The fastest way to get your own data into Retailgrid is to upload a CSV or Excel file and let Retailgrid map its columns for you. Use this when you have an export from an ERP, a supplier file, or a spreadsheet and want it in a grid without writing any code.

> [!NOTE]
>
> Two other paths exist for getting data in. Connect [Shopify](/settings/shopify.md) for a live, self-refreshing sync of products and sales, or use the [public REST API](/api-reference/introduction.md) for scheduled extraction and ERP/BI integrations. File upload is the right choice for one-off loads and for data that doesn't have a live source.

## What you can upload

Retailgrid accepts **CSV** (UTF-8 preferred) and **XLSX** files, one row per record, for each of the core datasets:

* **Products** - your catalog. See the [Products data spec](/data-requirements/products.md).
* **Sales / transactions** - sales history. See the [Sales data spec](/data-requirements/sales.md).
* **Competitor prices** - observed competitor offers. See the [Competitor prices data spec](/data-requirements/competitors.md).

Keep files to raw data: no pivot tables, no formulas, one value per cell.

## Upload and map

1. Start an upload from the data/upload entry in Retailgrid (the same flow the grid creation step uses).
2. Pick the dataset the file belongs to (Products, Sales, or Competitor prices) and choose your `.csv` or `.xlsx` file.
3. Retailgrid reads the header row and **proposes a mapping** from each of your columns to a Retailgrid field, using the column names and sample values to make an AI-assisted guess.
4. Review the proposed mapping column by column. Confirm the matches that are right, correct any that aren't, and leave a column unmapped if it has no Retailgrid field.

The mapping screen shows your source columns alongside the Retailgrid field each is mapped to, so you can see the whole file's mapping before committing it.

## Required fields

A Products file must resolve the required fields before it can be imported:

* `item_id` - the unique SKU-level identifier that links sales, store, and competitor data to the item.
* `product_name`
* `price` (the current selling price)
* `unit_cost`

Retailgrid recognizes many common header names automatically (for example *Current Price* or *Actual Price* for `price`), so the proposed mapping usually fills these in for you. Sales and competitor files have their own required keys - see each dataset's spec, linked above. `item_id` must match exactly across files, or transactions and competitor prices can't be linked to products.

## Custom columns ride along

Columns that don't map to a built-in Retailgrid field aren't dropped - they're kept as **custom attributes** on the record and show up as columns in your grid, so you can filter, group, and build formulas on them. Keep custom columns to a single value per cell and a consistent name. (Custom attributes are supported for CSV/XLSX upload; the JSON API rejects unknown fields - see [Loading via the API](/data-requirements/products.md#10-loading-via-the-api).)

## Finish and find your data

Once the mapping is confirmed, Retailgrid imports the file into the matching dataset (Products or Transactions). Grids built on that dataset pick up the new rows on the next refresh, and the columns you mapped - plus any custom attributes - are available in the [Columns panel](/grids/configure-grid.md). From there you can show the columns you need and start pricing.

## Related

* [Products data spec](/data-requirements/products.md)
* [Sales data spec](/data-requirements/sales.md)
* [Competitor prices data spec](/data-requirements/competitors.md)
* [Create a grid](/grids/create-grid.md)
* [Connect Shopify](/settings/shopify.md)
* [API introduction](/api-reference/introduction.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.