Как настроить Промо-Акцию на сумму заказа только в определенной категории

Подскажите, как настроить промо-акцию, пожалуйста.
Механика акции следующая: скидка определенного размера в зависимости от суммы заказа.
НО. Нужно, чтобы в сумме для учитывались только товары из одной категории. И чтобы не учитывались товары со скидкой.
Не получается никак сделать. Помогите, пожалуйста.

Я уже спрашивал неоднократно. Если промо акция распространяется только на часть товара - то если в корзине помимо акционных товаров появится товар неакционный - то промо не будет применена ко всей корзине. Задал вопрос: получается, промо имеет название - не покупайте этот товар, из-за него вы все остальное купите дороже (товары со скидкой по промо придется купить без скидки) иответ был - да, всё правильно, именно такая логика заложена в промо :slight_smile:
Вобщем смысл промо с выбором категорий и товаров - не то что именно на них будет распространяться акция, а что только они должны лежать в корзине, и ничего более; по моему - самое тупое условие из всех что можно было придумать

3 лайка

трэш…

Хотя…
пробовали вот этот бонус? я уже не помню на чем остановился в своих экспериментах
image

Пробовала( Суть в том, что именно условие должно распространятся на определенную категорию. То есть сумма заказа товаров определенной категории. Думала как раз через список в условиях сделать. И никак.
Покручу еще, может что и накручу.

Я у себя так делаю - создаю акции на разные случаи и через доработку некоторые выключаю.
И там же учитываю дополнительные условия - входят ли товары в категории, набирается ли из выбранных товаров необходимая сумма/количество и прочее.

Ну это никак и не сделать. Нет такого условия, чтоб считалась сумма для категории, да еще без учета скидочных товаров. Закажете модуль, например, у ecom-labs, возможно и сделают. :frowning:

Да, не получилось. Тупо оставили одни скидки(
Видимо действительно только через разработку модуля…

В мои доработки пишем:
init.php
fn_register_hooks(
‘promotion_apply_pre’
);

func.php
function fn_my_changes_promotion_apply_pre(&$promotions, &$zone, &$data, &$auth, &$cart_products)
{
if(isset($promotions[‘cart’][231])) //231 - id номер акции, можно смотреть через админку
{
$totalsum=0;
foreach($cart_products as $ck=>$cv) //например, цикл по товарам. посмотрим все
if(in_array($cv[‘product_id’],555)) //555 - интересующая нас категория
$totalsum+=$cv[‘subtotal’]*$cv[‘amount’]; //умножаем кол-во товаров в корзине на их цену
}
if(условия отменить акцию) unset($promotions[‘cart’][231]); //например, $totalsum<8000
}

То есть я включаю акцию для более широкого списка товаров, и через доработку уже отключаю ее, если все условия не выполнены

Костыли и велосипеды, но работает.