diff --git a/admin-dev/themes/default/template/controllers/orders/_customized_data.tpl b/admin-dev/themes/default/template/controllers/orders/_customized_data.tpl index 744cb17a4..f0be3dac4 100755 --- a/admin-dev/themes/default/template/controllers/orders/_customized_data.tpl +++ b/admin-dev/themes/default/template/controllers/orders/_customized_data.tpl @@ -26,7 +26,7 @@ {if $product.customizedDatas} - {if isset($product.image) && $product.image->id}{$product.image_tag}{else}'--'{/if} + {if isset($product.image) && $product.image->id}{$product.image_tag}{else}--{/if} {$product['product_name']} - {l s='customized'}
diff --git a/admin-dev/themes/default/template/controllers/orders/form.tpl b/admin-dev/themes/default/template/controllers/orders/form.tpl index 21febfe12..297e35d8a 100755 --- a/admin-dev/themes/default/template/controllers/orders/form.tpl +++ b/admin-dev/themes/default/template/controllers/orders/form.tpl @@ -139,7 +139,7 @@ $('.delete_product').live('click', function(e) { e.preventDefault(); var to_delete = $(this).attr('rel').split('_'); - deleteProduct(to_delete[1], to_delete[2]); + deleteProduct(to_delete[1], to_delete[2], to_delete[3]); }); $('.delete_discount').live('click', function(e) { e.preventDefault(); @@ -184,7 +184,7 @@ if ($(this).val() != cart_quantity[$(this).attr('rel')]) { var product = $(this).attr('rel').split('_'); - updateQty(product[0], product[1], $(this).val() - cart_quantity[$(this).attr('rel')]); + updateQty(product[0], product[1], product[2], $(this).val() - cart_quantity[$(this).attr('rel')]); } }); $('.increaseqty_product, .decreaseqty_product').live('click', function(e) { @@ -193,7 +193,7 @@ var sign = ''; if ($(this).hasClass('decreaseqty_product')) sign = '-'; - updateQty(product[0], product[1], sign+1); + updateQty(product[0], product[1],product[2], sign+1); }); $('#id_product').live('keydown', function(e) { $(this).click(); @@ -396,7 +396,7 @@ }); } - function deleteProduct(id_product, id_product_attribute) + function deleteProduct(id_product, id_product_attribute, id_customization) { $.ajax({ type:"POST", @@ -410,6 +410,7 @@ action: "deleteProduct", id_product: id_product, id_product_attribute: id_product_attribute, + id_customization: id_customization, id_cart: id_cart, id_customer: id_customer }, @@ -640,9 +641,9 @@ $.each(products, function() { cart_quantity[this.id_product+'_'+this.id_product_attribute] = this.cart_quantity; cart_content += ''+this.name+'
'+this.attributes_small+''+this.reference+' '; - cart_content += '

'; - cart_content += '
'; - cart_content += ''; + cart_content += '

'; + cart_content += '
'; + cart_content += ''; cart_content += '
'+this.total+' '; }); $('#customer_cart tbody').html(cart_content); @@ -671,8 +672,7 @@ function displaySummary(jsonSummary) { - if (jsonSummary.summary.products.length) - updateCartProducts(jsonSummary.summary.products); + updateCartProducts(jsonSummary.summary.products); updateCartVouchers(jsonSummary.summary.discounts); updateAddressesList(jsonSummary.addresses, jsonSummary.cart.id_address_delivery, jsonSummary.cart.id_address_invoice); @@ -720,7 +720,7 @@ resetBind(); } - function updateQty(id_product, id_product_attribute, qty) + function updateQty(id_product, id_product_attribute, id_customization, qty) { $.ajax({ type:"POST", @@ -734,6 +734,7 @@ action: "updateQty", id_product: id_product, id_product_attribute: id_product_attribute, + id_customization: id_customization, qty: qty, id_customer: id_customer, id_cart: id_cart, @@ -771,7 +772,7 @@ else { $('#products_err').hide(); - updateQty(id_product, $('#ipa_'+id_product+' option:selected').val(), $('#qty').val()); + updateQty(id_product, $('#ipa_'+id_product+' option:selected').val(), 0, $('#qty').val()); } } diff --git a/classes/Cart.php b/classes/Cart.php index b9441c1b8..41cc47716 100644 --- a/classes/Cart.php +++ b/classes/Cart.php @@ -471,7 +471,7 @@ class CartCore extends ObjectModel { $sql->select('cu.`id_customization`, cu.`quantity` AS customization_quantity'); $sql->leftJoin('customization', 'cu', - 'p.`id_product` = cu.`id_product` AND cp.`id_product_attribute` = cu.id_product_attribute'); + 'p.`id_product` = cu.`id_product` AND cp.`id_product_attribute` = cu.id_product_attribute AND cu.id_cart='.(int)$this->id); } else $sql->select('0 AS customization_quantity, 0 AS id_customization'); diff --git a/controllers/admin/AdminCartsController.php b/controllers/admin/AdminCartsController.php index c6e372bef..a2a97238f 100755 --- a/controllers/admin/AdminCartsController.php +++ b/controllers/admin/AdminCartsController.php @@ -233,8 +233,7 @@ class AdminCartsControllerCore extends AdminController $errors[] = Tools::displayError('Invalid combination'); if (count($errors)) die(Tools::jsonEncode($errors)); - - if ($this->context->cart->deleteProduct($id_product, $id_product_attribute)) + if ($this->context->cart->deleteProduct($id_product, $id_product_attribute, (int)Tools::getValue('id_customization'))) echo Tools::jsonEncode($this->ajaxReturnVars()); } } @@ -254,7 +253,7 @@ class AdminCartsControllerCore extends AdminController $field_id = 'customization_'.$id_product.'_'.$customization_field['id_customization_field']; if ($customization_field['type'] == Product::CUSTOMIZE_TEXTFIELD) { - if (!isset($_POST[$field_id])) + if (!isset($_POST[$field_id]) || empty($_POST[$field_id])) { if ($customization_field['required']) $errors[] = Tools::displayError('Please fill in all required fields');