It will always show shipping methods even if they are for a weight range outside that of the shopping cart - and it returns 0 cost for these which allows customers to choose a free shipping option.
It's not a bug. If you need to restrict certain shipping methods to certain country, then go to admin area > Configuration > Shipping > Shipping Methods. You can set up country restictions there.
It is a bug. It is not the Country which is the problem. I've restricted the shipping methods by Country - that works fine.
For the shipping methods returned for the selected country, the code gets the rate for each method and if the weight range of the method is outside that of the cart, it still returns zero and displays the shipping method.
Look at the code. I can send you screenshots if required of the bug and the fix.
i'm writing without knowing what your fix isand i don't use shipping by weight and country so, sorry if my point is not relevant but,
if the weight range falls outside what is set up on the cart, how can the cart know what to display - if it does not display a particular shipping option because the weight is not defined, that could mean a customer can't continue to process the order -
is it not better to set up your shipping options then add a catch all at the end so that all possible weights are covered eg, your defined options cover up to 50kg then you set up a catch all for everything from say, 50kgs to 5000kgs
I'm using the functionality 'out of the box' for the Shipping By Weight & Country module.
So here's an example of the bug. The shipping options are set up to cover all weights e.g.
1. Second Class Post (0 to 0.5kg) - £2.00 2. First Class Post (0 to 0.5kg - £3.00 3. Special Delivery (0 to 2kg) - £6.00 4. ParcelForce (2 to 20kg) - £15.00
If the customer adds an item(s) to the cart and the total cart weight is 0.5kg when they checkout, you would expect only options 1, 2 & 3 to be listed as the shipping options. The total weight of the order is outside the range for option 4 so you wouldn't expect option 4 to be shown - right?
The code in the class for this module correctly identifies that the cart/order weight is outside of the range for option 4 so doesn't calculate the shipping rate. Instead it assigns the rate as £0.00 and then shows it. This means the customer can choose this option and continue checking out thereby getting free shipping.
See the screeshot of the bug here - https://www.waterware.co.uk/images/image/Before.gif (notice the ParcelForce UK Express option shown for £0.00) - this has a weight range of 10 to 20 kg and the cart total weight for this screenshot was 0.5kg - so this option should not be available to the customer.
See this screenshot with the bug fixed - https://www.waterware.co.uk/images/image/After.gif - this option is no longer presented.
if you have a product which is set as free shipping, and you only have one shipping option, then it would have to bypass this page otherwise no shipping options would show
i helped a friend set up a shop, he had similar shipping options, so we set up postage so that there was always a value eg, using your scenario
1. Second Class Post (0 to 0.5kg) - £2.00 2. First Class Post (0 to 0.5kg - £3.00 3. Special Delivery (0 to 2kg) - £6.00
4. ParcelForce (0 to 20kg) - £15.00
so that there were no free options but i guess it would be better to achieve this programmatically