View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0002149 | OXID eShop (all versions) | 1.03. Basket, checkout process | public | 2010-10-07 12:21 | 2012-12-10 14:13 |
Reporter | leofonic | Assigned To | |||
Priority | high | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 4.4.3 revision 30016 | ||||
Fixed in Version | 4.4.7 revision 33396 | ||||
Summary | 0002149: Higher shipping cost for certain articles does not work | ||||
Description | Since resolution of https://bugs.oxid-esales.com/view.php?id=1659 ("articles cannot be restricted to certain delivery set") it is no longer possible to define articles that cause high shipping cost according to this tutorial: http://www.oxid-esales.com/en/resources/help-faq/eshop-manual/higher-shipping-cost-if-certain-products-are-purchased | ||||
Steps To Reproduce | - Set up article with high shipping cost - Put Special article in basket => High shipping cost is calculated - Add another normal article => Shipping cost is low again (should be high) | ||||
Tags | No tags attached. | ||||
Theme | |||||
Browser | All | ||||
PHP Version | any | ||||
Database Version | any | ||||
related to | 0001659 | resolved | dainius.bigelis | articles cannot be restricted to certain delivery set |
has duplicate | 0002357 | closed | dainius.bigelis | categories and article assignment, wrong calculation of delivery costs |
|
This Bugs seems to be caused by the oxDelivery->isForBasket method. There are three Checks for: $this->oxdelivery__oxfixed->value > 0 So in most cases the result variable: $blForBasket is not set to true, if the delivery-rule is configured with: "Once for whole Basket"-Option (oxfixed == 0). The Check for: $this->oxdelivery__oxfixed->value > 0 should be removed. In the basket-Contents loop there is a break statement: if ( !$blUse ) { break; } This should be replaced with: if ( $blForBasket ) { break; } Otherwise, only the first article is checked against delivery-rule. |
|
Tried Holgers fix and it seems to work. EDIT: But it seems to introduce bug 0001659 again so it may be equivalent to behaviour before 4.4.2. This bug also breaks the following tutorial: http://www.oxid-esales.com/en/resources/help-faq/eshop-manual/lower-shipping-cost-if-only-products-certain-categories-are-purchase |
|
Additional Note: If the Shipping Cost Rule for the articles that cause high shipping cost is set to "For each product", total shipping cost is dependant on order of products in basket. High shipping cost is only calculated when the special article has the first position in basket. http://www.oxid-esales.com/forum/showthread.php?t=7626 |
|
I think a solution would be to allow the user to choose whether: - all articles must match the rule, or - only one article have to match the rule Btw. This should be a major issue, because delivery cost calculation is business critical |
|
I think it is always "one article has to match the rule", so no need for an additional option. |
|
the behaviour which was implemented in 4.4.3 brings new trouble. We have some customers who can't use their old shipping sets any more. Especially when some categories had cheaper, and some had more expensive costs. It's impossible to create these settings right now with the current release. This needs urgent fixing.... One fix which helped my customers so far is to revert to the shipping behaviour of 4.4.2 |
|
There are three cases around these bugs: 1.) Shipping costs for each article matching a roule 2.) Shipping costs once if one article matching a roule 3.) Shipping costs once if all articles matching a roule Case 2.) -> higher-shipping-cost-if-certain-products-are-purchased Case 3.) -> lower-shipping-cost-if-only-products-certain-categories-are-purchase The code needs to seperate between: - Application of roule per article and - Application of costs per article So i think the best thing would be to have in admin: [x] Roule needs to match one article in basket [ ] Roule needs to match every article in basket and [x] Add cost once for basket [ ] Add cost for each article position in basket [ ] Add cost for each article in basket |
|
I see what you mean by "Roule needs to match every article in basket" now. But case 3 "lower-shipping-cost-if-only-products-certain-categories-are-purchase" was possible before, without a new option, as shown in the tutorial. So i would suggest to fix this bug first and then see if options should be extended. |
|
After reading you discussion i came to an idea, that best solution is: - restore changes made after 0001659 fix. This would fix problem reported in current bug entry (0002149); - implement options (feature) suggested by Holger Kohnen (https://bugs.oxid-esales.com/view.php?id=2149#c3943). This would fix 0001659 bug. Do you agree? |
|
I think a new option "one article/every article" would not fix 0001659 bug. Right now, it is always the first option "one article has to match the rule", so having another additional option would extend possibilities, but it would not change the behaviour causing 0001659 bug. Bug 0001659 is about which delivery sets are valid and selectable during checkout, but when it was resolved, apparently the resolution also changed the logic inside the cost calculation of every single delivery set, which caused the current bug entry. So the idea i would have is to restore to the state before bug 0001659, which would solve the current entry, and then find a new way to solve bug 0001659, which does not touch cost calculation inside the delivery sets. |
|
Restoring changes made after 0001659 fix: articles cannot be restricted to certain delivery set |