VM 2.x Сортировка отсутствующих товаров в категории

В общем, решила написать. В редакторе не вижу кнопки "Код" или "спойлер", что бы красиво было, тем не менее. При использовании указанного метода "$ff_select_notinstock = ''; // добавить эту строку"
Для VM3, попробовал сделать вывод товара "новинки и по наличию", то есть кейс получается такой:

case 'created_on':
case '`p`.created_on':
$orderBy = ' ORDER BY orderme, p.`created_on` '.$filterOrderDir.', `virtuemart_product_id` '.$filterOrderDir;
$ff_select_notinstock = ', IF(p.product_in_stock - p.product_ordered > 0, 10, 1000) AS orderme ';
break;


В категории - все здорово. Но при переходе в карточку товара получаем ошибку, типа:

1054 - Unknown column 'orderme' in 'field list' SQL=SELECT p.`virtuemart_product_id`, `l`.`product_name`,orderme FROM `#__virtuemart_products`........

Кто то может посоветовать, как решить данный вопрос?
 
Последнее редактирование:
а как сделать чтобы просто не выводились товары с нулевой ценой? что в этом файле надо поправить?
 
а как сделать чтобы просто не выводились товары с нулевой ценой? что в этом файле надо поправить?
\components\com_virtuemart\views\category\tmpl\default.php // Это макет категории

// Распечатой в нем данные по этим объета
print_r($this);
print_r($product);
print_r($product->prices);
// Скорее всего в нем храниться твоя нулевая цена

// Ищем в макете \components\com_virtuemart\views\category\tmpl\default.php где выводиться цена (что типо этого)
if ($this->show_prices == '1') { // Это скорее всего у тебя начало вывода цены
$product->prices['discountedPriceWithoutTax'] // там достаточно много вариаций значений в квадратных скобках - ищешь нужный тебе участок цены (исходи из данных print_r($product->prices); // распечатоного массива)

// На участок нужной тебе нулевой цены ставишь условие
PHP:
if ($product->prices['discountedPriceWithoutTax'] == 0) {
  null;
} else {
  // тут выводишь код вывода цены
}
 
Для Virt 3 что бы в результатах поиска сначала были в наличии и потом по названию:


Код:
default:
                //$order = 'a.product_name ASC';
                $order = 'p.product_in_stock > 0 DESC, a.product_name ASC';

файл /plugins/search/virtuemartvirtuemart.php

строка примерно 150
 
Последнее редактирование:
administrator/components/com_virtuemart/models/product.php
Исправить ASC НА DESC в строке 127
Код:

Код

$filter_order_Dir = strtoupper(JRequest::getWord('order', 'ASC'));

на
Код:

Код

$filter_order_Dir = strtoupper(JRequest::getWord('order', 'DESC'));
 
Назад
Сверху