Перейти к содержанию

GeoIp Pro (группы покупателей, разные цены для городов) 7 beta

690.00 руб

   (101 отзыв)

22 изображения

  • +1 11

Информация о файле

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

Модуль определяет город по IP-адресу или домену либо пользователь выбирает его вручную. Автоматически заполняются поля Страна, Регион, Город, Индекс (не для всех) при регистрации и оформлении заказа, избавляя пользователя от ручного ввода.

Геосообщения - возможность выводить разный текст или html для городов и регионов (см. скриншоты и FAQ) .

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

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

GeoIP Pro позволяет задавать разные цены на товары для городов через привязку групп покупателей к городам.

В Pro-версии можно привязать поддомен к городу и там всегда будет выставляться этот город, не зависимо от IP, это дает существенный выигрыш при региональном сео-продвижении сайта.

 

Модуль содержит базу населенных пунктов России (ФИАС), Украины, Белоруссии, Казахстана на русском языке.

Определение по IP работает для России, Украины, Белоруссии и Казахстана с точностью до города для других стран с точностью до страны.

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

 

image.png.78eb19e6fedef5bf6c803624cb58c862.png

 

Лицензия

Модуль работает по лицензии (один домен + его поддомены), выдается по запросу личным сообщением с темой "Лицензия GeoIP Pro", обязательно указывайте адрес вашего сайта!

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

Важно! Удаление или перенос лицензии на другой домен невозможно! Это уже другая лицензия, которая покупается отдельно.

 

Если одна админка на несколько сайтов с разными адресами, ключи можно прописать через разделитель |

 

Установка

Скачайте архив, подходящий под вашу версию OpenCart, OcStore и т.д. Следуйте инструкции в архиве Установка.txt.

 

Поддержка

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

Стоимость установки модуля автором или адаптация модуля под тему (настройка css-стилей) 400 рублей

Перед обращением в поддержку обязательно прочитайте FAQ на этой странице.

 

Демо

http://opencart.progroman.ru/demo/geoippro/

Админка (demo/demo)

http://opencart.progroman.ru/demo/geoippro/admin/index.php?route=extension/module/progroman_city_manager

 

FAQ (ответы на вопросы)

Скрытый текст

После установки модуля сайт не работает: белый экран или Ошибка HTTP 500 (Internal Server Error)

Спойлер

Белый экран говорит о том, что произошла серьезная ошибка в коде, но вывод ошибок отключен. Сначала нужно понять причину ошибки, для этого включаем вывод ошибок (см. след. пункт) в браузер. Смотрим ошибку, пробуем исправить, ищем решение в интернете. Если не получается исправить, скидываем текст ошибки автору в ЛС.

 

Как включить вывод ошибок PHP

Спойлер

Сделать это можно несколькими способами: через панель управления, в php.ini, в .htaccess или непосредственно в коде. Проще всего сделать это в коде в index.php или в admin/index.php (если ошибка в админке). В самом начале файла, сразу после <?php пишем:

ini_set('display_errors', 1);

 

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

После исправления ошибки вывод ошибок нужно отключить.

 

Работа с поддоменами

Спойлер

Если вы используете поддомены, установите для них одну сессию, для этого в .htaccess добавьте:



php_value session.cookie_domain .site.com

где site.com - ваш сайт

Если ваш сайт находится на виртуальном хостинге и при этом php работает в режиме FastCGI, то установка некоторых переменных невозможна через .htaccess,

в том числе и php_value session.cookie_domain. Попробуйте устанавливать данное значение непосредственно в коде скрипта используя функцию ini_set().

В настройках модуля на вкладке "Редиректы" пропишите основной домен (для редиректа по-умолчанию).

 

Как добавить разные цены для городов

Спойлер
  1. В админке стандартными средствами OpenCart создаете группу покупателей, например, "Воронеж"
  2. В админке модуля GeoIP Pro на вкладке "Группы покупателей" привязываете группу к городу / региону / стране.
  3. В редактировании товара на вкладке "Скидка" устанавливаете цены для разных групп покупателей, здесь важно в поле "Количество" поставить 1.

 

Как добавить геосообщение

Скрытый текст

1. Создаем в админке модуля геосообщения с определенным ключом (например, phone), одному ключу могут соответствовать разные города

86f0151dfe.jpg

2. В любом шаблоне в нужном месте вставляем:



<span class="prmn-cmngr-message" data-key="phone"></span>

в data-key прописываем ключ геосообщения

3. Чтобы задать значение по-умолчанию, добавьте атрибут data-default="" с нужным значением



<span class="prmn-cmngr-message" data-key="phone" data-default="8-800-111-11-11"></span>

 

 

Вывод модуля и геосообщений "вручную" (не через ajax)

Скрытый текст

По-умолчанию модуль выводится через ajax. Чтобы вывести вручную, нужно в соответствующем шаблону контроллере добавить:



// Вывод самого модуля
$data['geoip'] = $this->load->controller('extension/module/progroman/city_manager');

// Вывод геосообщения с ключом phone
$data['geoip_phone'] = $this->progroman_city_manager->getMessage('phone');

// Вывод геосообщения с ключом phone, если нужно указать текст по-умолчанию
$data['geoip_phone'] = $this->progroman_city_manager->getMessage('phone', '8-800-000-00-00');

В шаблоне:



<!-- Вывод модуля -->
<div class="prmn-cmngr" data-confirm="true"><?= $geoip; ?></div>

<!-- Вывод геосообщения -->
<?= $geoip_phone ?>

 

 

Как отключить попап "Угадали город"

Скрытый текст

При выводе модуля установить атрибут data-confirm="false" или удалить его

1. Вывод модуля с попапом "Угадали город"



<div class="prmn-cmngr" data-confirm="true"></div>

2. Без



<div class="prmn-cmngr"></div>

 

 

Вывод города в title страницы

  Скрыть контент

 

Для примера рассмотрим страницу категории, для других страниц делается по аналогии.
За вывод страницы отвечает контроллер catalog/controller/product/category.php, title устанавливается так:

image.png.b2ab2b3bf0b7aeb538f2973fd4d8f8d5.png

 

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

image.png.6aba4e2ae2464b35c2dd9ff0e235b4e0.png

 

допишим шаблон для города так:

image.png.a355656db11e0c6ca6a6db41eeb2aef4.png

 

В контроллере делаем замену:

image.png.96777423872d4b47acf842e9b96ad668.png

 

Код:



$city = $this->progroman_city_manager->getShortCityName();
$title = str_replace('%CITY%', $city, $category_info['meta_title']);
$this->document->setTitle($title);

 

 

Интеграция с модулями расчета доставки eDost, СДЭК и другими

Спойлер

По-умолчанию, модуль подставляет в поле "город" населенный пункт с районом, например, "Одинцовский р-н, г. Одинцово". Некоторые модули доставки из-за этого не могут корректно определить город и рассчитать стоимость. Чтобы убрать район, нужно:

 

В файле system/library/progroman/citymanager/citymanager.php



'city' => $this->getCityName()

заменить на



'city' => $this->getShortCityName()

В этом месте:



private function getData() {
    return [
        'country_id' => $this->getCountryId(),
        'zone_id' => $this->getZoneId(),
        'postcode' => $this->getPostcode(),
        'city' => $this->getCityName()
    ];
}

 

 

Получение данных из модуля (страна, регион, город и др.) в контроллерах

Скрытый текст


$data['country_id'] = $this->progroman_city_manager->getCountryId();
$data['country_name'] = $this->progroman_city_manager->getCountryName();
$data['zone_id'] = $this->progroman_city_manager->getZoneId();
$data['zone_name'] = $this->progroman_city_manager->getZoneName();
$data['city_name'] = $this->progroman_city_manager->getCityName();
$data['short_city_name'] = $this->progroman_city_manager->getShortCityName();
$data['postcode'] = $this->progroman_city_manager->getPostcode();
$data['info'] = $this->progroman_city_manager->getFullInfo();

 

 

Ошибка "Warning: fread(): Length parameter must be greater than 0 in ...system/library/progroman/citymanager/driver/sxgeo.php"

  Скрыть контент

В system\library\progroman\citymanager\driver\sypex.php

вместо



$sxGeo = new SxGeo($file);
$data = $sxGeo->getCityFull($this->ip);

так:



$encoding = mb_internal_encoding("8bit");
$sxGeo = new SxGeo($file);
$data = $sxGeo->getCityFull($this->ip);
mb_internal_encoding($encoding);

 

Или в настройках PHP поставить



mbstring.func_overload = 2

 

 

Переход с обычной версии модуля GeoIP (до 6.0)

Спойлер

Для обновления необходимо удалить старую версию:

  1. Отключите модуль в админке
  2. Удалите модификаторы
  3. Уберите правки из index.php (или system/config/catalog.php для OC 2.2 и выше)
  4. Удалите файлы:
  • admin/controller/module/geoip.php
  • admin/language/russian/module/geoip.php
  • admin/language/english/module/geoip.php
  • admin/model/module/geoip.php
  • admin/view/template/module/geoip/ (всю папку)
  • admin/view/template/module/geoip.tpl
  • catalog/controller/module/geoip.php
  • catalog/language/russian/module/geoip.php
  • catalog/language/english/module/geoip.php
  • catalog/model/module/geoip.php
  • catalog/view/theme/default/template/module/geoip/ (всю папку)
  • catalog/view/theme/default/template/module/geoip.tpl
  • catalog/view/theme/default/stylesheet/geoip.css
  • catalog/view/javascript/jquery/jquery.geoip-module.js
  • system/library/geoip/ (всю папку)
  • system/library/geoip.php

Установите новую версию. Таблицы в базе данные: geoip_city, geoip_currency, geoip_redirect, geoip_rule больше не нужны, можете удалить их вручную, установщик скопировал данные из них в новые таблицы.

 

 

 

 

 




  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.