Если покороче, то вопрос такой.
Как програмно изменить величину скидки в Правилах корзины???
Как создать купон это понятно
$rule = new CartRule;
$rule->name[Configuration::get('PS_LANG_DEFAULT')] = $this->l('Gift Certificate');
$rule->id_customer = $id_customer; //ID клиента, для которого создается купон
$rule->date_from = date('Y-m-d', time());
$rule->date_to = date('Y-m-d', strtotime('+1 year', time()));
$rule->quantity = 1; //количество купонов
$rule->quantity_per_user = 1;
$rule->partial_use = TRUE;
$rule->code = Tools::passwdGen(); //код купона
$rule->reduction_amount = 100; //сумма купона
$rule->active = TRUE;
$rule->minimum_amount_currency = 1;
$rule->reduction_currency = $id_currency;
if (Shop::isFeatureActive()) {
$rule->shop_restriction = 1;
}
$rule->save();
А вот как затем в нём изменить
$rule->reduction_amount = 100; //сумма купона
Подскажите пожалуйста!
Пока нашёл только один вариант.
В таблице cart_rule находим нужную бонусную карту и далее в поле reduction_amount вносим необходимую величину скидки.
И после этого вызываем:
$this->context->cart->addCartRule($id_cart_rule);