Можно через хук, хук работает когда человек подтверждает регистрацию
Core_Event::attach('siteuser.onAfterActivate', array('Siteuser_Observer', 'onAfterActivate'));
<?php
defined('HOSTCMS') || exit('HostCMS: access denied.');
class Siteuser_Observer
{
static public function onAfterActivate($model)
{
$oShop_Siteuser_Transaction = Core_Entity::factory('Shop_Siteuser_Transaction');
$oShop_Siteuser_Transaction->shop_id = 123; // ID магазина
$oShop_Siteuser_Transaction->siteuser_id = $model->id;
$oShop_Siteuser_Transaction->active = 1;
$oShop_Siteuser_Transaction->amount = 500; // Сумма начисления
$oShop_Siteuser_Transaction->shop_currency_id = 123; // ID валюты
$oShop_Siteuser_Transaction->amount_base_currency = 500; // Сумма начисления в базовой валюте
$oShop_Siteuser_Transaction->shop_order_id = 0;
$oShop_Siteuser_Transaction->type = 2; // Тип начисления 0 - обычная, 2 - бонус
$oShop_Siteuser_Transaction->description = "Бонус за регистрацию";
$oShop_Siteuser_Transaction->save();
}
}