При оформление заказа проверять наличие профиля покупателя у других пользователей Битрикс

Разработка
Давольно часто приходится в момент оформления заказа формировать данные по своему. В данной ситуации делается некая проверка по имеющим профилям покупателей. Данный механизм проверяет, есть ли данный ИНН в других учетных записях пользователей. Если есть, то не даст возможность оформить заказа клиенту. Данный метод подходит для оптовых клиентов.

// События на сохранение заказа
$eventManager->addEventHandler('sale', 'OnSaleOrderBeforeSaved', 'OnSaleOrderBeforeSavedCustom');
function OnSaleOrderBeforeSavedCustom(\Bitrix\Main\Event $event)
{
    $order = $event->getParameter("ENTITY");

        //Собираем свойства заказа
        $orderProps = [];
        /** @var Bitrix\Crm\Order\PropertyValue $orderProp */
        foreach ($order->getPropertyCollection() as $propId => $orderProp) {
            if (!empty($orderProp->getField("CODE"))) {
                $orderProps[$orderProp->getField('CODE')] = trim($orderProp->getValue());
            }
        }
        //Метод возвращает результат выборки записей из профилей покупателя
        //Далее по полученным полям находим информацию по ИНН
        $arUserProps = CSaleOrderUserPropsValue::GetList(
            array("ID" => "ASC"),
            Array(
                "CODE" => 'INN',
                "VALUE" => $orderProps['INN']
            )
        )->Fetch();
        //если значение у свойства профиля существует
        //то информируем об этого пользователя
        if ($arUserProps)
        {
            $event->addResult(new \Bitrix\Main\EventResult(
                \Bitrix\Main\EventResult::ERROR,
                new \Bitrix\Sale\ResultError('Такой ИНН уже используется в другой учетной записи пользователя.
Если это ошибка, обратитесь за помощью к нам') )); } }

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

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

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

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

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

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

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

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

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

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

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

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