From 3fbd7dc55c7cd86d9447b7502f78de1a97bd7d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Fri, 4 Jan 2013 14:51:01 +0100 Subject: [PATCH] [-] BO: Fix #PSCFV-6120 display of shipping price on BO order summary detail with freeshipping --- classes/Cart.php | 2 +- classes/CartRule.php | 2 ++ controllers/admin/AdminCartsController.php | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/classes/Cart.php b/classes/Cart.php index 322881e9d..fbad5f7a0 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -2850,7 +2850,7 @@ class CartCore extends ObjectModel foreach ($cart_rules as &$cart_rule) { // If the cart rule is automatic (wihtout any code) and include free shipping, it should not be displayed as a cart rule but only set the shipping cost to 0 - if ($cart_rule['free_shipping'] && empty($cart_rule['code'])) + if ($cart_rule['free_shipping'] && (empty($cart_rule['code']) || preg_match('/^'.CartRule::BO_ORDER_CODE_PREFIX.'[0-9]+/', $cart_rule['code']))) { $cart_rule['value_real'] -= $total_shipping; $cart_rule['value_tax_exc'] = $total_shipping_tax_exc; diff --git a/classes/CartRule.php b/classes/CartRule.php index 4263b8676..5fd5e0eb3 100644 --- a/classes/CartRule.php +++ b/classes/CartRule.php @@ -31,6 +31,8 @@ class CartRuleCore extends ObjectModel const FILTER_ACTION_SHIPPING = 2; const FILTER_ACTION_REDUCTION = 3; const FILTER_ACTION_GIFT = 4; + + const BO_ORDER_CODE_PREFIX = 'BO_ORDER_'; /* This variable controls that a free gift is offered only once, even when multi-shippping is activated and the same product is delivered in both addresses */ protected static $only_one_gift = array(); diff --git a/controllers/admin/AdminCartsController.php b/controllers/admin/AdminCartsController.php index 54151986c..04c00c934 100755 --- a/controllers/admin/AdminCartsController.php +++ b/controllers/admin/AdminCartsController.php @@ -461,7 +461,7 @@ class AdminCartsControllerCore extends AdminController if (!$id_cart_rule = CartRule::getIdByCode('BO_ORDER_'.(int)$this->context->cart->id)) { $cart_rule = new CartRule(); - $cart_rule->code = 'BO_ORDER_'.(int)$this->context->cart->id; + $cart_rule->code = CartRule::BO_ORDER_CODE_PREFIX.(int)$this->context->cart->id; $cart_rule->name = array(Configuration::get('PS_LANG_DEFAULT') => $this->l('Free Shipping', 'AdminTab', false, false)); $cart_rule->id_customer = (int)$this->context->cart->id_customer; $cart_rule->free_shipping = true;