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"} + Product #{$LOOP_COUNT} + {/loop} + +

{$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} + +
+ {/loop} + + {intl l="View cart"} + {intl l="Continue Shopping"} + + {ifloop rel="product_upsell"} + + {/ifloop} diff --git a/templates/default/includes/mini-cart.html b/templates/default/includes/mini-cart.html index b3b8de597..6c558233b 100644 --- a/templates/default/includes/mini-cart.html +++ b/templates/default/includes/mini-cart.html @@ -1,5 +1,5 @@ {ifloop rel="cartloop"} -