Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- (function() {
- var timeToLaunch = 3000;
- var productId = 12703;
- var prizeProductID = 14530;
- var PRIZE_PRODUCT_CART_LIMIT = 300;
- var wait = 0;
- function customerDataReload() {
- require([
- 'Magento_Customer/js/customer-data'
- ], function(customerData) {
- var sections = ['cart'];
- customerData.invalidate(sections);
- customerData.reload(sections, true);
- });
- }
- function isProduct(product) {
- return parseInt(product.product_id) === productId;
- }
- function isPrizeProduct(product) {
- return parseInt(product.product_id) === prizeProductID;
- }
- function checkProductAndPrice() {
- var cartData = JSON.parse(window.localStorage.getItem('mage-cache-storage'));
- if (wait < 100 && (!cartData || !cartData.cart)) {
- wait++;
- setTimeout(checkProductAndPrice, 200);
- return;
- }
- if (cartData && cartData.cart && cartData.cart.subtotalWithDiscount && cartData.cart.items && cartData.cart.summary_count) {
- var summaryCount = cartData.cart.summary_count;
- var productItems = cartData.cart.items;
- var checkbox = document.querySelector('#loyalty-birthday');
- var currentTotalPrice = parseFloat(cartData.cart.subtotalWithDiscount).toFixed(0);
- if (parseInt(currentTotalPrice) >= PRIZE_PRODUCT_CART_LIMIT && !productItems.some(isPrizeProduct)) {
- window.adoric && window.adoric.trigger('showAddPrizeProductToTheCart');
- }
- if ((parseInt(currentTotalPrice) < PRIZE_PRODUCT_CART_LIMIT && productItems.some(isPrizeProduct)) || (checkbox && checkbox.checked)) {
- window.adoric && window.adoric.trigger('showRemovePrizeProductToTheCart');
- }
- if (parseInt(currentTotalPrice) >= 300 && !productItems.some(isProduct) && (!checkbox || (checkbox && !(checkbox.checked)))) {
- window.adoric && window.adoric.trigger('addAllInOneProduct');
- return;
- }
- if ((parseInt(currentTotalPrice) < 300 && productItems.some(isProduct)) || (checkbox && checkbox.checked)) {
- window.adoric && window.adoric.trigger('delAllInOneProduct');
- return;
- }
- }
- }
- function countProductsCheck(event) {
- var carouselBtn = event.target.closest('.dai-carousel-btn');
- var homeBtn = event.target.closest('.tocart');
- var moreBtn = event.target.closest('.qty-more');
- var lessBtn = event.target.closest('.qty-less');
- var actionPrimary = event.target.closest('.action-primary');
- if (homeBtn || carouselBtn || moreBtn || lessBtn || actionPrimary) {
- setTimeout(function() {
- checkProductAndPrice();
- }, timeToLaunch);
- }
- }
- function updateByCheckboxToggle() {
- var checkbox = document.querySelector('#loyalty-birthday');
- checkbox && checkbox.addEventListener('change', checkProductAndPrice);
- }
- function stateCheck(callback) {
- if (document.readyState === 'complete') {
- callback();
- } else {
- setTimeout(stateCheck, 500, callback);
- }
- }
- if (document.readyState !== 'complete') {
- stateCheck(function() {
- setTimeout(function() {
- customerDataReload();
- updateByCheckboxToggle();
- document.querySelector('body').addEventListener("click", countProductsCheck);
- document.querySelector('body').addEventListener("touchend", countProductsCheck);
- checkProductAndPrice();
- }, timeToLaunch);
- });
- } else {
- setTimeout(function() {
- customerDataReload();
- updateByCheckboxToggle();
- document.querySelector('body').addEventListener("click", countProductsCheck);
- document.querySelector('body').addEventListener("touchend", countProductsCheck);
- checkProductAndPrice();
- }, timeToLaunch);
- }
- })();
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement