1. добавляем доп.функцию для выборки. открываем /administrator/components/com_virtuemart/views/product/view.html.php и ищем функцию
static function displayLinkToChildList($product_id, $product_name) {
в конце этой функции добавляем нашу новую:
// search custom fields
static function displayCustomFieldRes($product_id, $custom_id) {
$db = JFactory::getDBO();
$db->setQuery("SELECT custom_value FROM #__virtuemart_product_customfields WHERE virtuemart_product_id=".$product_id." and virtuemart_custom_id=".$custom_id." ;");
if ($result = $db->loadResult()){ echo $result; }
}
// search custom fields
2. идем в шаблон вывода списка продуктов /administrator/components/com_virtuemart/views/product/tmpl/default.php и в нужном месте добавляем нужные колонки. на месте вывода значения доп.поля пишем следующее:
<?php VirtuemartViewProduct::displayCustomFieldRes($product->virtuemart_product_id , 6); ?>
где 6 - ID нашего кастомного поля (посмотреть можно на странице кастомных полей)
результат:
ПРОДОЛЖЕНИЕ: Добавлем поиск в админке по одному custom_field (в нашем случае номер stock #)

Открываем administrator\components\com_virtuemart\views\product\tmpl\default.php и после
<input type="text" value="<?php echo JRequest::getVar('filter_product'); ?>" name="filter_product" size="25" />
добавляем:
<input id="stock_f" type="checkbox" title="Search by STOCK #" name="stock_f" onclick="this.form.submit();">
далее идем в administrator\components\com_virtuemart\models\product.php и ищем в районе 290 строки такой кусок:
if (!empty($filter_search)) {
$where[] = '(' . implode (' OR ', $filter_search) . ')';
}
else {
$where[] = '`product_name` LIKE ' . $keyword;
$joinLang = TRUE;
//If they have no check boxes selected it will default to product name at least.
}
после него добавляем нашу проверку на кастомный сток номер. id его 6, поэтому сразу вписал в запрос, а предыдущие все выборки обнуляем.
if($_POST['stock_f']!=NULL) {
$where = array();
$keyword = str_replace("%", "", $keyword);
$where[] = 'pf.`virtuemart_custom_id`="6" and pf.`custom_value`=' . $keyword . '';
}
далее необходимо подключить выборку из нужных таблиц в селекте. ищем такой код в районе 540 строки
if ($joinChildren) {
$joinedTables[] = ' LEFT OUTER JOIN `#__virtuemart_products` children ON p.`virtuemart_product_id` = children.`product_parent_id` ';
}
и после него добавляем наш:
// check STOCK #
if($_POST['stock_f']!=NULL) {
$joinedTables[] = ' LEFT JOIN `#__virtuemart_product_customfields` as pf ON p.`virtuemart_product_id` = pf.`virtuemart_product_id` ';
}
после этих манипуляций в админке появляется чекбокс (с автосабмитом формы), при клике по которму мы ищем по конкретному кастомному полю.


