Redirect Magento to checkout onepage after adding item to cart

前端 未结 2 871
没有蜡笔的小新
没有蜡笔的小新 2021-01-03 10:30

How can I redirect the user after it adds one item to the cart?
lets say I want him to choose one item and go to the checkout/onepage, how can I do that?

相关标签:
2条回答
  • 2021-01-03 10:52

    Using checkout_cart_add_product_complete you will miss out on product addtocart success message check this

    Mage::dispatchEvent('checkout_cart_add_product_complete',
                        array('product' => $product, 'request' => $this->getRequest(), 'response' => $this->getResponse())
                    );
    
    if (!$this->_getSession()->getNoCartRedirect(true)) {
     if (!$cart->getQuote()->getHasError()) {
             $message = $this->__('%s was added to your shopping cart.', Mage::helper('core')->escapeHtml($product->getName()));
                   $this->_getSession()->addSuccess($message);
         }
           $this->_goBack();
    }
    

    Again if you don't wont the session messages, just pass additional parameter from your product page

    <input type="hidden" name="return_url" value="<?php echo $this->getUrl('checkout/onepage')?>"/>
    

    No need for any other customization or module creation, its magento's default functionality

    0 讨论(0)
  • 2021-01-03 11:02

    You could create an observer listening for the checkout_cart_add_product_complete event and in there you could do something like the following

      public function addToCartComplete(Varien_Event_Observer $observer) {
        // Send the user to the Item added page
        $response = $observer->getResponse();
        $request = $observer->getRequest();
        $response->setRedirect(Mage::getUrl('checkout/onepage'));
        Mage::getSingleton('checkout/session')->setNoCartRedirect(true);
    }
    

    Your config would look something like this

     <frontend>
        <events>
        <checkout_cart_add_product_complete>
          <observers>
            <packagename_modulename_observer>
              <type>singleton</type>
              <class>packagename_modulename/observer</class>
              <method>addToCartComplete</method>
            </packagename_modulename_observer>
          </observers>
          </checkout_cart_add_product_complete>
       </events>
       </frontend>
    
    0 讨论(0)
提交回复
热议问题