Модификация Расчёта "дополнительного Сбора" У Платежа

Здравствуйте,
Есть задумка изменить расчёт "Дополнительного сбора" у платежей (в старых версиях называлось "Доплата") таким образом, чтобы показывать покупателю комиссию Почты EMS для наложенного платежа согласно тарифам http://www.emspost.ru/ru/platej/.

Дополнительный сбор включу только у одного вида оплаты, т. е. код расчёта готов слегка покорёжить и потерять возможность "обычного" поведения сбора.
Расчёт нашёл сразу в двух местах - в fn.cart.php в функциях fn_update_payment_surcharge() и fn_prepare_checkout_payment_methods().

В обеих функциях есть расчёт в соответствии с доступным абсолютным или процентным значением сбора.

fn_update_payment_surcharge()

            if (floatval($surcharges['absolute'])) {
                $cart['payment_surcharge'] += $surcharges['absolute'];
            }
            if (floatval($surcharges['percentage'])) {
                $cart['payment_surcharge'] += fn_format_price($cart['total'] * $surcharges['percentage'] / 100);
            }

fn_prepare_checkout_payment_methods()

if (floatval($v['a_surcharge'])) {
            $payment_methods[$k]['surcharge_value'] += $v['a_surcharge'];
        }
        if (floatval($v['p_surcharge']) && !empty($cart['total'])) {
            $payment_methods[$k]['surcharge_value'] += fn_format_price($cart['total'] * $v['p_surcharge'] / 100);
        }

Вопросы:

1. Для обозначенной задачи нужно модифицировать одну из этих функций или обе?

2. Как внутри можно получить значение региона покупателя?

Заранее спасибо!

Здравствуйте,
Есть задумка изменить расчёт "Дополнительного сбора" у платежей (в старых версиях называлось "Доплата") таким образом, чтобы показывать покупателю комиссию Почты EMS для наложенного платежа согласно тарифам http://www.emspost.ru/ru/platej/.

Дополнительный сбор включу только у одного вида оплаты, т. е. код расчёта готов слегка покорёжить и потерять возможность "обычного" поведения сбора.
Расчёт нашёл сразу в двух местах - в fn.cart.php в функциях fn_update_payment_surcharge() и fn_prepare_checkout_payment_methods().

В обеих функциях есть расчёт в соответствии с доступным абсолютным или процентным значением сбора.

fn_update_payment_surcharge()

            if (floatval($surcharges['absolute'])) {
                $cart['payment_surcharge'] += $surcharges['absolute'];
            }
            if (floatval($surcharges['percentage'])) {
                $cart['payment_surcharge'] += fn_format_price($cart['total'] * $surcharges['percentage'] / 100);
            }

fn_prepare_checkout_payment_methods()

if (floatval($v['a_surcharge'])) {
            $payment_methods[$k]['surcharge_value'] += $v['a_surcharge'];
        }
        if (floatval($v['p_surcharge']) && !empty($cart['total'])) {
            $payment_methods[$k]['surcharge_value'] += fn_format_price($cart['total'] * $v['p_surcharge'] / 100);
        }

Вопросы:

1. Для обозначенной задачи нужно модифицировать одну из этих функций или обе?

2. Как внутри можно получить значение региона покупателя?

Заранее спасибо!

Посмотрите модуль "eDost" там есть такое.

При создании способа оплаты выберите шаблон edost_cod.tpl (наложенный платёж).