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

# Data migration

> Import and export your product, master product, and price data via CSV files.

Import and export your catalog data into Qwoty using CSV files — a fast way to bring an existing product list, price book, or variant tree into your workspace without writing a single line of code.

## Import methods

Qwoty supports two main methods for importing data:

| Method         | Best for                                              | Volume limit                 |
| -------------- | ----------------------------------------------------- | ---------------------------- |
| **CSV import** | Standard migrations, periodic bulk updates            | Up to \~10,000 rows per file |
| **API**        | Large-scale migrations, continuous syncs, automations | Unlimited                    |

For very large datasets or recurring syncs from your ERP or CRM, use the [Qwoty REST API](https://docs.qwoty.io). The CSV importer is the fastest path for one-time migrations and admin-driven bulk updates.

## CSV import basics

You can import data for three objects: **Master products**, **Products**, and **Prices**. Each file must contain **only one object type**.

**Fields must exist before import.** Uploading a CSV creates records but does not create fields. If you need custom fields, create them first under **Settings → Data → Data model**. See the [Data model](/user-guide/data-model/introduction) page for details.

### Steps

1. Open **Settings → Data → Import/Export Data**.
2. Select the object you want to import: **Master products**, **Products**, or **Prices**.
3. Click **Download example file** to get a template with the right columns.
4. Format your file (see [Prepare your CSV files](/user-guide/data-migration/how-tos/prepare-csv-files)).
5. Click **Import**, drop your file, and follow the 4-step wizard: **Upload → Mapping → Confirm → Result**.
6. Review validation errors at the Confirm step. Errors don't block valid rows.
7. After import, download unimported rows if any failed and fix them in your source file.

## Importing relations between objects

Qwoty objects reference each other:

* A **Product** belongs to a **Master product** (via `parent_product_api_name` or `product_parent_id`)
* A **Price** belongs to both a **Product** and a **Pricebook**
* A **Product** is attached to one or more **Catalogs** and **Categories**

You reference related records by their unique identifier — the `id` (UUID) or the `api_name` (a stable, human-readable identifier you control).

<Warning>
  **Import order matters.** Always import objects in this order, because the "parent" must exist before the "child" can reference it:

  1. **Master products** — first
  2. **Products** — second (referencing their master)
  3. **Prices** — last (referencing products and pricebooks)

  Catalogs, Categories, and Pricebooks must already exist in your workspace before you start. Create them through the UI or earlier in your migration plan.
</Warning>

See [Import relations](/user-guide/data-migration/reference/import-relations) for details on how relation columns work.

## Export data

Every import screen also exports. Use the **Export** section on the same page to download your current data as a CSV — useful for:

* Backing up before a bulk update
* Bringing data from a sandbox to a production workspace
* Editing in a spreadsheet then re-importing with `id` set on each row to update existing records

Filters apply: for products, you can scope the export to a specific catalog. For prices, you can scope to a specific pricebook.

## Permissions

Data import and export require specific permissions on the **Apps** block of your role:

* **Import CSV** — required to access the import screen
* **Export CSV** — required to download exports

Contact your workspace admin if these are missing. See [Manage roles](/user-guide/settings/users/manage-roles) for the full permission model.

## Reference

Concepts and rules that apply to every import.

<CardGroup cols={2}>
  <Card title="Supported file formats" icon="file" href="/user-guide/data-migration/reference/file-formats">
    File formats, encoding, and CSV best practices.
  </Card>

  <Card title="Field mapping" icon="arrow-right-arrow-left" href="/user-guide/data-migration/reference/field-mapping">
    How Qwoty matches your CSV columns to its fields.
  </Card>

  <Card title="Uniqueness constraints" icon="fingerprint" href="/user-guide/data-migration/reference/uniqueness-constraints">
    Which fields are unique and how Qwoty deduplicates.
  </Card>

  <Card title="Import relations" icon="link" href="/user-guide/data-migration/reference/import-relations">
    How to link records to their parents during import.
  </Card>

  <Card title="Error handling" icon="triangle-exclamation" href="/user-guide/data-migration/reference/error-handling">
    Validation errors and how to fix them.
  </Card>
</CardGroup>

## How-tos

Step-by-step instructions for the four common imports.

<CardGroup cols={2}>
  <Card title="Prepare your CSV files" icon="file-spreadsheet" href="/user-guide/data-migration/how-tos/prepare-csv-files">
    Format your data correctly before importing.
  </Card>

  <Card title="Import master products" icon="layer-group" href="/user-guide/data-migration/how-tos/import-master-products">
    Always start here — masters are the parents that products reference.
  </Card>

  <Card title="Import products" icon="box" href="/user-guide/data-migration/how-tos/import-products">
    Import products attached to master products and catalogs.
  </Card>

  <Card title="Import prices" icon="tag" href="/user-guide/data-migration/how-tos/import-prices">
    Add prices to a pricebook — six pricing models supported.
  </Card>
</CardGroup>
