Importing data with CSV
Import product and variant data into Emfas from CSV files
Need to bring product data into Emfas from a spreadsheet? The CSV import feature lets you upload data from any CSV file and map it to your product catalog. Whether you're updating existing products or creating new ones, this guide walks you through the process.
File size limit
CSV files can be up to 300MB in size. If you have larger files, consider splitting them into smaller chunks.
Accessing CSV import
To start importing data:
- Go to the Products or Variants catalog
- Click the Import CSV button in the top right corner
- Select your CSV file to upload
Once uploaded, you'll be taken to the column mapping screen where you'll tell Emfas how to interpret your data.
Example CSV files
Not sure how to structure your CSV file? Emfas provides example templates you can download to see the correct format. Click the Download CSV Templates button on the upload screen to access them.
Import data to existing entities
Use these templates when you have Shopify or Centra connected and want to import data to existing products:
| Template | What it demonstrates |
|---|---|
| Existing products (Shopify) | Importing data to existing products using Shopify product handles |
| Existing products (Centra) | Importing data to existing products using Centra product numbers |
| Existing products and variants (Centra) | Importing data to both products and variants using Centra product numbers and variant codes |
Using the templates
These templates show the correct ID formats and column structure. Download one, add your own data following the same pattern, and use it for your import.
Creating new entities (CSV-only mode)
Use these templates when you're using Emfas without an ecommerce platform connected and managing your catalog entirely with CSV files:
| Template | What it demonstrates |
|---|---|
| Creating new products | Creating new products in CSV-only mode |
| Creating new products and variants | Creating new products with variants in CSV-only mode |
Importing to existing products in CSV-only mode
When importing data to existing products in CSV-only mode, it works the same way as when importing products with an ecommerce store connected.
Understanding the column mapping screen
After uploading your CSV, you'll see the column mapping interface. This is where you connect your CSV columns to fields in Emfas. The screen is organized into three main sections to help you review your data and set up the correct mappings.
The column mapping screen has three sections:
| Section | What it shows | Purpose |
|---|---|---|
| Left column | Column names from your CSV file | Shows the headers from your uploaded file |
| Middle column | Field selectors | Where you choose which Emfas field each CSV column maps to |
| Right column | Example data | Shows actual data from your CSV to help you verify mappings |
You'll also notice an Import Settings panel at the top of the screen. This lets you configure how the import handles unknown IDs and blank cells - see Import settings for details.
Reviewing example data
Before you start mapping columns, it's helpful to look at the actual data from your CSV file. The example data column on the right shows real values from your file, which helps you:
- Confirm which CSV column contains which type of data
- Verify data formats (especially for IDs)
- Make sure you're mapping the right columns to the right fields
You can browse through different rows in your CSV by clicking the arrow keys next to the "Example data" header. This lets you see how data varies across multiple rows, giving you confidence that your mappings are correct.
Import settings
Before mapping your columns, you can configure how the import should behave using the Import Settings panel. Click on the panel header to expand it and see the available options.
Entity creation mode
This setting controls what happens when your CSV contains IDs that don't exist in Emfas:
| Mode | What happens | When to use |
|---|---|---|
| Skip rows with unknown IDs (default) | Rows with IDs not found in Emfas are skipped | When you only want to update existing products and ignore any unrecognized IDs |
| Create new entities for unknown IDs | New products or variants are created for IDs not found in Emfas | When you want to add new products to your catalog via CSV |
Creating new entities
When using "Create new entities" mode, you'll need additional columns mapped:
- For new products: Map a column to Product Name so Emfas knows what to call the new products
- For new variants: Map columns to both Product ID (to associate with a product) and Variant Name
If these required columns are missing, you'll see a validation error in the confirmation dialog.
Blank cells handling
This setting controls how empty cells in your CSV are treated:
| Mode | What happens | When to use |
|---|---|---|
| Keep existing values (default) | Blank cells are ignored - existing data stays unchanged | When you're updating specific fields and want to preserve other data |
| Clear field values | Blank cells will clear the corresponding field in Emfas | When you intentionally want to remove data from fields |
Be careful when clearing
When you choose "Clear field values when CSV cell is blank," any blank cells will remove existing data. This cannot be undone through the CSV import feature.
Example: If you have a product with a description and you import a CSV with the product ID but a blank description cell:
- Keep existing values: The existing description stays intact
- Clear field values: The existing description is removed
Choosing fields to map to
Click on a field selector to select where in Emfas to import columns to.
Combining multiple columns
You can map multiple CSV columns to the same Emfas field. When you do this, the contents from all mapped columns will be combined together into that field.
A common workflow is to map several columns with raw or unstructured data (like specs, notes, or descriptions from different sources) to the Product Input field. This dumps all that information into one place, which you can then use later to generate AI content for your other fields like Description, Title, or Meta Description.
When you click on a field selector, you'll see all available fields organized into three sections:
System fields
These are special fields Emfas uses to identify and organize your products:
| Field | What it's for | When to use it |
|---|---|---|
| Product ID | Identifies which product to update | Required when updating existing products |
| Variant ID | Identifies which variant to update | Required when updating existing variants |
| Product Name | Names the product in Emfas | Required when entity creation is enabled and new products are being created |
| Variant Name | Names the variant in Emfas | Required when entity creation is enabled and new variants are being created |
| SKU ID | Identifies which SKU to update | Used when importing SKU-specific data. Can update existing SKUs by ID alone, or create new SKUs when combined with Variant ID |
| SKU Name | Names the SKU in Emfas | Optional when creating new SKUs |
What format should IDs be in?
The format for Product ID, Variant ID, and SKU ID depends on your setup. See With an e-commerce platform connected for Shopify and Centra ID formats, or Without an e-commerce platform if you're using CSV-only mode.
Working with SKUs
SKUs are always associated with a variant. When importing SKU data:
- To update existing SKUs: Use just the SKU ID column - Emfas will automatically find the associated variant
- To create new SKUs: Include both Variant ID and SKU ID columns. The variant must already exist in Emfas
- To update SKU fields on existing products: Include SKU ID along with any SKU-level fields you want to update
Product, variant, and SKU fields
Below the system fields, you'll see all your regular product attributes (like Description, Price, Category, etc.), variant attributes if you're using variants, and SKU attributes if you're working with SKUs.
Simply select which Emfas field you want each CSV column to populate.
Numeric field operations
Only available in proposals
Numeric field operations are only available when using Create proposal from CSV on the Proposals screen. They are not available in the regular CSV import from the product catalog.
When creating a proposal from CSV and mapping a column to a numeric field (like Price, Number, or Weight), you can choose how to apply the values:
| Operation | What it does | Example |
|---|---|---|
| Set (replace) | Replaces the existing value with the CSV value | Set price to exactly 99.00 |
| Increase by | Adds the CSV value to the existing value | Add 5.00 to current price |
| Decrease by | Subtracts the CSV value from the existing value | Subtract 10.00 from current price |
| Increase by % | Increases the existing value by the CSV percentage | Increase price by 15% |
| Decrease by % | Decreases the existing value by the CSV percentage | Decrease price by 20% |
Bulk price adjustments
This is useful for applying percentage-based price changes across your catalog. For example, create a proposal from a CSV with a column containing "10" and map it to Price with "Increase by %" to raise all prices by 10%.
Selecting language for localized fields
Some fields in Emfas support multiple languages - these are called localized fields. Text fields like Description, Title, or custom text attributes often have different values for different languages.
When you map a CSV column to a localized field, you'll need to select which language the data is in. For example, if your CSV contains English descriptions, select "English" when mapping to the Description field.
Importing multiple languages at once
You can import multiple languages in a single CSV import as long as each language is in its own column. For example, have one column for English descriptions and another for Swedish descriptions. Map each column to the Description field and select the appropriate language for each mapping.
Importing images via URL
When mapping a CSV column to a Media field (image attribute), you can provide external image URLs instead of uploading files. Emfas will automatically create assets from these URLs and link them to your products.
| Format | Example |
|---|---|
| Single image | https://cdn.example.com/product-front.jpg |
| Multiple images | https://cdn.example.com/front.jpg,https://cdn.example.com/back.jpg |
Supported formats include JPG, PNG, GIF, WebP, SVG, and MP4 video.
Multiple images
For multi-value media fields, separate URLs with commas. Each URL will create a separate asset linked to the product.
The Product Input field
Emfas has a special field called Product Input that's designed specifically for importing unstructured or raw data. This is one of the most commonly used fields during CSV import.
The typical workflow:
-
During import: Map multiple CSV columns with raw data - like supplier descriptions, specifications, notes, or any unstructured information - to the Product Input field. The contents of all these columns will be combined together.
-
After import: Use this combined information as source material to generate AI content for your structured fields like Description, Title, Meta Description, and more.
This approach keeps your data organized:
- Raw, unprocessed data lives in Product Input
- Clean, AI-generated content lives in your customer-facing fields
- You maintain the source information without cluttering your actual product fields
Why use Product Input?
- It only exists in Emfas (not synced to external platforms like Shopify or Centra)
- Perfect for temporary data that feeds AI generation
- Keeps your structured fields clean and ready for proper content
Creating new fields
You can create new fields while importing if you need to add data to fields that don't exist yet in Emfas. This is useful when your CSV contains data that doesn't map to any existing product attributes.
When you click on a field selector, you'll see options to create new fields at the bottom of the dropdown. You can create two types of fields:
| Field Type | What it stores | Best for |
|---|---|---|
| Text field | Free-form text of any length | Descriptions, notes, specifications, or any text-based data |
| Category (Select) field | Predefined options from your CSV | Tags, statuses, types, or any categorical data with specific values |
When creating a new field, you'll need to specify where it should live and what to call it:
Choose the field level:
- Product level: The field will be associated with the product (for example "Brand" or "Care Instructions")
- Variant level: The field applies to individual variants (for example "Size" or "Color")
- SKU level: The field applies to individual SKUs (for example "Barcode" or "Warehouse Location")
If your catalog doesn't use variants or SKUs, you'll only create fields at the product level.
Set the field properties:
-
Field name: What users will see in the Emfas interface
- Defaults to your CSV column name
- Can be changed to something more readable (e.g., "prod_desc" → "Product Description")
-
Unique key: Internal identifier Emfas uses to reference this field
- Must be unique across all your fields
- Used in the API and internal systems
- Cannot be changed later, so choose carefully
Naming your fields
Keep field names clear and descriptive for your team. For the unique key, use lowercase with underscores (like product_description or care_instructions) to follow standard naming conventions.
Category fields
When creating a category field, Emfas automatically detects all unique values from your CSV column and creates those as the available options. For example, if your "Status" column contains "Active", "Draft", and "Archived", those three options become available in the new field.
Import modes: With or without an e-commerce platform
How you map your columns depends on whether you have an e-commerce platform connected to Emfas.
With an e-commerce platform connected
If you have Shopify or Centra connected, Emfas uses specific identifiers to match CSV data to existing products:
Shopify setup
For Shopify: Map your CSV column containing the product handle to the Product ID field in Emfas. The product handle (like summer-dress-2024) is what Emfas uses to identify and match Shopify products.
Centra setup
For Centra: Map your CSV column containing the product number to the Product ID field.
If you're importing variant data, use the format product_number-variant_number (for example: 12345-001) in the Variant ID column.
Required mappings:
- One column mapped to Product ID (with the correct identifier type)
- Additional columns for any product data you want to import (optional)
Without an e-commerce platform (CSV-only mode)
If you don't have an e-commerce platform connected, you need to provide names so Emfas knows what to call your products.
Required mappings:
- One column mapped to Product Name (so products have a name in Emfas)
- If importing variants: one column mapped to Variant ID and one mapped to Variant Name
- If importing SKUs: one column mapped to SKU ID (and optionally SKU Name). Note that the variant must already exist
- Additional columns for any product data you want to import (optional)
Confirming your import
Once you've mapped all your columns and are ready to proceed, click the Import button. Before the import runs, Emfas analyzes your data and shows you a confirmation dialog.
The confirmation dialog
The confirmation dialog shows you exactly what will happen based on your import settings:
In "Skip rows with unknown IDs" mode:
- Shows how many products/variants will be updated (IDs found in Emfas)
- Shows how many IDs were not found and will be skipped
In "Create new entities for unknown IDs" mode:
- Shows how many products/variants will be updated (IDs found in Emfas)
- Shows how many products/variants will be created (new IDs)
Before proceeding, verify that the numbers match your expectations. If you're updating existing products, the "updated" count should match the number of unique product IDs in your CSV file. If you see unexpected numbers, it likely means your IDs don't match what's in Emfas.
Validation errors
The confirmation dialog may show errors if your column mappings are incomplete for the selected import mode:
| Error | Cause | Solution |
|---|---|---|
| Cannot create new products without a Product Name column | You're in "Create new entities" mode but haven't mapped a Product Name | Go back and map a column to Product Name |
| Cannot create new variants without a Variant Name column | You're in "Create new entities" mode with new variants but no Variant Name | Go back and map a column to Variant Name |
| Will skip creating variants because there is no Product ID column | Variants need to be associated with a product | Map a column to Product ID if you want to create variants |
Accidentally created products?
If you confirm the import and realize you created products by mistake, you can remove them from your catalog:
- Go to the product catalog
- Select the unwanted products
- Click the three dots in the action button overlay
- Click Delete
Common mistakes to avoid
Using the wrong ID format
The most common issue is mapping the wrong type of identifier to the Product ID field in Emfas:
- Shopify users: Use the product handle (like
summer-dress-2024) and map it to the Product ID field in Emfas. Do not use the numeric product ID from Shopify. - Centra users: Use the product number for products, and
product_number-variant_numberformat for variants
If your IDs don't match Emfas's expected format, rows will show as "not found" in the confirmation dialog.
How to catch this before importing: When you click Import, check the confirmation dialog. If you're trying to update 100 products but the dialog shows "100 product IDs not found (will be skipped)", cancel and verify your ID format is correct.
Accidentally creating duplicates
If you're in "Create new entities for unknown IDs" mode and your IDs don't match existing products, Emfas will create new products instead of updating existing ones. This can lead to duplicate products in your catalog.
How to avoid this: Use "Skip rows with unknown IDs" mode (the default) when you only intend to update existing products. This way, mismatched IDs are safely skipped rather than creating unwanted new products.
Best practices for CSV imports
Prepare your CSV file
Before uploading:
- Make sure your file is under 300MB
- Verify column headers are clear and descriptive
- Check that ID columns contain the correct format
- Remove any test or dummy rows
Start small
If this is your first time importing, try a small test file with just a few products first. This lets you verify your column mappings are correct before importing hundreds or thousands of rows.
After importing
Once your import is complete, your data will be available in the product catalog. You can:
- Use filters to find the newly imported or updated products
- Edit individual products to refine the data
- Create proposals to generate AI content for the imported products
- Make bulk changes to update multiple imported products at once
Verify your import
After importing, it's a good idea to filter your catalog to review the imported products. Check that:
- Products were matched correctly (no unexpected duplicates)
- Data landed in the right fields
- New products have appropriate names