Внутренний счет в Битрикс позволяет накапливать и списывать бонусы, оплачивать покупки и автоматизировать финансовые операции. В этой статье разберем самые полезные методы API для работы с внутренним счетом.
Зачем нужен внутренний счет в Битрикс?
С его помощью можно реализовать:
Начисление бонусов за приглашение друга
Списание баллов при оформлении заказа
Автоматические бонусы за покупки
Внутреннюю валюту для клиентов
1. Получение данных о счете: CSaleUserAccount::GetByID
Этот метод возвращает параметры счета по его ID.
Пример использования:
if ($ar = CSaleUserAccount::GetByID(5)) {
echo "На счете: " . SaleFormatCurrency($ar["CURRENT_BUDGET"], $ar["CURRENCY"]);
}Возвращаемые параметры:
-
ID– идентификатор счета -
USER_ID– ID владельца -
CURRENT_BUDGET– текущий баланс -
CURRENCY– валюта -
NOTES– описание -
LOCKED– статус блокировки -
TIMESTAMP_X– дата изменения -
DATE_LOCKED– дата блокировки
2. Управление транзакциями: CSaleUserTransact::Add и CSaleUserTransact::Delete
Удаление транзакции:
$del = CSaleUserTransact::Delete(123); // ID транзакцииДобавление транзакции:
CSaleUserTransact::Add([
"USER_ID" => 1,
"AMOUNT" => 1000,
"CURRENCY" => "RUB",
"DEBIT" => "Y", // Y – зачисление, N – списание
"DESCRIPTION" => "Бонус за покупку",
"ORDER_ID" => 12345,
"EMPLOYEE_ID" => 2,
"TRANSACT_DATE" => date("Y-m-d H:i:s")
]);
Важно: Транзакция не меняет баланс счета. Для обновления суммы используйте CSaleUserAccount::UpdateAccount.
3. Форматирование суммы: SaleFormatCurrency
Функция преобразует число в денежный формат с указанной валютой.
Пример:
echo SaleFormatCurrency(11800.95, "USD"); // Выведет: $11,800.954. Основные методы класса CSaleUserAccount
Этот класс позволяет:
-
Добавлять счет (
::Add) -
Обновлять данные (
::Update) -
Удалять счет (
::Delete)
Полезные методы:
-
UpdateAccount– изменение баланса (основной метод) -
GetByUserID– получение счета по ID пользователя -
GetByID– данные счета по его ID