How to Import & Export Products in Magento 2 & Adobe Commerce : The Complete Guide for 2026 (CSV, Images, MSI, Configurable Products & More)

- Magento 2

Magento 2 Product Import Export Tutorial

Magento 2 product import and export are closely connected processes that form a workflow for transferring catalog data into or out of Magento in bulk, making it essential for store migrations, catalog updates, inventory and price synchronization, and product feeds. Whether you use Magento 2 Open Source or Adobe Commerce, efficient import/export saves you from updating products one by one.

In this guide, you’ll learn how to import and export Magento 2 products, starting with the native CSV requirements and default import process. We cover product types, images, attributes, custom options, stock, pricing, tier prices, and common import challenges.

Magento’s built-in tools work well for straightforward CSV operations, but large or complex catalogs often require flexible mapping, automation, multiple data sources, and advanced import options. That’s where Improved Import & Export for Magento 2 can streamline your workflow and handle recurring catalog updates at scale.

Need more than basic CSV imports? Explore Improved Import & Export for Magento 2 to automate product transfers, map data flexibly, and connect Magento with external platforms and data sources.

Magento 2 Product Import CSV Sample: A Quick Overview

Looking for a Magento 2 product import CSV sample? Here it is:

Performing a Magento 2 import of products with a CSV sample is an essential first step before uploading any real store data. By working with a Magento 2 product CSV that’s free from errors, you’ll gain hands-on experience with how Magento handles product imports and discover the ideal CSV structure. This foundational knowledge helps you master the nuances of Magento 2 import products workflows and prevents costly mistakes later on.

In our Google Sheets Master Table, each column comes with additional guidance that explains how the corresponding Magento 2 import attribute should be used. By checking the notes attached to the column headers, you can see what the field is responsible for, which values and formats are accepted, whether the attribute is required, and how the data should be structured for a successful import. In many cases, these notes also include practical examples and special formatting rules, helping you prepare Magento 2 import files correctly without constantly switching between the spreadsheet and separate documentation. In addition to a perfect product import CSV for Magento 2, you also need to understand the minimum requirements of the workflow.

Magento 2 Import Prerequisites: What You Need Before You Start

By default, Magento 2 uses CSV files for both importing and exporting store data, including products and customers. However, Magento 2 supports a specific CSV structure that you must follow to ensure successful data transfers. A practical way to learn this structure is to either export data from your current store or use the sample Magento 2 product CSV files mentioned above.

If you opt to generate your own CSV files, head to your Magento admin panel, navigate to System > Export, and follow the default export process (detailed below). The resulting files will showcase the correct CSV format for Magento 2 imports:

  • Products
  • Customers
  • Related Data Entities

By reviewing these exports, you’ll gain valuable insights into how Magento 2 manages CSV files, helping you avoid errors when you’re ready to import products or other data into your store.

The exported CSV files will have the following format:

Character set Unicode (UTF-8)
Field separator Comma, Tab
Text delimiter ”

How to Easily Edit a Magento 2 CSV File: A Google Sheets Tutorial

Once you have a Magento 2 CSV file ready for import, the next question is how to edit it without causing formatting issues. Based on our extensive experience with Magento 2 import and export workflows, we recommend Google Sheets for a few key reasons:

  1. It’s Free and Accessible. All you need is a Google account to start editing your CSV file.
  2. No Formatting Breaks. Uploading a CSV to Google Sheets preserves the original separators and delimiters.
  3. Ready for Import. After making your changes, you can download the file in CSV format without worrying about unwanted modifications—it’s instantly ready for your Magento 2 import.

Why Not Use Excel or OpenOffice?

While Microsoft Excel and OpenOffice might seem like convenient options, they often alter CSV formatting, separators, and delimiters by default. Unless you’re an advanced user who can tweak these settings, you may end up with errors during the Magento 2 product import process.

For a hassle-free experience that keeps your CSV files intact and ready to go, Google Sheets remains the most reliable choice.

Magento 2 Open Source vs. Adobe Commerce vs. Improved Import & Export

The basic Magento 2 product import process is similar across Magento Open Source and Adobe Commerce: both support CSV-based catalog imports through the Admin. The key differences are in the features available around catalog management, automation, and data sources.

And if you need to go beyond Magento’s native CSV workflow, Improved Import & Export for Magento 2 and Adobe Commerce adds capabilities designed for large catalogs and recurring data transfers, including multiple file formats, external data sources, flexible mapping, and scheduled imports. Here are three of them compared side by side:

Feature Magento 2 Open Source Adobe Commerce Improved Import & Export
Product import via CSV ✓ ✓ ✓
Product export ✓ ✓ ✓
Product attributes and custom attributes ✓ ✓ ✓
Simple, configurable, grouped, virtual, downloadable, and bundle products ✓ ✓ ✓
Product images and media ✓ ✓ ✓
Categories and product relationships ✓ ✓ ✓
Prices and inventory data ✓ ✓ ✓
Advanced pricing ✓ ✓ ✓
Shared catalogs — ✓ ✓
B2B company and customer-specific catalog data — ✓ ✓
Multiple websites, stores, and store views ✓ ✓ ✓
Multiple file formats CSV CSV CSV, XML, XLSX, JSON, TXT, ODS, and more
Data sources Local files Local files Local files, FTP/SFTP, Google Sheets, Dropbox, Google Drive, REST API, SOAP API, and more
Flexible field mapping Basic Basic Advanced mapping and transformation
Scheduled imports — ✓ ✓
Recurring product updates Manual Scheduled workflows Scheduled workflows + triggers
Import presets — — Pre-configured import profiles and mappings
External platform integrations — Limited/native integrations Dedicated integrations and data-source support

As you can see, Magento Open Source and Adobe Commerce provide the essential tools for straightforward product catalog management. Adobe Commerce adds capabilities such as support for B2B and automation, which can result in more complex catalog data.

The biggest difference comes when you need to automate the process or work with data outside Magento’s standard CSV workflow. Improved Import & Export supports multiple file formats and external sources, provides advanced mapping and transformation capabilities, and lets you schedule recurring imports and exports using cron. This makes it possible to synchronize products, prices, inventory, and other catalog data without manually uploading files every time.

For example, instead of downloading a supplier’s catalog, converting it to Magento’s CSV structure, and importing it manually, you can configure an automated workflow that retrieves the data from an external source, maps the fields to Magento attributes, and runs the import on a schedule.

Important: cron-based scheduling is also available in Adobe Commerce, so the advantage of Improved Import & Export is not simply scheduling itself. The extension combines scheduling with multiple formats, multiple data sources, advanced mapping, automation, and broader import/export workflows.

Now, let’s explore the actual product import and export processes available in Magento 2:

How to Export Products in Magento 2: Step-by-Step Instructions

Before diving into product import procedures, it’s crucial to understand how to export products in Magento 2. Just follow these straightforward steps to get started:

  1. First of all, you should go to “System -> Export”
  2. Then, it is necessary to select “Products” on the “Entity” dropdown.image showing default magento 2 export of products
  3. Now, you can set up filters as well as exclude unnecessary data from the output. Check the attributes that you want to keep away from your product CSV.
  4. Click “Continue”
  5. Get your formatted csv files with Magento 2 products.

How to Import Products in Magento 2: Your Ultimate Starter Guide

First of all, follow these prerequisites to import products to Magento 2:

  1. Compare Your CSV with a Magento 2 Sample
    • Review our complete Magento 2 CSV sample data, which includes all fields optimized for product imports.
    • This file contains the same items found in the official Magento 2 sample data.
    • Match your own CSV against this sample to ensure all required fields are correct.
  2. Upload Product Images
    • Download the images from sample data.zip and unzip them.
    • Place the images in your Magento 2 root folder under /pub/media/import.
    • We’ll cover how to bulk import products with images into Magento 2 in the next chapter.
  3. Refer to Official Magento 2 Sample Files (Optional)
    • You can also access the official Magento 2 CSV sample under System > Import in the dropdown menu.

Once you’ve met these prerequisites, the general product import workflow in Magento 2 is as follows:

  1. In Magento 2 admin, go to “System -> Import.”
    image showing Magento 2 import in the admin menu
  2. Select “Products” from “Entity Type”.import products to magento 2 with default tools: entity selection
  3. Select an import behavior option: Add/Update, Replace, or Delete:
  • Add/Update is the default behavior in Magento 2:
    • If a product with the same SKU already exists, it will be updated with the new data provided in the import file.
    • If a product with the SKU does not exist, a new product will be created.
  • Replace is similar to Add/Update, but it only updates existing products and does not create new ones.
    • If a product with the specified SKU is found, it will be updated with the new data. If the SKU is not found, no action will be taken for that row.
  • Delete allows you to delete products during the import process.
    • If a product with the SKU specified in the CSV exists in your database, it will be removed from the catalog.

screenshot showing How to Import Products to Magento 2 with built-in importer

  1. Select your CSV file. Use the “Select File to Import” option and then click “Check Data”. If the data is correct, start importing products to Magento 2!

That’s it! This procedure will be used for all other types of product imports to Magento 2. However, each new algorithm has its unique features associated with different attributes. Therefore, let’s dive deep into the CSV file structure associated with the Magento 2 import of products.

Magento 2 Product CSV Structure: Columns, Values, and Import Rules

While importing products, it is also important to understand the Magento 2 product CSV structure and what each column actually controls. A Magento product import file can contain everything from basic identifiers and prices to SEO metadata, images, inventory settings, product relations, and storefront configuration.

The table below explains the most important Magento 2 product import attributes, their expected values, and practical rules for preparing your CSV file.

Attribute What It Controls Values / Format Additional Guidance
sku Unique product identifier and the main key used to identify a product during import. Unique string, such as TST-Conf-Simp-S-Gray. Keep every SKU unique. It is used to match imported rows with existing Magento products.
store_view_code Store view to which store-view-specific product data applies. Store view code, such as default; may be empty where applicable. Particularly important when importing localized names, descriptions, categories, and other store-view-level values.
attribute_set_code Attribute set assigned to the product. Exact attribute set name, e.g. Default or Man shoes. The value must match an existing attribute set and preserve capitalization. Find attribute sets under Stores → Attribute Set. The set should contain the attributes required by the imported products.
update_attribute_set Determines whether the product’s attribute set should be updated during import. Commonly 1 when an update is required. Useful when updating existing products that need to be moved to another attribute set.
product_type Magento product type. Lowercase value such as simple, configurable, virtual, bundle, etc. The Master Table uses values such as simple. Product-type-specific columns are covered separately later in this guide.
categories Categories assigned to the product. Full category paths, e.g. Default Category/Gear/Bags. For multi-store configurations, the Master Table warns that category assignments for different store views may need to be updated separately. Its current sample also demonstrates multiple category paths in one field.
product_websites Websites to which the product is assigned. Website code, e.g. base. Find the website code under Stores → All Stores, open the required website, and check its Code field.
name Product name displayed on the storefront and in Admin. Text. When updating an existing SKU, a different imported name can replace the current one depending on the import behavior/settings.
description Full product description. Plain text or valid HTML. The Master Table confirms that standard Magento-compatible HTML formatting can be used.
short_description Short product description. Plain text or valid HTML. HTML can be used here as well.
weight Product weight. Numeric value such as 1, 1.000, or 10.500. Only one numeric value is expected. Downloadable products do not use weight.
product_online Enables or disables the product. The current Master Table uses 1 = enabled and 2 = disabled. The sample products in the Master Table are disabled to prevent accidental publication on a live storefront.
tax_class_name Product tax class. Exact tax class name, e.g. Taxable Goods. Use the tax class name as it appears in Magento Admin.
visibility Determines where customers can discover the product. Not Visible Individually, Catalog, Search, or Catalog, Search. Not Visible Individually is commonly used for simple products associated with configurable products.
price Regular product price. Numeric value such as 34, 34.000, or 68.0. Only numeric values are expected. The Master Table allows integer or decimal formats.
special_price Promotional product price. Numeric value. Follows the same numeric formatting rules as the regular price.
special_price_from_date Date from which the special price becomes active. YYYY-MM-DD HH:MM:SS. Example format from the Master Table: 2017-01-01 12:30:35.
special_price_to_date Date when the special price stops being active. YYYY-MM-DD HH:MM:SS. Use the same date-time format as the start date.
url_key Product URL key. URL-safe string. If empty, Magento can generate it from the product name. The Master Table recommends Latin characters without spaces; hyphens and underscores can be used.
meta_title SEO title of the product page. Text. The Master Table recommends a unique title containing relevant keywords and keeping it below roughly 70 characters.
meta_keywords Product meta keywords. Comma-separated values. Example: product1,product2,product3.
meta_description SEO description of the product page. Text. The table allows up to 255 characters and recommends approximately 150–160 characters for search-result snippets.
base_image Main product image. File path or direct image URL. Local files should be placed under /pub/media/import. Direct URLs such as https://site.com/images/image.jpg are also supported by the workflow shown in the Master Table.
base_image_label Alt text/label for the base image. Text. The Master Table explicitly describes this field as the image’s Alt Text.
small_image Image normally used on product listing/category pages. File path or direct URL. Local images follow the same /pub/media/import convention as the base image.
small_image_label Alt text for the small image. Text. Used as the associated image label/Alt Text.
thumbnail_image Product thumbnail image. File path or direct URL. Can reference a file under /pub/media/import or a remote image URL.
thumbnail_image_label Alt text for the thumbnail. Text. The Master Table identifies this as the thumbnail image’s Alt Text.
created_at Date and time when the product was created. YYYY-MM-DD HH:MM:SS. If empty, the database-entry date/time can be used instead.
updated_at Date and time of the latest product update. YYYY-MM-DD HH:MM:SS. If omitted, Magento can use the database update timestamp.
new_from_date Date from which Magento treats the product as new. YYYY-MM-DD HH:MM:SS. Controls the beginning of the product’s “new” period.
new_to_date Date when the product stops being treated as new. YYYY-MM-DD HH:MM:SS. Completes the new-product date range.
display_product_options_in Position of the product-options block. Product Info Column or Block after Info Column. The Master Table lists both supported display positions explicitly.
map_price Minimum Advertised Price (MAP). Numeric value. Relevant when MAP functionality is enabled. Integer and decimal values are accepted.
msrp_price Manufacturer’s Suggested Retail Price. Numeric value. The Master Table notes that this value is relevant when MAP pricing is enabled. See our MSRP guide.
map_enabled Enables or disables MAP for the product. 1 = enabled, 0 = disabled. Controls whether Minimum Advertised Price functionality is applied.
gift_message_available Determines whether customers can attach a gift message. 1 = enabled, 0 = disabled. Can be controlled separately for individual products.
custom_design Custom theme/design applied to the product page. Theme/design value. The Master Table describes this field as selecting from the themes available to the product page.
custom_design_from Start date for the custom product-page design. YYYY-MM-DD HH:MM:SS. Defines when the custom design becomes active.
custom_design_to End date for the custom product-page design. YYYY-MM-DD HH:MM:SS. Defines when Magento stops using the custom design.
custom_layout_update Custom layout XML applied to the product page. XML layout instructions. Used for product-level layout customization.
page_layout Product-page layout. No layout updates, 1 column, 2 columns with left bar, 2 columns with right bar, 3 columns, empty. If no custom layout is needed, Magento can keep the default layout.
product_options_container Determines where product options appear. Product Info Column or Block after Info Column. Uses the same placement options documented in the Master Table for product options.
msrp_display_actual_price_type Determines when the actual product price is revealed when MSRP/MAP is used. In Cart, Before Order Confirmation, On Gesture, Use config. Use config inherits the global Magento store setting.
country_of_manufacture Country where the product was manufactured. Existing attribute option. Check available values under Stores → Attributes → Product → country_of_manufacture → Manage Options.
additional_attributes Additional/custom product attribute values. Comma-separated attribute=value pairs. Example from the Master Table: color=Gray,size=S. It can also carry values such as has_options and required_options.
qty Current stock quantity. Numeric value. Decimal quantities can be used when is_qty_decimal is set to 1.
out_of_stock_qty Quantity threshold at which the product becomes out of stock. Numeric value. Works together with use_config_min_qty.
use_config_min_qty Determines whether the out-of-stock threshold is inherited from store configuration. 1 = use configuration, 0 = specify product-level value. The corresponding Magento setting is available under the product’s Advanced Inventory → Out-of-Stock Threshold.
is_qty_decimal Determines whether decimal stock quantities are allowed. 1 = yes, 0 = no. When enabled, values such as 1.110 or 10.500 can be used in qty.
allow_backorders Controls whether customers can order unavailable stock. Enable/disable value according to the import configuration. Use together with the related backorder configuration fields.
use_config_backorders Determines whether backorder behavior comes from Magento’s default configuration. Configuration flag. Use it when you want the product to inherit global backorder settings rather than define its own behavior.
min_cart_qty Minimum quantity of the product that can be purchased. Numeric value. Only numeric values should be used.
use_config_min_sale_qty Determines whether minimum sale quantity comes from store configuration. 1 = use configuration, 0 = custom value. If disabled, define the product-specific minimum through min_cart_qty.
max_cart_qty Maximum quantity customers can purchase. Numeric value; 0 can represent no limit. The Master Table explicitly notes 0 as no maximum limit.
use_config_max_sale_qty Determines whether maximum sale quantity comes from global configuration. 1 = use configuration, 0 = custom value. Pairs with max_cart_qty.
is_in_stock Product stock status. 1 = in stock, 0 = out of stock. Separate from the actual numeric quantity.
notify_on_stock_below Quantity at which a low-stock notification should be triggered. Numeric value. Example thresholds could be 10 or 100, depending on the inventory model.
use_config_notify_stock_qty Determines whether the low-stock notification threshold comes from Magento configuration. 1 = use configuration, 0 = product-specific value. Disable it when providing your own notify_on_stock_below value.
manage_stock Determines whether Magento manages stock for the product. 1 = manage stock, 0 = effectively unlimited/unmanaged stock. The Master Table describes 0 as treating the product as having unlimited stock.
use_config_manage_stock Determines whether stock-management behavior is inherited from store configuration. 1 = use configuration, 0 = custom value. Pairs with manage_stock.
use_config_qty_increments Determines whether the quantity increment value comes from store configuration. 1 = use configuration, 0 = product-specific value. Disable it when defining an individual increment for the product.
qty_increments Required purchase quantity increment. Numeric value. Defines the increment used for product quantity; it works together with the increment enable/configuration fields.
use_config_enable_qty_inc Determines whether Magento inherits the global setting for quantity increments. 1 = use configuration, 0 = product-specific setting. Pairs with enable_qty_increments.
enable_qty_increments Enables quantity increments for a product. 1 = enabled, 0 = disabled. When enabled, customers purchase quantities according to the configured increment.
is_decimal_divided Determines whether parts of a decimal-quantity product can be shipped separately. 1 = yes, 0 = no. Relevant to products that support decimal quantities.
website_id Numeric ID of an associated website. Website ID. The Master Table specifically notes that this field expects the ID, rather than the website code.
related_skus Products displayed as related products. Comma-separated SKUs. Example: 24-WG080,24-UG03,24-UG01,24-UG02.
crosssell_skus Products assigned as cross-sells. Comma-separated SKUs. Uses the same comma-separated SKU structure as related products.
upsell_skus Products assigned as upsells. Comma-separated SKUs. Use existing Magento product SKUs.
additional_images Additional media-gallery images. Comma-separated file names/paths or image URLs. Local images should be available under /pub/media/import; direct image URLs can also be used.
additional_image_labels Alt text for additional images. Comma-separated labels. The labels correspond to the images in additional_images; e.g. label1,label2,label3.
_associated_sku Simple product SKU associated with a configurable product in the older/import-specific structure. SKU or multiple SKUs depending on the workflow. This column appears in the migration/example sheets of the attached Master Table rather than the current main Master Table. The newer table also demonstrates configurable relationships through fields such as group and configurable_variations.
_associated_default_qty Default quantity for an associated product. Numeric value. Appears alongside the legacy _associated_sku structure in the migration table.
_associated_position Position/order of an associated product. Numeric position. Used together with the associated SKU in the older migration-oriented structure.

How to Bulk Import Product Images into Magento 2 (Local or Remote Server)

Instead of manually uploading each product image to its product page, you can bulk import images into Magento 2 by referencing a CSV file. Below, we’ll show you two approaches: importing images from your local server and importing images from an external (remote) server.

Magento 2: Import Products with Images from a Local Server

In the case of a local server, the Magento 2 product image import is divided into the following two steps:

Step 1: Upload Your Images

  1. Prepare all the image files you need for your Magento 2 import.
    Place them into the default Magento 2 folder, for example:
    <Magento root directory>/var/import/images/product_images
  2. You can’t directly include image files inside a CSV, so uploading them first is essential.

Step 2: Import Products via CSV (with Images)

  1. Map Each Image to Its SKU:
    • In your Magento 2 product CSV, include columns for each image type (e.g., base_image, small_image, thumbnail_image, additional_image).
      magento 2 import products csv with images
    • Specify the corresponding image file names for each SKU.
  2. Run the Default Magento 2 Import:
    • Go to System > Import in your Magento admin panel.
    • Select Products as your import entity and upload the CSV file.
      the default workflow of Importing Products to Magento 2
    • Complete the import process as prompted.
  3. Verify Images:
    • Clear the cache to see the newly imported images on each product page.

Magento 2: Import Products with Images from an External Server

In the case of a remote server, the procedure is also divided into two sections.

Step 1: Host Images on a Remote Server

Upload your product image files to any publicly accessible folder on your external server. Example: https://example.com/magento-2-import-products-with-images/imagename.jpg

Step 2: Import Products via CSV (with Remote Image URLs)

The second step is almost the same as in the case of a local server:

  1. Update Your CSV File:
    • Include columns for image types — base_image, small_image, thumbnail_image, and additional_image.
    • Instead of just the file name, enter the full URL of each image file.
      screenshot showing csv with full image URLs to import products with images from remote server
  2. Run the Default Magento 2 Import:
    • In your admin panel, go to System > Import.
    • Choose Products as the entity and upload the CSV containing remote URLs.
    • Proceed through the default import steps.
  3. Clear the Cache:
    • After import, clear the cache to ensure the images display correctly on the frontend.

By following these processes, you can seamlessly import products with images into Magento 2 from either a local or remote server using CSV files. This method saves time, avoids manual image uploads, and prevents formatting errors, especially when dealing with large product catalogs.

How to Import Product Tier Prices into Magento 2

Now, let’s learn how to bulk upload tier prices in Magento 2 with CSV. If you need to import tier prices to Magento 2, go to System -> Import and select “Advanced Pricing” from a dropdown list. Next, pick “Add/Update” in “Import behavior” and configure other parameters of the standard Magento 2 import procedure.

Magento 2 import products default import

As for a CSV file, you should remove the ALL Groups column, if there is one, and further edit the table unless it has a similar structure:

sku tier_price_website tier_price_customer_group tier_price_qty tier_price tier_price_value_type
1001-102 All Websites [USD] ALL GROUPS 1 10 Fixed
1001-102 All Websites [USD] ALL GROUPS 3 9 Discount
1001-102 All Websites [USD] ALL GROUPS 6 8 Discount

We have also composed a dedicated guide on importing tier prices to Magento 2. Follow this link for more information: How to import Magento 2 Advanced Pricing

Now, you can easily import Magento 2 tier prices to your website. This procedure allows for saving hours necessary for manual configuration in the backend. Alternatively, you can export a CSV, edit the file, and reimport it back. This also helps to save the time necessary for applying changes to tier prices in Magento 2.

Let’s continue our trip to the world of the Magento 2 product import. The next stop is MSI.

Advanced Magento 2 Import: Leveraging the MSI Warehouse Reference

Since the default Magento 2 import of products doesn’t let you transfer MSI data, you need a third-party solution to do that. Starting from 3.5.2, Improved Import & Export lets you import products to Magento 2 and assign them to multiple warehouses if you use the Magento 2 MSI extension. The extension allows you to specify the following parameters:

  • A warehouse to assign the product to;
  • The product quantity assigned to a particular warehouse;
  • If the product can be purchased from the specific warehouse.

To import products to Magento 2 with the warehouse reference, you need to add three custom attributes to your product import file:

Attribute name Reference Values Value examples
msi_{warehouse_name} Allows you to assign an imported product to a particular warehouse.

{warehouse_name} should be replaced by the name of the warehouse you want to assign the product.

Possible attribute values are:

1 – The product is assigned to the warehouse

0 – The product is not assigned to the warehouse

1
msi_{warehouse_name}_qty Allows you to specify a product quantity available at the particular warehouse.

{warehouse_name} should be replaced by the name of the warehouse you want to assign the product.

Only numeric values are allowed 123
msi_{warehouse_name}_status Allows you to specify if the product can be purchased from the specified warehouse.

{warehouse_name} should be replaced by the name of the warehouse you want to assign the product.

Possible attribute values are:

1 – The product can be purchased from the warehouse

0 – The product cannot be purchased from the warehouse

1

You can use multiple msi_{warehouse_name}, msi_{warehouse_name}_qty, msi_{warehouse_name}_status attributes to assign the product to multiple warehouses. Proceed to our Magento 2 product import csv sample Master Table to see how these attributes can be used during the product import.

a screenshot of a CSV for Magento 2 import of products with MSI Warehouse Reference

Next, import products to Magento 2 as you would regularly do with the Improved Import & Export extension: go to System -> Improved Import/Export -> Import Jobs, create a new job, configure automation, select the entity to import – Products, and specify other parameters of your Product import.

Magento 2 import of products with MSI data with Improved Import & Export

Follow our Magento 2 multi-source inventory import guide for more information.

Magento 2 Import of Configurable Products: A Detailed Walkthrough

Unfortunately, Magento 2 configurable product import is quite a complicated procedure. You can, however, improve it with the help of third-party extensions, but below we describe how to use the native functionality of Magento 2 to import configurable products to Magento 2. The procedure is divided into several steps, so let’s start with prerequisites.

  • Go to Stores -> Attributes -> Products. Here, you should create and define your product attributes.
    screenshot of product attributes - a section you should visit before importing configurable products to Magento 2
  • Next, it is necessary to create attribute sets for the product attributes you want to import. Perhaps these sets already exist, but you should check them under Stores -> Attributes -> Attribute Set in any case. If sets are not available, create them to enable your Magento 2 import of configurable products.
    screenshot of product attribute sets - a section you should visit before importing configurable products to Magento 2
  • Don’t forget to set up categories properly. This means that categories for configurable products should be created before the import. You can manage them under Products -> Categories.
  • Note that neither simple nor configurable products should exist in your Magento 2 catalog before you import them.

These are mandatory rules, and we can’t find a way around them (until you start using third-party modules).

Now, let’s say a few words about file requirements for the configurable product import to Magento 2. It is not a secret that Magento 2 import/export is based on CSV, but if your update doesn’t adhere to the standard requirements, you won’t be able to perform a Magento 2 configurable product import correctly. So, here are the main things for you to consider:

  1. Use a comma as the field and multiple value separator. This parameter can be changed during the import, but it often leads to failures, so we recommend coping with this requirement.
  2. In a CSV file, list simple products before the configurable product. Otherwise, you will never import your desired items to your website.
  3. Pay closer attention to the “attribute_set_code” field. It is very important for the entire Magento 2 import of configurable products. The field should match the Attribute Set that contains the attributes for each product. Also, you may need to include an additional column “update_attribute_set” with the value “1” to update the attribute set of the product.
  4. Another important field is “configurable_variations”. It should be filled in with a pipe-separated set of sku/option combinations for each configurable product. It should be populated for the configurable product only.
  5. The “configurable_variation_labels” field should also be filled in for configurable products only. And don’t forget that its role is to correlate the Attribute code to the Label Name.
  6. As for the “additional_attributes” field, it lists options for each simple product. Separate multiple attributes with commas. Keep it empty for configurable products.

Now, we’d like to draw your attention to the example of a CSV file. For instance, we’d like to import a shirt that comes in three colors: black, white, and red. Thus, the Product Attribute “color” defines these three colors and exists in the “Default” Attribute Set. As a result, you should import 4 products: 3 simple products – black, white, and red shirts, and the main configurable shirt product. As for the key fields of a CSV file, they are:

  • additional_attributes: for the Black shirt: color=Black; for the White shirt: color=White; and for the Red shirt: color=Red;
  • configurable_variations: For the configurable shirt product: “sku=shirt-black,color=Black|sku=shirt-white,color=White|sku=shirt-red,color=Red”;
  • configurable_variation_labels: for the configurable shirt product – color=Color.

Things get a little bit more complicated when you add more attributes:

SCV for importing configurable products to Magento 2

When your Magento 2 configurable product import CSV is ready, run the standard product import described above. For further information, follow our guide on importing Magento 2 configurable products here: The Complete Guide to Magento 2 Configurable Products.

Magento 2 Custom Options Import: Best Practices

As a Magento administrator, you can configure Magento 2 custom options manually, but there is one serious problem: the process is time-consuming. Therefore, it is a good idea to apply changes to custom options in bulk via the Magento 2 custom options import.

The default Magento 2 import tool allows you to upload custom options together with products, so you should assign all customizable fields to one product and nest them in one file column in the following format:

  • For Text, File, or Date Type

  • For Select Type

Where:

  • Magento 2 custom option name – specify the custom option name as it should display for customers at the storefront (for example, Print, Color, Shipped Till)
  • Type – input type for the custom option to be created (dropdown, image, date, multiple select, text field, etc)
  • Required – mark this field as required using 1 value and respectively put 0 if the customer is not obliged to adjust this option before adding the product to the cart
  • Price – if the customization, represented by the Magento 2 custom option, should draw additional cost, specify its value
  • Price_type – decide on the price type, to be exact, how the custom option price will be calculated – by percentage from simple product price or as a fixed value
  • SKU – provide a unique identifier for each custom option
  • Option_title – if you import a custom option of select type, you are supposed to configure its value

Below, you can see an example of a CSV with product custom options ready for Magento 2 import:

CSV for magento 2 import of products with custom options

So, you need to prepare your data table and then import it via the default Magento 2 product import. Follow our guide to Magento 2 custom options for more information.

Importing Related Products in Magento 2: The Essentials

Now, let’s focus on how to import related products to Magento 2 along with up-sells and cross-sells using a CSV file. You need to use the standard product data table enhanced by additional attributes:

CSV for importing related products to Magento 2

The related items can be imported along with the Magento 2 products with the help of the corresponding columns:

  • related_skus – for Magento 2 import of related products;
  • crosssell_skus – for Magento 2 import of cross-sells.
  • upsell_skus – for Magento 2 import of up-sells.

They all have the same formatting: specify SKUs separated by commas to assign the corresponding products as related products, cross-sells, or upsells.

When your CSV is ready, use the default Magento 2 product import to transfer the update. Read our guide to related products, up-sells, and cross-sells to find out more nuances about the Magento 2 import of related products.

How to Import or Update Product Stock and Attributes in Magento 2

To import product stock data in Magento 2, you only need a CSV file with three columns: sku, product_type, and qty. The “qty” column represents the full stock value, so you can’t increase/decrease the stock value by importing a CSV file manually. You can only specify the new amount. Let’s look at the example:

sku qty product_type
667 100 simple

A CSV file with such parameters will apply a quantity of 100 items to the product with SKU 667. Besides, it will set “Stock Availability” to “In Stock” if previously the qty parameter was 0 and “Stock Availability” was “Out of Stock”.

The “Product Type” (product_type) column is required by Magento 2 and should contain a Magento 2 Import for Grouped Products Explained product type in lowercase – simple, configurable, downloadable, etc.

Next, you only need to import this product CSV to Magento 2 following the standard procedure described above.

That’s how you import products and stock to Magento 2. Note that you can replace the qty column with any product attribute code to update this attribute!

Magento 2 Import: Grouped Products

Magento 2 grouped products inherit all the same product attributes of a simple product plus one additional attribute – associated_skus. The corresponding column in the import file contains SKUs of all associated simple (child) products. Additionally, you can also specify the default quantity of each simple product that should be applied in the grouped product settings. To add SKUs only, use this pattern: sku1,sku2,sku3,…skun.

If you need to import grouped products to Magento 2 with the quantity information per child product, add “=” after the SKU and put a default quantity number after it: sku1=qty1,sku2=qty2,sku3=qty3,…skun=qtyn.

Separate multiple SKUs by commas.

CSV for importing grouped products to Magento 2

Next, follow the standard Magento 2 product import procedure. If you use Improved Import & Export, it is possible to remove the existing product associations when you import grouped products to Magento 2. It lets you reassign simple products to the grouped product so that only child products from the imported table are assigned to the parent product. For more information, follow our guide to Magento 2 grouped products.

How to Import Bundle Products into Magento 2

There are six main attributes of the bundle product that are used in the import table:

  • bundle_values – the main attribute responsible for tying simple products to the bundle. It mirrors all the settings available within the Bundle Items configuration section of the bundle product: Option title, Input Type, Required, if a simple product is pre-selected (is default), SKU of a simple product, price of a simple product, price type of a simple product, default quantity and if qty of a product is user-defined. All these values go into the bundle_values attribute for EVERY simple product. Use a comma to separate attribute values and a pipe to end the line. Add another simple product using the same pattern after the pipe;
  • bundle_price_type – it defines whether Dynamic Price is enabled or disabled;
  • bundle_price_view – it defines how the price of the product is displayed.
  • bundle_sku_type – it defines how the SKUs of the simple product will be composed;
  • bundle_weight_type – it defines how the weight of a bundle product is calculated;
  • bundle_shipment_type – it defines how the items of a bundle product are shipped.

CSV for importing Bundle Products into Magento 2

Next, you can use the default Magento 2 import of products to transfer your bundles to your website. Read our guide to Magento 2 bundle products to learn more information about bundle product attributes and the corresponding import procedure.

Final Words: Extend and Automate Magento 2 Product Import & Export in 2026

By this point, the logic behind Magento 2 product import and export should be much clearer. The basic workflow remains consistent, but the actual CSV structure changes depending on what you are transferring. A simple product import requires a different set of fields from configurable, grouped, downloadable, or related product scenarios, while images, pricing, inventory, categories, and product relationships introduce their own rules.

For many routine catalog updates, the native Magento 2 tools are enough. Once you understand the required attributes, accepted values, and product-specific structures covered throughout this guide, you can handle standard Magento 2 product import and Magento 2 product export operations with CSV files directly from the Admin.

The challenge appears when product data no longer arrives in a clean Magento-ready CSV or when the same process has to run repeatedly. Supplier feeds may use different column names, ERP systems may expose data through APIs, product information may be maintained in Google Sheets, and large catalogs often require scheduled updates rather than manual uploads. This is where Improved Import & Export for Magento 2 and Adobe Commerce extends the native workflow.

Improved Import & Export for Magento 2: Go Beyond Native Product Transfers

Improved Import & Export is designed to make complex product imports to Magento 2 easier to configure, automate, and reuse. Instead of manually rebuilding source files to match Magento requirements every time, you can create import and export profiles that define how external data should be interpreted and processed.

The extension expands Magento product import and export with capabilities such as:

  • importing data from Google Sheets, FTP/SFTP, Dropbox, direct URLs, and other external sources;
  • working with CSV, XML, XLS/XLSX, ODS, and JSON instead of relying only on the native CSV workflow;
  • using XSLT transformation templates to convert third-party file structures into Magento-compatible data;
  • applying mapping presets or manually mapping source columns and values to Magento attributes;
  • adjusting imported prices by a fixed amount or percentage;
  • importing tier prices together with product data;
  • creating new attributes, attribute values, attribute sets, and attribute groups during import;
  • handling configurable, downloadable, and other supported product structures;
  • importing categories and additional Magento entities alongside catalog data;
  • clearing or replacing selected product associations, categories, images, related products, cross-sells, upsells, and attribute values;
  • processing product images, including additional image-related operations after import;
  • connecting Magento with external systems through REST and SOAP APIs;
  • scheduling recurring Magento 2 product imports and exports with cron;
  • launching configured jobs manually from the Admin or CLI;
  • triggering export jobs when catalog changes occur.

The mapping functionality is particularly useful when importing data that was not created for Magento 2. A predefined mapping preset can automatically adapt supported source structures, while manual mapping gives you direct control over how third-party fields correspond to Magento attributes. Instead of editing the original file before every transfer, you configure the transformation as part of the import job.

The same principle applies to automation. Once a profile is configured, recurring catalog feeds can run according to a schedule, while specific workflows can also be launched manually from the Magento Admin or command line. This is especially useful when product prices, quantities, attributes, or supplier feeds need to be refreshed regularly.

From Product Import to a Complete Magento Data Workflow

Although this guide concentrates on Magento 2 product import and export, catalog data rarely exists in isolation. Products interact with categories, stock, pricing, customers, orders, CMS content, B2B entities, and external business systems. Improved Import & Export is therefore designed for broader data-transfer scenarios as well, including integrations with ERP, CRM, PIM, accounting, marketplace, and other platforms.

Firebear can also assist when the standard extension configuration is not enough. This may include installation and configuration, Google Sheets or XML setup, complex import workflows, field mapping, XSLT transformation templates, and consultation on specific Magento import/export scenarios.

If you are planning a migration, building an automated product feed, synchronizing Magento with an external system, or dealing with a source format that does not fit the native importer, the goal is not simply to make one file import successfully. It is to create a workflow that can keep working as the catalog grows and the data source changes.

Explore Improved Import & Export for Magento 2 and Adobe Commerce →

Read the Improved Import & Export Extension Manual →

Contact Firebear About Your Magento Import, Export, Migration, or Integration Project →

Continue With the Complete Magento 2 Import & Export Guide

As we’ve just mentioned, product data is only one part of Magento data management. If you also need to work with customers, orders, categories, Adobe Commerce B2B entities, APIs, alternative file formats, cloud storage, ERP or CRM integrations, and advanced troubleshooting, continue with our broader Magento 2 import and export guide:

Magento 2 Product Import & Export FAQ

Below, you will find a summary of frequently asked questions about Magento 2 product import and export. We’ve divided the questions and answers into two sections covering import and export processes.

Magento 2 Product Import FAQ

How to import products in Magento 2?

You can import products in Magento 2 using the platform’s native import functionality or a third-party extension. Prepare your import file according to the requirements of the selected import tool and start the transfer. For more complex Magento 2 product import scenarios, such as automation, mapping, additional file formats, or external data sources, you can use Improved Import & Export. Contact our specialists to discuss your Magento 2 import requirements.

How to import products into Magento 2 from CSV?

Magento 2 supports native product import from CSV files. Your CSV must follow Magento’s required structure, including the correct columns, attribute values, product types, and formatting rules described in this guide. Improved Import & Export extends this functionality with mapping, transformations, automation, and support for additional file formats, so you do not always need to edit the source file manually before import.

How to bulk import products with images into Magento 2?

Product images are not embedded directly into a Magento 2 CSV file. Instead, the file contains image names or paths that tell Magento where the images are located. For a standard local import, upload the images to /pub/media/import and reference them correctly in your product CSV. You can also download our Magento 2 import sample files to see how product images are structured.

How can I import products from an external website to Magento 2?

One approach is to export product data from the external platform, transform it into a Magento-compatible CSV file, and then import it through Magento Admin. Improved Import & Export can simplify this workflow with mapping, transformations, scheduled jobs, and API-based integrations with compatible external systems.

How to automatically import products from marketplaces into Magento 2?

Magento 2 does not provide a universal native workflow for automatically importing products from external marketplaces. Improved Import & Export can be used to create repeatable data-transfer workflows with scheduling, attribute mapping, value mapping, file transformations, and API connections where supported. This lets you configure the mapping once and reuse it for recurring product imports.

How to import related products to Magento 2?

Magento 2 lets you import product relationships such as related products, cross-sells, and upsells using the corresponding SKU columns:

  • related_skus — related product SKUs separated by commas, for example: 24-WG085_Group,24-WG086,24-WG083-blue,24-UG01.
  • crosssell_skus — cross-sell product SKUs separated by commas.
  • upsell_skus — upsell product SKUs separated by commas.

Add the required SKU values to the appropriate columns in your Magento 2 product import file and run the import according to the procedure described in this guide.

How to update existing products during Magento 2 import?

Choose Add/Update as the import behavior in Magento 2. If a product with the same SKU already exists, Magento updates it with the data provided in the import file. If the SKU does not exist, Magento creates a new product.

How to work with Magento 2 product IDs during import?

Magento product imports normally rely on SKU as the primary product identifier rather than the database entity ID. If you need to retrieve or work with a product by its ID, see our guide: How to Get a Product by ID in Magento 2.

How to import configurable products in Magento 2?

Magento 2 configurable product import requires correct parent-child relationships, configurable attributes, variation data, and properly structured simple products. We explain the complete native workflow in our Magento 2 Configurable Product Import guide.

How to import products from Magento 1 to Magento 2?

You can export product data from Magento 1, transform it to meet Magento 2 import requirements, and then import the resulting file into the new store. Improved Import & Export can simplify the process with mapping and automated data-transfer functionality. Contact our specialists if you need help with Magento 1 to Magento 2 product migration.

Magento 2 Product Export FAQ

How to export products from Magento 2?

You can use Magento 2’s native export tool to export product data. Select Products as the entity, choose CSV as the export file format, configure any required filters, and run the export.

How to export specific products from Magento 2?

Use the Entity Attributes table in Magento’s export interface and specify the required value in the Filter column, such as a particular SKU. Improved Import & Export provides additional filtering options for more complex or automated Magento 2 product export workflows.

How to export product categories in Magento 2?

Magento 2 does not provide a standard standalone category export workflow comparable to product export. Improved Import & Export adds dedicated category import and export functionality. Read our Magento 2 Category Import and Export Guide for details.

How to export Magento 2 product IDs?

Magento 2’s standard product export does not provide a dedicated option for exporting the internal product entity_id as a normal catalog attribute. If you specifically need database IDs, you may need an API-based workflow or an extended export solution.

How to export product images in Magento 2?

Magento 2 product export includes image-related paths and file names in the exported product data, but it does not package and transfer the physical image files together with the CSV. Improved Import & Export provides additional image-processing and file-transfer options for workflows involving local storage, FTP/SFTP, and supported external destinations.

How to export Magento 2 product data and import it into a new website?

You can use Magento 2’s native export functionality to create a CSV file containing product data and then adapt that file to the import requirements of the destination platform. If the two systems use different structures, mapping and data transformation may be required. Improved Import & Export can also be used for automated or API-based data-transfer scenarios.

How to export configurable products from Magento 2?

Magento 2 can export configurable products and their related product data, but complex catalog structures may require additional processing when the exported information is intended for migration or another platform. Improved Import & Export provides additional mapping, filtering, formatting, and automation options for configurable product export. Contact our specialists if you need help with a specific configurable product export workflow.

How to solve a Magento 2 product export timeout issue?

Start by checking your server limits and Magento environment, including PHP execution time, memory limits, dataset size, and server resources. If the native export continues to time out, consider splitting the data into smaller exports or using an extended export solution, such as Improved Import & Export, for large or automated product export jobs.