Меню
Бонус за выполненный заказ на внутренний счет пользователя

Задача: после того как заказ, в интернет-магазине, перешел в статус "Выполнен" начислить пользователю 5% от стоимости заказа, на накопительный счет - с которого можно оплатить будущие заказы.
Вывод истории начислений списаний, используем метод: CSaleUserTransact::GetList
Метод возвращает результат выборки записей транзакций в соответствии со своими параметрами. Нестатический метод.

CDBResult
CSaleUserTransact::GetList(
    array arOrder = array(),
    array arFilter = array(),
    array arGroupBy = false,
    array arNavStartParams = false,
    array arSelectFields = array()
);

Код
<table class="trans_history">
    <tr>
        <td width="200">Дата:</td>
        <td width="200">Сумма:</td>
        <td>Основание:</td>
    </tr>
    <?
    global $USER;
    $USER->GetID();
    CModule::IncludeModule("sale");
    $res = CSaleUserTransact::GetList(Array("ID" => "DESC"), array("USER_ID" => $USER->GetID()));
    while ($arFields = $res->Fetch()) {
//            echo '<pre>';
//            print_r($arFields);
//            echo '</pre>';
        ?>
        <tr>
            <td>
                <?= $arFields["TRANSACT_DATE"] ?>
            </td>
            <td>
                <?= ($arFields["DEBIT"] == "Y") ? "+" : "-" ?>
                <?= SaleFormatCurrency($arFields["AMOUNT"], $arFields["CURRENCY"]) ?>
                <small>(<?= ($arFields["DEBIT"] == "Y") ? "начислено" : "списано" ?>)</small>
            </td>
            <td>
                <?
                if (empty($arFields["NOTES"])) {
                    if (empty($arFields["ORDER_ID"])) {
                        echo 'Основание не найдено';
                    } else {
                        $arOrder = CSaleOrder::GetByID($arFields["ORDER_ID"]);
                        echo 'Заказ №' . $arOrder['ACCOUNT_NUMBER'];
                    }
                } else {
                    echo $arFields["NOTES"];
                } ?>
            </td>
        </tr>
    <? } ?>
</table>
Подскажите, а как просто массово пополнить счета большому числу пользователей по ID?

И еще... Можно ли связать внутренний счет с ифоблоком?
Массово пополнить: можно просто пробежавшись по пользователямв цикле

Код
$rsUsers = CUser::GetList(
   false, 
   false, 
   false, // Это фильтр, можно выбрать определнных пользователей, например диапазон ID или дней рождений
); // выбираем пользователей

while($arRes = $rsUsers->Fetch()){ // Проходим циклом по отобранным пользователям
      CSaleUserAccount::UpdateAccount(
            $arRes['ID'],
            '1000',
            'RUB',
            'Причина такой щедрости',
            false,
            false,
        );
}

А про связь с инфоблоком, нужны подробности, что бы подсказать что-то
Спасибо, Михаил. Просто как-то связать с инфоблоком сумму на счете, чтобы через файл подгружать по ID пользователя.
Видеоуроки по
1С-Битрикс
на моем Boosty канале Видео
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Кастомизация поля input type file, свой внешний вид

Задача: Поле input type="file" предоставляет возможность загрузки файлов на веб-странице. Однако стандартный в...

ORM: Работа с пользователями через API D7 1С-Битрикс

Заметка написана на основе старого черновика, и все описанное было проверено на чистой установке 1С-Битрикс. Примеры раб...

Заполнить свойство заказа выбранным пунктом самовывоза и передать в 1С

Задача: При оформлении заказа пользователь может выбрать пункт самовывоза (склады магазина). Нужно заполнить сво...

Композитный сайт на 1С-Битрикс

Для новых клиентов: Все новые проекты будут включать в себя применение технологии "Композитный сайт" - данная услуга уже...

Добавление не существующего товара в корзину и заказ, 1С-Битрикс

Задача: нужно добавить в корзину товар, которого не существует в каталоге, с возможностью задать ему произвольные назван...

Уникальный URL для торговых предложений (SKU) с возможностью автоматического выбора предложения при переходе по ссылке.

Задача: на странице товара необходимо реализовать функцию автоматического изменения URL при выборе определенной товарной...

Пошагово получить информацию о заказах и сохранить как Excel (xls)

Задача: Нужно получить информацию о заказах с возможностью указания даты создания "от"" и "до" ...

Сортировать товары по названию, цене и дате поступления в каталоге Битрикс

Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию в каталоге товаров работающег...

Рассылка новинок каталога в автоматическом режиме

Что бы реализовать рассылку новинок каталога на email-ы пользователей, можно воспользоваться событием OnBeforeIBlockElem...