Ship to Different Address Changes Selected Shipping Method
-
Hello –
I have 2 Shipping Zones setup, both have Local Pickup and Shipping. If I select Shipping in the Cart and proceed to the Checkout an fill out the Billing details which is in Shipping Zone 1, then select “Ship to Different Address” and fill out the information that has an address in Shipping Zone 2, in the Order Details it refreshes and then defaults back to “Local Pickup” when I orignally had “Shipping” selected.
Why is this happening, seems like a bug of sorts, or is this intended behavior? Not sure why it would change the Shipping Method on its own?
Thanks
-
Hello @viablethought ,
Let’s first understand the workflow correctly.
You have two zones and you have saved the billing address that matches zone 1. Then you have selected “Ship to Different Address” and used the address that matches with zone 2. After this, you get the shipping methods of zone 2. Is that right?
The above behavior is intended. Because if you want the product to be shipped to a different address and the shipping methods do not match with this new address then the product will go to the wrong address. Also, when you are updating the shipping address, the shipping methods selection area can reload. Some theme/plugin make it to reload immediately after the change, some require you to click on the “Update” button after putting the full address. So reloading is also normal in most cases.
If my assumptions are not right and you intended to explain anything else, please do share more details. You can share a screenshot as well to explain.
Thank you ??
@rur165 –
Let me try and explain a little better…
I have two Shipping Zones:
1. The entire state of New Jersey. Inside this Shipping Zone I have two Shipping Methods: Local Pickup (Free) and Flat Rate Shipping ($10.00)
2. Every location outside of the state of New Jersey. Inside this Shipping Zone I have two Shipping Methods: Local Pickup (Free) and Flat Rate Shipping ($20.00)
If I am located in New Jersey and I fill out the Billing Details with my New Jersey address and select Shipping, this falls into Shipping Zone 1 – Flat Rate $10.00.
But, if I am buying the Product for a friend that lives somewhere outside of New Jersey and I want it to be shipped directly to them, I select “Ship to a Different Address” and maybe put somewhere like Texas or New York, which would be handled by Shipping Zone 2 – Flat Rate $20.00.
Now, when I fill out the “Shipping Details” and just as I enter the State and Zip Code, this is when the Order Details section “refreshes” and then defaults back to Local Pickup even though I had originally selected Shipping.
It does show the updated pricing according to the Shipping Zone 2 in which that address falls under, but why is it switching to “Local Pickup” when I was intending to have it shipped the whole time? It should stay selected as “Flat Rate Shipping”.
This is happening in a vanilla install. Just have a basic dev site set up to test different things and came across this issue.
Hope that makes sense. I can take a video of the behavior if necessary.
Thanks
just my 2c but isn’t it because it’s a completely different shipping option? Although you’ve called it by the same name “Flat Rate Shipping” it’s not actually the same at all.
What happens is the page reloads the shipping options, and the first option is automatically selected, which happens to be “Free local pickup”.
You could either delete “free local pickup” or switch the order in the admin side, but I understand this doesn’t actually solve the issue, it’s more of a workaround.
But as far as I can see this is expected behaviour, as the shipping methods have to be reloaded based on the changed zone.
Hello @viablethought ,
I would say @paulka has already explained it well.
This is actually a default behavior to reload the shipping options when you are using a different address to ship than your billing address. Most of the time both Billing and Shipping address is the same so you get the shipping options during the Billing address form fillup. As both of your zones have similarly named shipping methods it looked like you are selecting the shipping method from zone 2.
I would suggest renaming the shipping method a little bit differently to understand the changes.
I hope this will give you the assurance that WooCommerce is working as intended. let me know if you have any more questions.
Thank you ??
@paulka –
The difference between the Zones is the pricing. Oferring a cheaper rate for those who are inside the state, and all others get a different price.
As a workaround like you mentioned, since “most” people will select “Shipping”, I rearranged the order of the Shipping Methods so that Shipping is the default one, but it doesn’t solve the issue here.
@rur165 – yes but also suggested a “workaround” to the issue.
The problem is that it is changing the selection, why can’t it remember the selection that was made no matter if it is being shipped to the billing address or the shipping address? It remembers other data by use of Cookies right? But for this it is changing the selection to a “default” which happens to be whatever is at the top of the order in the Admin under Shipping Zones.
I went the route of naming the shipping methods differently, that is what prompted this question because I can’t understand for the life of me understand why this would be intended behavior. Seems weird to force people to select something “again” that was already chosen and set in the first part of the process.
Hello @viablethought ,
why can’t it remember the selection that was made no matter if it is being shipped to the billing address or the shipping address?
I can understand your question. Let’s look at an example to understand the behavior.
I have created two zones and each zone has 2 shipping methods on them.
Zone 1 (this will be my billing address):
Flat rate – Billing address
Free shipping – Billing addressZone 2 (this will be my shipping address):
Flat rate – Shipping address
Free shipping – Shipping addressNow, when I am on the checkout page, I have the option to put my billing details. As soon as I put the address the system found the match with methods from Zone 1 – https://prnt.sc/wg6bck.
When I am choosing a different shipping location that matches with Zone 2, the methods should be reloaded and show me the methods available on Zone 2 – https://prnt.sc/wg6cf6.
The final goal is to let the customer choose the shipping methods from the zone that matches the shipping address. At first, by default shipping address and billing address is the same so you get the methods from Zone 1. But you are shipping it to a different address and that is not on Zone 1 so the first selection is invalid. It has to reload and give you the option from Zone 2 which matches the changed shipping address.
In short, the first selection you made becomes invalid because the shipping address is different. So, it has to reload to show the correct shipping methods that match their address.
When you first choose the shipping, that is coming from Zone 1 and after using a different shipping address you get the options from Zone 2 which is the correct behavior.
I hope I was able to clear the confusion. If you have more questions you can share your real-life example setup of shipping settings and I can elaborate from those.
Thank you ??
@rur165 –
It is not correct behavior though, meaning that it forcing the user the “re-select” the same shipping method. If it didn’t exist, I can see it defaulting back to something else.
For instance, go back to your examples:
1. Fill out Billing Details and Select “Free Shipping” – https://i.imgur.com/rnnB9UQ.png
2. Then fill out Ship to a Different Address using an address in your Zone 2, it defaults back to the “Flat Rate” even though my intention the whole time is that I wanted the “Free Shipping”, that is what I selected.
This is the point, is that even though the “same” Shipping Methods are the same in both Zones (aside from maybe price and geo) – they are essentially the same intent.
Another example:
Let’s say it is a Pizza shop offers Curbside Carry-out (Local Pickup) and they also offer Delivery (Flat Rate). I’m on the site ordering from my work office and I want it Delivered to my office building.
Now, because I am at work, obviously my Billing Details are going to be completely different from where it is being Delivered to – but my intent the entire time is to have it Delivered. So my Billing is in Zone 1.
But if the Delivery option is listed 2nd in the Order Details section like so: https://i.imgur.com/1OHBOr6.png – and then I select “Ship to a Different Address” and fill out that information with the address of my office – which is in Zone 2 – it refreshes the Order Details and changes my selection of Delivery to the Shipping Method Curbside Pickup: https://i.imgur.com/45XHuYw.png
It shouldn’t change my selection at all, this is bad UX as it is forcing me to re-select something that I had already determined I wanted the entire time. I wanted it to be Delivered.
Again, I could see if Zone 2 didn’t have a Delivery option and only offered Curbside Pickup for people outside of the delivery range, but then Delivery would be removed as an option and you only have Curbside as an option – then yeah, it would change and default back to that – that makes sense.
But when there are multiple Shipping Zones with the same exact options only differentiated by pricing – the option should not change (as long as it is available) – which in Woo there are only 3: Flat Rate, Free, and Local Pickup.
So why not have a check in place where it looks for a matching Shipping Method instead of just changing it just because? Seems silly to me.
- This reply was modified 3 years, 10 months ago by Jason Ryan.
Hello @viablethought ,
I see we have a missing point here and I am happy that you took the time to share your use-case. I can explain the exact missing point now.
The shipping methods (local pickup/delivery) that you see on the right side are Zone specific.
It does not show all the methods from all zones. Only one zone can match and the methods from that zone appear.
I completely agree that, if you have similarly named options for both zones then it can make it feel like a bad UX. However, there is no other way in WooCommerce to handle the shipping choices.
The point here that we need to concentrate on is, the shipping methods are not the same in both zones. They are completely different because they are coming from two different zones. The only similarity they have is the name and hence the confusion arises.
The only procedure I believe will make your UX better if you put the shipping options on top/first on the process. In that way, the first selection will be your shipping address and after that when you put your billing address the selection will not be reset. Here the priority is on the shipping address so once you have the shipping address matched then it does not matter which billing address you are adding.
This process will require some customization. I am providing the guideline here but if you are unsure of making code changes, please do consult with an expert.
The first step will be making the shipping fields opened by default by adding this line in your active theme’s
functions.php
file –add_filter( 'woocommerce_ship_to_different_address_checked', '__return_true' );
Then we need to reverse the position of billing and shipping hooks under this file –
\woocommerce\templates\checkout\form-checkout.php
see – https://prnt.sc/wh13doIn case of getting professional experts help to implement the changes you can take help from our recommended services here – https://woocommerce.com/customizations/
I hope this covers all of your queries.
Thank you ??
Hi there,
We’ve not heard back from you in a while, so I’m marking this thread as resolved.
Hopefully, you were able to find a solution to your problem! If you have further questions, please feel free to open a new topic.
Thank you ??
@rur165 –
Yeah, the solution may be Shopify. LOL… j/k
While I thank for you for the information in your previous response, it still doesn’t solve the issue with data being removed on the page when a separate address is added or when a different shipping method is selected.
Even if I “flip” the Shipping and Billing, doesn’t the checkbox for the “Ship to a Different Address” still show and it would be at the top now? This doesn’t seem ideal.
It would be better if the “Shipping” details were the default and then you could “Force to customers shipping address” in the WooCommerce settings – THEN have a checkbox saying:
“Is the Billing Address the Same as the Shipping Address?”
This way the Shipping address never changes and the checkout wouldn’t have to keep checking against the different zones and refreshing the Order Details or refreshing the checkout page.
Jason
Hello @viablethought ,
We have settings under wp-admin > WooCommerce > Settings > Shipping > Shipping Options – Shipping destination (Default to customer shipping address).
Maybe this can solve the issue for existing customers who has shipping details saved.
WooCommerce is highly customizable. If you want to change the behavior of how the checkout works you can consider custom development.
I can recommend the WooCommerce Developer Resources Portal for resources on developing for WooCommerce.
You can also visit the WooCommerce Facebook group or the
#developers
channel of the WooCommerce Community Slack. We’re lucky to have a great community of open-source developers for WooCommerce, and many of our developers hang out there, as well.If you need a paid solution, you can consider taking help from one of our partner’s website.
Thank you ??
- The topic ‘Ship to Different Address Changes Selected Shipping Method’ is closed to new replies.