diff --git a/core/lib/Thelia/Controller/Front/CartController.php b/core/lib/Thelia/Controller/Front/CartController.php index ae116b40a..afbcfaf7f 100755 --- a/core/lib/Thelia/Controller/Front/CartController.php +++ b/core/lib/Thelia/Controller/Front/CartController.php @@ -61,6 +61,13 @@ class CartController extends BaseFrontController $message = $e->getMessage(); } + // If Ajax Request + if ($this->getRequest()->isXmlHttpRequest()) { + $request = $this->getRequest(); + $request->attributes->set('_view', "includes/mini-cart"); + } + + if ($message) { $cartAdd->setErrorMessage($message); $this->getParserContext()->addForm($cartAdd); diff --git a/templates/default/assets/js/script.js b/templates/default/assets/js/script.js index 7080ffebd..a5d519a8d 100644 --- a/templates/default/assets/js/script.js +++ b/templates/default/assets/js/script.js @@ -204,10 +204,12 @@ var $old_price_container = $(".old-price", $("#product-details")); + var $select_quantity = $(this).find(":selected").attr("data-quantity"); + // Switch Quantity in product page $("select", $(".product-options")).change(function(){ - var $select_quantity = $(this).find(":selected").attr("data-quantity"); + $select_quantity = $(this).find(":selected").attr("data-quantity"); var $old_price = $(this).find(":selected").attr("data-old-price"); var $best_price = $(this).find(":selected").attr("data-price"); @@ -259,7 +261,31 @@ }); } + $(".form-product").submit(function(){ + var url_action = $(this).attr("action"); + var $cartContainer = $(".cart-container"); + $.ajax({type:"POST", data: $(this).serialize(), url:url_action, + success: function(data){ + console.log($(data).html()); + $cartContainer.html($(data).html()); + + $.ajax({url:"ajax/addCartMessage", + success: function(data){ + bootbox.dialog({ + message : data, + buttons : {} + }); + } + }); + }, + error: function(){ + console.log('Error.'); + } + }); + + return false; + }); $('#limit-top').change(function(e){ window.location = $(this).val() diff --git a/templates/default/includes/addedToCart.html b/templates/default/includes/addedToCart.html new file mode 100644 index 000000000..3159f1141 --- /dev/null +++ b/templates/default/includes/addedToCart.html @@ -0,0 +1,50 @@ + {loop type="cart" name="cartloop" position="last"} +
|
+ {loop name="product_thumbnail" type="image" product=$PRODUCT_ID width="218" height="146" resize_mode="borders" limit="1"}
+ |
+
+ {$TITLE}+ {loop type="attribute_combination" name="product_options" product_sale_elements="$PRODUCT_SALE_ELEMENTS_ID"} +{$ATTRIBUTE_TITLE} +{$ATTRIBUTE_AVAILABILITY_TITLE} + {/loop} + |
+
+
+ {if $IS_PROMO == 1}
+ {assign "real_price" $PROMO_TAXED_PRICE}
+ {currency attr="symbol"} {$PROMO_TAXED_PRICE}
+ {currency attr="symbol"} {$TAXED_PRICE}
+ {else}
+ {assign "real_price" $TAXED_PRICE}
+ {currency attr="symbol"} {$TAXED_PRICE}
+ {/if}
+
+ |
+