在Magento按位置更改商店/网站

时间:2014-11-24 07:23:52

标签: magento

我想根据Magento的位置更改商店。为此,当用户在浏览器中打开网站时,我创建了一个位置下拉列表,他/她需要选择其位置,网站将根据他/她的输入值重定向。

public function getLocationInfoByIp($observer) {

        $location = $_POST['location'];
        switch ($location) {

            case "US": {
                  Mage::app()->setCurrentStore('en');
                  break;
            }
            case "IN": {
                Mage::app()->setCurrentStore('de');
                break;
            }
            default: {
                Mage::app()->setCurrentStore('en');
                break;
            }
       }
 }

从下拉列表中选择位置后提交弹出窗口时,更改商店。但刷新后再次将商店更改为默认值。

因此,请建议您解决此问题。

2 个答案:

答案 0 :(得分:0)

通过编辑这些行,在 index.php 文件中设置默认商店时可能会出现这种情况;

/* Store or website code */
$mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : ''; //check this line

/* Run store or run website */
$mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'store';

Mage::run($mageRunCode, $mageRunType);

如果您将商店代码设置为运行代码,请将其更改为默认(空白),如下所示。

答案 1 :(得分:-1)

您需要更改条件

public function getLocationInfoByIp($observer) {
    $store = '';   
    $location = $_POST['location'];
    if($location=='US' && Mage::app()->getStore()->getCode()!='en')
    {
        Mage::app()->setCurrentStore('en');

    }else if($location=='IN' && Mage::app()->getStore()->getCode()!='de')
    {
         Mage::app()->setCurrentStore('de');
    }else if(Mage::app()->getStore()->getCode()!='en')
    {
        Mage::app()->setCurrentStore('en');
    }
}