Hi Jerome,
Thanks for your reply and the time you taken for it.
I understand very well what Xavier try to explain. He did it perfectly.
What I try to explain you is that (your) customer's feedback is the most important value you can get. Much more than the money we (customers) pay for your products. It is not your products that will let you gain more money, but your reaction (in products developing speaking) to customer's feedback.
Said that, I have some difficulties to understand "normal" related to a software behavior that needs a specific shipping address to determine the appropriate methods (ok, so far so good) but at the same time it allow the user to select a "default" method (loaded by a default arbitrary pre-loaded data). Do we still want to call it normal? Ok.
But once the user selects a specific country, as the page is reloaded to populate the state drop down field, should be "normal" (from my personal point of view) to get a shipping method related to the user's country at least (now the script has it available). Yes, I know that some shipping methods requires a complete address to determine the shipping price and, for those, 2 steps process is the appropriate choice (may be the only one possible without an ajax function, and it would not be a bad development, btw).
Anyway, there are a lot of other shipping methods that just require the country to calculate the final price. For these, splitting the process in two steps it's an unuseful complication. The more simple is the selling process the more easy is the sale. I think everybody can agree to this.
If we consider that it "only" requires to pre-load a different data (detecting the user's geo-location) to fix it... or reload the shipping methods once the country has been submitted... yes, it requires some coding but, hei, we are talking about to refine your product, you should be happy to do it.
What I can't understand, and may be it is my own limit, is that must be the script's customers that have to change their sites to let the script working fine. This is something I really can't understand.
If a developer (in this case you as hikashop and not personally related to anyone, I really appreciate all your work and effort) instead to answer "it is normal" or "you have to change so and so" could answer "hummm, interesting, why do you require this? let us see what we can do. By the way, while we look for a more seamless solution, you can temporarily fix it by splitting the process in two steps. I'll be back to you with a timing forecast for a more efficient solution in a day or two." it would make the customer happy to be heard and to know that the developer thought to the problem from his point of view. This should be already a great result, but enhancing your script you not only fix a customer's needs making him happy, you also fit much more customers with the same needs (of which you don't know) and enlarge your target. It is a win-win situation.
So, below the line, every customer that accepts to change his site to let the script work fine hi lose the chance to let you know there is something you can do to enhance your script. Every time you answer "it is normal" or "you have to do so and so" you lose the chance to understand the customer (who use your product) point of view, think to the process from his point of view and develop a solution that enhance your script and make him (who buy your products) and all other customers (and willing to be) with the same problem happy.
Just my 2cents point of view.
Best regards.