Здравствуйте! Может, кто-нибудь поможет решить проблему? Очень надо чтобы в списке товаров выводились только те, количество которых > 0. Покопавшись понял, что, видимо, надо подправить MySQL запрос в файле classes/Product.php, а именно в этой части кода (строки 576-605) . Только, сколько не бился, сам не могу грамотно написать. Понимаю, что надо вставить дополнительное условие where p.`quantity` > 0 , но что-то делаю неправильно.
Кусок кода с которым, по моим предположениям, надо работать:
static public function getProducts($id_lang, $start, $limit, $orderBy, $orderWay, $id_category = false, $only_active = false)
{
if (!Validate::isOrderBy($orderBy) OR !Validate::isOrderWay($orderWay))
die (Tools::displayError());
if ($orderBy == \'id_product\' OR $orderBy == \'price\' OR $orderBy == \'date_add\')
$orderByPrefix = \'p\';
elseif ($orderBy == \'name\')
$orderByPrefix = \'pl\';
elseif ($orderBy == \'position\')
$orderByPrefix = \'c\';
$rq = Db::getInstance()->ExecuteS(\'
SELECT p.*, pl.* , t.`rate` AS tax_rate, m.`name` AS manufacturer_name, s.`name` AS supplier_name
FROM `\'._DB_PREFIX_.\'product` p
LEFT JOIN `\'._DB_PREFIX_.\'product_lang` pl ON (p.`id_product` = pl.`id_product`)
LEFT JOIN `\'._DB_PREFIX_.\'tax` t ON (t.`id_tax` = p.`id_tax`)
LEFT JOIN `\'._DB_PREFIX_.\'manufacturer` m ON (m.`id_manufacturer` = p.`id_manufacturer`)
LEFT JOIN `\'._DB_PREFIX_.\'supplier` s ON (s.`id_supplier` = p.`id_supplier`)\'.
($id_category ? \'LEFT JOIN `\'._DB_PREFIX_.\'category_product` c ON (c.`id_product` = p.`id_product`)\' : \'\').\'
WHERE pl.`id_lang` = \'.intval($id_lang).
($id_category ? \' AND c.`id_category` = \'.intval($id_category) : \'\').
($only_active ? \' AND p.`active` = 1\' : \'\').\'
ORDER BY \'.(isset($orderByPrefix) ? pSQL($orderByPrefix).\'.\' : \'\').\'`\'.pSQL($orderBy).\'`\'.pSQL($orderWay).
($limit > 0 ? \' LIMIT \'.intval($start).\',\'.intval($limit) : \'\')
);
if($orderBy == \'price\')
Tools::orderbyPrice($rq,$orderWay);
return ($rq);
}
Помогите, пожалуйста! Спасибо!