Recently VirtueMart introduced a new way of dealing with articles that can contain variants like clothes for example. They have named this custom field Multi Variant. Unlike a text field this is a pretty complicated custom field as it has many options.
CSVI deals with 2 settings:
- Ramifications
CSVI only supports the Use custom label option. - Values
The ramifications are for CSVI just field names and they are available as regular field names. By making the ramifications available as regular available fields the values become also regular values. There is one catch, the parent product must have two fields called multi_variant_title and multi_variant_fields. The multi_variant_title is the name of the Multi Variant custom field you created and the multi_variant_fields is the list of ramifications to use.
In this example we will use a t-shirt as our product to sell. Our t-shirt is available in the sizes S/M/L/XL and the colors Green/Blue/Red/Purple. Looking at our t-shirt we can already tell what our ramifications and values are. Let's break it down.
Ramifications
With our t-shirt we have 2 ramifications, they are Size and Color. In VirtueMart when you add a Multi Variant to a product you must specify the available options for each ramification, this is not needed for CSVI. CSVI will fill these in with the values found in your CSVI file. Create two string custom fields Size and Color from VirtueMart Custom fields page.
Values
As mentioned above we also know which values we want to use. The sizes are S/M/L/XL and the colors are Green/Blue/Red/Purple. We don't have to do anything with them now because CSVI will use them if they are found. Any value found will be used, so if your import file contains the size XXL and the color Yellow, this will be added as well.
Straighten out our products
Our t-shirt needs to be divided into the different combinations we have in stock. Let's say we have these t-shirts in stock:
Size | Color |
S | Green |
M | Green |
L | Green |
S | Purple |
M | Purple |
L | Red |
XL | Red |
S | Blue |
So with these t-shirts in stock, we know which products we want to import. Now we need to give each product a unique code so we can identify which product the customer ordered.
product_sku | product_parent_sku | Size | Color |
SHIRT-S-GREEN | S | Green | |
SHIRT-M-GREEN | SHIRT-S-GREEN | M | Green |
SHIRT-L-GREEN | SHIRT-S-GREEN | L | Green |
SHIRT-S-PURPLE | SHIRT-S-GREEN | S | Purple |
SHIRT-M-PURPLE | SHIRT-S-GREEN | M | Purple |
SHIRT-L-RED | SHIRT-S-GREEN | L | Red |
SHIRT-XL-RED | SHIRT-S-GREEN | XL | Red |
SHIRT-S-BLUE | SHIRT-S-GREEN | S | Blue |
Since SHIRT-S-GREEN is the first t-shirt, this also becomes the parent product. The rest of our t-shirts need to be linked to the parent product so we know it is a variation of that first t-shirt.
Prepare the CSV file
Now that we have a good overview of our t-shirts we can make the CSV file ready for import. The only missing pieces are the multi_variant_title and multi_variant_fields fields to tell CSVI which fields to use for the Multi Variant. For the multi_variant_fields each value is separated with a ~ symbol.
Please note that the multi_variant_title should be same as the title set for multi variant custom fields on Virtuemart custom fields interface. As per the above screenshot the title is Multi Variant which is given in the below CSV file.
Also multi_variant_fields would be the title of the ramifications, In this case it is Size and Color.
product_sku | product_parent_sku | Size | Color | multi_variant_title | multi_variant_fields |
SHIRT-S-GREEN | S | Green | Multi Variant | Size~Color | |
SHIRT-M-GREEN | SHIRT-S-GREEN | M | Green | ||
SHIRT-L-GREEN | SHIRT-S-GREEN | L | Green | ||
SHIRT-S-PURPLE | SHIRT-S-GREEN | S | Purple | ||
SHIRT-M-PURPLE | SHIRT-S-GREEN | M | Purple | ||
SHIRT-L-RED | SHIRT-S-GREEN | L | Red | ||
SHIRT-XL-RED | SHIRT-S-GREEN | XL | Red | ||
SHIRT-S-BLUE | SHIRT-S-GREEN | S | Blue |
Once the import is done, Multi variant custom values can be checked from Virtuemart edit products page in virtuemart administrator interface and in custom fields tab.
Order of import
Import should be done twice for multi variants, First import will store the custom fields and the second import will import the custom fields. The order of import is:
- Import the parent products
- Import the child products or both the parents and the children
Instead of making 2 separate files with one for the parents and one for the children, you can use 1 file with both the parent and the children in there. This will generate a message saying there are unsupported fields, this is expected because the available fields have not yet been updated. This can be safely ignored, and on the second import, all will be fine.
Important
The Multi Variant custom field must already be created before you run the import, otherwise CSVI can't link the custom field to the product.