// // You may use these function in your js app // // display the cart contents. // e.g.: function cc_cart_show() { return cc_cart_show_exec() } // add item to cart // e.g.: function cc_cart_add(product, addon, quantity) { return cc_cart_add_exec(product, addon, quantity); } // remove all items from cart // e.g.: function cc_cart_clear() { return cc_cart_clear_exec(); } // // DO NOT USE anything below this line, because it may change in the future without further notice // SHOPPING_CART_UUID = getCookie('cartUUID') function initializeCart(product_slug, editable) { // var modalCssUrl = `${window.location.protocol}//${window.location.host}/cdn/v1/shopping_cart/venobox.css`; var modalCssUrl = 'https://copecart-public-prod.s3.eu-central-1.amazonaws.com/js/venobox.css'; var cartCssUrl = 'https://copecart-public-prod.s3.eu-central-1.amazonaws.com/js/cart.css'; jQuery('head').append( jQuery('').attr('href', modalCssUrl ) ); jQuery('head').append( jQuery('').attr('href', cartCssUrl ) ); if (SHOPPING_CART_UUID.length === 0) { var url = rootUrl() + '/shopping_carts/create_cart?product_slug=' + product_slug url += ('&editable=' + (editable ? 'true' : 'false')); jQuery.ajax({ url: url, type: 'GET', dataType: 'jsonp', success: function(response) { SHOPPING_CART_UUID = response.cart_identifier || response.responseJSON.cart_identifier; setCookie('cartUUID', SHOPPING_CART_UUID, 3); } }); } else { showCartPreview(product_slug); } } // function cc_cart_add_exec(product, addon, quantity) // { // if (typeof quantity === 'undefined') // { // quantity = 1; // } // jQuery.ajax({ // url: rootUrl() + '/shopping_carts/' + cartUUID() + '/add', // type: 'GET', // data: { // product_slug: product, // addon_slug: addon, // quantity: quantity // }, // dataType: 'json', // success: showCartPreview // }); // return false; // } function cc_cart_add_exec(product, addon, quantity) { if (typeof quantity === 'undefined') { quantity = 1; } jQuery.ajax({ url: rootUrl() + '/shopping_carts/' + cartUUID() + '/add', type: 'GET', data: { product_slug: product, addon_slug: addon, quantity: quantity }, dataType: 'jsonp', success: function(response) { showCartPreview(product, response.message); } }); return false; } function cc_cart_clear_exec() { var url = rootUrl() + '/shopping_carts/' + cartUUID() + '/clear' jQuery.ajax({ url: url, type: 'GET', dataType: 'jsonp' }); return false; } function cc_cart_show_exec() { var $url = rootUrl() + '/shopping_carts/' + cartUUID() + '/products_popup' $(`Open Iframe`).venobox({ overlayColor: 'rgba(255,255,255, 0.5)', spinner: 'three-bounce', titleColor: "#000000", titleBackground: "#FFFFFF", closeColor: "#000000", closeBackground: "#FFFFFF" }).trigger('click'); //$.modalLink("open", $(document.createElement('a')), {url: $url, title: 'Cart', showTitle: true, showClose: true, disableScroll: false}); try { $('.popup-close-button, .lightbox-close').trigger('click'); } catch(e) { //empty }; return false; } function cartUUID() { return SHOPPING_CART_UUID } function hideCartPreview(){ $('#cart_preview').hide(); } function showCartPreview(product_slug, message){ if ($('#cart_preview').length > 0) { //TODO: Update data before show // $('.cart_summary'.html()) cartPreviewData(message); $('#cart_preview').show(); return true } let html = `
`; let div = document.createElement('div'); div.id = 'cart_preview'; div.style.position = 'fixed'; div.style.minWidth = '100%'; div.style.top = 0; div.style.zIndex = 9999; document.body.appendChild(div); div.innerHTML = html; cartPreviewData(); } function cartPreviewData(message) { var url = rootUrl() + '/shopping_carts/' + cartUUID() + '/preview' if (message) { $('.cart_summary').html('' + message + ''); } else { jQuery.ajax({ url: url, type: 'GET', dataType: 'jsonp', success: function(response) { $('.cart_summary').html(response.summary); $('.subtotal').html('Summe:' + ' ' + response.amount) } }); } return false; } $( document ).ready(function() { var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent"; var eventer = window[eventMethod]; var messageEvent = eventMethod === "attachEvent" ? "onmessage" : "message"; eventer(messageEvent, function (e) { // if (e.origin !== 'https://copecart.com') { return; } if (e.data === "closeme" || e.message === "closeme") { jQuery('.vbox-close, .vbox-overlay').trigger('click'); } if (e.data === "closePreview" || e.message === "closePreview") { $('#cart_preview').hide(); } if (e.data.event === "updatePreview" || e.message === "updatePreview") { $('.cart_summary').html(e.data.summary); } }); });