В модуле товаров Virtuemart mod_virtuemart_product товары можно выводить по категориям, но иногда нужно вывести какие-то конкретные товары. Тогда было бы удобно если бы была возможность выбора товаров по id.

Для этого нужно сделать небольшие изменения в модуле товаров. А чтобы обновления виртуемарта не затерли, сделанные изменения, можно сделать копию модуля и поменять его название.

Что меняем в модуле..

Первое, это добавляем поле для ввода id товаров. В файл mod_virtuemart_product.xml добавим поле

<field
          name="product_ids"
          type="text"
          default=""
          label="Product ids"
          description="Product ids"
        />

Id товаров будем вводить через пробел.

И, второе, подредактируем файл mod_virtuemart_product.php

Вначале файла добавим строку для получения, добавленного поля

$product_ids = $params->get('product_ids', '');

И вместо

$products = $productModel->getProductListing($Product_group, $max_items, $show_price, true, false,$filter_category, $category_id);
$productModel->addImages($products);

Добавим

if (empty($product_ids)){

 $products = $productModel->getProductListing($Product_group, $max_items, $show_price, true, false,$filter_category, $category_id);
 $productModel->addImages($products);
}else{
 $product_ids = trim($product_ids);
 $product_ids = explode(' ', $product_ids);

 $productModel = VmModel::getModel('Product');

 $products = array();
 foreach($product_ids as $virtuemart_product_id){
  $products[] = $productModel->getProduct(trim($virtuemart_product_id));

 }

 $productModel->addImages($products);

}