VirtueMart

Speed up product import

| VirtueMart

When you have a large number of products in your VirtueMart shop the import will take it's sweet time to finish. There are ways to speed up the import, one of the ways is to make use of indexes on your tables. An index can be seen as a list that the database keeps to remember where to find which item.

Product table index

CSVI uses the product SKU as a unique identifier to identify a product. Adding an index on this field will be beneficial because it allows the database to find the product faster as it then keeps a list of all your products. To add an index on the product_sku field we need to take the following steps using PhpMyAdmin.

  1. Go to PhpMyAdmin
  2. Go to the database that contains your site
  3. Go to the virtuemart_products table Structure page
  4. Click on the Indexes link (this is a bit obscure but it is above the Information table)
  5. There will be a line below the indexes that says "Create an index on 1 columns" with a Go button. Click the Go button.
  6. A popup will appear with a form to enter some information. Enter the following information:
    • Index name: product_sku
    • Index choice: Unique
      We set this to unique to be sure there won't be any duplicate SKUs in the database
    • Column: Select the product_sku column
    • Size: 25
  7. Click on Go
  8. The index is now created.

Create the product SKU index

Read more ...

Product import with custom fields

| VirtueMart

Requirements

  • CSVI 6.0+
  • Joomla 3.0+
  • VirtueMart 3.0+

Background information

To import custom fields for product normal product import procedure is followed. This article explains how to import custom field value for a product.

Virtuemart product customfield import

The fields necessary for importing products with custom fields are:

  • product_sku
  • custom_title
  • custom_value
  • custom_price
  • custom_param

Optional fields

  • custom_disabler
  • custom_override

Basic import with custom fields

It is important to note that the fields starting with custom_ are required when you use plugin custom fields and are optional for normal custom fields. Normal custom fields will be available as available fields so these fields can be directly used as template field in import. To be more clear say if Photo and Size are string type custom fields then import can also be done by using the fields in import like

"product_sku";"product_name";"Photo";"Size"
"P01";"Product 1";"product1.jpg";"36"
"P02";"Product 2";"product2.jpg";"38"
"P03";"Product 3";"product3.jpg";"40"
"P04";"Product 4";"product4.jpg";"42"

 

Virtuemart product customfield import template fields

There are 2 scenarios in which you can import custom fields:

  1. custom fields with a single value
  2. custom fields with mulitple values

Custom fields with a single value

An example CSV file looks like this:

"product_sku";"custom_title";"custom_value";"custom_price";"custom_param";"custom_disabler";"custom_override"
"P01";"Photo";"7";"";"";"Y";"Y"
"P01";"Size";"36";"";"";"Y";"N"

Let's have a closer look at the fields.

product_sku

This is the unique code for a product.

custom_title

The name of the custom field. The correct name can be found on the Custom Fields page in VirtueMart in the column named Title.

custom_value

This is the value belonging to the custom field. As seen in the example for the Size we have created sizes 36, 38 and 40.

custom_price

Optionally a price if the plugin uses and/or requires it

custom_param

Optionally a parameter if the plugin uses and/or requires it

custom_disabler

Optionally a parameter if parent customfield is not used for child product. The value should be Y to enable it or N to disable the disabler.

custom_override

Optionally a parameter if parent customfield value to be overridden for child product. The value should be Y to enable it or N to disable the override.

 

Once the csv file is ready, select the file and start the normal import process.

Virtuemart product customfield import start

 

Check the preview of the file

Virtuemart product customfield import preview

 

Start the process. Once complete, CSVI will notify with the log if enabled on the status of import process

Virtuemart product customfield import complete

 

Custom fields with multiple values

An example CSV file looks like this:

product_sku;custom_title;custom_value;custom_price;custom_param;custom_disabler;custom_override
H01;Size~Size~Size;34~36~38;24~26~28;Y~N~Y;Y~N~Y

All values are separated by the tilde character.

All custom fields have multiple values with the exception of the parameter field. So if we put the values in a table it would look like this.

Please note the table is just for understanding purpose but the format of csv file has to be strictly followed as explained above for the import to work flawless.

product_sku custom_title custom_value custom_price custom_param custom_disabler custom_override
H01 Size 34 24   Y Y
H01 Size 36 26   N N
H01 Size 38 28   Y Y

 

This is how CSVI will add the values to the product H01. As you can see the custom_param column is empty. This means that CSVI will leave that one empty.

Let's have a closer look at the fields.

product_sku

This is the unique code for a product.

custom_title

The name of the custom field. The correct name can be found on the Custom Fields page in VirtueMart in the column named Title.

Since we are adding multiple values, each value is separated by a tilde symbol. This allows for specifying more than 1 custom field to add to the product.

custom_value

This is the value belonging to the custom field. As seen in the example for the Size we have created sizes 34, 36 and 38.

custom_price

Optionally a price if the plugin uses and/or requires it

custom_param

Optionally a parameter if the plugin uses and/or requires it

custom_disabler

Optionally a parameter if parent customfield is not used for child product. This can be either 1/Y/y or 0/N/n.

custom_override

Optionally a parameter if parent customfield value to be overridden for child product. This can be either 1/Y/y or 0/N/n.

 

Once the import process is done without errors, imported custom fields for a particular product can be seen in the Virtuemart product page and in Custom fields tab.

Virtuemart product customfield import final value

Delete custom values

The field custom_delete makes it possible to delete custom values assigned to products. The field takes the following values:

  • Y: delete the custom value
  • N: do not delete the custom value
  • Empty: do not delete the custom value

This field works the same as the other custom fields, multiple values are separated by a tilde symbol. The CSV would look like this:

product_sku;custom_title;custom_value;custom_price;custom_delete
H01;Size~Size~Size;34~36~38;24~26~28;N~Y~N

This will delete size 36.

Ordering custom fields

The field custom_ordering makes it possible to order custom fields assigned to products. To set the ordering of custom fields the following fields are required:

  • product_sku
  • custom_title
  • custom_value
  • custom_ordering

You can add more fields to your import file of course, these are the minimum.

This field works the same as the other custom fields, multiple values are separated by a tilde symbol. The CSV would look like this:

"product_sku";"custom_title";"custom_value";"custom_ordering"
"P01";"Size~Color~Width";"34~Green~38";"2~1~3"

This will show the custom fields in this order:

  1. Color: Green
  2. Size: 34
  3. Width: 38

When using custom fields as an available field, they will be added in the order they are set in the CSV file. If they are part of a group, the group will be added automatically if needed.

Multiple custom values

The field custom_multiple makes it possible to import the same custom field multiple times with different values for one product. The field takes the following values:

  • Y: add as multiple value
  • N: do not add as multiple value
    Existing values will be removed
  • Empty: add as multiple value

This field works the same as the other custom fields, multiple values are separated by a tilde symbol. The CSV would look like this:

"product_sku";"custom_title";"custom_value";"custom_multiple"
"P01";"Photo~Size~Size~Size";"7~34~36~38";"N~Y~Y~Y"

Or in multiple lines:

"product_sku";"custom_title";"custom_value";"custom_multiple"
"P01";"Photo";"7";"N"
"P01";"Size";"34";"Y"
"P01";"Size";"36";"Y"
"P01";"Size";"38";"Y"

This will give the custom field Photo only 1 entry and the custom field Size 3 entries in the product.

Updating existing custom fields values

To update value of existing custom field you need custom_title, custom_value, custom_delete field along with individual template field with new value. Say if Size is a string custom field and has a value L set for a product. If you want to update value from L to XL then CSV would look like

"product_sku","custom_title","custom_value","custom_delete","Size"
"P01","Size","L","Y","XL"

Read more ...

Product export with custom fields

| VirtueMart

Export custom values

Requirements

  • CSVI 6.0+
  • Joomla 3.0+
  • VirtueMart 3.0+

Background information

To export custom values the process is the same as all other exports.

Create a export template and select the fields for exporting. Example exporting is explained here with following fields.

  • product_sku
  • custom_title
  • custom_value
  • custom_price
  • custom_param

More fields

  • custom_disabler
  • custom_override
  • custom_delete
  • custom_ordering

Let's have a closer look at the fields.

product_sku
Field to get SKU of a product.

custom_title
Field to get title of the custom field

custom_value
 Field to get the value of the custom field. 

custom_price
Field to get a price value if the plugin has the value.

custom_param
Field to get parameter values if the plugin has it.

Available as of CSVI Pro 6.5.0

custom_disabler
  Field gets value if parent customfield is not used for child product. The values exported will be Y or N.

Available as of CSVI Pro 6.5.0
custom_override
This field has the value if parent customfield value to be overridden for child product. The values exported will be Y or N.

custom_delete
This field has the value if needed to delete custom values assigned to products The values exported will be Y or N.

custom_ordering
This field has the value for ordering custom fields assigned to products The values exported will be Y or N.

An example of single value custom field would look like 

product_sku custom_title custom_value custom_price custom_param custom_disabler custom_override
H01 Size 34 24   Y Y

Example of multiple values for custom field export would look like

product_sku custom_title custom_value custom_price custom_param custom_disabler custom_override
H01 Size~Size~Size 34~36~38 24~26~28   Y~N~Y Y~Y~N

 

 

Read more ...

Using VatTax percent for Virtuemart order export

| VirtueMart

Requirements

  • CSVI 6.5+
  • Joomla 3.0+
  • VirtueMart 3.0

Most of the times user wants to export tax percent as separate columns in the export file for Virtuemart order export. This article explains on how to acheive these tax results as separate columns.

For example if there are three VatTax percent in Virtuemart as shown below

To get these columns in export file, First Update available fields, so these tax percent comes in the list of template fields for Virtuemart order export template. Then these fields can be selected as normal template fields. 

Virtuemart stores these tax percent values in order_billTax field if present. CSVI will retrieve these tax values from order_billTax field for added tax percentage for export. A sample export file data is listed below.

virtuemart_order_id Tax 20% Tax 7% Tax 10%
1 42.25 7.29 0
2 41.25 0 0
3 0 7.29 0

 

Read more ...

ICEcat Product Import for Virtuemart

| VirtueMart

Once that ICEcat settings are done as per the document Setting up ICEcat data,  Product import can be done as a normal import. Make sure the template settings are done as per the linked document since it is not explained here.

An example import for Virtuemart is explained below.

 Required fields for Virtuemart product import

  • product_sku
  • manufacturer_name

CSVI would identify the product details using product_sku and manufacturer_name from ICEcat tables. The other fields required can also be added to the import template fields. This example will explain how product_desc can be imported from ICEcat table to Virtuemart product table.

An example CSV file would look like

product_sku manufacturer_name product_desc
80D0846 LEXMARK ACCESSORIES  
14V0801 LEXMARK ACCESSORIES  

 

CSVI will now look for matching product information in ICEcat table using the above product_sku and manufacturer_name fields and imports product_desc to the Virtuemart table.

Please note the above import happens only if ICEcat option is set to Yes in template options else product_desc will be read from csv file or nothing will be imported if empty.

 

If any fields which are not needed to be populated by ICEcat data can be selected from Skip fields option and CSVI will ignore those fields.

 

Read more ...