我希望在我们的Magento网站上停用“常规”中的任何客户的销售额。客户群。我们有一个分层的客户群系统设置,具有不同的税收规则等,但我无法弄清楚如何禁用' general'作为可以从网站购买的群组。我不希望新客户注册后可以先购买,而无需先分组。
感谢。
答案 0 :(得分:1)
这是我的想法:在controller_action_predispatch_checkout_onepage_index
事件上设置观察者,该事件将在加载结帐页面之前触发。在观察者中,我们检查客户是否属于某个组,如果是,我们将他重定向到购物车页面并显示错误消息。
翻译成Magento代码,它看起来像这样:
我们在config.xml
<frontend>
<events>
<controller_action_predispatch_checkout_onepage_index>
<observers>
<your_module>
<class>your_module/observer</class>
<method>banCheckout</method>
</your_module>
</observers>
</controller_action_predispatch_checkout_onepage_index>
</events>
</frontend>
在我们的观察员中:
public function banCheckout(Varien_Event_Observer $observer)
{
$customerSession = Mage::getSingleton('customer/session');
if (!$customerSession->isLoggedIn()) {
return $this;
}
$groupId = $customerSession->getCustomer()->getGroupId();
if ($groupId == 1) {
Mage::getSingleton('checkout/session')->addError(
Mage::helper('checkout')->__('Your error message.')
);
$action = $observer->getEvent()->getControllerAction();
$action->getResponse()->setRedirect(Mage::getUrl('checkout/cart'));
$action->setFlag('', Mage_Core_Controller_Varien_Action::FLAG_NO_DISPATCH, true);
}
return $this;
}
请记住,这只是一个例子,而且非常简单。