When a customer has previously placed orders, there will be drop down called "Saved addresses" from which the customer can select an address.
At first, when selecting an address for delivery no shipping costs are calculated. But when selecting an other address, shipping costs *are* calculated, but these shipping costs are based on the previously selected address.
Let's say whe have three flat rates:
1. $ 5.00 (valid when postal code is "11111")
2. $ 7.50 (valid when postal code is "22222")
3. $ 2.50 (valid when zone is "Alabama" (= 1))
The customer has placed three orders in the past, one with postal code = "11111", one with postal code = "22222" and one with zone = "Alabama".
The customer wants to checkout for the fourth time, he/she adds a product to the cart and goes to the checkout page.
At first, the customer selects the address with postal code 11111 from the saved address drop down. No shipping costs are calculated.
Second, the customer changes his/her mind and selects the address with postal code 22222 from the saved addresses drop down. Shipping costs are calculated and result into $ 5.00. This is wrong, because that rate may only be valid when the postal code is "11111" and the current postal code is "22222". So the shipping costs should have been $ 7.50.
(and modules were the above listed depend on)
I have the following files attached:
- A file with the rules I had defined.
- A PHP file, to be executed in a Drupal environment, that adds three orders and three flat rates to the database. With this you can faster setup a test environment to reproduce the bug.
Also attached are some images to clarify what's going wrong.
1. Customer enters checkout page. No shipping costs are calculated.
2. Customer selects address with postal code = "11111". No shipping costs are calculated.
3. Customer selects address with postal code = "22222". Shipping costs for postal code = "11111" are calculated.
4. Customer selects address with zone = "Alabama". Shipping costs for postal code = "22222" are calculated.
PASSED: [[SimpleTest]]: [MySQL] 2,943 pass(es). View