Magento 1.9 – How to Skip Shipping and Payment Method in Checkout

billingcheckoutshipping

I need to skip the Shipping and Payment method steps in checkout.

This, because a lot of products need customising and checking before shipping them.
So what we do is check the list (with the client) and contact/inform them. The actual order will be processed through another system.

Best Answer

Please refer below code for skip shipping Address and billing Address from checkout steps :

First override following files(i.e. in local directory) rather than changing the core:

1) app/code/core/Mage/Checkout/Block/Onepage/Onepage.php
2) app/code/core/mage/checkout/controller/Onepagecontrollers.php
3) app/code/core/Mage/Sales/Model/Service/Quote.php
4) app/design/frontend/base/default/template/checkout/onepage/progress.phtml
5) app/code/core/Mage/Sales/Model/Service/Quote.php

Once done follow the below steps:

Step 1: app/code/local/Mage/Checkout/Block/Onepage.php

Change the line:

$stepCodes = array('billing', 'shipping', 'shipping_method', 'payment', 'review');

In Magento 1.7+ you will find $stepCodes in for each just replace with below code with:

$stepCodes = array('shipping_method', 'payment', 'review');

Step 2: app/code/local/Mage/Checkout/controller/Onepagecontrollers.php

Change the line:

protected $_sectionUpdateFunctions = array(
'payment-method' => '_getPaymentMethodsHtml',
'shpping-method' => '_getShippingMeghtoHtml',
'review' => '_getReviewHtml',
);

with:

protected $_sectionUpdateFunctions = array(
'payment-method' => '_getPaymentMethodsHtml',
'review' => '_getReviewHtml',
);