В данной статье ознакомимся с самыми популярными методами для решения задач связанных с внутренним счетом.
Зачем вообще нужен внутренний счет в Битриксе? Для того чтобы накапливать и списывать «бонусы», оплачивать с их помощью покупки. Данные методы помогут вам реализовать «начисление бонусов за приглашение», «начисление бонусов за покупку», «списание бонусов при оформлении заказа» и многое другое.
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/