2

我想添加一个带有以下选项的单选按钮

显示产品

> 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。请帮忙。谢谢

4

1 回答 1

5

为您的商店设置两个网站,其中“网站”不必表示不同的 URL,只是在 Magento 内部它是一个“网站”。对于此示例,使用代码“usd”和“row”。

如果您可以在发行版上安装软件包,请在 Apache 中使用 GeoIP。如果没有,那么您可以使用 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 的更多帮助。

于 2011-05-26T08:59:36.233 回答