В данной статье ознакомимся с самыми популярными методами для решения задач связанных с внутренним счетом.
Зачем вообще нужен внутренний счет в Битриксе? Для того чтобы накапливать и списывать “бонусы”, оплачивать с их помощью покупки. Данные методы помогут вам реализовать “начисление бонусов за приглашение”, “начисление бонусов за покупку”, “списание бонусов при оформлении заказа” и многое другое.
CSaleUserAccount::GetByID
При помощи данного метода вы можете получить массив с необходимыми параметрами по счету:
<?if ($ar = CSaleUserAccount::GetByID(5)) { echo "На счете ".SaleFormatCurrency($ar["CURRENT_BUDGET"], $ar["CURRENCY"]); }?>
Как параметр мы передаем ID счета. А в массиве можем увидеть:
- ID – код счета;
- USER_ID – код пользователя-владельца;
- CURRENT_BUDGET – текущая сумма на счете;
- CURRENCY – валюта;
- NOTES – текстовое описание;
- LOCKED – флаг заблокированности счета;
- TIMESTAMP_X – дата последнего изменения;
- DATE_LOCKED – дата блокировки счета.
CSaleUserTransact::Add и его брат CSaleUserTransact::Delete
Начнем со второго – чтобы удалить транзакцию вам достаточно передать её ID:
$del = CSaleUserTransact::Delete(123);
Для добавления есть возможность передать целую кучу параметров в базу:
- USER_ID – код пользователя;
- AMOUNT – сумма;
- CURRENCY – валюта суммы;
- DEBIT – “Y”, если занесение денег на счет, и “N”, если списание денег со счета;
- DESCRIPTION – описание;
- ORDER_ID – код заказа, если транзакция относится к заказу;
- EMPLOYEE_ID – код пользователя, осуществившего транзакцию;
- TRANSACT_DATE – дата транзакции.
Однако помните:
Добавление транзакции не влияет на состояние счёта пользователя. Для изменения счёта используйте CSaleUserAccount::UpdateAccount
SaleFormatCurrency
Данная функция выведет отформатированную строку в той валюте, которую вы указали в параметрах:
<? echo SaleFormatCurrency(11800.95, "USD"); ?>
Класс CSaleUserAccount
Данный класс пожалуй самый полезный. С его помощью можно:
– добавить новый счет пользователя (::Add)
– обновить уже созданный счет (::Update)
– удалить счет (::Delete)
Кроме того, рассмотрим самые полезные методы для управления внутренним счетом:
– UpdateAccount – с его помощью можно изменить сумму на аккаунте (именно он и используется как основной метод)
– GetByUserID – параметры счета по ID пользователя
– GetByID – возвращает ассоциативный массив параметров счета
Несколько методов которые не вошли в этот список вы найдете ниже.
Полезные ссылки:
1. https://dev.1c-bitrix.ru/api_help/sale/classes/csaleusertransact/
2. https://dev.1c-bitrix.ru/api_help/sale/functions/saleformatcurrency.php
3. https://dev.1c-bitrix.ru/api_help/sale/classes/csaleuseraccount/