Исключить товары, которых нет в наличии, из списка новых товаров - Prestashop

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

Я могу сделать это в части представления, используя {if $product.quantity < 0}{/if}, но моя цель — выполнить это в контроллере. Вот мой код:

function hookHome($params)
        {
        global $smarty, $cookie;


          $nb = intval(Configuration::get('HOME_NEW_PRODUCTS_NBR'));
        $rand = intval(Configuration::get('HOME_NEW_PRODUCTS_RANDOM'));
        if ($rand == 1) {
          $products = Product::getNewProducts(intval($cookie->id_lang), 0, $nb); 
        if ( $products )
        {
        shuffle($products);
        array_slice($products, ($nb ? $nb : 10));
        }
        }
        else 
        {
          $products = Product::getNewProducts(intval($cookie->id_lang), NULL - 0, (intval($nb ? $nb : 4)), false, NULL, NULL);
        }       
        $smarty->assign(array(
    ....
        'products' => $products,
    ....
    );
        return $this->display(__FILE__, 'homenewproducts.tpl');
        }

Как я могу переопределить класс Product, чтобы метод getNewProducts учитывал исключение товаров, которых нет в наличии?

Или, по крайней мере, как я могу удалить из $products продукты с количеством = 0, используя PHP?

Ваша помощь приветствуется.


person Adib Aroui    schedule 11.07.2014    source источник


Ответы (1)


Ну, решение, которое я использую сейчас:

В product.php я изменил sql-запросы в методе getNewProducts внутри NewProductsController, чтобы он учитывал наличие товара на складе.

Я добавил AND 'quantity'!=0 в строке 2062 и $sql->where('p.'quantity' != 0'); в строке 2086. Престашоп 1.6.0.6.

Конечно, лучше переопределить класс Product.php, чем изменять его.

Я надеюсь, что это может помочь.

person Adib Aroui    schedule 12.07.2014