2011-05-26 98 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