2011-05-26 94 views
1

我想用下面的选项Magento的 - 产品通过国家使用名称IP地址

显示产品在

> United States 
> International 
> Both 

添加一个单选按钮,在选择产品都会产生相应的客户前端显示了使用IP检测

我google一下,我发现一个插件

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

但它与Magento ver不兼容。 1.5.0.1。请帮忙。谢谢

+0

你想添加一个单选按钮在哪里?用户设置?管理员设置?正常页面? – balexandre 2011-05-26 07:15:36

+0

@balexandre在产品部分 – 2011-05-26 07:33:55

+0

只需添加一个名为Country的自定义字段,然后使用这3个值! – balexandre 2011-05-26 07:34:41

回答

5

为您的店铺设置两个网站,其中'网站'不一定意味着一个不同的网址,只是内部的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

一旦安装后换出$国家= $ _ 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的更多帮助。

+0

这是我真正需要的。比你非常,我有一些问题。 $ _SERVER ['GEOIP_COUNTRY_CODE']在我的服务器上不工作,所以我必须找出其他一些选项。另外,我必须将1000个产品分配给新创建的网站。有没有简单的方法来做到这一点。请指教。谢谢 – 2011-05-26 10:48:00

+0

您可以从目录管理页面轻松地将产品分配到这两个网站 - 选择您想要的产品并从下拉列表中选择更新属性。 – 2011-05-26 11:00:08

+0

我已经更新了我的答案,包括指向geoip说明和下载的链接。 – 2011-05-26 11:09:08