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

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

Оглавление:

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

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

    \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);
    }
    }
    }



    06.07.2021
    1C-Битрикс или Wordpress: какую CMS выбрать для лучшей работы сайта?