Magento存储具有多种货币和语言的子域的视图

时间:2015-12-31 07:57:22

标签: php magento magento-1.9

在写这篇文章之前,我做了大量的研究和测试,并在SO和其他博客上阅读了太多帖子,但没有解决我的问题。 我正在使用magento 1.9.2.1开发一个网站。它将有两种语言英语和阿拉伯语和七种货币USD,SAR,QAR等。让我们说域名是altaf.com;)。

要求:

  1. 网站默认语言为阿拉伯语,默认货币为SAR。因此,根据此,默认网址将为 ar-sa.altaf.com ,其中 ar 用于语言, sa 用于货币。
  2. 同样, en-sa.altaf.com 会显示带有SAR货币的英文网站。此外, ar-us.altaf.com 将用于阿拉伯语内容和美元,因此 en-us.altaf.com 将用于英语内容和美元等其他货币。
  3. 怎么做?

    一种方法如下:

    1. 为每个子网址创建商店视图。因此,我们将拥有7 * 2 = 14个商店视图(根据货币*语言),并在每个商店视图的网页部分中设置网址。同时在“货币设置”部分为每个商店视图选择适当的默认货币。
    2. 在为英语创建内容时,选择将显示英语内容的所有商店视图,并为阿拉伯语内容选择将显示阿拉伯语内容的所有商店视图。
    3. 以上问题:

      1. 我们有成千上万的产品和大约20个类别和其他大量的内容,这将难以管理。

      2. 输入数据时,我们很可能会错过为每个内容选择约7个商店视图。此外,输入产品数据将更加困难。

      3. 还可能出现更多问题......

      4. 我是怎么做的?

        1. 我为每个创建了商店视图并设置了相应的网址。目前我只为en-sa.altaf.com创建了4个商店视图,ar-sa.altaf.com,en-us.altaf.com,ar-us.altaf.com

        2. 为每个商店网址创建了子文件夹,例如en-sa,en-us,ar-sa和ar-us,并在其中放置了index.php,并相应地将路径更改为Mage.php。对每个域的nginx配置文件进行适当的更改,并设置正确的根路径。测试它们并确认每个子文件夹index.php都已执行。

        3. 现在我正在尝试为每个具有 zh 的网址加载英文内容,并为每个具有 ar 的网址添加阿拉伯语内容。这样,管理所有内容将变得容易。我在所有MAGE_RUN_CODE文件中使用index.php作为 en ,这些文件放在en-xx子文件夹中,类似地 ar 用于ar-xx子文件夹。我还试图为en-us.altaf.com和ar-us.altaf.com设置如下的商店和货币,这将使用usd作为货币。

        4. Mage::app()->setCurrentStore('en'); //for en Mage::app()->getStore()->setCurrentCurrency('usd'); //Set currency for store

          Mage::app()->setCurrentStore('ar'); //for ar
          Mage::app()->getStore()->setCurrentCurrency('usd'); 
          

          但它不起作用,这是我的大问题。

          任何人都可以帮助我解决这个问题,或者为我提供其他更好解决方案的详细信息吗?我将提供50分的赏金,以获得正确的答案,解决我的问题:)。

1 个答案:

答案 0 :(得分:1)

如果你想这样做,你应该添加代码'在php函数的名称下以编程方式设置货币:

Mage::app()->getStore()->setCurrentCurrencyCode('USD'); 

取代

Mage::app()->getStore()->setCurrentCurrency('USD');

但我不认为这是最好的方式。 我会创建2个网站,阿拉伯语和英语,然后为每种货币添加商店视图。每个网站都应使用相同的根类别。然后在Magento后端为每个商店视图设置网址,语言和货币。

添加新产品时,您只需要以2种语言插入内容,然后选中目录中的2个复选框 - >管理产品 - >产品信息 - >网站。

货币将自动应用于每个商店视图。