Allow Login Customers Only to Add Product to Cart

Posted 6 months ago. Visible to the public.

With system config:
Image+

If that's not what you want, we can do event-observer:

    /**
     * Event 'checkout_cart_product_add_before'
     * @see Mage_Checkout_Model_Cart ::addProduct()
     *
     * @param Varien_Event_Observer $observer
     * @return void
     */
    public function beforeAddToCart(Varien_Event_Observer $observer)
    {
        if (Mage::getSingleton('customer/session')->isLoggedIn()) {
            return;
        }

        /** @var Mage_Catalog_Model_Product $product */
        $product = $observer->getProduct();
        $currentUrl = $product->getProductUrl();
        Mage::getSingleton('customer/session')->setBeforeAuthUrl($currentUrl);
        $notice = Mage::helper('xxx')->__(
            'You must be logged in to add this product. Please click <a href="%s">here</a> to register or login.',
            Mage::helper('customer')->getLoginUrl()
        );
        Mage::getSingleton('checkout/session')->setUseNotice(true);
        Mage::throwException($notice);
    }
kiatng
Last edit
5 months ago
kiatng
Posted by kiatng to OpenMage (2023-11-24 06:57)