Правильный способ: написать отдельный модуль, который будет отслеживать корзину добавлять и удалять скидки (отслеживать движение товара).
Плохой способ:
Откройте файл
/controllers/front/CartController.php
после:
Код:
$cart_products = $this->context->cart->getProducts();
добавьте:
Код:
if($this->id_product == 1)
{
$add_products = true;
if ($cart_products)
{
foreach ($cart_products as $cart_product)
{
if ($cart_product['id_product'] == 1)
{
$add_products = false;
break;
}
}
}
if ($add_products)
{
$this->context->cart->updateQty(1, 2);
$this->context->cart->updateQty(1, 3);
$this->context->cart->updateQty(1, 4);
$this->context->cart->updateQty(1, 5);
}
}
2,3,4,5 - это доп. товары.
дальше необходимо для каждого товара создавать и обрабатывать правила:
например так:
Код:
$cart_rule = new CartRule();
foreach(Language::getLanguages() as $language)
$cart_rule->name[$language['id_lang']] = 'z_' . Tools::passwdGen();
$cart_rule->id_customer = $this->context->customer->id;
$cart_rule->date_from = date('Y-m-d');
$cart_rule->date_to = date('Y-m-d', strtotime('+1 year'));
$cart_rule->quantity = 1;
$cart_rule->quantity_per_user = 1;
$cart_rule->priority = 1;
$cart_rule->partial_use = 1;
$cart_rule->reduction_amount = здесь высчитывать по правилам из 1ого сообщения;
$cart_rule->reduction_currency = $this->context->cart->id_currency;
$cart_rule->product_restriction = 1;
$cart_rule->reduction_product = здесь id товара для которого даём скидку;
$cart_rule->add();