Иван Романенко, ох.. соболезную вам, так как вы попали на такую же ошибку как и я в свое время.
Тикет в техподдержку: 1677231. Тикет в разработку: 73537
Формально в октябре 2017 года я описывал проблему техническим кейсом:
Цитата
Есть ошибка при определении подарков.
Дано: 1) Битрикс последней стабильной версии 2) Товар А (стоимость 100 рублей) и товар Б (стоимость 35 рублей) 3) Акция: Дать в подарок товар Б, при наличии в корзине товара А.
Ситуация:
Шаг 1: пользователь добавляет в корзину товар А, выбирает подарок Б. В корзине у него товар А (1 шт, 100 рублей) и товар Б (1 шт, 0 рублей). Общая стоимость заказа: 100 рублей, 2 товарных позиции
Шаг 2: пользователь нажимает увеличить количество товара Б на 1 позицию. В корзине у него товар А (1 шт, 100 рублей) и товар Б (2 шт, 70 рублей). Общая стоимость заказа: 170 рублей, 2 товарых позиции.
По факту - должно быть подругому: Либо 3 позиции: Товар А (1 шт, 100 рублей), Товар Б (1 шт, 35 рублей) и Товар Б* (скидочный) (1 шт, 0 рублей) Либо 2 позиции: товар А (1 шт, 100 рублей) и товар Б (2 шт, 35 рублей).
При этом, если вернуться в корзину: по логике битрикса, условие выполнено, а товара нет -> появляется блок с выбором подарка, но тот же подарок выбрать нельзя! Будет просто увеличиваться количество.
Решения до сих пор нет, однако есть некоторые наработки кода по данной теме. Проблему они конечно не решают (нам пришлось написать свой обработчик и кастомизировать корзину).