Оплата товара по ссылки предоставленной менеджером сайта Битрикс

Разработка
В одном из проекте было важно учесть чтобы по умолчанию в системе Битрикс был установлен способ оплаты по Сбербанку (экваринг), но в тоже время не дать посетителю сайту произвести оплату онлайн, а оплата происходила после предоставление ссылки на оплату через панель администрирования. Мол ссылка оплаты формировалась с администраторской части.

Что нам пришлось сделать, мы написали обработчик который делал подмену способа оплата на другой способ оплаты, тем самым у пользователя не появлялась возможность получить доступ к эварингу сразу, но в тоже время сам экваринг управлялся с админки

\Bitrix\Main\Context::getCurrent()->getRequest()->isAdminSection()
- данное условие позволяет проверять, находимся ли в панели администрирования пользователь в данный момент времени или нет.
$eventManager->addEventHandler('sale', 'OnSaleOrderBeforeSaved', 'OnSaleOrderBeforeSavedCustom');
function OnSaleOrderBeforeSavedCustom(\Bitrix\Main\Event $event)
{
    $order = $event->getParameter("ENTITY");
    //Собираем свойства заказа
    $orderProps = [];
    /** @var Bitrix\Crm\Order\PropertyValue $orderProp */
    $propertyCollection = $order->getPropertyCollection();
    foreach ($propertyCollection as $propId => $orderProp) {
        if (!empty($orderProp->getField("CODE"))) {
            $orderProps[$orderProp->getField('CODE')] = trim($orderProp->getValue());
        }
    }


    /**  @var $paymentCollection \Bitrix\Sale\PaymentCollection */
    $paymentCollection = $order->getPaymentCollection();
    foreach ($paymentCollection as $payment) {
        /**  @var $payment \Bitrix\Sale\Payment */
        /**  @var $paySystem \Bitrix\Sale\PaySystem\Service */
        $paySystem = $payment->getPaySystem();
        if (!is_null($paySystem) && !$paySystem->isCash() && !\Bitrix\Main\Context::getCurrent()->getRequest()->isAdminSection()) {
            //проставляем по умолчанию "расчет доставки"
            $payment->setField("PAY_SYSTEM_ID", 11);
        }
    }
}


telegram

Вступайте в сообщество РумРум!

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

Вступить в телеграм-чат

Похожие статьи

Сергей Эсауленко
Сергей Эсауленко

Руководитель

01.10.2025
Разработка
Как правильно дорабатывать продукты Аспро, чтобы они оставались обновляемыми
Сергей Эсауленко
Сергей Эсауленко

Руководитель

07.12.2023
Разработка
Автоматические перенаправление со штатной системы оплат Битрикса
Сергей Эсауленко
Сергей Эсауленко

Руководитель

02.11.2023
Разработка
Переопределить единицу измерения Битрикс в момент обмена с 1С
Сергей Эсауленко
Сергей Эсауленко

Руководитель

08.09.2023
Разработка
Обмен с 1С по http когда сайт работает по https
Сергей Эсауленко
Сергей Эсауленко

Руководитель

20.06.2023
Разработка
Преобразователь свойства CML2_TRAITS (из 1С) в 1С-Битрикс