На страннице оформления заказа не всегда поле местоположение идет первым, и после того как пользователь ввел свои данные, меняет город, происходит перезагрузка и поля пустые. Поэтому на странице оформления заказа перезагрузка отключена.
Но вы можете использовать JS событие смены города, для этого нужно на странице добавить javascript код:
<script type="text/javascript">
$(document).on('bxmaker.geoip.select.location.after', function(e, data){
if (!!BX.Sale && !!BX.Sale.OrderAjaxComponent && !!BX.Sale.OrderAjaxComponent.sendRequest) {
// чтобы не потерять значения заполненых полей
$('input[name="ORDER_PROP_1"]').val(data.response.location_code);
// бывает нужно вставить еще и в другие скрытые поля
// $('input.bx-ui-sls-fake').val(data.response.location_code);
// так как страница не перезагрузится, но отобразить на странице везде нужно новый город
//window.BXmakerGeoIPCity.showCity();
// теперь можно отправить данные формы для перерасчета
BX.Sale.OrderAjaxComponent.sendRequest();
}
else if (!!BX.saleOrderAjax) {
$('input[name="ORDER_PROP_1"]').val(data.response.location_code);
// location.reload();
}
});
</script>
Это нормально, в вебвизор подгружается странница сайта на которой выполняется js , город берется из cookie, которые не могут быть установлены на страницы вебвизора (так как домен сайта отличается от домена на котором находится сам вебвизор), поэтому и отображается false вместо реального значения, по факту люди видят актуальный для себя город.
Это особенность вебвизора.
Периодически нам пишут, что модуль не определяет город, при этом в настройках включают все подряд и не читают подписи. Самая частая причина в том, что на редакциях битрикс в которых есть интернет магазин и местоположения включен параметр Использовать для поиска города сервисы Яндекса.
Для решения нужено в настройках убрать галочку - "Использовать для поиска города сервисы Яндекса", тогда поиск города будет происходить в базе местоположений сайта и ошибок не будет.
При выполнении скриптов комопнентов проверяется наличие переменной jQuery
, которая с версии 2.0.0
доступна и как $
. Если у вас старая версия, то проверка наличия библиотеки пройдет нормально, но $
не будет определена. Чтобы это исправить можно на страницу, в шаблон добавить соответствующую проверку и установку.
<script type="text/javascript" >
if($ !== jQuery) {
$ = jQuery;
}
</script>
Если вы получаете ошибку примерно следующего содержания
Ошибка в updater'е 2.6.0 модуля bxmaker.geoip [1060] Duplicate column name 'LOCATION_ID' .....Обновление не установлено
То необходимо выполнить следующие SQL команды например через админку - Рабочий стол / Настройки / Инструменты / SQL запрос
ALTER TABLE `bxmaker_geoip_message` DROP COLUMN `LOCATION_ID`;
DROP INDEX `ix_type_location` ON `bxmaker_geoip_message`;
После этого можно вновь запустить установку обновлений модуля.