Magmi Importer – The Ultimate Guide to Fastest Magento Import + sample files included

I recommend the Magmi import system to those who have a large number of products and don’t want to spend their precious time with uploading their products one by one in the admin panel. With Magmi, after creating and filling in the import file, this task can be done very fast and easily.



What is Magmi?

A short definition:

 

Magmi stands for “Magento Mass Importer”, which is an open source code system with which you can import data to Magento based online stores.
Later I am going to describe in detail how you can import with it.
The development of this system was largely carried out by Sebastien Bracquemont (dweeves), and later some other developers took part in the project as well.

 

Installing Magmi

 

First, download Magmi from Github. Then copy it to your Magento root directory.
If you use an older version of Magmi ( < 0.7.22), it is recommended to rename the Magmi directory and protect the magmi/ root directory with htaccess.
If you don’t make these settings, anyone can have access to your Magmi interface.
In this article I’m going to introduce Magmi 0.7.22 to you.

 

Basic Magmi configuration

 

In this section I write about all the settings options in Magmi, strating from the profile settings to plugin settings.
Since it is developed in 0.7.22 to have a first-time log in, so at the first installation you can log in with the “magmi” user name and “magmi” password.
Later you will be able to log in with one of the Magento users.
Let’s start with configuring the database:

 

Magmi setup Start

 

Configure global parameters

Database

  • Connectivity: what kind of database connection is to be used
    • Using host/port: here you can set the host and port number.
    • Using local socket: here you need to enter the socket access path.
    • Using magento.xml: here you can select magento local.xml if you want to use it (it is recommended, but for some reason it does not work)

I suggest you choose the first, Using host/port setting.
In this case, you need to make the following settings:

  • Host: host address (it can be localhost),
  • Port: in this case 3306
  • DB name: name of database
  • Username: user name of database
  • Password: password of database
  • Table prefix: (if there isn’t any, leave it empty)

 

Magento

  • Version: version of your Magento online store (if you don’t know exactly, log in to the admin panel, in the bottom-middle part you can see the version number, e.g. Magento ver. 1.9.0.1)
  • Filesystem Path to Magento directory: here you need to enter the path of the Magento directory within the file system.

Global

  • Reporting step in %: when importing, at what percentage you want to have a report
  • Multiselect value separator

Dir & File permissions

  • Directory permissions
  • File permissions

Backward compatibility

  • Disable attribute set update

After configuring everything in this section, it is IMPORTANT to click the Save global parameters button to make sure you save all your settings.

Configure Current Profile (Default)

 

Magmi Settings Profile

 

Why is it good to have more profiles?

Because it may be that with different imports you will need different settings and thus you will not need to make new settings all the time, you can save your profiles for later use.

 

Profile to configure

  • Current Magmi profile: name of profile
  • Copy Selected profile to: here you need to enter the name of the new (if you want to create a new one (a copy) from the selected profile), then click Copy Profile & Switch to create it.

Datasources

  • Here you can select the source of data (I recommend CSV Datasource and will use it throughout the article)
  • CSV import mode:
    • local: local, so that you can select it from the CSVs stored on the server.
    • remote: CSV will be downloaded from an external server
  • CSVs base directory (with local mode): Here you need to insert the path of the directory where the CSV files are located (the following entry type is required, e.g. var/import)
  • File to import (with local mode): here you select which file you want to import
  • Remote CSV url (with remote mode)
  • Force Download (with remote mode): if you switch it on, the CSV is loaded again by all means; if not switched on, it will work with the existing file.
  • HTTP Cookie (with remote mode): you can set cookies if necessary
  • Authentication needed (with remote mode): you can set this if you want to have authentication for file download from a remote server, here you set the user name and password.

CSV options

  • CSV separator
  • CSV Enclosure: closing character, default value is double quotation mark (“)
  • Headerless CSV: switch it on if there is no header in the CSV (where you enter the field names); columns are given names of col1,…..,colN automatically. In this case it is MANDATORY to use the Column mapper extension. (This setting is not recommended.)
  • Allow truncated lines (bypasses data line structure correlation with headers): I don’t recommend to switch it on since, if the number of columns in the header does not equal the number of columns in the product rows, it still should run import for that row
  • Malformed CSV: it is used if the CSV header is not in the first row, so in this case you need to enter in the CSV Header at line in which row it is located.

Configuring Magmi plugins

You can find this section in Configure Current Profile, at general and itemprocessors.
I’ll mention some important details with every plugin, you can find thorough descriptions in the documentation of the plugins.

 

Magmi Settings General

 

Here you can find the Magmi plugins. There is an “info” button at each of them, which gives you a brief description of the given plugin, the “documention” link (not necessarily included with all plugins) will take you to the detailed information of the plugin on the Magmi wiki website.
If you activate one of the plugins, a Configure button appears, by clicking it, you can manage the plugin settings.

Remote Agent Plugin v0.0.1

  • Developed by: Dweeves
  • Description: this plugin makes Magmi operation in a remote system possible (Magmi is installed in a remote system)
  • Settings:
    • HTTP URL for Magento base dir: Magento directory URL of remote system

Attribute Cleanup v0.0.1

  • Developed by: 5byfive GmbH
  • Description: this plugin removes the attributes that are not used with the products
  • Settings: No

Attribute Set Importer v0.0.2

  • Developed by: 5byfive GmbH
  • Description: ezzel a pluginnal jellemző halmazokat és jellemzőket tudunk importálni.
  • Settings:

Enable attribute import

  • CSV import mode: detailed earlier (further configuration is the same as with CSV options)
  • Set default values for non-existing columns in CSV (JSON): here you should enter the values that are the same with every attribute, to be given in JSON format, e.g. {“is_user_defined”:1,”is_visible”:1,”default_value”:”Test”}
  • Prune attributes which are not in CSV from database: if switched on, it first runs the attribute set and then it deletes all attributes that are not included in the CSV. It is useful when you import all the attributes and would like to remove the unnecessary ones.
  • Don’t touch non-user attributes when pruning (if prune attributes is switched on): It is used when you want to remove only those attributes that are is_user_defined = 1, which means that it will delete non-system attributes only (we usually set it for attributes that are created during custom developments)
  • additionally, keep following attributes when pruning, even if not given in CSV (comma-separated): In this field you enter (separated with commas) the codes of those attributes that should NOT be deleted (recommended when the attribute is not included in the CSV, but do not want the system to delete it)
  • Delete attributes marked “magmi:delete” = 1: if switched on and magmi:delete column is present in the CSV and the value 1 is set, then that particular attribute will be deleted
  • Create attributes from CSV which are not in database: if switched on, then the attributes will be created that are not yet present in the database; if not switched on, the attributes in the CSV are taken into account
  • Update attributes from CSV which are already in database: switch it on if you want it to update the attributes in the CSV (included in the database)

Enable attribute set import: the settings here are the same as with “Enable attribute import”

Enable attribute association import: This helps associate which attribute should belong to which attribute set.

  • CSV import mode: detailed earlier (further CSV configuration is the same as at CSV options)
  • Add these attribute associations to given CSV data: here you can insert additional attribute associations, need to be separated with commas in this way:(attribute_set_name,attribute_code,attribute_group_name)

Configuration for this is the same as mentioned earlier.

 

Import Report Mail Notifier v1.0.0

  • Developed by: Dweeves
  • Description: used for sending a report about the import
  • Settings:
    • Email report to: To whom the report is to be sent, if you want to give more email addresses, separate these with commas
    • Report sender
    • Report sender alias
    • Subject
    • Body: content

     Attachments:

  • Attach import log
  • Attach source CSV
  • Zip attachments

Magmi Import URL UI v1.0.3

  • Developed by: Dweeves
  • Description: this does not influence import, it only displays the URL at which the import can be called; usually used in cronjobs.
  • Settings: No

Magmi Optimizer v1.0.5

  • Developed by: Dweeves
  • Description: this plugin adds indexes to certain tables where it detects there is a need for them
  • Settings: No

Magmi Magento Reindexer v1.0.3a

  • Developed by: Dweeves
  • Description: this plugin calls the Magento reindex from shell, i.e. it performs reindexing
  • Settings:
    • PHP CLI command
    • Indexing: Select which index types are to be reindexed

On the fly category creator/importer v0.2.5

  • Developed by: Dweeves
  • Description: categories can be created during indexing.
  • Settings:
    • Assign product to: to which category the product is to be associated.
      • all categories in tree: (e.g. Base category/Sub-category/ – in this case it will be included in both categories)
      • last category of each branch: here it will place the product in the category at the last level.
    • Tree level separator: sub-category separator (e.g. / in this case Category 1/Category 2)
    • base category tree: base or main category, it is recommended to use it when every category belongs to the same main category.
    • url ending: generally, .html ending is recommended

 

Downloadable products importer v1.0.0.1

  • Developed by: Tangkoko SARL
  • Description: ez a plugin importálja a letölthető termékeket
  • Settings:
    Will be detailed at section “Downloadable product import”

 

Group Price Importer v0.0.4 info

  • Developed by: Tim Bezhashvyly and Dweeves
  • Description: used for importing group prices
  • Settings:
    This column should be set:
    “group_price:groupName” where groupName is the name of the customer group.
    More details to be found at “Simple product import”.

 

Image attributes processor v1.0.33a

  • Developed by: Dweeves és Tommy Goode
  • Description: this plugin imports product images.
  • Settings:
    • Image search path: defines in which directories the images are to be searched (the directories should be uploaded on the server in advance, media/import directory is recommended), use semicolons (;) for separating if more directories are to be searched
    • Image Renaming: leave it empty if you don’t want the images to be renamed. 

      Here you can use dynamic variables.

      If you want to rename the images, I recommend the following format:

      {item.sku}_{meta.attr_code}_{meta.store}.{meta.imagename.ext}

    • Image import mode:
      • Keep existing images: in this case the images will not be overwritten or will not be loaded (from remote URL) that have the same name. 
      • Overwrite Existing Images: the images having the same name will be overwritten and re-loaded (from remote URL). 
    • Assign only existing images: (this setting is ignored by the system in this version)
    • Import into DB: set it to Enabled only if Media Storage is configured in your Magento store.
    • Debug mode
    • Remote Image root: (if there isn’t any, leave it empty)
    • Remote root Authentication
    • Pre-download check: (this setting is ignored by the system in this version)

On the fly indexer v0.2

  • Developed by: Dweeves
  • Description: this plugin writes in some index tables during the import process (url_rewrites and category_products)
  • Settings:
    • URL endings: whether to use them and if yes, what they should be.
    • Use Categories in URL

Custom Options v0.0.7a

  • Developed by: Pablo és Dweeves
  • Description: with this plugin you can import custom options to products
  • Settings: custom options should be set the following way in the CSV:
    Name:Type:Is Required:sort number
    i.e., for example Size:drop_down:1:1, and in the product row, e.g.:
    Small|Medium|Large
    Further detailed variations can be found on the description page of the plugin.

 

Product Deleter v0.0.2

  • Developed by: Dweeves
  • Description: ezzel a pluginal termékeket lehet törölni
  • Settings:
    • Delete Children products: This is important with configurable and bundle products.

                    Magmi:delete is to be inserted in the CSV as a new column and should be set to 1 at products to be deleted.

 

Product Tags Importer v0.0.3

  • Developed by: Dweeves, Pawel Kazakow
  • Description: used for product tags import
  • Settings:
    Tags to be inserted in the CSV tags column, separated with commas

 

Tier price importer v0.0.9a

  • Developed by: Dweeves, bepixeld
  • Description: used for importing tier prices (volume discount prices)
  • Settings:
    To be detailed at “Simple product import”.

 

Weee Tax importer v0.0.5

  • Developed by: Garbocom & Dweeves
  • Description: used for importing Weee (Waste Electrical and Electronic Equipment) taxes
  • Settings:
    • Weee Tax Attribute name: code of Weee tax
    • Weee Tax Country code: (e.g. FR)

Column mapper v0.0.3b

  • Developed by: Dweeves
  • Description: this plugin is useful when the names of column are different in the import file from the Magento attributes codes.
  • Settings:
    • Mapped columns list: here Magento attributes codes are to be listed, separated with commas
    • New name for col X: type here the Magento attribute code (if you insert a new name in the Mapped columns list, then New name for col X appears automatically)

SKU Finder v0.0.3

  • Developed by: Dweeves
  • Description: to be used when not setting the SKU number column in the import file, instead associating should be based on another product attribute.
  • Settings:
    • sku find attribute code: the code of attribute to be associated.

 

Default Values setter v0.0.5

  • Developed by: Dweeves
  • Description: using this you can set the values that are the same with every attribute, so you need not set it in the import file
  • Settings:
    • Default attribute list: attribute codes are to be set here, separated with commas, as it is present in Magento, and then the values in the columns below it should be set as well

 

Magmi Import Limiter v0.0.7

  • Developed by: Dweeves
  • Description: to be used when you want to place a limit to your imports, which means that for example you want to import certain attributes or only from row 15 to row 55.
  • Settings:
    • Column filter: which attributes to be imported, e.g. sku,price,qty
    • Limiter ranges: e.g. rows 1–100
    • Limiter filters: import only the products that meet certain filtering criteria.
      e.g. sku::00.* – import only those sku numbers that start with 00
      e.g. sku:00.*;;!name::.*blue.* – import sku numbers that start with 00 and do not start with blue.

 

Generic mapper v0.0.6a

  • Developed by: Dweeves
  • Description: used for associating values with Magento values. Typical attributes are page_layout and visibility.
  • Settings:
    If you want to use it, you should create a CSV file for the given attribute with the attribute’s name in the magmi/plugins/itemprocessors/genericmapper/mappings directory, e.g. magmi/plugins/itemprocessors/genericmapper/mappings/is_recurring.csv
    In the content you should enter the value pair, e.g.:
    „Yes”: 1
    „No”: 0
    You can find more details in the documentation of the plugin.

 

Value Replacer v0.0.8a

  • Developed by: Dweeves
  • Description: using this plugin, you can replace the attribute values. You can use dynamic variables, so for example if you’d like to add a prefix to all SKUs of the products, then you need to enter this in the field the following way: prefix-{item.sku}
  • Settings:
    • Replaced attributes: those attribute codes are to be listed here for which you want to replace the value (separated with commas)
    • New value for X: her the value is to be entered

Further explanation can be found in the documentation.

 

Value Trimmer for select/multiselect v0.0.3

  • Developed by: Dweeves
  • Description: this plugin trims the empty spaces automatically from the multiple select or select attribute values
  • Settings: No

 

Grouped Item processor v1.4.1

  • Developed by: Alpine Consulting, Inc & Dweeves
  • Description: used for importing grouped products
  • Settings:
    • Perform simples/group link: whether to connect the simple products with grouped products.
    • auto match simples skus before grouped: used for setting whether to find simple products automatically belonging to grouped products; if NO, then the import file needs to contain the grouped skus column where, separated with commas, simple products belonging to it should be listed.
    • Force simples visibility: whether to set visibility of simple products, if YES, to what.

 

Bundle Item processor v1.1

  • Developed by: Björn Tantau, dweeves, igi8819 (It is me)
  • Description: To be used for importing bundle products
  • Settings:
    Every setting is to set the value for the given type when the import file does not include it. More details to be mentioned later at “Bundle product import”.

 

Configurable Item processor v1.3.7a

  • Developed by: Dweeves
  • Description: To be used for importing configurable products.
  • Settings:
    The same as with Grouped products, described earlier.

 

Cross/Upsell Importer v1.0.3

  • Developed by: Dweeves
  • Description: To be used for cross-sell and upsell product importing.
  • Settings:
    Two new columns need to be entered:
    us_skus – Upsell
    cs_skus – Cross sell

          SKUs should be listed with both, separated with commas.

 

Product relater v1.0

  • Developed by: Dweeves, jwtechniek
  • Description: To be used for importing similar or related products.
  • Settings:
    SKU numbers are to be entered in the re_skus column contained in the import file.
    More details are mentioned in the plugin’s documentation.
    Saving the settings of the plugin is done by clicking the Save Profile button below.

 

Simple product import

First, make the settings of the plugins.
Now I describe how to create an import file, using a CSV example.
Before getting started I recommend two free programs for managing CSV files:

  • Open office (calc)
  • Libre office (calc)

The CSV file is to be opened/saved using UTF-8 and the given separating parameters.

 

Magmi CSV Open

 

After opening the CSV, the following columns need to be entered as a header.
I describe each parameter and what to set with the products:

  • sku: SKU number of the product for identifying the existing product when modifications are made
  • attribute_set: name of attribute set, should be entered the same way as it is named in Magento e.g. Default
  •  type:
    • simple
    • configurable
    • downloadable
    • bundle
    • grouped
    • virtual
  • websites: this is no longer needed from version 0.7.17
  • store: here you set which store view is to be assigned (store view code is needed). Here you can set the different language versions of the store, which I will detail at “Multi lingual import”. If you have only one store view, which means you have a single language store, then this need not be included in the import file. In the image you can see that admin is set with the store, this time it is the same as you have not entered the column.
  • categories: here you need to set to which category the products are to be assigned (if the “On the fly category creator/importer v0.2.5” plugin is not switched on, then the set categories need to be present in the system before importing. Syntax of entered data: 
    • Category1
    • Main category/Sub-category
    • Category1;;Category2 – if it belongs to more than one category, two semicolons need to be used for separation
    • Category1/Sub-category1;; Category1/Sub-category2;; Category2/Sub-category3
  • name: name of product
  • description: long description of product, html tags are allowed
  • short_description: short product description, html tags are allowed
  • price: product price, always to be set with the default currency, excluding taxes, e.g. 150
  • special_price: special price of product, if not to be defined, it is 0
  • special_from_date: starting date of special price (e.g. 2016-05-20), if price is always special, leave it empty
  • special_to_date: end date of special price, if left empty, special price will be valid for good
  • news_from_date: start date for product indicated as new
  • news_to_date: end date for product indicated as new
  • qty: if inventory management is applicable, it is the number of the given products in stock, e.g. 5
  • in_in_stock: product available in stock or not, values:

1 – yes
0 – no

  • manage_stock: stock management is used for this product? (if you use stock management, you can switch it on or off with the given products), values:

1 – yes
0 – no

  • use_config_manage_stock: stock management to be used, set in the system configuration? If you want to set the previous manage_stock value, here you need to set this to 0, so as to avoid reading the value from system configuration, but from the manage_stock value given with this product.
    • status: product is enabled or not, values:

             1 – yes
             0 – no

  • visibility: visibility of product, values:

1 – not visible as a single item, usually used with configurable and grouped products. In this case the product data sheet is not available, for the rest the product data sheet is available.
2 – visible only in the catalog, i.e. on category pages, not visible with searches.
3 – only visible with searches
4 – visible everywhere

  • weight: weight of product, e.g. 0.5. If you don’t want to use it, you have to change it at the attribute (in the admin) to make it non-mandatory.
  • tax_class_id: ID or name of tax class, e.g. Taxable goods
  • thumbnail: thumbnail image of product, e.g. ball-for-football.png
  • small_image: small-sized image of product
  • image: main image of product
  • media_gallery: product gallery, image file names to be separated with semicolons: ball-for-football.png;ball-for-football2.png

 

Magmi CSV sample

 

Images will be imported only if the “Image attributes processor v1.0.33a” plugin is switched on.
Of course you need to enter the other attributes in the import file as well.
With select attributes you need to enter the text values, e.g. for color attribute enter Red.
For multi-select values, it is done just the same way as with select, but if there are more values, these should be separated with the same character that is set at the Multiselect Separator with the Magmi settings. E.g. Red|Green|Blue

 

How to import Group Price?

A “group_price:groupName” column is to be inserted in the CSV where groupName is the name of the group, same as it is named in Magento.
If you want to import prices for more groups, you need to enter it in a separate column, even if this number is the same.

 

Magmi CSV Group Price

 

If the given customer group does not exist, Magmi will create it.

 

How to set tier prices?

As a new column, it should be entered in the import file:
tier_price:group1 – where group1 is the name of the customer group.
If it needs to be applicable to all groups: tier_price:_all_

If you want to set it with several certain groups, then the same method is to be used as with the group price, new columns should be inserted.

For the product row:
25:10.00;50:9.00;100:8.00 – in this case it means that for 25 pieces or more it costs 10, for more than 50 it costs 9, for over 100 it costs 8.
You can give % discount as well, e.g. 25:85%, which means that for 25 pieces or more an 85% discount is offered.

 

Magm CSV Tier Price

 

How to assign the products in a multiple store website environment?

If you have a multiple Magento website environment and you have such products that are available in only some specific websites, then you have to list the store_view codes in the Store column in the CSV where these products are on sale.

Let’s see an example:

 

8-Magmi-CSV-Simple-Website-Store

 

You can see that there are two websites and there is one store for each. With the US store there is only American English set as a language and there are three languages with the EU store.

Let the store_view code for the American English be “us”, for the EO store English: “en”, German: “de” and Hungarian: “hu”
• If product test 1 is available only in the US store, then enter the code us in the store column.
• If product test 2 is available only in the EU stores, all three languages need to be listed: en,de,hu
• If a product is available in every store, enter admin.

 

Magmi CSV Simple Website Store CSV

 

Configuring multiple languages is described later at “Multi-language import”.
Here you can see an example for a simple product import file: magmi_simple_example.csv

 

How to import?

 

On the Magmi website we can see “Run Magmi” where you can select the profile and mode with which you want to perform importing.
After the import process you need to reindex (there is a reindex plugin in Magmi as well, but it does not perform 100%) and you also need to empty cache in Magento.

  • Update existing items only, skip new ones: updates only the products already existing in Magento, ignores new products.
  • Create new items & update existing ones: updates both new and existing products
  • Create new items only, skip existing ones: creates only new products

Then click “run import” button.

 

Importing configurable products

 

First activate the “Configurable Item processor v1.3.7a” plugin.
Here, with configurable products, I discuss only the differences as the rest goes just the same as with simple product import.
Configurable product is made up of several simple products.
In the import file you need to put simple products first and then list configurable products.

 

Magmi CSV Configurable Type

 

When importing a configurable a product, you need to define which attributes the customers will be able to select from (e.g. size, colour).
Only “global” range, “drop-down” type attributes can be used for configuration and this needs to be set with the attribute that it can be used for configuration.
Additionally, it is important that a given attribute is included within the specific attribute set.

If you don’t enter the SKU number to be associated in the file, then you should set it in the plugin to find the sub-products automatically (“auto match simples skus before configurable”). In this case the SKU numbers are to be named in the following way:

 

Magmi CSV Configurable Auto

 

SKU of configurable product, e.g.: testconf1
SKU of sub-product: testconf1*** – the asterisks (stars) can be replaced with any characters, it is recommended to put values here related to the configurable attribute, e.g. testconf1-white-s, testconf1-white-m.
If you would like to have a custom SKU with the product, then you need to enter in the simple_skus column which SKUs belong uto it.
If the price of the sub-product is different (e.g. size M is more expensive than size L), then you should enter in the file the “super_attribute_pricing” column, where it should be entered with the configurable product the following way:
attributecode::value:price;value:price, attributecode::value:price;value:price

e.g.:
size::L:43;M:55
If you would like to have a % rise instead of a fixed price, then this way:
attributecode::value:price:percentage-based-or-not; value:price:percentage-based-or-not

size::L:15:1;M:20:1 – if 1 is entered it is % based, if 0 is entered, it is fixed priced
If this values I not given, it uses fixed prices by default.

 

Magmi CSV Configurable Example

 

Here you can see an example for a configurable product import file: magmi_configurable_example.csv

 

Bundle product import

 

In this section I’ll show you what to set in the import file in order to import bundle products.
First activate the “Bundle Item processor v1.1” plugin.
You need to create and fill on the CSV the same way as with a simple product. Now let’s see the differences.

You need to insert the following columns:

bundle_options:

 

Magmi CSV Bundle Options

 

-*;Code,Option name;type:is_required;position
e.g.
-*;CPU:Central Processing Unit:radio:1:0;RAM:Random Access Memory:select:1:1;MOUSE:Mouse:checkbox:0:2

Where
 

  • * if entered at the start, it deletes the options from Magento set beforehand; if not entered, it adds the new ones to the existing ones
  • Code: it will be the code of the option, it is used with bundle_skus for association
  • Option name: this is the name of the option, this tesxt will be displayed by the product
  • type (radio, checkbox, select, multi): type of the option
  • is_required: whether it is mandatory for the customer to choose either option (1-yes, 0-no)
  • position: what order they should follow on the product data page (numbers to be entered)
  • bundle_skus:

Magmi CSV Bundle SKUS

Code:sku:selection_qty:can_change_qty:position:is_default:selection_price_value:selection_price_type 

e.g.

CPU:cpu1:1:0:1:1:0:0;CPU:cpu2:1:0:0:1:0:0;RAM:ram1;RAM:ram2;MOUSE:mouse1:1:0:0:1:50:1

Where 

  • Code: the code also given at bundle_options
  • sku: SKU number of sub-product
  • selection_qty: quantity of items put into shopping cart
  • can_change_qty: whether the customer select how many items he /she can choose from a given option
  • position: position of options
  • is_default: whether the given option is default
  • selection_price_value: price of selection (it is effective only if price_type at the bundle or at the plugin settings in the CSV is set to 1 (Percent)
  • selection_price_type: type of price (0 – Fixed, 1 – Percent)

 

  • price_view: display type of price, 1 (lowest price at which it can be purchased), 0 (price range, i.e. from price X to price Y)
  • price_type: calculation type of price, 0 – dynamic, 1 – fixed
  • options_container: Where the options are to be displayed (container1, container2), depends on theme
  • shipment_type: shipment of bundle items, 1 – separated, 0 – together
  • sku_type: type of SKU, 0 – dynamic, 1 – fixed
  • weight_type: type of weight, 0 – dynamic, 1 – fixed

 

Magmi CSV Bundle other

 

After importing is completed, carry out a reindex and empty caches, if set properly, the properties will show in a similar way on the product data page.

 

Magmi Bundle Frontend

 

 

Here you can see an example of a bundle product import file: magmi_bundle_example.csv

 

Grouped product import

Settings for grouped products are very similar to that of configurable products.
First, among the Magmi plugins, activate the „Grouped Item processor v1.4.1” plugin.
The grouped_skus column needs to be inserted, where SKUs of simple sub-products are included, in the import file.

 

MagmiGrouped Example

 

Here you can see an example for a grouped product import file: magmi_grouped_example.csv

 

Downloadable product import

Import file of the downloadable product is similar to that of simple product. Here you need to insert the “links” column which you should fill out in the following way:
file:link,sort_order :position,title:file title,sample :example link,is_shareable :config or 0 or 1,number_of_downloads :value

 

  • file: link of the downloadable file; URL or full path if it is locally present
  • sort_order: position (if there are more links)
  • title: name of file
  • sample: sample file
  • is_shareable: can the customer share the file?
  • number_of_downloads: how many times is it allowed to download the file

 

If you have more files, you only need to duplicate the upper row, using semicolons:
e.g.
file:http://aionhill.com/test.zip,sort_order:1,title:Test,sample:,is_shareable:1,number_of_downloads:100;file:http://aionhill.com/test2.zip,sort_order:2,title:Test2,sample:,is_shareable:0,number_of_downloads:1;

 

Magmi Downloadable Example

 

Check out this example for downloadable product import file: magmi_downloadable_example.csv

 

Virtual product import

 

Virtual product import is the same as simple product import, with the only difference that the type is not simple but virtual.

 

Magmi Virtual Example

 

You can download an example CSV for virtual product import file here: magmi_virtual_example.csv

 

Attribute and attribute set import

First, activate and configure the “Attribute Set Importer v0.0.2” plugin.
Here you need to create three CSV import files for attributes, attribute sets and associations.
It is mandatory to set the attribute_code, e.g. color

The other columns are not necessary to change, you can modify them if you do not want to use the default values.

 

Magmi attribute

 

 

With the attribute set, you need to define the attribute_set_name, e.g. Clothes
The other columns are not necessary to be set.
The other columns are not necessary to change, you can modify them if you do not want to use the default values.

 

Magmi attribute set

 

For associating attributes and attribute sets you need to set the following

  • attribute_set_name
  • attribute_code
  • attribute_group_name

 

 

magmi attribute attribute set association

 

Product category import

Product categories are created during product import if the “On the fly category creator/importer v0.2.5” plugin is activated in Magmi.
It needs to be configured in the import file according to the plugin settings.
The plugin is generally used in the way it is illustrated in the image below.

 

Magmi Category Importer Settings

 

Based on this, the category needs to be configured in the CSV in the following way:

 

Magmi Category Importer CSV

 

In the above example, the product will be placed in Ball and Accessories categories within the Football main category.
You can set sub-levels by using the slash (/) symbol.
e.g. Firstlevel/Secondlevel/Thirdlevel

 

By using double semicolons (;;), you can put it to more categories.
e.g. Firstlevel/Secondlevel/Thirdlevel;;OtherFirstlevel/OtherSecondlevel/OtherThirdlevel

 

With new categories you can set if it is active or not, whether it is an anchor, and whether it should be included in the navigation menu; its syntax is:
category name::[is_active]::[is_anchor]::[include_in_menu]
e.g.
Football/Ball::1::0::0

Multi-language import

With multi-language (it means there are more store views with different languages) import, every single product needs to be inserted in the import file the same number of times as the number of languages there are assigned to it.

 

magmi multi language import

 

The same number of rows should be present as the number of languages. The code of the store view should be entered in the store column corresponding to the store view of the specific language.
Unfortunately, translation is not provided for categories, therefore you either make translations in the admin panel or create a separate category tree for every language.

e.g.

  • English Root
    • Ball
  • German Root
    • Ball
  • Hungarian Root
    • Labda

 

The text elements need to be written in the name, description etc. columns in the specific languages.
At the drop-down attributes they need to be enetered the following way:
Specific language value::[Admin value]
The first item is the translation of text written in a specific language, the square brackets ([…]) should include the string in the admin, i.e. default language..
pl.
Red::[Red], Rot::[Red], Piros::[Red]

Here is an example for multi-language import file: magmi_multilanguage_example.csv

 

 

Summary

Pros of Magmi:

  • Simple to install and configure
  • It’s fast (thousands of products can be imported at a time within a couple of minutes)
  • All 6 product types can be imported with it
  • It can be automated (you can create import functions running automatically)

 

Cons of Magmi:

  • It is a little complicated to create the import files, maximum accuracy is needed so that every single data is imported properly
  • Since it is of open source code, there are some minor errors, i.e. some extensions do not operate seamlessly
  • Observers do not run when products are saved, since it works with direct SQL
  • It is one more admin panel you’ll need to learn how to use

I hope I have managed to show you in detail all the characteristics and features of Magmi. If you have any comments or questions in this topic, please feel free to leave them below in the comments section.


  • Really comprehensive post, but what I dont understand is where the attribute options are in all of this? Surely this is a key part in product management?

  • Really comprehensive post, but what I dont understand is where the attribute options are in all of this? Surely this is a key part in product management?

  • ALexander Martins

    Hey great tutorial 😀 do you know how to list only the created/updated products in logfile? (remove the skipped products)

    • Huszák Igor

      Hi Alexander,

      Thank you for your comment, I’m happy to answer it:
      1) The simplest way is to look at the catalog_product_entity table in phpMyadmin and apply a descending order on the basic of the updated_at field. Here you will see which products got modified, paying attention to the date of the import.
      2) If you do not have access to phpMyadmin, then you will need to write a simple Magmi plugin. If you need any help in doing that, please let me know and I will help you.

      Best regards,
      Igor

      • Mani Zia

        please guide me how can install it.. steps which i will follow to install…! looking forward to your kind response.

      • Mani Zia

        please guide me how can install it.. steps which i will follow to install…! looking forward to your kind response.

  • Thanks

  • Alex López

    Very helpful, thanks!
    I have a question though. For configurable products you say that custom pricing should be provided in a super_attribute_pricing column following this format: “size::L:43;M:55”
    However, in the sample file I can see both this column and another “price” column with different prices for each option. Which price would the plugin be taking?
    Thanks!

  • Great Post with a proper description.Thanks for sharing it!

  • Robert Behnke

    This is all very helpful – thank you very much. One thing i cannot figure out. When i upload the images, radio dials that are supposed to set the default for each image – do not populate. So the thumbnail image is not showing on my website (e.g. when adding item to cart). I can go in and manually set the radio dials, and it fixes the website, but the radio dials disappear when i re-open that page in admin. So i can’t tell which sku’s are set up correctly. I have 2000 sku’s so manual is not an option. Is there some coding in Magmi csv upload that denotes setting the default? I thought it was literally the column header that did this.

  • informative article. i will pass this to our magento 2 team. thanks for sharing this.

Do you need our support?
  • Magento Site Check
  • Magento Code Audit
  • Magento SEO Audit
  • Magento Project Rescue
Request help

NEED A RELIABLE, PROFESSIONAL MAGENTO DEVELOPMENT PARTNER?

Contact us if you have any question or requirement related to the preparation of a new or renewal of an existing online store.

Next