[QUOTE]Евгений Плашенко написал:
Видимо (если никто ничего не предложит) придётся пойти именно этим "тернистым" путём.[/QUOTE]
В целом, для именно простых акций будет проще так:
1) Создать таблицу/highload/инфоблок, куда записывать: ID товара и ID правила корзины, на основе которого добавлена скидка
2) При изменении скидки, удалять все товары по этой скидке и переиндексировать "в фоне" (на агентах/кроне) товары.
При этом можно действовать как позитивно (предполагать что состав товаров изменился мало, поэтому переиндесировать все товары и изменить только измененные), так и негативно (предполагать что это совершенно другой состав, поэтому сначала очищать записи, а затем переиндексировать и по мере индексации добавлять).
Видимо (если никто ничего не предложит) придётся пойти именно этим "тернистым" путём.[/QUOTE]
В целом, для именно простых акций будет проще так:
1) Создать таблицу/highload/инфоблок, куда записывать: ID товара и ID правила корзины, на основе которого добавлена скидка
2) При изменении скидки, удалять все товары по этой скидке и переиндексировать "в фоне" (на агентах/кроне) товары.
При этом можно действовать как позитивно (предполагать что состав товаров изменился мало, поэтому переиндесировать все товары и изменить только измененные), так и негативно (предполагать что это совершенно другой состав, поэтому сначала очищать записи, а затем переиндексировать и по мере индексации добавлять).