Add AJAX on "Add to Cart" buttons
This commit is contained in:
@@ -61,6 +61,13 @@ class CartController extends BaseFrontController
|
|||||||
$message = $e->getMessage();
|
$message = $e->getMessage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If Ajax Request
|
||||||
|
if ($this->getRequest()->isXmlHttpRequest()) {
|
||||||
|
$request = $this->getRequest();
|
||||||
|
$request->attributes->set('_view', "includes/mini-cart");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($message) {
|
if ($message) {
|
||||||
$cartAdd->setErrorMessage($message);
|
$cartAdd->setErrorMessage($message);
|
||||||
$this->getParserContext()->addForm($cartAdd);
|
$this->getParserContext()->addForm($cartAdd);
|
||||||
|
|||||||
@@ -204,10 +204,12 @@
|
|||||||
|
|
||||||
var $old_price_container = $(".old-price", $("#product-details"));
|
var $old_price_container = $(".old-price", $("#product-details"));
|
||||||
|
|
||||||
|
var $select_quantity = $(this).find(":selected").attr("data-quantity");
|
||||||
|
|
||||||
|
|
||||||
// Switch Quantity in product page
|
// Switch Quantity in product page
|
||||||
$("select", $(".product-options")).change(function(){
|
$("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 $old_price = $(this).find(":selected").attr("data-old-price");
|
||||||
|
|
||||||
var $best_price = $(this).find(":selected").attr("data-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){
|
$('#limit-top').change(function(e){
|
||||||
window.location = $(this).val()
|
window.location = $(this).val()
|
||||||
|
|||||||
50
templates/default/includes/addedToCart.html
Normal file
50
templates/default/includes/addedToCart.html
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
{loop type="cart" name="cartloop" position="last"}
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="col-md-4">
|
||||||
|
{loop name="product_thumbnail" type="image" product=$PRODUCT_ID width="218" height="146" resize_mode="borders" limit="1"}
|
||||||
|
<img itemprop="image" src="{$IMAGE_URL}" alt="Product #{$LOOP_COUNT}">
|
||||||
|
{/loop}
|
||||||
|
</td>
|
||||||
|
<td class="col-md-4">
|
||||||
|
<h2>{$TITLE}</h2>
|
||||||
|
{loop type="attribute_combination" name="product_options" product_sale_elements="$PRODUCT_SALE_ELEMENTS_ID"}
|
||||||
|
<p>{$ATTRIBUTE_TITLE}</p>
|
||||||
|
<p>{$ATTRIBUTE_AVAILABILITY_TITLE}</p>
|
||||||
|
{/loop}
|
||||||
|
</td>
|
||||||
|
<td class="col-md-4">
|
||||||
|
|
||||||
|
{if $IS_PROMO == 1}
|
||||||
|
{assign "real_price" $PROMO_TAXED_PRICE}
|
||||||
|
<div class="special-price"><span class="price">{currency attr="symbol"} {$PROMO_TAXED_PRICE}</span></div>
|
||||||
|
<small class="old-price"> <span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></small>
|
||||||
|
{else}
|
||||||
|
{assign "real_price" $TAXED_PRICE}
|
||||||
|
<div class="special-price"><span class="price">{currency attr="symbol"} {$TAXED_PRICE}</span></div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
{/loop}
|
||||||
|
|
||||||
|
<a href="{navigate to="index"}" role="button" class="btn btn_add_to_cart pull-right"><span>{intl l="View cart"}</span></a>
|
||||||
|
<a href="{navigate to="index"}" role="button" class="btn btn-checkout pull-right"><span>{intl l="Continue Shopping"}</span></a>
|
||||||
|
|
||||||
|
{ifloop rel="product_upsell"}
|
||||||
|
<aside id="products-upsell" role="complementary" aria-labelledby="products-upsell-label">
|
||||||
|
<div class="products-heading">
|
||||||
|
<h3 id="products-upsell-label">{intl l="Upsell Products"}</h3>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="products-content">
|
||||||
|
<ul class="products-grid product-col-3 hover-effect">
|
||||||
|
{loop name="product_upsell" type="product" promo="yes" limit="3"}
|
||||||
|
{include file="includes/single-product.html" product_id=$ID hasBtn=false hasDescription=true width="218" height="146"}
|
||||||
|
{/loop}
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</aside><!-- #products-upsell -->
|
||||||
|
{/ifloop}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{ifloop rel="cartloop"}
|
{ifloop rel="cartloop"}
|
||||||
<li class="dropdown pull-right cart-not-empty">
|
<li class="dropdown pull-right cart-not-empty cart-container">
|
||||||
<a href="{url path="/cart"}" rel="nofollow" class="cart">
|
<a href="{url path="/cart"}" rel="nofollow" class="cart">
|
||||||
{intl l="Cart"} <span class="badge">{cart attr="count_item"}</span>
|
{intl l="Cart"} <span class="badge">{cart attr="count_item"}</span>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -134,7 +134,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
{form name="thelia.cart.add" }
|
{form name="thelia.cart.add" }
|
||||||
<form id="form-product-details" action="{url path="/cart/add" }" method="post" role="form">
|
<form id="form-product-details" action="{url path="/cart/add" }" method="post" role="form" class="form-product">
|
||||||
{form_hidden_fields form=$form}
|
{form_hidden_fields form=$form}
|
||||||
<input type="hidden" name="view" value="product">
|
<input type="hidden" name="view" value="product">
|
||||||
<input type="hidden" name="product_id" value="{$ID}">
|
<input type="hidden" name="product_id" value="{$ID}">
|
||||||
@@ -238,4 +238,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div><!-- /.container -->
|
</div><!-- /.container -->
|
||||||
|
|
||||||
|
|
||||||
{/block}
|
{/block}
|
||||||
Reference in New Issue
Block a user