M2IF provides the functionality to import product links as well as their positions. Actually related, upsell and crosssell links are supported. As M2IF also supports the import of grouped products, which are nothing else than the additional link type
super, it is possible to import the position of the products that are linked to a grouped product.
To import those link types, simply a comma (,) separated list of the linked products has to be specified in the appropriate column
related_skusfor related products that'll be rendered on the product detail page
upsell_skusfor upsell products that'll be rendered on the product detail page
crosssell_skusfor crosssell products that'll be rendered on the shopping cart
associated_skusfor products that will be part of a grouped product, which will also be rendered on the product detail page
For example, the columns to import those link types may look like
Beside the SKUs of the linked product itself, it is also possible to specify the position of the linked products
The position also has to be a comma (,) separated list, but it contains numbers instead of the SKUs. The numbers finally are the position the linked product will be rendered in the GUI.
Please be aware, that the positions are NOT mandatory and the columns can be empty. If so, the M2IF creates the position itself, based on the order of the given SKUs. If positions will be changed in the Magento backend, they will be OVERWRITTEN within the next import process!!
Magento 2 CE supports positions for product links, as well as Magento 2 EE. By default, up to version 2.1.6, importing product positions is NOT possible in the CE, because the database of the CE lack's of missing rows in the
In case, that the rows are not available, the positions, defined in the CSV file's columns
will be ignored.
To enable importing positions, add the following rows the Magento 2 CE database
INSERT INTO `catalog_product_link_attribute` ( `link_type_id`, `product_link_attribute_code`, `data_type` ) VALUES (1,'position','int'), (4,'position','int'), (5,'position','int');
Make sure, that the values are NOT already available, before adding them!