【问题标题】:Magento multiple currencies on a single domain with no subdirectoriesMagento 单一域上的多种货币,没有子目录
【发布时间】:2014-06-27 15:36:28
【问题描述】:

我正在尝试建立一个允许大约 6 种不同货币的网站。我最初能够使用 Magento 内置的货币汇率很好地实现这一点,客户可以选择他们喜欢的货币,所有价格都以该货币显示。但是我最近发现,尽管价格以该货币计,Magento 仍会以基础货币(在这种情况下为英镑)处理交易。事实上,它并没有告诉客户这是直到订单结束时才会发生的事情,在我看来这是一件非常糟糕的事情,一些客户的银行可能还会因货币兑换而向他们收取更多费用。

由于 PayPal 已配置为允许以 6 种货币付款,因此我希望客户能够以这些货币付款。

我后来发现,由于 Magento 的构建方式,这不是一件容易的事,相反,您应该为每种货币设置一个新的“网站”,然后我可以为每个网站设置一个基础货币.这听起来很简单,但是关于这一切的教程似乎都强制每个网站都有自己独特的 url - 例如 us.website.comwebsite.com/us - 但在这种情况下不会这样做,我们需要一切都只使用一个基本网址website.com

有人知道这是否可能吗?

我已经能够通过手动将以下内容添加到index.php 来更改存储,我认为一种可能的解决方案是记住会话中的用户选择,然后在此处加载正确的存储。这会有效还是有更好的方法来做到这一点,但我忽略了?

/* Override store code */
if (isset($_GET['code']))
{
    $mageRunCode = $_GET['code'];
    $mageRunType = 'website';
}

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

该网站正在运行 Magento Community Edition v1.7.0.2。

【问题讨论】:

    标签: php magento magento-1.7


    【解决方案1】:

    我已经能够使用类似于index.php 中的以下内容来实现此目的

    if (isset($_GET["currency"]) || !isset($_COOKIE["basewebsite"]))
    {
            // List of available stores
            $stores = array('usd','aud','eur');
            $website = 'base'; // Default store ID
    
            if (isset($_GET['currency']) && in_array($_GET['currency'], $stores))
            {
                 $website = $_GET['currency'];
            }
    
            // Set cookie to remember selection
            setcookie("basewebsite", $website);
            $_COOKIE['basewebsite'] = $website;
    }
    else
    {
            $website = $_COOKIE['basewebsite'];
    }
    
    /* Store or website code */
    $mageRunCode = isset($_SERVER['MAGE_RUN_CODE']) ? $_SERVER['MAGE_RUN_CODE'] : $website;
    
    /* Run store or run website */
    $mageRunType = isset($_SERVER['MAGE_RUN_TYPE']) ? $_SERVER['MAGE_RUN_TYPE'] : 'website';
    
    Mage::run($mageRunCode, $mageRunType);
    

    有了这个,我可以通过简单地将?currency=usd 添加到任何 Magento url 的末尾来更改网站。然后 cookie 会记住该选择,并加载正确的网站以及任何进一步的请求。

    这个问题没有收到很多意见,但如果有人发现更好的解决方案,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2015-06-08
      • 1970-01-01
      • 2013-06-11
      • 2015-02-18
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      相关资源
      最近更新 更多