Recently I have a case where my client requires me to put the shipping method in options instead of shipping method so they can have different charges for different timing. Here’s how it looks like in the product page:
So as a result, I disabled the “Required shipping” for the product. But it ended up remove the “Delivery Address” in the checkout. What I figured out is, I will need to keep the required shipping as well as the delivery address to be available to the customer. At the same time, remove the “Delivery Method” from step 4.
Enable Free Shipping and hide delivery method in your orders and email
First you need to do is to enable a “free shipping” so that we can use it to let the system select it by default.
Update your checkout.tpl
Open \catalog\view\theme\yourselectedtheme\template\checkout\checkout.tpl and look for:
in line 56. Replace it with:
<div id="shipping-method" style="display:none;">
Then search for
And replace it with
I have seen 2 different type if button id. So if this does not work properly later, try replace it with:
Change the display name of Free Shipping
You may skip all steps from here if the display of “free shipping” in orders / invoices / email does not bother you.
Open \catalog\language\english\shipping\free.phpChange tex_title and text_description as below.
$_['text_title'] = 'Not Applicable'; $_['text_description'] = '';
It is important to keep text_description as empty so it will help in hiding the shipping in your order info and invoice with the steps that I’ll cover later.
Hide Free Shipping in your orders and email
As previously we’ve already empty the text_description, it will not show a shipping method below your payment method in your order details. But you will still see a “$0.00” in your “total” section. To remove this,
open \catalog\view\theme\yourselectedtheme\template\account\order_info.tpl and find the following code in line 127:
Add a if else condition to check if only the title is not empty, display it. So in this condition, the free shipping section will not be displayed as we’ve already empty the free shipping title (text_description) earlier.
We’ll do the same to other files. Open admin\view\template\sale\order_invoice.php and look for
foreach ($order['total'] as $total)
in line 102, add the if else condition in the foreach like what we did earlier. After that, open \catalog\view\theme\default\template\mail\order.tpl and repeat the same action (line 105).
Related Post – Fix for version 2
And we’re done. Share our tutorial with your friend if you like it. =)