Magento2: Customer Address "default billing address" Attribute Not Used in Checkout

Created on 3 Mar 2017  路  37Comments  路  Source: magento/magento2

When a logged in customer adds addresses to their address book, they are able to specify a default shipping address and a default billing address.

If the logged in customer then goes through checkout, when they reach the payment screen, their previously selected "default billing address" is not displayed as the default. Instead the default billing address is the shipping address they selected during checkout, and they must uncheck the "My billing and shipping address are the same" checkbox in order to manually select their default billing address.

This is not a crippling bug, but it is an annoyance for customers during checkout, and the UI should be addressed to prevent confusion and annoyance.

If a customer selects a default billing address for their account, it should be the default address displayed on the payment screen of checkout.

Preconditions

Install Magento 2. Any version. I am currently running 2.1.6, but I believe this bug is in every version.

Steps to reproduce

  1. Log in to the frontend as a customer of a store
  2. Specify that an address is your default billing address:

image

  1. Add any product to your cart
  2. Go to checkout
  3. Select any shipping address, any shipping method, then click Next

Actual result

The shipping address selected in checkout will be preselected as the billing address, like this:

image

Expected result

Since the customer has previously specified a DEFAULT BILLING ADDRESS, the customer expects their default billing address to be used as the DEFAULT BILLING ADDRESS.

Due to this bug, the user is required to uncheck the "My billing and shipping address are the same" checkbox, and select their default billing address from the drop-down list that displays.

It may be reasonable to the use Shipping Address as the default billing address during checkout IF and ONLY IF the customer has not specified a default billing address. That is also reasonable with all guest checkouts.

But for a logged-in user who has already specified a default billing address, it is a BUG to not respect their pre-selected choice during checkout.

Additional Information

So... No, I am not looking for "advice" or "discussion". This is a bug caused by overriding a customer-specified option with what would normally be a sensible default, but that is only sensible in certain situations. This is a "technical issue" that needs to be addressed in all versions of Magento 2.

This is a confusing issue for users on our live M2 site and it has resulted in multiple customer service issues with incorrect addresses slipping on to orders because customers assume the default billing address they specify will be respected at checkout, and don't notice some of the time that this bug is changing it on them.

I see two alternate obvious solutions:

  1. When a user is logged in AND has selected a default billing address, then that address should be pre-selected as the billing address during checkout.
  2. If you are not going to respect the user's pre-selected default billing address, then the option to select a default billing address in their Address Book section should be removed in order to prevent confusion.

I would prefer option 1. Users who want to pre-select their billing address would also like option 1. Option 1 is especially important for B2B merchants where their customers may have many addresses to manage in Magento and want invoices to go to company headquarters (this is a common use case for us on our production B2B M2 site).

Checkout Clear Description Confirmed Format is valid Reproduced on 2.2.x Reproduced on 2.3.x

Most helpful comment

Here goes attempt 2:

TITLE

Magento 2 Should Not Ignore Customer-Selected Default Billing Address

PRECONDITIONS

Install Magento 2. Any version. I am currently running 2.1.6, but I believe this bug is in every version.

STEPS TO REPRODUCE

  1. Log in to the frontend as a customer of a store
  2. Specify that an address is your default billing address:

image

  1. Add any product to your cart
  2. Go to checkout
  3. Select any shipping address, any shipping method, then click Next

ACTUAL RESULT

The shipping address selected in checkout will be preselected as the billing address, like this:

image

EXPECTED RESULT

Since the customer has previously specified a DEFAULT BILLING ADDRESS, the customer expects their default billing address to be used as the DEFAULT BILLING ADDRESS.

Due to this bug, the user is required to uncheck the "My billing and shipping address are the same" checkbox, and select their default billing address from the drop-down list that displays.

It may be reasonable to the use Shipping Address as the default billing address during checkout IF and ONLY IF the customer has not specified a default billing address. That is also reasonable with all guest checkouts.

But for a logged-in user who has already specified a default billing address, it is a BUG to not respect their pre-selected choice during checkout.

ADDITIONAL INFORMATION

So... No, I am not looking for "advice" or "discussion". This is a bug caused by overriding a customer-specified option with what would normally be a sensible default, but that is only sensible in certain situations. This is a "technical issue" that needs to be addressed in all versions of Magento 2.

This is a confusing issue for users on our live M2 site and it has resulted in multiple customer service issues with incorrect addresses slipping on to orders because customers assume the default billing address they specify will be respected at checkout, and don't notice some of the time that this bug is changing it on them.

I see two alternate obvious solutions:

  1. When a user is logged in AND has selected a default billing address, then that address should be pre-selected as the billing address during checkout.
  2. If you are not going to respect the user's pre-selected default billing address, then the option to select a default billing address in their Address Book section should be removed in order to prevent confusion.

I would prefer option 1. Users who want to pre-select their billing address would also like option 1. Option 1 is especially important for B2B merchants where their customers may have many addresses to manage in Magento and want invoices to go to company headquarters (this is a common use case for us on our production B2B M2 site).

All 37 comments

You know the right thing would be a mirror of the select shipping address for billing address adding another step to the checkout process!

This is a retail design curiosity since 99% of home customers use the same ship/bill-to anyways!

But I agree - add another step to one page so you can select/update your billing address before the shipping address - like it should be!

Not very professional how most one page checkouts leave out things like PO_NUMBER (even for CC) and assume the billto/shipto are the same!

I agree that this is an issue, especially for B2B merchants. This may not be the best UI, but here is one way that this the "default billing address" handling could be improved:

If a customer has a billing address that is different than their default shipping address (for example) then when they get to the second step of the checkout, this is what they should see:

16-31-38 proxy php 1304x769 -ku4r9

I also agree that this is an issue.

I would like to take @erikhansen example one step further in that it should be pre set with the default billing address to avoid pushing the update button.

@ddeppner if you want to report an issue please format this issue according to the Issue reporting guidelines: with steps to reproduce, actual result and expected result.
Please, also identify which version of Magento you are running.
If you are looking for some advice or discussion please refer to the Community Forums or the Magento Stack Exchange site as GitHub issue tracker is intended for technical issues only.

Here goes attempt 2:

TITLE

Magento 2 Should Not Ignore Customer-Selected Default Billing Address

PRECONDITIONS

Install Magento 2. Any version. I am currently running 2.1.6, but I believe this bug is in every version.

STEPS TO REPRODUCE

  1. Log in to the frontend as a customer of a store
  2. Specify that an address is your default billing address:

image

  1. Add any product to your cart
  2. Go to checkout
  3. Select any shipping address, any shipping method, then click Next

ACTUAL RESULT

The shipping address selected in checkout will be preselected as the billing address, like this:

image

EXPECTED RESULT

Since the customer has previously specified a DEFAULT BILLING ADDRESS, the customer expects their default billing address to be used as the DEFAULT BILLING ADDRESS.

Due to this bug, the user is required to uncheck the "My billing and shipping address are the same" checkbox, and select their default billing address from the drop-down list that displays.

It may be reasonable to the use Shipping Address as the default billing address during checkout IF and ONLY IF the customer has not specified a default billing address. That is also reasonable with all guest checkouts.

But for a logged-in user who has already specified a default billing address, it is a BUG to not respect their pre-selected choice during checkout.

ADDITIONAL INFORMATION

So... No, I am not looking for "advice" or "discussion". This is a bug caused by overriding a customer-specified option with what would normally be a sensible default, but that is only sensible in certain situations. This is a "technical issue" that needs to be addressed in all versions of Magento 2.

This is a confusing issue for users on our live M2 site and it has resulted in multiple customer service issues with incorrect addresses slipping on to orders because customers assume the default billing address they specify will be respected at checkout, and don't notice some of the time that this bug is changing it on them.

I see two alternate obvious solutions:

  1. When a user is logged in AND has selected a default billing address, then that address should be pre-selected as the billing address during checkout.
  2. If you are not going to respect the user's pre-selected default billing address, then the option to select a default billing address in their Address Book section should be removed in order to prevent confusion.

I would prefer option 1. Users who want to pre-select their billing address would also like option 1. Option 1 is especially important for B2B merchants where their customers may have many addresses to manage in Magento and want invoices to go to company headquarters (this is a common use case for us on our production B2B M2 site).

Hi,
Any news regarding this issue ?

@ddeppner Hi. Thanks for the feedback. The internal ticket MAGETWO-70996 was created to address this issue.

Hello any progress on the Internal Ticket?

https://www.goivvy.com/blog/magento-2-set-billing-shipping-address-unchecked-default-checkout
how if neuter the address same as shipping checkbox which overrides the billing with the shipping address

Thank you @southerncomputer , Actually i did that but we still have a problem in selecting the address,
if you have one address you will have this view
image
you still need from customer to click "Update", it is not user friendly

Yeah I had to change the module that creates the customer cart to load a default shipping/billing address or fall back to any address since when the quote gets made, it is loaded with empty values, then the onepage checkout loads the default shipping address into the tables if they are empty but if they are preloaded at cart creation then the values stick!

@ddeppner, thank you for your report.
We've created internal ticket(s) MAGETWO-70996 to track progress on the issue.

For what it's worth, Classy Llama implemented a custom extension to auto-select the default billing address. I've attached the extension to this comment. Use at your own risk.
ClassyLlama_DefaultBillingAddress.zip

UPDATE 1/23/18 - The issue reported by @southerncomputer should now be fixed.

@Magento - Feel free to reference this code as you're working on the MAGETWO-70996 ticket.

The ClassyLlama patch can cause a loop to occur if you've modified your reloading of payment upon Billing Address change in One Step Checkout! Be careful!

I think we should also add here possibility to make this checkbox unchecked by default for guest customers and show form by some settings in admin panel or at least by easy to modify option/variable in the code for developers.

We've been having trouble with this bug on a production website, where customers are attempting to check out and seeing a very unhelpful "An error occurred on the server. Please try to place the order again." error message because its not at all obvious to them that they need to select "Update" when they're presented with a dropdown form of potential billing addresses.

Since originally tracking this problem, we have deployed an update to our website and discovered its actually worsened this bug from a customer-experience perspective. We have deployed the fix for #10767 to our website, which disables the "Pay and place order" button when the checkout is in an invalid state (missing billing address).

This is now leaving us with a checkout form which looks complete to a customer, but has a "Place order" button that doesn't actually do anything. There's no front-end validation informing the user they need to select a billing address, and the fix for #10767 now means there's no round-trip to the server for a server-side error message (which could be used to help guide customers to resolve the problem themselves).

@RJacksonm1 One thing I did for a merchant recently was to change the "Update" button to be much more obvious. I believe native Magento has the button right-aligned and a light grey, which is easy to miss.

14-07-42 checkout showmecables com-o06ls

HI please can we get an update as to when this issue is going to be resolved, this issue has been open for nearly a year now and it seems very basic functionality to pull in the default billing address. This is causing a lot of frustration for us when a high proportion of our customers are sending gifts and the ship/billing address in a lot of our orders are different.

I'm assuming for most gifting sites they are all experiencing a lot of customer issues because of this bug.

Agree with points above - why have a 'default' billing address if it's not actually going to be used as a default? This is nonesensical logic and very confusing for repeat customers

I've built a small module for this issue, placing the default billing address (if it exists) instead of shippingAddress when there is not billingAddress during checkout.

In our b2b project we've deleted the billing-address selector in payment step, so it's the only way we set the billing address.

I upload the sample code, surely you can adapt it for your uses.
Custom_Checkout.zip

Thanks @gomencal - we'll have a look

@gomencal Thanks for sharing!

@southerncomputer Earlier in this Github issue thread you said this:

The ClassyLlama patch can cause a loop to occur if you've modified your reloading of payment upon Billing Address change in One Step Checkout! Be careful!

We were able to reproduce this and the issue should now be fixed in the extension.

distributed-cd

@astyczen thank you for joining. Please accept team invitation here and self-assign the issue.

Is the solution part of 2.3?

Hi @ravi-chandra3197. Thank you for working on this issue.
Looks like this issue is already verified and confirmed. But if your want to validate it one more time, please, go though the following instruction:

  • [ ] 1. Add/Edit Component: XXXXX label(s) to the ticket, indicating the components it may be related to.
  • [ ] 2. Verify that the issue is reproducible on 2.3-develop branch

    Details- Add the comment @magento-engcom-team give me 2.3-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.3-develop branch, please, add the label Reproduced on 2.3.x.
    - If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and _stop verification process here_!

  • [ ] 3. Verify that the issue is reproducible on 2.2-develop branch.

    Details- Add the comment @magento-engcom-team give me 2.2-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.2-develop branch, please add the label Reproduced on 2.2.x

  • [ ] 4. If the issue is not relevant or is not reproducible any more, feel free to close it.

Hi @engcom-backlog-nazar. Thank you for working on this issue.
In order to make sure that issue has enough information and ready for development, please read and check the following instruction: :point_down:

  • [ ] 1. Verify that issue has all the required information. (Preconditions, Steps to reproduce, Expected result, Actual result).
    DetailsIf the issue has a valid description, the label Issue: Format is valid will be added to the issue automatically. Please, edit issue description if needed, until label Issue: Format is valid appears.
  • [ ] 2. Verify that issue has a meaningful description and provides enough information to reproduce the issue. If the report is valid, add Issue: Clear Description label to the issue by yourself.

  • [ ] 3. Add Component: XXXXX label(s) to the ticket, indicating the components it may be related to.

  • [ ] 4. Verify that the issue is reproducible on 2.3-develop branch

    Details- Add the comment @magento-engcom-team give me 2.3-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.3-develop branch, please, add the label Reproduced on 2.3.x.
    - If the issue is not reproducible, add your comment that issue is not reproducible and close the issue and _stop verification process here_!

  • [ ] 5. Verify that the issue is reproducible on 2.2-develop branch.

    Details- Add the comment @magento-engcom-team give me 2.2-develop instance to deploy test instance on Magento infrastructure.
    - If the issue is reproducible on 2.2-develop branch, please add the label Reproduced on 2.2.x

  • [ ] 6. Add label Issue: Confirmed once verification is complete.

  • [ ] 7. Make sure that automatic system confirms that report has been added to the backlog.

Hello @ddeppner @pemann @erikhansen @kamchovet

Thank you for contribution and collaboration!

The corresponding internal tickets MAGETWO-70996, MAGETWO-72961 were fixed and closed by Magento team

Delivered to 2.3-develop branch and should be available with 2.3.2 release
Please see details in the next commits:

  • 5ec72e4
  • 0b7455f
  • fd611a7
  • 8657339
  • 1f5e89b

Delivered to 2.2-develop branch and should be available with 2.2.9 release
Please see details in the next commits:

  • 5916f40
  • f4e6adc
  • 539cb3d
  • db92857
  • 701d686
  • 893ce79

Issue still remains in 2.3.2.

Still reproduced this in a 2.3.5-p1 shop.

@magento give me 2.3.6-develop instance

Hi @moranotcsos. Thank you for your request. I'm working on Magento instance for you.

Hi @moranotcsos, unfortunately there is no ability to deploy Magento instance at the moment. Please try again later.

@magento give me 2.4-develop instance

Hi @pmcnamaracpc. Thank you for your request. I'm working on Magento instance for you.

Not sure about those reports of this not being addressed on 2.3, but this works on 2.4-develop

  1. Setup these addresses on a customer:
    01_Setup Addresses
  2. Entered shipping step, shipping address is preselected as intended.
    02_enter_shipping_step
  3. Entered billing step, billing address is preselected as intended.
    03_enter_billing_step
Was this page helpful?
0 / 5 - 0 ratings