Как отобразить этот продукт имеет правило корзины в 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").'"'
);