Битрикс местоположения к сожалению произошла внутренняя ошибка

 

Любое действия в админке: импорт, переиндексация, изменение заказа — ведет к данной ошибке.
Смотрю в админке слетели местоположения, есть только регионы. Сделать импорт то же не получается — Ошибка: Cannot read property ‘result’ of undefined.
Может кто подскажет куда копать?

 

Сергей, обратитесь пожалуйста с данной проблемой в техподдержку.

 
 

Как решили? Сегодня перестало работать, все тоже самое

 

Та же самая фигня что описано в шапке топика, кто как решил проблему? поделитесь, плиз

 

Нам не удалось к сожалению. Так как лицензию не продлевали в тех поддрежке предложили только продлить ее.  Востанавливали из резервной копии, пару дней поработало и опять перестало((( Что делать неизвестно

 

Такая же фигня, тп отвечает долго и пока не помогла(переписываемся с 03.04.18). Заказ нормально оформить не получается.

 

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

 

Евгений Жуков

Администратор

Сообщений: 9140
Баллов: 1767
Регистрация: 05.08.2005

Epic fail — сказать «это так просто» и не суметь сделать

Укажите, пожалуйста, здесь номера обращений в техподдержку.

Не надо сверлить зубы через задний проход дрелью от Сваровски

 

Пользователь 621635

Заглянувший

Сообщений: 18
Регистрация: 06.07.2016

#10

0

10.04.2018 17:05:14

Цитата
Евгений Жуков написал:
Укажите, пожалуйста, здесь номера обращений в техподдержку.

Здравствуйте

1891055

по местоположениям

Пользователь 300902

Заглянувший

Сообщений: 3
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 24.12.2014

При выборе местоположения во время оформлении заказа появляется сообщение об ошибке «К сожалению, произошла внутренняя ошибка».

POST-запрос на bitrix/components/bitrix/sale.location.selector.steps/get.php возвращает
{‘result’:true,’errors’:[],’data’:{‘ITEMS’:[{‘DISPLAY’:’Дальний Восток’,’VALUE’:’2907′,’CODE’:’0000028103′,’IS_PARENT’:true},{‘DISPLAY’:’Крымский федеральный округ’,’VALUE’:’3123′,’CODE’:’0000028113′,’IS_PARENT’:true},{‘DISPLAY’:’Поволжье’,’VALUE’:’1505′,’CODE’:’0000028068′,’IS_PARENT’:true},{‘DISPLAY’:’РФ’,’VALUE’:’3159′,’CODE’:’rf’,’IS_PARENT’:false},{‘DISPLAY’:’Северный Кавказ’,’VALUE’:’1326′,’CODE’:’0000028060′,’IS_PARENT’:true},{‘DISPLAY’:’Северо-Запад’,’VALUE’:’767′,’CODE’:’0000028042′,’IS_PARENT’:true},{‘DISPLAY’:’Сибирь’,’VALUE’:’2414′,’CODE’:’0000028090′,’IS_PARENT’:true},{‘DISPLAY’:’Урал’,’VALUE’:’2171′,’CODE’:’0000028083′,’IS_PARENT’:true},{‘DISPLAY’:’Центр’,’VALUE’:’2′,’CODE’:’0000028024′,’IS_PARENT’:true},{‘DISPLAY’:’Юг’,’VALUE’:’1093′,’CODE’:’0000028053′,’IS_PARENT’:true}],’ETC’:[]}}

Я так понимаю, что ошибка выводится из BX.chainedSelectorsSLS.
Вопрос: почему выводится ошибка, если  фактически список местоположений с сервера приходит, и каким образом можно эту проблему можно решить?

Местоположения. К сожалению, произошла внутренняя ошибка

 

Пользователь 249816

Посетитель

Сообщений: 57
Баллов: 4
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 25.03.2014

Любое действия в админке: импорт, переиндексация, изменение заказа — ведет к данной ошибке.
Смотрю в админке слетели местоположения, есть только регионы. Сделать импорт то же не получается — Ошибка: Cannot read property ‘result’ of undefined.
Может кто подскажет куда копать?

 

Администратор

Сообщений: 114
Баллов: 11
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.04.2012

Сергей, обратитесь пожалуйста с данной проблемой в техподдержку.

 

Пользователь 249816

Посетитель

Сообщений: 57
Баллов: 4
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 25.03.2014

 

Пользователь 621635

Заглянувший

Сообщений: 18
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.07.2016

Как решили? Сегодня перестало работать, все тоже самое

 

Пользователь 172795

Заглянувший

Сообщений: 35
Баллов: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 15.03.2013

Та же самая фигня что описано в шапке топика, кто как решил проблему? поделитесь, плиз

 

Пользователь 621635

Заглянувший

Сообщений: 18
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.07.2016

Нам не удалось к сожалению. Так как лицензию не продлевали в тех поддрежке предложили только продлить ее.  Востанавливали из резервной копии, пару дней поработало и опять перестало((( Что делать неизвестно

 

Пользователь 291135

Заглянувший

Сообщений: 4
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 05.04.2018

Такая же фигня, тп отвечает долго и пока не помогла(переписываемся с 03.04.18). Заказ нормально оформить не получается.

 

Пользователь 621635

Заглянувший

Сообщений: 18
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.07.2016

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

 

Администратор

Сообщений: 9025
Баллов: 1744
Авторитет:

8

Рейтинг пользователя:

39

Регистрация: 05.08.2005

Epic fail — сказать «это так просто» и не суметь сделать

Укажите, пожалуйста, здесь номера обращений в техподдержку.

Не надо сверлить зубы через задний проход дрелью от Сваровски

 

Пользователь 621635

Заглянувший

Сообщений: 18
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.07.2016

#10

0

10.04.2018 17:05:14

Цитата
Евгений Жуков написал:
Укажите, пожалуйста, здесь номера обращений в техподдержку.

Здравствуйте

1891055

по местоположениям

 

Пользователь 291135

Заглянувший

Сообщений: 4
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 05.04.2018

#11

0

10.04.2018 17:12:12

Цитата
Евгений Жуков написал:
Укажите, пожалуйста, здесь номера обращений в техподдержку.

ЗдравствуйтеОбращение № 1893563 Не работают местоположения

 

Администратор

Сообщений: 9025
Баллов: 1744
Авторитет:

8

Рейтинг пользователя:

39

Регистрация: 05.08.2005

Epic fail — сказать «это так просто» и не суметь сделать

#12

0

10.04.2018 17:42:52

Спасибо, будем разбираться

Не надо сверлить зубы через задний проход дрелью от Сваровски

 

Пользователь 949557

Заглянувший

Сообщений: 11
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 14.02.2017

#13

0

13.04.2018 15:42:33

Такая же ошибка. Не ищет когда прописываешь местоположение и сразу высвечивается «К сожалению, произошла внутренняя ошибка» при оформлении заказа. Статистика базы местоположений загружена. Импорт местоположений не работает Ошибка: Cannot read property ‘result’ of undefined

 

Пользователь 291135

Заглянувший

Сообщений: 4
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 05.04.2018

#14

0

13.04.2018 15:51:41

ТП решила вопрос, за что им ещё раз спасибо.Для тех кто в поисках. Нашли что был модифицирован файл ядра: /bitrix/modules/main/include.php.
Что конкретно, не знаю.

 

Пользователь 949557

Заглянувший

Сообщений: 11
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 14.02.2017

#15

0

13.04.2018 15:57:48

А где или у кого узнать, что конкретно? Могут ли ТП выложить решение сюда?

 

Пользователь 949557

Заглянувший

Сообщений: 11
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 14.02.2017

#16

0

13.04.2018 16:05:17

Добавил /bitrix/modules/main/include.php со старой версии всё заработоло

 

Пользователь 621635

Заглянувший

Сообщений: 18
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.07.2016

#17

0

13.04.2018 16:35:46

Да, тех поддержка решила проблему, за что им спасибо!

 

Пользователь 1271551

Заглянувший

Сообщений: 2
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 25.05.2018

#18

0

25.05.2018 16:13:59

Помогите, та же ситуацйия

1952435 Местоположение

 

Пользователь 790677

Заглянувший

Сообщений: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.12.2016

#19

0

08.11.2018 12:38:25

Та же ошибка с местоположениями, ТП решает проблему аж с 15.10.2018. Последний ответ от ТП был 29.10.2018 и до сегодняшнего дня просто молчат. Как решить проблему, магазин уже почти месяц не работает нормально.  

 

Администратор

Сообщений: 114
Баллов: 11
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 26.04.2012

#20

0

09.11.2018 11:04:00

Выполните, пожалуйста, проверку качества продукта (Монитор качества):
<URL_сайта>/bitrix/admin/checklist.php?lang=ru

Нужно проверить пункт «Сдача проекта — Ядро проекта не модифицировалось» и посмотреть Подробный отчет.

 

Пользователь 790677

Заглянувший

Сообщений: 2
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 06.12.2016

#21

0

09.11.2018 11:19:10

Ядро проекта не модифицировалось.
Все проверки средствами битрикс система проходит успешно.  

 

Пользователь 275703

Постоянный посетитель

Сообщений: 183
Баллов: 34
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 13.08.2014

#22

0

29.01.2019 10:09:11

Была такая проблемы и даже в административном интерфейсе при переиндексации местоположений. Был Битрикс 15.5.
Решение:

восстановление файлов ядра

(модуля main).

 

Пользователь 4339984

Заглянувший

Сообщений: 3
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 12.06.2020

#23

0

09.04.2021 18:05:33

В моём случае проблема была в том, что использовалась слим версия jquery. С не слим версией ошибка пропала.
Решение нашёл тут

https://ru.stackoverflow.com/a/735498

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

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

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

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

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

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

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

В статье мы расскажем, как исправить ошибку (код состояния) 500 со стороны пользователя и администратора сайта, а также подробно разберём, что такое ошибка запроса 500.

Что такое внутренняя ошибка сервера 500

Код ошибки 5хх говорит о том, что браузер отправил запрос корректно, но сервер не смог его обработать. Что значит ошибка 500? Это проблема сервера, причину которой он не может распознать.

Сообщение об ошибке сопровождается описанием. Самые популярные варианты:

  • Внутренняя ошибка сервера 500,
  • Ошибка 500 Internal Server Error,
  • Временная ошибка (500),
  • Внутренняя ошибка сервера,
  • 500 ошибка сервера,
  • Внутренняя ошибка HTTP 500,
  • Произошла непредвиденная ошибка,
  • Ошибка 500,
  • HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).

Дизайн и описание ошибки 500 может быть любым, так как каждый владелец сайта может создать свою версию страницы. Например, так выглядит страница с ошибкой на REG.RU:

Как ошибка 500 влияет на SEO-продвижение

Для продвижения сайта в поисковых системах используются поисковые роботы. Они сканируют страницы сайта, проверяя их доступность. Если страница работает корректно, роботы анализируют её содержимое. После этого формируются поисковые запросы, по которым можно найти ресурс в поиске.

Когда поисковый робот сканирует страницу с ошибкой 500, он не изменяет её статус в течение суток. В течение этого времени администратор может исправить ошибку. Если робот перейдёт на страницу и снова столкнётся с ошибкой, он исключит эту страницу из поисковой выдачи.

Проверить, осталась ли страница на прежних позициях, можно с помощью Google Search Console. Если робот исключил страницу из поисковой выдачи, её можно добавить снова.

Код ошибки 500: причины

Если сервер вернул ошибку 500, это могло случиться из-за настроек на web-хостинге или проблем с кодом сайта. Самые распространённые причины:

  • ошибки в файле .htaccess,
  • неподходящая версия PHP,
  • некорректные права на файлы и каталоги,
  • большое количество запущенных процессов,
  • большие скрипты,
  • несовместимые или устаревшие плагины.

Решить проблему с сервером можно только на стороне владельца веб-ресурса. Однако пользователь тоже может выполнить несколько действий, чтобы продолжить работу на сайте.

Что делать, если вы пользователь

Если на определённом ресурсе часто возникает ошибка 500, вы можете связаться с владельцем сайта по инструкции.

Перезагрузите страницу

Удаленный сервер возвращает ошибку не только из-за серьёзных проблем на сервере. Иногда 500 ошибка сервера может быть вызвана небольшими перегрузками сайта.

Чтобы устранить ошибку, перезагрузите страницу с помощью сочетания клавиш:

  • на ПК — F5,
  • на ноутбуке — Fn + F5,
  • на устройствах от Apple — Cmd + R.

Обратите внимание! Если вы приобретаете товары в интернет-магазине и при оформлении заказа появляется 500 Internal Server Error (перевод — внутренняя ошибка сервера), при перезагрузке страницы может создаться несколько заказов. Поэтому сначала проверьте, оформился ли ваш предыдущий заказ. Если нет, попробуйте оформить заказ заново.

Очистите кэш и cookies браузера

Кэш и cookies сохраняют данные посещаемых сайтов и данные аутентификаций, чтобы в будущем загружать веб-ресурсы быстрее. Если на ресурсе уже был статус ошибки 500, при повторном входе на сайт может загружаться старая версия страницы с ошибкой из кэша, хотя на самом деле страница уже работает. Очистить кэш и куки браузера вам поможет инструкция.

Если ни одно из этих действий не решило проблему, значит, некорректно работает сам сервер сайта. Вернитесь на страницу позже, как только владелец решит проблему.

Что делать, если вы владелец сайта

В большинстве случаев устранить проблему может только владелец сайта. Как правило, ошибка связана с проблемами в коде. Реже проблемы могут быть на физическом сервере хостинг-провайдера.

Ниже рассмотрим самые популярные причины и способы решения.

Ошибки в файле .htaccess

Неверные правила в файле .htaccess — частая причина возникновения ошибки. Чтобы это проверить, найдите .htaccess в файлах сайта и переименуйте его (например, в test). Так директивы, прописанные в файле, не повлияют на работу сервера. Если сайт заработал, переименуйте файл обратно в .htaccess и найдите ошибку в директивах. Если вы самостоятельно вносили изменения в .htaccess, закомментируйте новые строки и проверьте доступность сайта.Также может помочь замена текущего файла .htaccess на стандартный в зависимости от CMS.

Найти директиву с ошибкой можно с помощью онлайн-тестировщика. Введите содержимое .htaccess и ссылку на сайт, начиная с https://. Затем нажмите Test:

Произошла непредвиденная ошибка

На экране появится отчёт. Если в .htaccess есть ошибки, они будут выделены красным цветом:

500 ошибка nginx

Активирована устаревшая версия PHP

Устаревшие версии PHP не получают обновления безопасности, работают медленнее и могут вызывать проблемы с плагинами и скриптами. Возможно, для работы вашего веб-ресурса нужна более новая версия PHP. Попробуйте сменить версию PHP на другую по инструкции.

Установлены некорректные права на файлы и каталоги сайта

В большинстве случаев корректными правами для каталогов являются «755», для файлов — «644». Проверьте, правильно ли они установлены, и при необходимости измените права на файлы и папки.

Запущено максимальное количество процессов

На тарифах виртуального хостинга REG.RU установлены ограничения на количество одновременно запущенных процессов. Например, на тарифах линейки «Эконом» установлено ограничение в 18 одновременно запущенных процессов, на тарифах «+Мощность» ― 48 процессов. Если лимит превышен, новый процесс не запускается и возникает системная ошибка 500.

Такое большое число одновременных процессов может складываться из CRON-заданий, частых подключений с помощью почтовых клиентов по протоколу IMAP, подключения по FTP или других процессов.

Чтобы проверить количество процессов, подключитесь по SSH. Выполните команду:

ps aux | grep [u]1234567 |wc -l

Вместо u1234567 укажите ваш логин хостинга: Как узнать логин хостинга.

Чтобы посмотреть, какие процессы запущены, введите команду:

Вместо u1234567 укажите логин услуги хостинга.

Командная строка отобразит запущенные процессы:

Код ошибки 500

Где:

  • u1234567 — логин услуги хостинга,
  • 40522 — PID процесса,
  • S — приоритет процесса,
  • /usr/libexec/sftp-server — название процесса.

Процесс можно завершить командой kill, например:

Вместо 40522 укажите PID процесса.

Чтобы решить проблему, вы также можете:

  • увеличить интервал запуска заданий CRON,
  • ограничить количество IMAP-соединений в настройках почтового клиента. Подробнее в статье Ограничение IMAP-соединений,
  • проанализировать запущенные процессы самостоятельно или обратившись за помощью к разработчикам сайта.

Если вам не удалось самостоятельно устранить ошибку 500, обратитесь в техподдержку.

Скрипты работают слишком медленно

На каждом виртуальном хостинге есть ограничения на время выполнения скрипта. Если за установленное время скрипт не успевает выполниться, возникает ошибка сервера 500. Для решения проблемы обратитесь к разработчику сайта и оптимизируйте скрипты. Если оптимизировать нельзя, перейдите на более мощный вид сервера.

У пользователей VPS есть возможность увеличить максимальное использование оперативной памяти на процесс, но лучше делать скрипты меньшего размера.

Ошибка 500 на сайте, созданном на WordPress

WordPress предлагает много плагинов для создания хорошего сайта. Они значительно расширяют возможности CMS. Однако они же могут нарушать работу сайта и вызывать ошибку 500. Вызвать ошибку могут как недавно установленные плагины, так и старые.

Для начала проверьте, нужно ли обновить плагины. Часто устаревшие плагины перестают работать и вызывают проблемы работы сайта. Если все плагины обновлены, но 500 Internal Server Error остаётся, отключите все плагины, чтобы убедиться, что именно они мешают работе сайта. Как только станет понятно, что виноват один из плагинов, отключайте их по очереди, пока не найдёте тот, который нарушает работу сервера.


Как отключить плагин в WordPress

  1. 1.
  2. 2.

    Перейдите во вкладку «Плагины» ― «Установленные».

  3. 3.

    Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:

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

При оформлении заказа не работает переход с шага выбора способа доставки на шаг выбора способа оплаты.

Грешил на то что не указанно местоположение магазина. Указать его оказалось не просто. База местоположений была пуста.

Пришлось сделать испорт базы местоположений. После чего на странице оформления заказа видны только шаги, ни полей, ни кнопок.

При очистке базы местоположений все возроащается на свои места.

В чем может быть дело?

Содержание

  1. Не срабатывает geoip
  2. Не работает определение местоположения битрикс
  3. Использование функционала определения местоположения
  4. Глюк местоположения в битрикс?
  5. Использование геолокации в Битрикс D7
  6. Обработчики геолокации
  7. Использование
  8. Геолокация в модуле sale
  9. Геолокация
  10. Описание
  11. Список обработчиков геолокации
  12. Установка расширения GeoIP
  13. Пользовательские комментарии

Не срабатывает geoip

GEOip установлен, Рабочий стол — Настройки- Настройки продукта- Геолокация, написано что он активен, хотя в настройках модулей нет его настроек.

$ip определяется по коду выше, а $cityName нет, пустая переменная, какие могут быть причины? Страна тоже не определяется.

Цитата
Андрей Николаев написал:
SoFuWa , а какой IP? Может база устарела или нет записи просто.

Результат print_r($geoIpData);, как я понимаю всё таки модуль работает раз вот это выводит.

В папке geoip вот что

SoFuWa, Б24 коробка, ничего не настраивалось, установлены последние обновления php7.0 :

Отпишусь в этом топике, неделю назад перестало работать стандартное bitrix geo IP вот год работало а неделю назад перестало. Причём на другом сайте который на другом хостинге работает.
Данные о геолокации получаю строчкой $data = (array)(BitrixMainServiceGeoIpManager::getDataResult($ip,»ru»)); Стал возвращать Null в каждом поле, то есть таких как cityName, countryCode, regionCode — проверено на куче IP адресов, причём на своих тоже, ко которым данные 100% ранее нормально возвращались. Касаемо нагрузок, лимиты не должны были превысить посещаемость 30-50 хостов в день(на протяжении последних месяцев точно).

Вообще не нравится сам тот факт что эта функция оказывается может отвалиться. Я насколько знаю битрикс использует Sypex Geo для данного модуля? А он вообще по API работает или как то база обновляется.
В целом под вопросом стоит ли использовать стандартный битрикс функционал геолокации если он может слететь или сразу ставить сторонние библиотеки.

Решил проверить почему SypexGeo периодически отваливается в моем случае.

с ошибкой: (свойство error) «Превышено количество запросов, необходимо пополнить счет» но метод isSuccess возвращает true и в результате возвращает пустой $dataResult ( Разработчики Битрикс, обратите на это внимание )

Подозреваю, можно зарегистрироваться и отслеживать кол-во запросов, для этого нужно указать ключ в настройках

Источник

Не работает определение местоположения битрикс

Платформа 1C-Битрикс содержит встроенные обработчики геолокации, позволяющие определить местоположение пользователя. Подробнее со списком и особенностями использования каждого обработчика вы можете ознакомиться в пользовательской документации 1C-Битрикс.

Инструкцию по настройке вы можете посмотреть в видео или далее в статье.

В статье мы рассмотрим работу функционала на примере обработчика Sypex Geo.

Обработчик находится по пути Настройки → Настройки продукта → Геолокация. Для редактирования нажмите на «Гамбургер», затем на одноименную кнопку.

Для определения местоположения обработчик обязательно должен быть активирован и иметь доступные запросы.

Без регистрации сервис Sypex Geo предоставляется 10 000 запросов в месяц.

Если на сайте большая посещаемость, то может потребоваться большее количество запросов. Для этого необходимо пройти регистрацию на сайте https://sypexgeo.net/ . Регистрация позволяет получить дополнительные бонусные запросы. При необходимости возможно приобретение дополнительных запросов.

После регистрации вам будет предоставлен ключ.

Ключ (2) необходимо указать в настройках обработчика на вкладке «Дополнительно» (1). Не забудьте сохранить изменения (3).

Без регистрации на сервисе всегда можно проверить, доступны ли еще запросы.

Для этого перейдите Настройки → Инструменты → Командная PHP-строка (1) .

В поле вставьте код (2) :

Нажмите кнопку выполнить (3) .

На странице появится всплывающее окно. Нажмите кнопку «ОК» (4) .

Если на сайте доступны запросы, в результате выполнения команды вы должны увидеть свое текущее местоположение. Если запросы недоступны, поля будут пустыми.

Использование функционала определения местоположения

Рассмотрим, в каких случаях используется определение местоположения.

1. Выбор региона

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

Разберем подробнее, при каких условиях это происходит.

Если на сайте используется региональность на поддоменах:

Пользователь перешел по прямой ссылке не своего региона (1) ;

Регион пользователя доступен в списке регионов (2) ;

На сайте доступны запросы обработчика геолокации.

Если на сайте используется региональность на одном домене:

Регион по умолчанию отличается от текущего местоположения пользователя (1) ;

Регион пользователя доступен в списке регионов (2) ;

На сайте доступны запросы обработчика геолокации.

2. Оформление заказа.

Без использования региональности:

Когда клиент впервые оформляет заказ, то система по IP-адресу определяет его местоположение (страну, город) и поставляет значения в соответствующие поля формы.

С использованием региональности:

Когда клиент впервые оформляет заказ, используется местоположения, указанное для региона.

3. Расчет доставки в карточке товара.

Определение местоположения при расчете доставки происходит по следующему алгоритму .

Источник

Глюк местоположения в битрикс?

При оформлении заказа не работает переход с шага выбора способа доставки на шаг выбора способа оплаты.

Грешил на то что не указанно местоположение магазина. Указать его оказалось не просто. База местоположений была пуста.

Пришлось сделать испорт базы местоположений. После чего на странице оформления заказа видны только шаги, ни полей, ни кнопок.

При очистке базы местоположений все возроащается на свои места.

В чем может быть дело?

  • Вопрос задан более трёх лет назад
  • 4804 просмотра

Компонент sale.order.ajax ведёт себя также?
Обновления все стоят?
Этот глюк появился после каких действий или он всегда был? Проект новый?
Версия битрикса?

В настройках платёжных систем и служб доставок есть взаимные настройки, проверти их.

Источник

Использование геолокации в Битрикс D7

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

В sale 17.0.17 замечен баг с геолокацией (Ошибка «Call to undefined method BitrixMainServiceGeoIpManager::getData()»). Из-за этого не работает оформление заказа (sale.order.ajax). Для получения костыля нужно написать в техподдержку или обновиться до sale 17.0.18.

Определение местоположения реализовано в классах пространства имён BitrixMainServiceGeoIp . Для работы примеров будет использоваться сокращение:

Обработчики геолокации

Доступные обработчики можно найти и настроить в настройках Настройки > Настройки продукта > Геолокация. На момент написания статьи доступны обработчики:

Для первых двух нужны ключи для доступа к соответствующим сервисам. Для тестирования проще и дешевле зарегистрироваться на Sypex Geo, там дают 30000 бесплатных запросов в месяц. Ключ для сервиса будет указан в личном кабинете, его нужно будет указать в настройках обработчика.

Обработчики геолокации — классы-наследники GeoIpBase . Из коробки идут 3 обработчика, как говорилось выше:

Добавить свои можно с помощью события onMainGeoIpHandlersBuildList модуля main:

Примеры обработчиков можно найти в ядре, обязательно требуется определить три метода: getTitle , getDescription и getData .

Использование

Для определения местоположения требуется IP пользователя. Его можно получить с помощью метода GeoIpManager::getRealIp :

Для получения геоинформации по этому IP нужно вызвать метод GeoIpManager::getDataResult :

Метод возвращает объект класса GeoIpResult (до версии 17.0.18 – GeoIpDataResult ). Поля объекта:

Из поля ‘handlerClass’ видно, что для определения использовался обработчик Sypex Geo. Вообще менеджер перебирает все доступные настроенные обработчики, которые могут вернуть результат на нужном языке (второй аргумент в методе getDataResult ) и с нужными полями. Если найден подходящий обработчик и он вернул результат, то запросы к другим доступным обработчикам не делаются.

Нужные поля можно указать третьим аргументом в методе getDataResult , например:

В таком случае Sypex Geo не будет использован, т.к. в списке возвращаемых полей нет zipCode.

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

В таком случае, в случае успешного получения геоинформации она будет сохранена в cookies BX_MAIN_GEO_IP_DATA_XXX_XXX_XXX_XXX , привязанной к определенному IP. Пока cookie будет жива и IP будет оставаться прежним, запросов в сервис геолокации по данному пользователю не будет.

Стоит учесть, что максимальная длина cookie — 4096 байт, а в IE вроде как еще меньше. Поэтому неизвестно, насколько надежно держать в cookie сериализованный объект с геоинформацией. Уверен, что в Битриксе об этом не задумывались.

Геолокация в модуле sale

Как говорилось в начале, геолокация была анонсирована в обновлении модуля sale, поэтому геолокацию можно использовать для определения местоположения пользователя для оформления заказа. Для этого существует класс BitrixSaleLocationGeoIp , который использует вышеописанный функционал для поиска местоположения в базе Битрикса.

Во всех этих методах используется сохранение результата геолокации в cookies. Местоположение в базе находится по названию независимо от регистра.

Источник

Геолокация

На странице Список обработчиков геолокации (Настройки > Настройки продукта > Геолокация) представлены все обработчики геолокации, имеющиеся в системе.

Описание

В системе доступно 3 обработчика геолокации: Расширение GeoIP , MaxMind и Sypex Geo. Для использования первого необходимо иметь установленную библиотеку C GeoIP версии 1.4.0 или выше. Использование сервиса MaxMind требует получения на сайте компании идентификатора пользователя и лицензионного ключа. Сервис Sypex Geo предоставляет 10000 запросов в месяц без регистрации, далее требуется также получение ключа.

Настройки использования обработчика геолокации просты: установите флаг активности и задайте сортировку. На текущий момент активные обработчики используются компонентом Оформление заказа: когда клиент впервые оформляет заказ, то система по IP-адресу определяет его местоположение (страну, город) и поставляет значения в соответствующие поля формы.

Список обработчиков геолокации

Поле Описание
Действие Действия с обработчиками:

  • Редактировать — редактирование параметров обработчика;
  • Удалить — удаление обработчика.
Наименование Название обработчика.
Описание Описание обработчика.
Активность Признак активности обработчика.
Установлен Признак того, что обработчик установлен.
Сортировка Относительный «вес» обработчика.
Языки Языки, для которых используется обработчик.

Установка расширения GeoIP

Расширение GeoIP позволяет найти местоположение по IP-адресу. С помощью GeoIP можно получить такую информацию как город, государство, страна, долгота и широта.

На UNIX операционных системах установка производится через пакетные менеджеры:

Либо загрузив расширение с официального сайта: https://pecl.php.net/package/geoip .

После установки модуля, необходимо загрузить платные базы данных.

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

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

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Источник

0

http://www.lensday.ru/

Вот сайт
чтобы проверить работу — положите что-нибудь в корзину перейдите к оформлению заказа и заполните поле Адрес

  • Ответить
  • |

0

На рассмотрении

Укажите, пожалуйста, версию Битрикса и какие модули вы на него устанавливали?

  • Ответить
  • |

0

Так же не работает.
Пробовал по разному, местоположение само не определяется. А без этого модуль можно считать безполезным. Придётся пока вернутся на решение от Долганина, хоть и оно не идеально.

  • Ответить
  • |

0

Та же проблема. Появилась после установки последних обновлений. В ней Битрикс радикально заменил структуру местоположений, из-за чего не правильно работают ява-скрипты.

  • Ответить
  • |

0

Начат

Разбираемся, статус буду писать здесь.

  • Ответить
  • |

0

Здравствуйте. Почините заодно гранулярные подсказки для битрикса. А то там сейчас свойство constraints нигде не используется. Нормально можно пользоваться только целиком строкой адреса.

  • Ответить
  • |

0

Подпишусь, тоже не работают :(

  • Ответить
  • |

0

Проблема есть на 14 версии Битрикса, сейчас разбираемся. На 15 версии работает.

  • Ответить
  • |

0

Дело не версии битрикса, а версии модуля местоположений. Для местоположений 2.0 битрикс генерирует другую структуру html и javascript не может найти нужный тег с полем местоположения.

  • Ответить
  • |

0

Есть какие новости? Малый Бизнес, версия 15.0.6. Местоположения не заполняются

  • Ответить
  • |

0

обновление не встает, накосячили :)
Ошибка в updater’e 1.1.0 модуля dadata.suggestions: [UCDF02] Путь «/home/bitrix/www/home/bitrix/www/install/components/dadata.suggestions» не существует.
. Установка обновлений модуля dadata.suggestions прервана. [CL04] Обновление не установлено

  • Ответить
  • |

0

Константин Листратов, там было два обновления подряд — первое тестировали, второе было корректно. Поставьте еще раз.  

  • Ответить
  • |

0

ну как сказать.. что не так делаю?

  • Ответить
  • |

0

Константин, мне кажется, у вас все-таки что-то не то с обновлением, только что проверяла на тестовой платформе http://bitrix.hflabs.ru — не воспроизводится.

Можете рассказать, в каком порядке вы заполняете указанные поля? 

И посмотрите, пожалуйста, какая версия плагина у вас стоит? В админке Битрикса Администрирование-> Marketplace -> Установленные решения -> в таблице — Подсказки DaData.ru есть поле версия. Чему у вас равно это значение?

  • Ответить
  • |

0

Заполняю только Адрес доставки, который в настройках стоит как адрес одной строкой
veizemat.ru — зайдите, попробуйте оформить заказ

  • Ответить
  • |

0

Константин, посмотрели — переустановите, пожалуйста, плагин (удалить и установить заново). У вас криво поставилась версия 1.1.1.

Если после этого не заработает — можете кинуть нам контакты админки на info@dadata.ru, мы сами посмотрим в чем дело.

  • Ответить
  • |

0

сейчас плагин начал выдавать такую ошибку Fatal error: Call to undefined method CSaleLocation::isLocationProEnabled() in %путь%

и вся корзина отвалилась

  • Ответить
  • |

0

Не учли, что может быть не обновлен Битрикс, но обновлен плагин. 
Вы можете обновить Битрикс? Это должно решить проблему.

Сегодня-завтра исправим.

  • Ответить
  • |

0

Исправили, зарелизили версию 1.1.2 — Данное обновление решает проблему совместимости со старым модулем интернет магазина (без Местоположений 2.0). http://marketplace.1c-bitrix.ru/solutions/dadata.suggestions/

  • Ответить
  • |

0

у меня модуль все равно не проставляет местоположение

http://www.lensday.ru/

Вот сайт
чтобы проверить работу — положите что-нибудь в корзину перейдите к оформлению заказа и заполните поле Адрес

  • Ответить
  • |

0

А какая у вас версия Битрикса и какие сторонние плагины установлены (с версиями)?

  • Ответить
  • |

0

Только ваш плагин версии 1.1.2
это старый скрин

  • Ответить
  • |

0

Не знаю, что значит починили, но я так и не смог нормально настроить. Такое чувство что разработчики не понимают что нужно интернет магазинам.
1. Битриксовское поле Location должно быть отключаемым, не должна от него зависеть работа модуля. Никому не надо чтобы в дополнение к адресу ещё показывался список местоположений.
2. Модуль не работает в режиме гранулярных подсказок. Нет зависимости от предыдущего уровня.
вот пример кода » if ($(‘[name=ORDER_PROP_5]’).length > 0) $(‘[name=ORDER_PROP_5]’).suggestions({
serviceUrl: ‘https://dadata.ru/api/v2’,
token: ‘4908ec472047ec32567cc125bd3559b37594d729’,
type: ‘ADDRESS’,
bounds: ‘city-settlement’,
onSelect: function (suggestion) {
$(‘[name=ORDER_PROP_5]’).val(suggestion.data.city);
}
});

if ($(‘[name=ORDER_PROP_22]’).length > 0) $(‘[name=ORDER_PROP_22]’).suggestions({
serviceUrl: ‘https://dadata.ru/api/v2’,
token: ‘4908ec472047ec32567cc125bd3559b37594d729’,
type: ‘ADDRESS’,
bounds: ‘street’,
onSelect: function (suggestion) {
$(‘[name=ORDER_PROP_22]’).val(suggestion.data.street);
}
});»
Как видим в поле ORDER_PROP_22 задали что это УЛИЦА, но что она зависит от поля ORDER_PROP_5 с указанным городом, не задали. Соответственно в подсказках вываливается всякая фигня.
3. При выборе ввода адреса одной строкой, адрес потом не раскидывается по остальным полям, если они отмечены как служебные (т.е. не отображаются на форме).

  • Ответить
  • |

0

Спасибо за замечания, постараемся исправить в следующих релизах.

  • Ответить
  • |

0

Зарелизили и, похоже, на этом остановимся в разработке этого плагина. Разработка довольно трудоемкая, а польза для интернет-магазинов для нас не очень очевидная. 

 По вашим комментариям:
1. Невозможно отключить это поле, т.к. оно напрочь интегрировано в экосистему битрикса, в инструкции есть рекомендация выносить это поле вниз формы. чтобы оно заполнялось раньше чем пользователь до него дойдет
2. Пофикшено.
3. Служебные поля, к сожалению, не отображаются на форме (т.е. вообще, даже как input type=hidden), в новом релизе убрали их из настроек.

  • Ответить
  • |

  • Битрикс доступ к серверу обновлений ошибка ошибочный ответ сервера обновлений
  • Битрикс выдает 404 ошибку
  • Битрикс вывод ошибок на экран
  • Битрикс вывод 404 ошибки
  • Битрикс вывести 404 ошибку