Magento:设置客户组的默认商店视图

时间:2013-09-15 14:37:51

标签: php magento

我真的无法找到为客户群设置特定商店视图的方法。 我有1个视图显示价格,包括增值税和1个视图显示没有增值税的价格。

现在我希望我的经销商团队在“经销商商店”视图中自动查看商店,以便他们看到没有增值税的价格。

似乎无法做到这一点!

提前致谢!

修改

谢谢!

我在index.php中插入了@JakubKorupczyński代码但是在Mage :: run()之后 现在它的工作!

我确实认为最好为此做一个延伸,所以我正在学习它。但与此同时,这将会做到!

EDIT2

似乎它毕竟不起作用。未达到Mage :: Run之后的代码......

1 个答案:

答案 0 :(得分:4)

您需要使用observer创建一个新的扩展名。

对于Instance我创建了扩展Jakkor_Setstore。所以文件夹看起来像这样:

app/code/local/Jakkor
app/code/local/Jakkor/Setstore
app/code/local/Jakkor/Setstore/etc
app/code/local/Jakkor/Setstore/Model

在etc中有一个文件“config.xml”:

<?xml version="1.0"?>
<config>
    <global>
        <models>
            <setstoreobserver>
                  <class>Setstore_Model</class>
           </setstoreobserver>
        </models>
     </global>
     <frontend>
        <events>
            <controller_action_predispatch>
                <observers>
                    <jakkor_setstore_model_observer>
                        <type>singleton</type>
                        <class>Jakkor_Setstore_Model_Observer</class>
                        <method>setstore</method>
                    </jakkor_setstore_model_observer>
                </observers>
            </controller_action_predispatch>
       </events>
    </frontend>
</config>

在Model中有一个文件“Observer.php”:

class Jakkor_Setstore_Model_Observer extends Varien_Event_Observer
{
  public function setstore($observer)
  {
      if(Mage::getSingleton('customer/session')->isLoggedIn())
      {
        $groupId = Mage::getSingleton('customer/session')->getCustomerGroupId(); //get the group id
        if($groupId == 2) //I don't know what id has your reseller group, so 2 is an example, you need to set here the specific group
        {
          Mage::app()->setCurrentStore(2); //Set id of the store view without vat
        }
        else {
          Mage::app()->setCurrentStore(1); //set the store view with vat
        }
      }
  }
}

当然在app / etc / modules中“Jakkor_Setstore.xml”:

<?xml version="1.0"?>
<config>
    <modules>
        <Jakkor_Setstore>
            <active>true</active>
            <codePool>local</codePool>
        </Jakkor_Setstore>
    </modules>
</config>

经过测试,它正在运行。对不起之前的混乱。我没有测试第一种方法。我认为它应该有用。