document.addEventListener("DOMContentLoaded", function(){ fetchCart(); const myOffcanvas = document.getElementById('side-cart'); myOffcanvas.addEventListener('hidden.bs.offcanvas', event => { $('.item-inside-cart').html(''); $('.loading-cart').removeClass('d-none'); $('.footer-side-cart').addClass('d-none'); }) myOffcanvas.addEventListener('show.bs.offcanvas', event => { $('.loading-cart').addClass('d-none'); fetchCart(); }); }); function productCartAddToCart(elm, product_id) { var html = $(elm).html(); $(elm).html('
'+empty_text+'
'); $('#cart-side-totals,.side-cart-items').html(''); $('.footer-side-cart').addClass('d-none'); } // shipping if(cart.discount_rules && cartTotal){ cart.discount_rules.forEach( rule => { if (rule.code === 'free_shipping') { rule.conditions.forEach( condition => { if(condition.field === "subtotal" && condition.operator === "between_inclusive"){ let free_shipping_text = window.translations.free_shipping_description; let completedPercentage = 100; let $free_shipping_rules = $('#side-cart .shipping-alert'); $free_shipping_rules.empty(); if( cartTotal < condition.value ){ let difference = (condition.value - cartTotal).toFixed(2); completedPercentage = Math.round((cartTotal/condition.value) * 100); let shipping_text_replaced = free_shipping_text.replace("{X}",`${difference}`); $free_shipping_rules.append(''+shipping_text_replaced+''); } else { $free_shipping_rules.append(''+window.translations.free_shipping+''); } $('#side-cart #cart-shipping').removeClass('d-none'); $('#side-cart .bar').css('width', completedPercentage + '%'); $('#side-cart .cart-shipping-notice').removeClass('d-none'); } }) } else { $('#side-cart .cart-shipping-notice').addClass('d-none') } })} else { $('#side-cart .cart-shipping-notice').addClass('d-none') } //coupon var $couponBtn = $('.apply_coupon'); var $couponCode = $('.coupon-code'); if(cart.coupon){ $couponBtn.text(window.translations.remove_coupon); $couponCode.val(cart.coupon.code); $couponCode.attr('disabled', true); $couponBtn.off().on('click', () => { $couponCode.val(''); removeCoupon() }); } else{ $couponCode.attr('disabled', false); $couponBtn.text(window.translations.add_coupon); $couponBtn.off().on('click', (e) => { addCoupon($couponCode.val(), e) }); } setCartTotalAndBadge(response.data.cart); displayActivePaymentSessionBar(response.data.cart); }else{ alert('Error Cart'); } $('.loading-cart').addClass('d-none'); }); } function addCoupon(coupon_code) { var $couponBtn = $('.apply_coupon'); if (coupon_code.trim().length !== 0) { var $actions = $('.footer-side-cart'); $actions.fadeTo('slow', 0.3); $couponBtn.html(''); zid.store.cart.redeemCoupon(coupon_code).then( (response) => { $actions.fadeTo('slow', 1); if (response.status === 'success') { $.toast({ text: window.translations.coupon_added, showHideTransition: 'fade', allowToastClose: true, hideAfter: 2000, position: 'top-right', textAlign: 'center', bgColor: '#d4edda', textColor: '#155724', }); fetchCart(); } else { $.toast({ text: response?.data?.message ?? window.translations.sorry, showHideTransition: 'fade', allowToastClose: true, hideAfter: 2000, position: 'top-right', textAlign: 'center', bgColor: '#d90000', textColor: '#fff', }); $couponBtn.html(window.translations.add_coupon); } }) } else { $.toast({ text: window.translations.coupon_discount_enter, showHideTransition: 'fade', allowToastClose: true, hideAfter: 2000, position: 'top-right', textAlign: 'center', bgColor: '#d90000', textColor: '#fff', }); } } function removeCoupon() { var $actions = $('.footer-side-cart'); $actions.fadeTo('slow', 0.3); var $couponBtn = $('.apply_coupon'); $couponBtn.html(''); zid.store.cart.removeCoupon().then( (response) => { $actions.fadeTo('slow', 1); if (response.status === 'success') { $.toast({ text: window.translations.coupon_remove, showHideTransition: 'fade', allowToastClose: true, hideAfter: 2000, position: 'top-right', textAlign: 'center', bgColor: '#d4edda', textColor: '#155724', }); fetchCart(); } else { $.toast({ text: response?.data?.message ?? window.translations.sorry, showHideTransition: 'fade', allowToastClose: true, hideAfter: 2000, position: 'top-right', textAlign: 'center', bgColor: '#d90000', textColor: '#fff', }); $couponBtn.html(window.translations.remove_coupon); } }) } function removeItem(key,item){ $('.side-cart-items li#product_'+key+' .remove').html(''); zid.store.cart.removeProduct(key).then(function (response) { if(response.status ==='success'){ fetchCart(); } }); }