Я делал подобное следующим образом:
при реге нового пользователя, в init.php делал обработчик AddEventHandler("main", "OnAfterUserRegister", "coupon");, который создает купон на один заказ, к уже созданной скидке по определенной маске, к примеру XXXXXXX-USERID, а сам новый юзер попадает в определенную группу, к которой и привязана эта скидка.
плюсом, после авторизации выводилось попап окно с поздравлением о регистрации и строкой купона + не использованный купон высвечивался в ЛК(при наличии) юзера
сама функция создания купона[CODE]function coupon(&$userId) {
$arCouponFields = array(
"DISCOUNT_ID" => "14",
"ACTIVE" => "Y",
"ONE_TIME" => "Y",
"COUPON" => 'XXXXXXX_'.$userId['USER_ID']
);
$CID = new CCatalogDiscountCoupon();
$CID->Add($arCouponFields);
}
[/CODE]