Пользователь 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 |
Любое действия в админке: импорт, переиндексация, изменение заказа — ведет к данной ошибке. |
Администратор Сообщений: 114 |
Сергей, обратитесь пожалуйста с данной проблемой в техподдержку. |
Пользователь 249816 Посетитель Сообщений: 57 |
|
Пользователь 621635 Заглянувший Сообщений: 18 |
Как решили? Сегодня перестало работать, все тоже самое |
Пользователь 172795 Заглянувший Сообщений: 35 |
Та же самая фигня что описано в шапке топика, кто как решил проблему? поделитесь, плиз |
Пользователь 621635 Заглянувший Сообщений: 18 |
Нам не удалось к сожалению. Так как лицензию не продлевали в тех поддрежке предложили только продлить ее. Востанавливали из резервной копии, пару дней поработало и опять перестало((( Что делать неизвестно |
Пользователь 291135 Заглянувший Сообщений: 4 |
Такая же фигня, тп отвечает долго и пока не помогла(переписываемся с 03.04.18). Заказ нормально оформить не получается. |
Пользователь 621635 Заглянувший Сообщений: 18 |
Я написала в тех поддержку 2 апреля, сегодня опять написала. Заказы нормально не оформляются, так как доставки на них завязаны, жуть полная. Пришлось ставить фикс. цену на доставку, но мы теряем деньги на этом. |
Администратор Сообщений: 9025 Epic fail — сказать «это так просто» и не суметь сделать |
Укажите, пожалуйста, здесь номера обращений в техподдержку. Не надо сверлить зубы через задний проход дрелью от Сваровски |
Пользователь 621635 Заглянувший Сообщений: 18 |
#10 0 10.04.2018 17:05:14
Здравствуйте 1891055 по местоположениям |
||
Пользователь 291135 Заглянувший Сообщений: 4 |
#11 0 10.04.2018 17:12:12
ЗдравствуйтеОбращение № 1893563 Не работают местоположения |
||
Администратор Сообщений: 9025 Epic fail — сказать «это так просто» и не суметь сделать |
#12 0 10.04.2018 17:42:52 Спасибо, будем разбираться Не надо сверлить зубы через задний проход дрелью от Сваровски |
Пользователь 949557 Заглянувший Сообщений: 11 |
#13 0 13.04.2018 15:42:33 Такая же ошибка. Не ищет когда прописываешь местоположение и сразу высвечивается «К сожалению, произошла внутренняя ошибка» при оформлении заказа. Статистика базы местоположений загружена. Импорт местоположений не работает Ошибка: Cannot read property ‘result’ of undefined |
Пользователь 291135 Заглянувший Сообщений: 4 |
#14 0 13.04.2018 15:51:41 ТП решила вопрос, за что им ещё раз спасибо.Для тех кто в поисках. Нашли что был модифицирован файл ядра: /bitrix/modules/main/include.php. |
Пользователь 949557 Заглянувший Сообщений: 11 |
#15 0 13.04.2018 15:57:48 А где или у кого узнать, что конкретно? Могут ли ТП выложить решение сюда? |
Пользователь 949557 Заглянувший Сообщений: 11 |
#16 0 13.04.2018 16:05:17 Добавил /bitrix/modules/main/include.php со старой версии всё заработоло |
Пользователь 621635 Заглянувший Сообщений: 18 |
#17 0 13.04.2018 16:35:46 Да, тех поддержка решила проблему, за что им спасибо! |
Пользователь 1271551 Заглянувший Сообщений: 2 |
#18 0 25.05.2018 16:13:59 Помогите, та же ситуацйия 1952435 Местоположение |
Пользователь 790677 Заглянувший Сообщений: 2 |
#19 0 08.11.2018 12:38:25 Та же ошибка с местоположениями, ТП решает проблему аж с 15.10.2018. Последний ответ от ТП был 29.10.2018 и до сегодняшнего дня просто молчат. Как решить проблему, магазин уже почти месяц не работает нормально. |
Администратор Сообщений: 114 |
#20 0 09.11.2018 11:04:00 Выполните, пожалуйста, проверку качества продукта (Монитор качества): Нужно проверить пункт «Сдача проекта — Ядро проекта не модифицировалось» и посмотреть Подробный отчет. |
Пользователь 790677 Заглянувший Сообщений: 2 |
#21 0 09.11.2018 11:19:10 Ядро проекта не модифицировалось. |
Пользователь 275703 Постоянный посетитель Сообщений: 183 |
#22 0 29.01.2019 10:09:11 Была такая проблемы и даже в административном интерфейсе при переиндексации местоположений. Был Битрикс 15.5. восстановление файлов ядра (модуля main). |
Пользователь 4339984 Заглянувший Сообщений: 3 |
#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.
- 2.
Перейдите во вкладку «Плагины» ― «Установленные».
- 3.
Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:
Если все ваши действия не решили проблему или вы не уверены в своих технических знаниях, обратитесь к службе технической поддержки. Сообщите время обнаружения проблемы и опишите все действия, которые вы предприняли перед обращением. Специалисты сделают детальную проверку настроек вашего сайта и при необходимости обратятся к администраторам сервера на стороне хостинг-провайдера.
Содержание
- Не срабатывает geoip
- Не работает определение местоположения битрикс
- Использование функционала определения местоположения
- Глюк местоположения в битрикс?
- Использование геолокации в Битрикс D7
- Обработчики геолокации
- Использование
- Геолокация в модуле sale
- Геолокация
- Описание
- Список обработчиков геолокации
- Установка расширения GeoIP
- Пользовательские комментарии
Не срабатывает 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 .
После установки модуля, необходимо загрузить платные базы данных.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Источник
При оформлении заказа не работает переход с шага выбора способа доставки на шаг выбора способа оплаты.
Грешил на то что не указанно местоположение магазина. Указать его оказалось не просто. База местоположений была пуста.
Пришлось сделать испорт базы местоположений. После чего на странице оформления заказа видны только шаги, ни полей, ни кнопок.
При очистке базы местоположений все возроащается на свои места.
В чем может быть дело?
Ошибка:
В ходе автоматического обновления параметров открытой линии поддержки возникла ошибка: Ошибка проверки публичного адреса сайта: неправильный http код ответа сервера.
Как решить эту проблему?
Все достаточно просто, если у вас соблюдены следующие условия:
- У вас установлены все обновления коробки Битрикс24
- Нет ошибок при прохождении тестов проверки системы
На данной странице https://адрес-портала.ru/bitrix/admin/settings.php?lang=ru&mid=imbot публичный адрес сайта должен быть указан в виде https://адрес-портала.ru
После исправления уведомление больше появляться не будет.
08.11.2020
4906 Обучение CRM
Довольно часто к нам обращаются клиенты, которые не смогли подключить почтовый ящик на базе Яндекс к Битрикс24. Казалось бы, прямая авторизация по одной кнопке должны упростить процесс подключения, но случается так, что это не помогает. Давайте разбираться.
Прием почты
Первый очень важный момент, когда Вы подключаете почту к Битрикс24, нажимая кнопку «Авторизация», почта подключается по протоколу IMAP на прием.
Часто бывает, что именно в этот момент, даже если Вы не подключаете отправку почты через внешний SMTP, внизу при сохранении выпадает ошибка авторизации.
Это означает, что в Вашем ящике по политике безопасности выключен протокол IMAP для почтовых программ, и нужно его включить. Для этого нужно зайти в настройки почтового ящика.
И там зайти в раздел «Почтовые программы».
После чего нужно включить галочку «С сервера imap.yandex.ru по протоколу IMAP», и сохранить изменения.
После этого почтовый ящик должен успешно подключиться к Битрикс24 на прием почты.
Отправка почты
Вторым важным моментом является, что при настройке отправки почты через внешний SMTP, когда Вы вводите свой основной пароль от ящика, также внизу выскакивает ошибка авторизации.
Это означает, что со стороны ящика Яндекса запрещено подключаться внешним программам, используя основной пароль, и нужно создать пароль приложений.
Для того, чтобы их включить, нужно зайти на главную страницу паспорта Яндекса и нажать ссылку «Включить пароли приложений».
Затем ещё раз нажать кнопку «Включить пароли приложений» и ввести основной пароль от ящика.
После чего нужно нажать кнопку «Создать новый пароль».
Выбрать тип, ввести название и нажать «Создать».
После чего скопировать пароль, нажать «Готово» и вставить его в настройки SMTP ящика в Битрикс24.
После этого подключение пройдет успешно, ошибка исчезнет, и можно начинать полноценно отправлять и принимать почту в Вашем Битрикс24.