Но возникают задачи, которые требуют информирования сторонних компонентов о состоянии операций биллинга. Вот примеры:
▷ За реальные деньги куплена валюта сайта и внесена на счёт пользователя.
▷ Пользователь потратил "баллы" на покупку услуги или цифрового товара.
Торгующий компонент должен передать информацию об этом событии, например, в кассовый сервис или сделать какие-то другие действия, которые требуются именно в этот момент и с этим заказом.
По логике CMS, компонент Биллинг должен известить о завершении этого события другие компоненты.
Однако, ни в документации, ни в менеджере событий таких событий не обнаружилось.
Как слушатель, Биллинг обладает огромными ушами — список в его манифесте один из самых развесистых.
Но генерирует ли Биллинг события?
R2 рекомендует узнавать это нехитрым поиском в папке компонента:
Чтобы узнать какие события генерирует интересующий вас компонент – просто сделайте поиск строки cmsEventsManager::hook или cmsEventsManager::hookAll по всем файлам внутри папки данного компонента.
Увы, даже слова «hook» вы таким образом не обнаружите в папках Биллинга — большая часть компонента закрыта наглухо, а в открытом коде этого нет. То, что этот компонент должен быть закрыт — сомнений нет.
Но как же узнавать о статусе операций?