View Issue Details

IDProjectCategoryView StatusLast Update
0003486OXID eShop (all versions)1.03. Basket, checkout processpublic2012-12-10 14:13
Reporterrichard.kiefer Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
Status closedResolutionduplicate 
Product Version4.5.6 revision 40808 
Summary0003486: No shipping costs if last item in basket is marked "free shipping"
DescriptionObserved behaviour:
In Payment-view, shipping methods do not show any shipping costs (for any shipping method) if last article in basket is marked as "free shipping".

Expected behaviour:
Free-shipping-articles should be kind of excluded from shipping costs calculation, but shipping costs for no-free-shipping-articles should still be applied.
Steps To ReproduceAdd article with no-free-shipping to basket.
=> shipping costs are calculated

Add article with free-shipping to basket.
=> no shipping costs are displayed.

Add article with no-free-shipping to basket.
=> shipping costs are calculated.

This is also reproduceable in the demoshop with the above named version. Make sure that no shippsetrules unintentionally become active, e.g. for certain price treshholds.
TagsNo tags attached.
Attached Files
oxdelivery_4.5.4_issue3486.txt (1,190 bytes)   
# This patch file was generated by NetBeans IDE
# Following Index: paths are relative to: /home/richardwebfrisch/NetBeansProjects/regame-X2/httpdocs/core
# This patch can be applied using context Tools: Patch action on respective folder.
# It uses platform neutral UTF-8 encoding and \n newlines.
# Above lines and this line are ignored by the patching process.
Index: oxdelivery.php
--- oxdelivery.php Base (BASE)
+++ oxdelivery.php Locally Modified (Based On LOCAL)
@@ -224,9 +224,13 @@
 
         // mark free shipping products
         if ( $oProduct->oxarticles__oxfreeshipping->value ) {
-            $this->_blFreeShipping = true;
+            //#M3486: No shipping costs if last item in basket is marked "free shipping"
+            //$this->_blFreeShipping = true;
         } else {
+            //#M3486: No shipping costs if last item in basket is marked "free shipping"
+            $this->_blFreeShipping = false;
 
+            
             $blExclNonMaterial = $this->getConfig()->getConfigParam( 'blExclNonMaterialFromDelivery' );
             if ( !( $oProduct->oxarticles__oxnonmaterial->value && $blExclNonMaterial ) ) {
                 $this->_blFreeShipping = false;
oxdelivery_4.5.4_issue3486.txt (1,190 bytes)   
ThemeBoth
BrowserAll
PHP Versionany
Database Versionany

Relationships

duplicate of 0003524 resolvedmindaugas.rimgaila Shipping of basket will be set to zero for whole basket if shipping-free article is the last that have been put into basket 

Activities

richard.kiefer

2012-01-11 11:38

reporter   ~0005600

The problem occurs in oxDelivery::getDeliveryAmount() where a single free-shipping article marks the whole delivery as "free shipping".

As a remark to the existing core implementation: deliveries are considered as free-shipping (cf. protected member variable _blFreeShipping initialisation) unless one article is found to be non-free-shipping.

The attached diff patch for version 4.5.4 resolves this issue.
However, it appears that free-shipping-articles do not contribute to any weight-, size- or price-treshholds; what the intended behaviour is, remains open.