If you have version 1.x
Version 2.0 has a new custom fields data storage structure in the database. Thanks to this change the search speed increased 5-20 times. The change of the database structure has lead to incompatibility between 2.0 and 1.x versions.
Read about data transfer from 1.x to 2.x here: Transition from v. 1.x to 2.0
Requirements
Joomla 2.5
Virtuemart 2.0.10 or higher
Quick start
Step 1
Creation and installation of fields
1. Install module and plug-in using “Extention Manager” (in v.1.4 plugin include in module installation)
2. Publish installed mcf (Multiple Customfields) plug-in Using “Plug-in Manager”
3. Move to the component Virtuemart 2 and create a customfield.
4. Indicate “parent” type and save.
5. Create a “plug-in” type customfield"->"Virtuemart 2 Customfield plugin". Indicate previously created customfield as parental, then save.
6. Indicate the necessary customfield template and add values. Values can be sorted by dragging through the corresponding icon.
7. Move to the products list and create products.
8. Fill-in basic customfields (title, etc.) and go to the “customfields” tab. Choose parent field and save.
9. Select the values in the drop-down list.
Step 2
Module and Search Menu Item Setting
1. Open "module manager" and find module "Search (filter) module for Virtuemart 2 multiple customfield plugin"
2. Specify title, position and status. Link module to all pages. Indicate parent customfield ID, which has been created before.
3. Specify titles for categories, manufacturers, prices, if necessary.
4. Create a menu item, basic for search, in case it hasn’t been created before.
5. Choose "Menu item type" = Virtuemart->Category
6. Specify title and alias, leave the default category "Upper level of category". This menu item is responsible for search results output. All the modules should be linked to this menu item, otherwise module won’t be displayed on search results page and consequently AJAX won’t be working
7. Your module will look somewhat like this
Step 3
Activation
1. Find Multiple Customfields plug-in using "Plug-in Manager".
2-3. Click "Get activation key", insert email of your account and click "Send Request".
4. Enter an activation key and save.
Templates
Display templates in module : templates are stored in folder [_site_root_]/modules/mod_virtuemart_param_filter/tmpl. You’re not supposed to change them, otherwise the changes will vanish after the next update. Therefore, copy the contents of folder and save it in [_site_root_]/templates/[_your_template_]/html/mod_virtuemart_param_filter/ and then make changes to the copied files. ATTENTION: during the update necessary changes might have been made to templates, so please pay attention to the list of updates on site.
| checkbox | |
| select select multiple |
|
| select-chosen select-chosen multiple |
|
| radio | |
| slider slider_double (not recommended to use more than 20 text values) |
Customfield display templates on product page: customfield display template on product page is in folder
[_site_root_]/plugins/vmcustom/param/param/tmpl. You are not supposed to change them either. Copy them to
[_site_root_]templates/[_your_template_]/html/plugins/param/ (OR /templates/[_your_template_]/html/vmcustom/param/ depending on VM2 version) and make any changes to the copies.
If you don’t want any parameters to be shown in product card, choose in the corresponding customfields "position"="hidden".
Advanced settings
Customfield settings
1. If you have too many parameters to use them in drop-down list, check "Drop-down list" = No. In this case you’ll see a string input customfield while making changes to product page.
2. It makes sense to change data type only for ‘slider’ template. If data type is “text” the slider will move among the existing elements, but if it is "numeric", it will move with interval 1 or more (depending on visible span of slider). It is recommended to use "Numeric" data type in case you want a slider with more than 20 numeric values. For all other cases we recommend to use “Text” customfield type. Value "-13692" is reserved for numeric type customfield.
3.For quick input of customfield values you can use alternative way of entering data "Alternative input". All the parameters are input using semicolon to separate them ( ; ). First save them, then you can work with them in standard mode with sorting (drag & drop).
Reserved values: semicolon ( ; ), vertical bar ( | ), double quote ( " ).
4. Field doesn’t works as cart attribute. Create additional standard fields for this functional.
Module settings. Basic parameters.
All the settings have pop-up tips, so I’ll describe only nuances and details for some values:
"Field list parent" – indicate ID of parent field.
"Automatic selection of fields list" – Automatically selects fields list depending on products in current and/or sought-for categories. Searches for products fields in particular category, doesn’t consider subcategory. If possible do not use initial ones, but make modules copies and link them to categories. There is a detailed example of how to work with it on demo-site - "Auto" module.
"AJAX module update" – if you specify/ change any filter parameterо the filter is updated by the means of AJAX. Only the module is updated!
"Number of correlated products" – displays the number of items found by this parameter, on the basis of the options selected. If there is no indication "AJAX module update", it only works on the search results page.
![]()
"Products number quantity" – means of values display, which is used if there are no products correlating to search parameters. If you choose "hidden" and "AJAX module update ", you get an imitation of linked lists. If there is no indication "AJAX module update", it only works on the search results page.
"AJAX products update" – if you set/make changes to any filter parameter by the means of AJAX the indicated search page element is updated. Specify CSS-selector, while processing jQuery is used. Only the indicated element is updated. To update products list specify the block, in which the component is output. For example, if your template displays "<div id="maincontent"><jdoc:include type="component" /></div>", you should indicate "#maincontent".
"Assign to field" – chained lists functionality. Allows to bind one field with another. As a result, an assigned field will only appear if you make selection on the field you assigned it to.
“AJAX reinitialization” – if updated by the means of AJAX DOM-structure of the page is changed and newly added elements are not visible for previously declared javascript functions. You should reinitialize these functions.
"JS reinitialization after AJAX module update" – set functions for module elements processing. Proceed as shown in the example below.
"JS reinitialization after AJAX products list update" – set functions for block elements processing, specified in "AJAX products update". For example, to enable pop-up images of products and cart after they have been updated by AJAX, type in the following:
SqueezeBox.assign($$('a.modal'), {parse: 'rel'});
jQuery(document).ready(function($) {
$('.orderlist-container').hover(
function() { $(this).find('.order-list').stop().show()},
function() { $(this).find('.order-list').stop().hide()}
);
Virtuemart.product($("form.product"));
$("form.js-recalculate").each(function(){
if ($(this).find(".product-fields").length) {
var id= $(this).find('input[name="virtuemart_product_id[]"]').val();
Virtuemart.setproducttype($(this),id);}
});
});
Example of work on demo-site. Module "Laptops filter".
Module link – module can be linked to the categories and to the inner pages of Virtuemart 2 shop as well. Use link to the categories if you don’t have separate menu items for categories or standard link mechanism is not working properly. ATTENTION: Step 2 of the installation describes the process of creation of a basic menu item for search – all search modules should be linked to that item!
Frequently Asked Questions
1. When filter results are output the categories are displayed in the upper part of the page. How to remove them?
2. If there are no products which match filter parameters, how to display a message “Sorry, no matches found”?
1-2. . Common answer::
Virtuemart is responsible for output. To change the category mapping for version 2.0.12 (should also work with 2.0.18a) follow the tips below:
File: /components/com _virtuemart/vie ws/category/tmp l/default.php (or the analog in your catalog):
change if ($this->category->haschildren) {
to if ($this->category->haschildren && !JRequest::getBool('search')) {
and after
} elseif ($this->search !== NULL) {
echo JText::_ ('COM_VIRTUEMART_NO_RESULT') . ($this->keyword ? ' : (' . $this->keyword . ')' : '');
}
insert:
elseif(JRequest::getBool('search')){
echo 'Sorry, no matches found. You will be automatically redirected to the catalogue.'; // Message - change to what you like
echo '<script type="text/javascript"> setTimeout(function(){window.location.href = "/";}, 3000);</script>'; // Redirects to main page after 3 seconds
}
Using CSV. CSV Improved 5.9+
In version 2.0 internal CSV export/import had been removed. Along with this change our extension is now compatible with CSVI 5.9+. However, due to the fact that CSVI developers do not release updates as frequently as we do you will need to modify the CSVI algorithm for full-fledged functioning. All instructions, changes and file examples will be sent via email in a reply to support query.
On 1st April a new CSVI update will be released with news scripts responsible for integration with our extension.
Transition from v. 1.x to 2.0
The transition script has been written and tested. However, its implementation requires certain knowledge. Thus we will examine every transition request separately and, if it's possible, perform transition manually and for free. To transfer data from v. 1.x to 2.0 contact Support
Русский (РФ)
English (UK) 

















