diff --git a/controllers/front/CartController.php b/controllers/front/CartController.php index c1fe0232e..29c63bffb 100644 --- a/controllers/front/CartController.php +++ b/controllers/front/CartController.php @@ -305,9 +305,16 @@ class CartControllerCore extends FrontController $result['HOOK_SHOPPING_CART'] = Hook::exec('displayShoppingCartFooter', $result['summary']); $result['HOOK_SHOPPING_CART_EXTRA'] = Hook::exec('displayShoppingCart', $result['summary']); - // Display reduced price (or not) without quantity discount - if (Tools::getIsset('getproductprice')) - foreach ($result['summary']['products'] as $key => &$product) + foreach ($result['summary']['products'] as $key => &$product) + { + $product['quantity_without_customization'] = $product['quantity']; + if ($result['customizedDatas']) + { + foreach ($result['customizedDatas'][(int)$product['id_product']][(int)$product['id_product_attribute']] as $addresses) + foreach ($addresses as $customization) + $product['quantity_without_customization'] -= (int)$customization['quantity']; + } + if (Tools::getIsset('getproductprice')) $product['price_without_quantity_discount'] = Product::getPriceStatic( $product['id_product'], !Product::getTaxCalculationMethod(), @@ -317,6 +324,10 @@ class CartControllerCore extends FrontController false, false ); + } + if ($result['customizedDatas']) + Product::addCustomizationPrice($result['summary']['products'], $result['customizedDatas']); + die(Tools::jsonEncode($result)); } // @todo create a hook diff --git a/themes/default/js/cart-summary.js b/themes/default/js/cart-summary.js index 24609f5c6..8b8a6f612 100644 --- a/themes/default/js/cart-summary.js +++ b/themes/default/js/cart-summary.js @@ -599,19 +599,13 @@ function updateCartSummary(json) nbrProducts += parseInt(product_list[i].quantity); - if(product_list[i].id_customization == null || product_list[i].id_customization == 0) - { - $('input[name=quantity_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_0_'+product_list[i].id_address_delivery+']').val(product_list[i].quantity); - $('input[name=quantity_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_0_'+product_list[i].id_address_delivery+'_hidden]').val(product_list[i].quantity); - } - else - { - $('#cart_quantity_custom_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_'+product_list[i].id_address_delivery) - .html(product_list[i].quantity); - - $('input[name=quantity_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_'+product_list[i].id_customization+'_'+product_list[i].id_address_delivery+']') - .val(product_list[i].customization_quantity); - } + $('input[name=quantity_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_0_'+product_list[i].id_address_delivery+']').val(product_list[i].quantity_without_customization); + $('input[name=quantity_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_0_'+product_list[i].id_address_delivery+'_hidden]').val(product_list[i].quantity_without_customization); + + $('#cart_quantity_custom_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_'+product_list[i].id_address_delivery) + .html(product_list[i].customizationQuantityTotal); + $('input[name=quantity_'+product_list[i].id_product+'_'+product_list[i].id_product_attribute+'_'+product_list[i].id_customization+'_'+product_list[i].id_address_delivery+']') + .val(product_list[i].customizationQuantityTotal); // Show / hide quantity button if minimal quantity if (parseInt(product_list[i].minimal_quantity) == parseInt(product_list[i].quantity) && product_list[i].minimal_quantity != 1)