How to Import and Export Products in Magento

May 15, 2023
By Cozmot

Things to Know Prior to Magento Import & Export

Before we start there are a few things you have to know prior to moving products. 

Magento import and export works with the CSV file types. So you have to know how to work with CSV files before you export or import products. 

The best way to do this?

Google Sheets for sure. The main benefit is it is completely free and you most likely already have a Google account to use it. Besides, Google Sheets don’t break the CSV formatting and you can download the file without any changes to the separator or delimiter values.

If you considered Microsoft Excel or Open Office, we don’t recommend it since you’ll have a hard time editing delimiters and separators as these tools break the formatting.

CSV File Structure

Once you export products from Magento 2 you will have a sample of the CSV file with the columns you can update or edit. However, if you’re just preparing a CSV file for import you have to know the structure of the product CSV file.

ColumnExampleDescription
skusku_123An alphanumeric identifier is used to track inventory. Can be up to 64 characters long with letters and numbers separated by underscores or dashes. (SKUs with more than 64 characters will cause the import to fail)
store_view_codeEnglishSpecifies the store views where the product is available. If you leave it blank the product will be available on the default store view.
attribute_set_codeDefaultAssigns a product to a specific attribute set (you should have attribute sets created before importing products) based on the product type. If the product is created, you can’t change the attribute set.
product_typesimpleDefines the type of product: simple, grouped, configurable, virtual, bundle.
categoriesDefault Category/Gear,Default Category/Gear/Fitness EquipmentDefines a category assigned to a product. Separate category paths with the pipe (|) symbol.
product_websitesbase,website2Indicates a website code where the product is available. To set multiple websites, separate each with a comma without a space.
nameSprite Yoga Strap 6 footThe name of the product.
description<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines. The strap’s 100% organic cotton fabric is woven tightly to form a soft, textured yet non-slip surface. The plastic clasp buckle is easily adjustable, lightweight and durable under strain.</p><ul><li>100% soft and durable cotton.<li>Plastic cinch buckle is easy to use.<li>Three natural colors made from phthalate and heavy metal-free dyes.</ul>Defines the product name that is used in the listing. Can include valid HTML tags.
short_description<p>The Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines.</p>Identifies product description. Includes valid HTML tags.
weight1The weight of the product is in the 1.00000 formats.
product_online1Determines whether a product is enabled or not.
tax_class_nameTaxable GoodsDefines the name of the tax class associated with this product.
visibilityCatalog, SearchDefines whether a product is not visible individually, in the catalog, in search, or bot catalog and search.
price14The price of the product.
special_price10A discounted price of the products during a specified period.
special_price_from_date2022-07-19 03:34:20A date when the discount price is activated.
special_price_to_date2022-07-19 03:34:20A date when the discount price is deactivated.
url_keysprite-yoga-strap-6-footDefines the part of the URL that identifies a product.
meta_titleThe Best Sprite Yoga Strap 6 footA meta title of the product that appears in the search results list.
meta_keywordssprite yoga, best sprite yoga strap, yoga strapMeta keywords are separated by a comma with space.
meta_descriptionThe Sprite Yoga Strap is your untiring partner in demanding stretches, holds and alignment routines.Product meta description.
base_imagehttps://cozmot.com/blog/wp-content/uploads/2022/07/sprite-toga-strap.pngDefines a relative path for the main product image. (images should be uploaded to pub/media/import). You can also use the direct URL of the image.
base_image_labelBase image “Alt Text”A label of the base product image.
small_imagehttps://magefan.com/media/logos/default/logo.pngA name of the small image file that is used on catalog pages preceded by forward slash.
small_image_labelSmall image “Alt Text”A label associated with the small image.
thumbnail_imagehttps://cozmot.com/media/logos/default/logo.pngA file name of the thumbnail image that will appear on the product page gallery preceded by forward slash.
thumbnail_image_labelThumbnail image “Alt Text”A label associated with the thumbnail image.
created_at2022-07-19 03:34:20Defines the date when the product was created. Use the following format: yyyy-mm-dd hh-mm-ss.
updated_at2022-07-19 03:34:20Defines the date when the product was last updated. Use the following format: yyyy-mm-dd hh-mm-ss.
new_from_date2022-07-20 03:34:20Specifies a date when the product starts to be featured as a new product. Use the following format: yyyy-mm-dd hh-mm-ss.
new_to_date2022-07-20 03:34:20Specifies a date when the product stops being featured as a new product. Use the following format: yyyy-mm-dd hh-mm-ss.
display_product_options_inBlock after Info ColumnDetermines where product options should appear on a product page if a product has multiple options.
map_price10A minimum advertised price of the product.
msrp_price10A manufacturer’s suggested product price. 
map_enabled0Determines if the Minimum Advertised Price is enabled.
gift_message_available Determines if a gift message will be displayed for a product during purchase.  
custom_design List themes that can be applied to a product page.
custom_design_from2022-07-30 12:12Specifies a date when the selected theme is applied to the product.
custom_design_to2022-07-30 12:12Specifies an end date when the selected theme is applied to the product.
custom_layout_update Specifies additional XML code that is applied to product page layout.
page_layout Defines the layout of the product page: No layout updates, 1 column, 2 columns with left bar, 2 columns with right bar, 3 columns, empty.
product_options_containerBlock after Info ColumnDetermines where product options will be displayed on the product page.
msrp_display_actual_price_typeUse configDetermines where to display the actual price of the product for a customer; in the cart, before order confirmation, on gesture.
country_of_manufactureSwedenIdentifies the country where the products was manufactured.
additional_attributeshas_options=1,quantity_and_stock_status=In Stock,required_options=0Defines additional attributes created for a product. (custom product options)
qty100Quantity of products that are currently in stock.
out_of_stock_qty0The stock level to determine when the product is marked as out of stock.
use_config_min_qty1Determines whether to use the default value from the config.
is_qty_decimal0Determines if the qty attribute has a decimal value. Set 1 is the qty can be decimal.
allow_backorders0Defines whether your store allows backorders. Set 1 if you allow backorders.
use_config_backorders1Determines whether to use the default backorders config.
min_cart_qty1Defines the minimum qty of the product that can be purchased per order.
use_config_min_sale_qty0Determines whether to use the default value from the config.
max_cart_qty0Defines the maximum qty of the product that can be purchased per order.
use_config_max_sale_qty1Determines whether to use the default value from the config.
is_in_stock1Defines if the product is in stock.
notify_on_stock_below1Specifies the number of products that trigger the out-of-stock notification.
use_config_notify_stock_qty1Determines whether to use the default value from the config.
manage_stock0Defines if inventory control is used to manage a product. Set 1 to control the stock quantity.
use_config_manage_stock1Determines whether to use the default value from the config.
use_config_qty_increments1Defines whether to use product quantity increments from the store config.
qty_increments0Determines if the product is sold in quantity increments.
use_config_enable_qty_inc1Determines the default config setting to enable quantity increments.
enable_qty_increments0Defines if the quantity increments are enabled for a product.
is_decimal_divided0Defines if some part of a product can be shipped separately.
website_id1Defines a specific website where the product is available. When black the product will be available on all websites.
related_skus24-WG087,24-WG086List of the related products SKUs comma-separated.
related_position1, 2, 3, 4Determines the position of the SKUs listed as Related Products.
crosssell_skus24-WG087,24-WG086List of the cross-sell SKUs comma-separated.
crosssell_position1, 2, 3, 4Determines the position of the SKUs listed as Cross-sells.
upsell_skus24-WG087,24-WG086List of the up-sell SKUs comma-separated.
upsell_position1, 2, 3, 4Determines the position of the SKUs listed as Upsells.
additional_imageshttps://cozmot.com/media/logos/default/logo.pngThe file names of all additional images associated with a product.
additional_image_labelsAdditional image “Alt Text”Labels of the additional images associated with a product.
custom_optionsname=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Gold|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=,option_title=Silver|name=Custom Yoga Option,type=drop_down,required=0,price=10.0000,price_type=fixed,sku=yoga3sku,option_title=Platinum Defines the values and properties assigned to each custom option.


Now that you know what columns will the sample CSV file contain and what each of them means, you can move to the Magento import and export.

How to Export Products in Magento 2?

To export products in Magento 2: 

1. Navigate to System > Data Transfer > Export.

2. Choose Product as the Entity Type and CSV — as Export File Format

Export products in Magento 2

3. Filter through product attributes to export only those you really need and click Continue.

Filter Product Attributes

You’ll get a message that the import was scheduled and once the cron runs the products will be exported. So make sure your crons are configured correctly.

Magento Export Products

How to Import Products in Magento 2?

Magento product import is a little harder than export since you need to import product images separately. But we’ve got you covered.

Just follow these steps to import products to Magento 2:

1. Navigate to System > Data Transfer > Import and choose Product as the Entity Type. 

Import Product in Magento 2

Note: you can download the sample file right on this step to make sure your CSV file follows the sample. Also, make sure the size of the import file doesn’t exceed the limit of 2M and upload images to pub/media/import if you want to specify image paths in the CSV file.

2. Configure Import Behaviour

  • Select what Import Behaviour you prefer in a corresponding section: Add/Update, Replace, Delete.
  • Define the Validation Strategy to determine what happens if any errors occur during import.
  • Set the Allowed Errors Count to define how many errors can occur before the import is canceled.
  • Accept the default value on a comma in Field separator and Field separator fields.
  • Check the Fields Enclosure if you want to enclose any special characters found in the data.
Magento Import Behaviour

3. Identify the Import File

Here you have to upload your CSV file and enter the relative path to the server where uploaded images are stored in the Images File Directory field.

File to Import

Once you fill out all of the required field, click Check Data in the upper-right corner and wait for the process to complete. 

Magento Import Validation

If your CSV file is valid, press Import and import products to Magento 2. You can track the import via System > Data Transfer > Import History.

Magento Import History

Magento import & export feature is more than enough to perform some basic editing or updating tasks when you operate your products between Magento instances.

Subscribe To Our Newsletter

Join our mailing list to receive the latest news and updates from our team.

You have Successfully Subscribed!