Бесплатные Продукты: Как Сделать, Чтоб Добавлялись Больше Одного

Проблема, насколько я понял, уже давно интересует некоторых пользователей CS-Cart:

Как сделать, чтоб при добавлении двух и более единиц товара, к которым положен бесплатный товар по промо-акции, добавлялось соответствующее количество бесплатных товаров.

Подобные вопросы были тут и тут, и где-то еще встречал. Идеальный вариант, конечно, был бы в добавлении настройки в акцию типа «добавлять один» VS «добавлять пропорционально количеству».

Пытался поискать, где добавляется этот промо-товар. Вроде бы в app\functions\fn.promotions.php этим заведует функция fn_promotion_apply_cart_rule

и вроде бы это происходит тут:

 if ($ids = fn_add_product_to_cart($product_data, $cart, $auth)) {
                    $new_products = array_diff(array_keys($cart['products']), $existing_products);
                    if (!empty($new_products)) {
                        $hash = array_pop($new_products);
                    } else {
                        $hash = key($ids);
                    }
                $_cproduct = fn_get_cart_product_data($hash, $cart['products'][$hash], true, $cart, $auth, !empty($new_products) ? 0 : $p_data['amount']);
                if (!empty($_cproduct)) {
                    $cart_products[$hash] = $_cproduct;
                }
            }

Но что нужно делать, чтоб добавлялось пропорциональное количество продуктов?

И общий вопрос: все-таки это должен быть общий функционал? Или нужно дополнительный модуль делать, потому что запрос единичный, а большинству это не нужно?

Скажите вы нашли решение проблемы?

Да, заказали модуль.

Под себя или нашли где то на маркете?

Заказали под себя.