В модуле товаров 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); }