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

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

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

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

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

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

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

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

Отпишусь в этом топике, неделю назад перестало работать стандартное bitrix geo IP вот год работало а неделю назад перестало. Причём на другом сайте который на другом хостинге работает.
Данные о геолокации получаю строчкой $data = (array)(\Bitrix\Main\Service\GeoIp\Manager::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 Bitrix\Main\Service\GeoIp\Manager::getData()»). Из-за этого не работает оформление заказа (sale.order.ajax). Для получения костыля нужно написать в техподдержку или обновиться до sale 17.0.18.

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

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

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

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

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

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

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

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

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

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

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

Из поля ‘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, поэтому геолокацию можно использовать для определения местоположения пользователя для оформления заказа. Для этого существует класс Bitrix\Sale\Location\GeoIp , который использует вышеописанный функционал для поиска местоположения в базе Битрикса.

Во всех этих методах используется сохранение результата геолокации в 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 .

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

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

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

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

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

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

Источник

Читайте также:  Не работает одна форсунка дизельного двигателя
Оцените статью