Определение города (местоположения) по IP 2.0

Частые ошибки

Не перезагружается страница оформления заказа

На страннице оформления заказа не всегда поле местоположение идет первым, и после того как пользователь ввел свои данные, меняет город, происходит перезагрузка и поля пустые. Поэтому на странице оформления заказа перезагрузка отключена.

Но вы можете использовать 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>

В вебвизоре яндекса отображается false вместо города

Это нормально, в вебвизор подгружается странница сайта на которой выполняется js , город берется из cookie, которые не могут быть установлены на страницы вебвизора (так как домен сайта отличается от домена на котором находится сам вебвизор), поэтому и отображается false вместо реального значения, по факту люди видят актуальный для себя город.

Это особенность вебвизора.

Не определяется город

Периодически нам пишут, что модуль не определяет город, при этом в настройках включают все подряд и не читают подписи. Самая частая причина в том, что на редакциях битрикс в которых есть интернет магазин и местоположения включен параметр Использовать для поиска города сервисы Яндекса.

Для решения нужено в настройках убрать галочку - "Использовать для поиска города сервисы Яндекса", тогда поиск города будет происходить в базе местоположений сайта и ошибок не будет.

Отключение в настройках уточнения города

Старая версия jQuery

При выполнении скриптов комопнентов проверяется наличие переменной jQuery, которая с версии 2.0.0 доступна и как $. Если у вас старая версия, то проверка наличия библиотеки пройдет нормально, но $ не будет определена. Чтобы это исправить можно на страницу, в шаблон добавить соответствующую проверку и установку.

<script  type="text/javascript" >

if($ !== jQuery) {
    $ = jQuery;
}

</script>

Не устанавливается обновление 2.6.0

Если вы получаете ошибку примерно следующего содержания

Ошибка в 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`;

После этого можно вновь запустить установку обновлений модуля.