Как отобразить этот продукт имеет правило корзины в prestashop 1.6

Для prestashop 1.6 Мы установили правила корзины для конкретного продукта, добавив 3 продукта, еще один продукт будет добавлен в качестве подарка,

Это все хорошо работает на странице корзины,

но как отобразить это на этой конкретной странице продукта

$context::$this->$cart->$getCartRules();

не отображается на странице товара

Мы должны отобразить правило корзины для конкретного продукта, который соблюдает правила корзины,

ex. "buy this product and you will get xyz product for free"

3 ответа

Я думаю, вам придется создать свой собственный запрос, выбрав cart_rules с идентификатором gift_product, который все еще активен.

Добавьте статический метод в CartRule (или там, где вам нужно), вызовите файл product.tpl напрямую и покажите его

например: {CartRule::getGifts($product.id)} затем обработать результат

Мое решение в Product.php

 public function getRule($category = "0"){
   $rules = Db::getInstance()->executeS('SELECT *,rg.quantity as minimum_quantity FROM `'._DB_PREFIX_.'cart_rule_product_rule_value` cv 
            LEFT JOIN `'._DB_PREFIX_.'cart_rule_product_rule` pr ON cv.id_product_rule = pr.id_product_rule 
            LEFT JOIN `'._DB_PREFIX_.'cart_rule_product_rule_group` rg ON pr.id_product_rule_group = rg.id_product_rule_group
            LEFT JOIN `'._DB_PREFIX_.'cart_rule` cr ON cr.id_cart_rule = rg.id_cart_rule
            WHERE code = "" and ((cv.id_item = '.$this->id.' and type = "products") or (cv.id_item = '.$category.' and type = "categories")) AND cr.date_to >= "'.date("Y-m-d H:i:s").'"'
    );
    return $rules;
}

Создайте пользовательский запрос для того же:

$result = Db::getInstance()->executeS('
            SELECT *,rg.quantity as minimum_quantity FROM `'._DB_PREFIX_.'cart_rule_product_rule_value` cv 
                LEFT JOIN `'._DB_PREFIX_.'cart_rule_product_rule` pr ON cv.id_product_rule = pr.id_product_rule 
                LEFT JOIN `'._DB_PREFIX_.'cart_rule_product_rule_group` rg ON pr.id_product_rule_group = rg.id_product_rule_group
                LEFT JOIN `'._DB_PREFIX_.'cart_rule` cr ON cr.id_cart_rule = rg.id_cart_rule
                WHERE cv.id_item = '.$this->id_product.' AND cr.gift_product > 0 AND cr.date_to >= "'.date("Y-m-d H:i:s").'"'
            );
Другие вопросы по тегам