Меню

Запретить оплату с внутреннего счета, если в корзине есть определенный товар

RSS
Запретить оплату с внутреннего счета, если в корзине есть определенный товар
 
Запретить оплату с внутреннего счета, если в корзине есть определенный товар

Задача: пользователи могут оплачивать заказы с бонусного счета (штатный внутренний счет), но если в корзине  есть определенные товары - то в этом заказе нужно запретить оплату бонусами.
 
Улучшенный вариант получения корзины на D7
Код
use Bitrix\Sale;
use Bitrix\Main\Loader;
use Bitrix\Iblock\Elements\ElementTable;
use Bitrix\Iblock\PropertyTable;

Loader::includeModule("sale");
Loader::includeModule("iblock");

// Получаем корзину текущего пользователя
$basket = Sale\Basket::loadItemsForFUser(Sale\Fuser::getId(), SITE_ID);

// Проходим по элементам корзины
foreach ($basket as $basketItem) {
    $productId = $basketItem->getProductId();

    // Получаем значение свойства товара с кодом 'ZAPRESHCHENO_OPLACHIVAT_BONUSAMI'
    $property = PropertyTable::getList([
        'filter' => [
            'IBLOCK_ID' => 4,
            'CODE' => 'ZAPRESHCHENO_OPLACHIVAT_BONUSAMI',
            'IBLOCK_ELEMENT_ID' => $productId
        ],
        'select' => ['VALUE']
    ])->fetch();

    // Проверка на запрет оплаты бонусами
    if ($property && $property['VALUE'] === 'Да') {
        $hidePayBonus = 'Y';
        break; // Прерываем цикл, если нашли хотя бы один товар с запретом
    }
}
$APPLICATION->IncludeComponent(
    "bitrix:sale.order.ajax",
    "new_order",
    array(
       ... параметры компонента ...
        "PAY_FROM_ACCOUNT" =>  $hidePayBonus ? 'N' : 'Y';
        ... параметры компонента ...
    ),
    false
);
Изменено: Михаил Базаров - 24.09.2024 12:54:57
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

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

Фотогалерея на базе компонента новостей, с fancybox.

Это заметка обновление к очень старой, уже имеющейся на сайте. Сделаем что-то типа фотогалереи на базе встроеннного в би...

Спойлер в списке новостей 1С-Битрикс

Иногда нужно сделать спойлеры в копонентах 1C-Битрикс, в основном конечно, имеет смысл при очень больших обьемах контент...

Удалить товары из корзины, если есть определенные товары.

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

Создание мобильного приложения на cordova, для любого сайта.

Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данной заметкой. Постарался сделать...

Добавить свойство в административную форму заказа

Задача, кастомизировать административную форму заказа: добавить свойство заказа в шапку формы, в виде картинки. На сайте...

Memcached на сайте под управлением битрикс, при использовании Веб Окружения Битрикс

Если вам важна скорость отдачи сайта, а у вашего сервера медленный диск для использования кеша на файлах. Можно кеширова...

AJAX корзина с отправкой количества из раздела каталога

Столкнулся с задачкой: нужно было на одном сайте реализовать интерактивный прайс лист. При этом, у пользователя должна б...

Автоматическая загрузка каталогов из csv файлов в Битрикс

Если требуется настроить автоматический импорт каталогов из csv файлов, от поставщиков. В 1С-Битрикс, уже есть весь не...

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

Задача: после того как заказ, в интернет-магазине, перешел в статус "Выполнен" начислить пользователю 5% от стоимости за...