Ubercart. Как правильно словить событие, что оплаченно.

Главные вкладки

Аватар пользователя likin likin 20 февраля 2014 в 19:06

Доброго дня.
Разрабатываю сервис предостовления информационных услуг на определенный период. Ubercart выбрали как базовое решение. Пользователь создаётся в процессе checkout заказа, оплата проводиться через paypal.

Когда необходимо предоставить услугу? Как мы можешь словить, что заказ полностью завершён, включая оплату?

hook_uc_checkout_complete - Smile Не подходит.
hook_uc_order - Так часто вызывается ...

Спасибо.

Комментарии

Аватар пользователя whellcome whellcome 21 февраля 2014 в 1:12

hook_uc_order будет наверняка, ловит любые движняки, передаёт ордер в параметрах, ты просто проверяешь операцию, статус ордера, если завершён, а услуга не оказана - клиент твой.
А вызывается он многими модулями в любом случае, просто сделай эффективную и быструю проверку.

другие варианты не так часты, но гарантируют большее количество телодвижений, например
hook_uc_payment_entered возникает при оплате, но не факт, что заказ будет завершён - нужно проверить баланс, возможно, что-то ещё.

Для эффективного отлова удобно использовать rules, уберкарт вызывает определенные правила в процессе работы с заказом, можно легко упасть на хвост.