> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://tieback.io/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://tieback.io/docs/_mcp/server.

# Product Import

> Import products into tieback from CSV, map source columns to fields, validate rows before committing, and review per-row insert, update, and error results.

## What It Does

Product Import lets you upload product data in bulk via CSV, map columns to **tie*back*** fields, validate rows before committing, and track the outcome of each row.

## Who It's For

Brand administrators who need to onboard product catalogues from spreadsheets, ERP exports, or other external systems.

## How It Works

### Import Workflow

#### Upload a CSV file

Upload a CSV file containing your product data. The file name and row count are recorded for tracking.

#### Map columns

Map each CSV column to a **tie*back*** field. The system provides a mapping interface where you assign source columns to target product attributes.

#### Validate

Run validation against all rows. Each row is checked for:

* Required fields (based on your brand's DPP schema)
* Data type correctness
* Value-set compliance (where applicable)
* Identifier format and uniqueness

Rows are marked as **valid**, **warning** (passes with advisory notes), or **error** (will not import).

#### Review and exclude

Review validation results row by row. You can exclude individual rows to prevent them from being imported.

#### Commit

Commit the import to create or update products. Each row produces one of:

* **Inserted**: a new product was created
* **Updated**: an existing product was matched and updated
* **Skipped**: the row was excluded
* **Error**: the row failed to process

### Matching and Updates

When importing, **tie*back*** matches incoming rows to existing products using identifier fields (typically SKU or GTIN). If a match is found, the existing product is updated; otherwise, a new product is created.

### Locked Fields

When a product is updated via import, certain fields can be **locked** to prevent overwriting. Locked fields are protected from import-driven changes but can still be edited manually in the Product Detail page.

### Idempotency

Import jobs support idempotency keys. Submitting the same import request twice returns the existing job rather than creating a duplicate.

## Limits & Notes

* CSV is the currently supported import format.
* Each import job tracks row-level outcomes: inserted, updated, skipped, and errored counts.
* Validation runs server-side; the UI displays results for review before committing.
* Locked fields protect against accidental overwrites during import but do not restrict manual edits.

## FAQ

#### Can I import products from an ERP or PIM system?

Yes. Export your data as CSV and upload it. The column mapping step lets you align any source
format to

**tie*back***

fields.

#### What happens if a row fails during commit?

Failed rows are recorded with an error message. Successfully imported rows are unaffected, and
each row is processed independently.

#### Can I re-run an import?

You can create a new import job with the same file. Use an idempotency key to prevent duplicate
processing if needed.

#### Does import overwrite my locked fields?

No. Locked fields are protected from import-driven changes. Only manual edits in the Product
Detail page can modify locked fields.

## Related Docs

* [Products](/product-module/products)
* [Bulk Editing](/product-module/bulk-editing)
* [Product Identifiers](/product-module/identifiers)
* [API: Import](/api-reference/api-import)