Disable shipping address in Magento checkout

Attendance: Magento developers
Purpose: remove shipping address in checkout page, always ship to billing address
Magento version: 1.6, 1.7, 1.8

Hello everyone, it may be very popular that you wants to restrict shipping to billing address only. In that case, we will not need to show shipping address in checkout page. This tutorial will help you achieve that.

Let’s create it as a new module for better management. I called it “Removeshipping” module. The solution is to rewrite some html files and javascript of Magento checkout module. We will make the shipping always same as billing address and remove shipping address step in checkout page.

Step 1: Remove shipping address step from the block Onepage.php

We will rewrite this block and use our own block. In config.xml of your module, please call define this:


Now, create Onepage.php in the folder Removeshipping/Block/Checkout/Onepage.php

class Magebuzz_Removeshipping_Block_Checkout_Onepage extends Mage_Checkout_Block_Onepage {
	protected function _getStepCodes() {
		return array('login', 'billing', 'shipping_method', 'payment', 'review');

Step 2: Change billing.html

In layout file removeshipping.xml, you need to define new template for billing address. Our purpose is to remove checkbox for shipping to new different address and add a default value for “ship to the same address”

Here is the layout file


And now you need to copy billing.phtml from checkout/onepage folder into removeshipping folder. Find the code which is used to generated 2 checkbox (ship to same and different address). You need to replace those 2 li by the following:

Step 3: Update OnepageController.php. You will need to rewrite this controller from config.xml file


In new controller file, we just need to rewrite saveBillingAction(). In this function, we just need to comment 2 following lines:

// $result['allow_sections'] = array('shipping');
// $result['duplicateBillingInfo'] = 'true';

Now try to checkout and you can see the result. I also create a package so that you can easily download and installation. Download the file!

15 thoughts on “Disable shipping address in Magento checkout”

15 Responses to Disable shipping address in Magento checkout

  • Doug

    Wow, I have been searching for days for this.. I can not understand why Magento allows a shipping address to be different than the billing address when it is well know that this isn't a best practice method. Thank you times a million. I have the Free version of Magento and I am starting to wonder if they make the free version so useless that it forces us to pay for the paid version? If that is true, that sucks as I can not afford the paid version until after the store is up and running. I wish someone would tell me why Magento makes us work so hard to get the store started. It has been over a month and I am still searching for fixes every day; and NO STORE ;-) Again many thanks for taking the time to post this.

  • Doug B

    Neo, I downloaded your files, and it worked perfectly on 1.8.1 I just wanted to comment and say thank you for the information!
    All the best,
    Doug B.

  • Antonio
    Antonio on July 14, 2014 at 1:14 pm said:

    Doesn't work on 1.9.1

  • Paul
    Paul on July 24, 2014 at 1:32 am said:

    I have Magento ver., downloaded your files, and it worked perfectly after refreshing the cache. Fantastic. Many thanks Neo, you're an absolute star.

  • Jollyjoe

    I also have Magento ver. and it worked perfect after flushing cache storage. Thank you Neo!

  • Magnus
    Magnus on October 3, 2014 at 9:43 am said:

    Nice, thanks!
    One question/issue: It is now, not possible to checkout as a Guest. How do I fix that?

  • Phil Stewart

    I'm very interested in this. However, it appears some of the code is missing. Can you provide a download version?
    Also, is it possible to have multi-site support, so that delivery address is ok for some sites, but not others?

  • […] http://www.magebuzz.com/blog/disable-shipping-address-in-magento-checkout/ […]

  • Plancton
    Plancton on January 29, 2015 at 12:15 pm said:

    Be careful if you use Magento 1.6 : billing.phtml is very different so you will have a fatal error with the downloaded file provided. Report the lines instead (@Neo : pre code is not visible on some blocks of this page !!)
    Secondly, The module should be placed in community pool ,not local : please read this : https://www.yireo.com/blog/1412-when-use-the-community-pool-and-when-the-local-pool

  • Plancton
    Plancton on January 29, 2015 at 12:33 pm said:

    It doesn't work perfectly because you still have the possibility to modify the shipping address with the link in the right column...

  • Plancton
    Plancton on January 29, 2015 at 7:11 pm said:

    why does your file to download include Magentix Happy birthday module ...??

  • Mona

    It is working for me for magento But the label "Shipping Address"on right side on checkout page is still there. :) :)


  • Neo

    @Plancton: Where do you see that module?

  • Arjun

    Continue button not moving to next step

  • tommy

    Can you tell me what i have to do to get the shipping fields and billing adress fields not required in the admin formular? Because when i create a new order in the magento admin i have to fill out the shipping and billing adress.

    Thank you so much and best wishes from germany