Где Делать Пересчет Скидки На Корзину?

Делаю аддон, где в чекауте в последнем шаге добавляется поле "Промокод" с неким процентом скидки на всю корзину.

И оно при ходит в $_REQUEST['promocode'] на сервер.

Как и в каком месте сделать пересчет всей корзины на шаге place_order?

Дефолтную функциональность промо акций используете? Или все полностью самописное?

Дефолтную функциональность промо акций используете? Или все полностью самописное?

Пишу сам, делаю по простому

- в админке список (добавить/изменить/удалить) промокодов (id, code, discount %, active)

- добавил хук на checkout.cart с вводом промокода и экшном "применить"/"удалить"

- checkout.post.php - добавил сохранение/удаления промокода в/из сессии

- теперь, как я понял, когда происходит повторный fn_dispatch() по отработке redirect_url=checkout.cart - в функции fn_calculate_cart_content() надо где то вставить хук. чтобы пересчитать subtotal_discount - и он автоматом учтется при подсчетет тотала.

Вот какой хук для этого заюзать, чтобы в последовательность действий вклиниться правильно?

Юзайте calculate_cart_items. Он как раз перед применением дефолтных промо акций стоит.

подскажите, пожалуйста, как сделать что бы бонусы от купонов ( акция для корзины) не распространялись на товары со скидкой по акциям для каталога? использую стандартный функционал промо кодов