Привет всем!
Тем, кто заглянул сюда, чтобы понять, как сделать начальное местоположение при оформлении заказа, это будет полезно.
Для полноты картины почитайте статью "Дорабатываем мультирегиональность в 1С Битрикс".
В интернете есть немного информации об этом:
https://dev.1c-bitrix.ru/community/webdev/user/154716/blog/26987/
https://dev.1c-bitrix.ru/support/forum/forum6/topic106001/
но почему-то у меня эти способы не срабатывают.
В связи с этим пришлось искать новые пути решения.
Мой способ будет основан на использование сессий.
В файле init.php мы прописали такое:
AddEventHandler("sale", "OnSaleComponentOrderOneStepOrderProps", "OnSaleComponentOrderOneStepOrderProps");
function OnSaleComponentOrderOneStepOrderProps(&$arResult, &$arUserResult, &$arParams)
{
$arUserResult['DELIVERY_LOCATION'] = $_SESSION["id_region"];
}
В итоге происходило так, что пользователь не мог изменить вручную местоположение.
Исправим ситуацию таким образом:
AddEventHandler("sale", "OnSaleComponentOrderOneStepOrderProps", "OnSaleComponentOrderOneStepOrderProps");
function OnSaleComponentOrderOneStepOrderProps(&$arResult, &$arUserResult, &$arParams)
{
if($_SESSION["sale_order_ajax"] != 'Y'){
if(isset($_SESSION["id_region"])){
$arUserResult['DELIVERY_LOCATION'] = $_SESSION["id_region"]; // id Санкт-Петербурга
}
}
}
Так же в header.php добавим:
$_SESSION["sale_order_ajax"] = 'N';
Вот так с помощью сессий мы исправили ситуацию.
Спасибо за внимание.