magento2.4 – M2: How to display billing address first at checkout?

For some reason Magento 2 asks shipping details first at checkout. This is a bit problematic in some cases. For example if customer want’s to pick up the order instead of it being shipped she does not understand why shipping details are asked in the first place.

There are also cases where customer’s are puzzled when they need to give EU VAT ID and they have different billing and shipping addresses. They might give it only in shipping details and leave it out of the billing details. Or they might leave it our from the shipping details and give it only in billing details.

One case is that a company makes the order and company’s name must be in the Billing address, but the order is going to be delivered to customer’s personal address, so Shipping details might not have EU VAT ID at all and that results wrong VAT calculation because of tax settings (tax based on shipping destination).

We need the billing address to have the EU VAT ID so that it get’s printed into Invoice. But it is also required to be in the Shipping details as the tax calculation is better to be based on shipping address than on billing address because of the EU VAT regulations in cross border sales where VAT is usually based on the customer’s shipping destination country.

(Also problematic is the fact that when customer registers she already gives EU VAT ID, but that is not used in VAT calculations, but that is another story.)

Some of these problems might be avoided if billing address would be asked first. There should also be a checkbox “My billing and shipping address are the same” just below the Billing address fields. Is there a way to do these changes and what would be the effects?

I’m guessing that some extensions might use the shipping address, but would that be a problem if by default the checkout would save the billing address to be the same as shipping address?

One solution could also be that there would be a selection for the customer “Are you a business customer with an EU VAT ID?”. Then it would present the VAT ID field only when needed and only once (not for shipping and billing separately).