View Issue Details

IDProjectCategoryView StatusLast Update
0002149OXID eShop (all versions)1.03. Basket, checkout processpublic2012-12-10 14:13
Reporterleofonic Assigned To 
PriorityhighSeveritymajorReproducibilityalways
Status resolvedResolutionfixed 
Product Version4.4.3 revision 30016 
Fixed in Version4.4.7 revision 33396 
Summary0002149: Higher shipping cost for certain articles does not work
DescriptionSince 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)
TagsNo tags attached.
Theme
BrowserAll
PHP Versionany
Database Versionany

Relationships

related to 0001659 resolveddainius.bigelis articles cannot be restricted to certain delivery set 
has duplicate 0002357 closeddainius.bigelis categories and article assignment, wrong calculation of delivery costs 

Activities

Holger Kohnen

2010-11-11 11:07

reporter   ~0003686

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.

leofonic

2010-11-14 18:39

reporter   ~0003693

Last edited: 2010-11-15 21:17

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

leofonic

2010-11-18 14:48

reporter   ~0003716

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

Holger Kohnen

2010-12-01 11:59

reporter   ~0003772

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

leofonic

2010-12-02 20:29

reporter   ~0003777

I think it is always "one article has to match the rule", so no need for an additional option.

henrik.steffen

2011-01-04 19:46

reporter   ~0003934

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

Holger Kohnen

2011-01-07 11:14

reporter   ~0003943

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

leofonic

2011-01-07 22:04

reporter   ~0003949

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.

arvydas_vapsva

2011-02-02 15:29

reporter   ~0004061

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?

leofonic

2011-02-02 20:20

reporter   ~0004068

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.

arvydas_vapsva

2011-02-07 16:42

reporter   ~0004086

Restoring changes made after 0001659 fix: articles cannot be restricted to certain delivery set