Digital products - bypass shipping

Hi there,

I have setup digital products.
I have a Delivery type as ‘digital download’ and I have set ‘Show shipping step’ as ‘never’.
but in checkout, it’s still asking me for my full shipping address details.
How can I avoid this?

The products are also free, but it’s also asking for the billing address, which doesn’t make sense.

Ideally, I would just ask for their name and email address, and nothing else.

Is this possible?


You can customise the address step template to only require the fields you need. IIRC, an order does need a country value (tax reasons), and you’ll probably also want their name and email.

You might like to give Autofill Geo IP - modmore documentation a whirl. This can prefill a customer’s country for you based on their IP address.

Thanks for this.
I’m a little confused as to why I cannot bypass the address when I have ‘Show shipping step’ as ‘never’?

As my products are free, and digital, there is no need for the address at all.

If I have to add country then I guess I can work with that, but is it possible to use a different address.twig template for digitial products only?

I also sell prints, so I will need the shipping and billing address for those orders.

I have look at the docs you kindly sent, but i can’t see information about whether different templates can be used for different shipping methods.


Hi Andy,

Make sure the system setting commerce.checkout_allow_skipping_steps is enabled.

Showing the shipping step as never means it won’t display that shipping method on the step where a customer would normally select how they want their shipment to be delivered.

You’ll need at least a billing address, because that’s where the customer’s name and email are stored.
The address step can be skipped if it’s already been filled out and saved. One way might be to allow them to enter that info on the product page and have a module add that to an address before you get to the address step, but that’s delving into more advanced territory e.g. Developer - modmore documentation

If I have to add country then I guess I can work with that, but is it possible to use a different address.twig template for digitial products only?

Switching templates based on the type of shipment or product is also something that would typically be done with a custom module. Although, you need to keep in mind things like what if someone selects multiple products that each use a different shipping method, which template would take precedence?

The shipping step displays each delivery type in the order and then offers the customer a choice of shipping method for each one.

Thanks - So the system setting commerce.checkout_allow_skipping_steps is already enabled.

I understand - I thought it meant it would skip the step altogether.

This is a shame. It’s a free product, with no shipping, so there’s no need for me to ask for their address. It would feel strange as a customer being asked for all those details just to download a free product - Personally as a customer it would put me off, and fee like their are just wanting all my data.

I assume you mean to ask for their name and email address on the product page?
This could work, but I think the module creation would be beyond my abilities.

This is a good point. If customer orders a digital product and a physical product, there isn’t an issue, because they will enter their address for the delivery - it’s only when it’s a digital product only that it’s causing an issue. I’m currently using ECWID (which I want to move away from!) which only asks for name and email address if it’s a digital product. It’s very quick and easy. It would be good if I could hide the address field, and auto-complete it with my address behind the scenes - so that their address record shows as mine. That way they don’t need to complete it - but this again sounds complicated to achieve.

I’m wondering if maybe I should create the free products outside of Commerce using Formit, and redirect users to the resource once they have completed the form… It’s a shame to move it away from Commerce though. hmmm…

So to update - I think for the sake of time and sanity - I have created a very simple Formit form, which appears on the free product page, where users can download the free product directly after entering their details. So it doesn’t add to cart - just a direct download - but i get a CC email so i can see who ordered.

I think this is a much simpler option, and saves the aggravation of multiple shipping types etc.

To clarify some confusion…

The delivery option method you set to “never show skipping step” skips the shipping method step, not the address step. All orders require an address, even if it’s just an email and country - everything else is optional and can be removed from the template.

The checkout_allow_skipping_steps setting controls if the checkout skips completed steps automatically; such as when an address is filled and a single shipping method is available, the customer is sent immediately to the payment step. That can happen either by modules or Commerce prefilling/preselecting information, or the customer going back to the cart after partially completing the purchase and then hitting checkout again.

But yeah if it’s a free product that you don’t need an order for to download, skipping Commerce entirely is much more sensible.

Got it - thanks!