Magento - продукт по стране, используя IP-адрес - PullRequest
1 голос
/ 26 мая 2011

Я хочу добавить переключатель со следующей опцией

Показывать продукт в

> United States
> International
> Both

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

Я гуглю и нашел один плагин

http://www.magentocommerce.com/magento-connect/Vinay.N+%28+Tumkur%2CKethohalli%29/extension/2413/product-by-ipaddress

Но он не совместим с версией Magento.1.5.0.1.Пожалуйста помоги.Спасибо

1 Ответ

5 голосов
/ 26 мая 2011

Установите два веб-сайта для своего магазина, где «веб-сайт» не обязательно должен означать другой URL, просто для Magento это «веб-сайт». Для этого примера используйте коды «usd» и «row».

Используйте GeoIP в Apache, если вы можете устанавливать пакеты в своем дистрибутиве. Если нет, то вы можете использовать плагины PHP geoip - еще раз посмотрите, что рекомендуется для вашей установки.

Чтобы отправить своих клиентов на то, что Magento считает веб-сайтом, при этом посетитель сайта не знает, что они были «перенаправлены». В вашем index.php вам понадобится что-то вроде:

$country=$_SERVER['GEOIP_COUNTRY_CODE'];
switch ($country)
{ case "CA":
  case "MX":
  case "US":
    $_SERVER['MAGE_RUN_CODE'] = "usd";
    $_SERVER['MAGE_RUN_TYPE'] = "website";
    break;
  default:
    $_SERVER['MAGE_RUN_CODE'] = "row";
    $_SERVER['MAGE_RUN_TYPE'] = "store";
}
Mage::run($_SERVER['MAGE_RUN_CODE'], $_SERVER['MAGE_RUN_TYPE']);

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

Это будет легко обновить по сравнению с «взломанным» решением.

Обновление.

Самый простой способ запустить GeoIP - это модуль apache. Вот ссылка на инструкцию и скачать:

http://www.maxmind.com/app/mod_geoip

Если установка модуля Apache невозможна из-за общего хостинга или нестабильности операционной системы, тогда вместо этого можно использовать модуль PHP. Полные инструкции и скачать для geoIP можно найти здесь:

http://www.maxmind.com/app/php

После установки поменяйте местами $ country = $ _ SERVER ['GEOIP_COUNTRY_CODE']; для следующего:

include("geoip/geoip.inc");

// Uncomment if querying against GeoIP/Lite City.
// include("geoipcity.inc");

$gi = geoip_open("/your/path/to/geoip/GeoIP.dat",GEOIP_STANDARD);
$country=geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
geoip_close($gi);

Дополнительная информация о GeoIP доступна по указанным выше ссылкам.

...