【问题标题】:Disable 'General' group sales in Magento在 Magento 中禁用“常规”组销售
【发布时间】:2015-01-08 05:11:47
【问题描述】:

我希望在我们的 Magento 网站上为“一般”客户组中的所有客户禁用销售。我们有一个分层的客户组系统设置,具有不同的税收规则等,但我不知道如何禁用“一般”作为可以从网站购买的组。我不希望注册的新客户在没有先分配组的情况下进行购买。

谢谢。

【问题讨论】:

  • 在 BuyNow 按钮上,使用如下条件:如果 LoggedIn Customer 不在所需的类别中,则不应显示该按钮
  • 谢谢 Pavan,我在哪里可以访问 CMS 中的该选项?和添加购物车规则类似吗?

标签: magento checkout


【解决方案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;
}

请记住,这只是一个示例,而且非常简单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    相关资源
    最近更新 更多