VirtueMart

Importing Multi Variant custom field

| VirtueMart

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.

Multi variant custom field title

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:

  1. Import the parent products
  2. 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.

Read more ...

VirtueMart Users export

| VirtueMart

A template can be created by following these steps:

  1. Go to Components -> CSVI Pro -> Templates
  2. Click New
  3. Give the template a name
  4. Set Action to Export
  5. Set Component to VirtueMart
  6. Set Operation to Users info
  7. Click Next: Select Source
  8. Destination is set default to Download. No need for change.
  9. Click Next: Select options
  10. The default values are OK, change if needed.
  11. Click Next: Select fields
  12. Fields must be added otherwise there is nothing for CSVI to export. Click Edit template fields.
  13. A new window opens with the Template fields page. You can add new fields by clicking New or Quick Add.
  14. When all fields are added you can close the window
  15. Click Next: Finalize
  16. All done here
  17. Click Close to return to the list of templates or Edit if you want to fine-tune the template further.

VirtueMart user info export create template

  • Go to Components -> CSVI Pro -> Templates
  • Click on Template fields
  • In the Search Tools select your template
  • Click on New to add a single field or click on Quick Add to add multiple fields.
  • Quick Add

    The Quick Add Option allows you to quickly add multiple fields to a template. It is not possible to set any settings per field here but that can be done after the fields have been added to the template.

    VirtueMart user info export create template fields

  • Go to Components -> CSVI Pro -> Export
  • Select the template created earlier
  • Click Export
  • The export is run
  • The Log details page will be shown with information regarding the export if the Enable logging is enabled in the template
  • VirtueMart user info run export

    Read more ...

    VirtueMart Waitinglists export

    | VirtueMart

    This tutorial explains how to create a VirtueMart Waiting lists export template, add the fields and how to run the export. Step by step we show you how to perform each task. A video will show you the steps in action so you can follow that as well.

    Read more ...

    Import ICEcat product information

    | VirtueMart

    Required fields

    You must have an account with ICEcat before you can access ICEcat data.

    Setting up ICEcat

    To be able to use CSVI with ICEcat, a few things need to be setup first. These things are:

    1. ICEcat account
    2. Index files need to be loaded
      1. Files index
      2. Manufacturer index

    ICEcat account

    An ICEcat account can be requested at the ICEcat website.

    Index files

    There are two index files that need to be loaded:

    1. Files index
      The files index is a list of URLs that are available on the ICEcat server. This file must be loaded into the
      database as CSVI VirtueMart will check this list if product information is available. The default file index is
      located at https://data.icecat.biz/export/freexml.int/INT/files.index.csv
    2. Manufacturer index
      The manufacturer index is a list of manufacturers that are available on the ICEcat server. This file must be
      loaded into the database as CSVI VirtueMart will check this list if product information is available. The
      default file index is located at https://data.icecat.biz/export/freexml.int/INT/supplier_mapping.xml

    The index files are increasingly getting bigger so it might not be possible to have RO CSVI download the files for you. In that case you need to prepare the files manually.

    Manual loading of the index files

    Use these steps to manually download the index files:

    1. Download the Files index from https://data.icecat.biz/export/freexml.int/INT/files.index.csv or if you have a paid account from https://data.icecat.biz/export/level4/INT/files.index.csv
    2. Upload the downloaded file to your server to the file /tmp/com_csvi/icecat_index
    3. Download the Manufacturer Index from https://data.icecat.biz/export/freexml.int/INT/supplier_mapping.xml or if you have a paid account from https://data.icecat.biz/export/level4/INT/supplier_mapping.xml
    4. Upload the downloaded file to your server to the file /tmp/com_csvi/icecat_supplier

    You can replace INT with the language of your choice. The language codes can be found at the end of the document.

    Once the ICEcat account has been created, on RO CSVI backend settings tab, Provide the user credentials used for creating the account and save it.

    The index files are loaded via the Maintenance tab:

    On loading the index files, CSVI follows this process:

    1. Check if the file icecat_index exists in the folder set by ICEcat indexes path
    2. If 1 does not exist, check if the file icecat_index.gzip exists in the folder set by ICEcat indexes path
    3. If 2 does not exist, check if the file icecat_index.zip exists in the folder set by ICEcat indexes path
    4. Check if the file icecat_supplier exists in the folder set by ICEcat indexes path
    5. If 4 does not exist, check if the file icecat_supplier.gzip exists in the folder set by ICEcat indexes path
    6. If 5 does not exist, check if the file icecat_supplier.zip exists in the folder set by ICEcat indexes path

    If any of the above files are found, CSVI will use these local files to import the indexes. If none of the files are found, CSVI will try to download the files from the ICEcat server.

    In case you have troubles loading the files index make sure the ICEcat indexes folder does not have any files in it.

    Use gzip

    This option is useful to download the large files index file as the size of this file is more than 100MB unpacked. The download is usually no problem but after the file is downloaded CSVI needs to unpack the zip file and can easily run out of memory. There are 3 solutions for this:

    1. Increase the available memory
    2. Download the unzipped file
    3. Unzip the file on your computer and upload it to the server

     Once all the settings are done,  Click on continue on the top corner and the file download process would start. Please note that this process would just look for the index files and would download. Actual import process would be done same as the  Product Import .

    The index file is a big file with over 500,000 entries. By default CSVI will load the files index in 1 step because this is the fastest and most efficient way of loading the files index.  
     
    To be able to load the file in 1 step the INFILE command needs to be enabled on the server. When the INFILE command is not enabled the error: Error occurred: The used command is not allowed with this MySQL version appears. To be able to load the index files, the MySQL needs to be configured to use the
    INFILE command. This command can be enabled in the MySQL configuration file.

    Add this line:

    local-infile=1
    to the /etc/my.cnf in the [mysql] section.
     
    This is most likely done by the webhost.

    Once the files are downloaded, RO CSVI would notify the process is completed.

    Load the files index in multiple steps

    In case it is not possible to load the files index file in 1 step, it is possible to load it in multiple steps.
     
     
    To load the file in multiple steps set the following options:

    • Load type: Single
    • Number of lines per import: 1000
      This is the number of lines that is imported on each step.
    • Wait time between imports: 5
      This time is when the import pauses to reduce the load on the server

    When performing the ICEcat index loading using cron, the 1 step import is used.

    Manufacturer Part Number

    ICEcat identifies products based on the MPN (Manufacturer Part Number) and manufacturer name. If your product SKU is not the same as the MPN you must add a field to the VirtueMart product table to store the MPN.

    On import you must also set in your template settings to use the MPN column instead of the product SKU as shown below. In this example the database column is called product_mpn.

    What happens now on import is that not the column product_sku is used as unique identifier but the column product_mpn.
     
    In case the product_sku is the only column and contains the MPN value, the custom column name can be set to product_sku.

    Enabling ICEcat Data

    To tell CSVI that not the data in the import file needs to be used but to use ICEcat data instead, enable the ?Use ICEcat data? option as shown below.

    Similar SKU search

    The similar SKU search will search ICEcat for SKUs that are similar to the one being imported. This helps to find products that have an added identifier. For example the SKU A123 is imported but in ICEcat it is known as A123AA, CSVI will take the information from the A123AA ICEcat file.

    Preparing the Import

    CSVI will update the following fields with ICEcat data if found in the import file:

    • category_path
    • manufacturer_name
    • product_sku
    • product_name
    • product_desc
    • product_s_desc
    • product_available_date
    • file_url
    • file_url_thumb
    • features
    • related_products

    When importing ICEcat data only include the above fields you want updated with ICEcat information.

    Example:

    category_path manufacturer_name product_sku product_name product_desc file_url
    Computersystems Compaq C8010A      

    Import ICEcat Data

    To import the ICEcat data the regular import process is followed. Check the examples at import the ICEcat data for Vituemart and import the ICEcat data for Hikashop

    Supported Languages

    INT - International standardized version of a data-sheet
    EN - Standard or UK English
    US - US English
    NL - Dutch
    FR - French
    DE - German
    IT - Italian
    ES - Spanish
    DK - Danish
    RU - Russian
    PT - Portuguese
    ZH - Chinese (simplified)
    SE - Swedish
    PL - Polish
    CZ - Czech
    HU - Hungarian
    FI - Finnish
    NO - Norwegian
    TR - Turkish
    BG - Bulgarian
    KA - Georgian
    RO - Romanian
    SR - Serbian
    JA - Japanese
    UK - Ukrainian
    CA - Catalan
    HR - Croatian

    Read more ...

    Updating products stock in VirtueMart with RO CSVI

    | VirtueMart

    This document explains on how to update product stock in VirtueMart using RO CSVI import. To update stock for VirtueMart products only 2 fields are needed.