Форум 1С-Битрикс

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

Страницы: 1
Ответить
Как установить местоположение по умолчанию в оформлении заказа sale.order.ajax
 
Здравствуйте.
При заходе на сайт пользователем выбирается местоположение и необходимо установить это местоположение по умолчанию при оформлении заказа в компоненте sale.order.ajax в поле LOCATION.
Можете помочь, как это можно сделать?
 
Для этого можно использовать событие "OnSaleComponentOrderProperties".

Допустим у нас есть id местоположения, например Москва "0000073738"

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

Код
define('LOCATION_ID', "0000073738");

\Bitrix\Main\EventManager::getInstance()->addEventHandlerCompatible( 

    'sale', 

    'OnSaleComponentOrderProperties', 

    'SaleOrderEvents::fillLocation'

); 



class SaleOrderEvents 

{

    function fillLocation(&$arUserResult, $request, &$arParams, &$arResult) 

    {

        $registry = \Bitrix\Sale\Registry::getInstance(\Bitrix\Sale\Registry::REGISTRY_TYPE_ORDER);

        $orderClassName = $registry->getOrderClassName();

        $order = $orderClassName::create(\Bitrix\Main\Application::getInstance()->getContext()->getSite());

        $propertyCollection = $order->getPropertyCollection();



        foreach ($propertyCollection as $property)

        {

            if ($property->isUtil())

                continue;

            $arProperty = $property->getProperty();

            if(

                $arProperty['TYPE'] === 'LOCATION' 

                && array_key_exists($arProperty['ID'],$arUserResult["ORDER_PROP"])

                && !$request->getPost("ORDER_PROP_".$arProperty['ID'])

                && (

                    !is_array($arOrder=$request->getPost("order"))

                    || !$arOrder["ORDER_PROP_".$arProperty['ID']]

                )

            ) {

                $arUserResult["ORDER_PROP"][$arProperty['ID']] = LOCATION_ID;

            }

        }

    }

}
Страницы: 1
Ответить
Читают тему (гостей: 4)
Форма ответов
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Отправить Отменить