((d, w) => { var rdr = { 'addSkuToCart': function(sku) { var authHeaders = {'Authorization': 'Bearer r1pi5zdytkhiyzrga4z8yr7rtt0qjnv0'} var config = {headers: authHeaders} fetch('/rest/V1/racoon/productId/'+sku, config).then(response => response.text()) .then (function(text){ var productId = text; var form = jQuery('#racoon_addtocart_form'); var skuInput = form.find('input[name="sku"]'); form.data("productSku", sku); var productIdInput = document.createElement("input"); productIdInput.setAttribute("type", "hidden"); productIdInput.setAttribute("name", 'product'); productIdInput.setAttribute("value", productId); form.append(productIdInput); skuInput.val(sku); jQuery.mage.catalogAddToCart().ajaxSubmit(form); rcnLayer.push({ "event": "rcn.harvest.cartAction", "harvest": { "customer" : '', "currencyCode": '', "add": { "is_racoon": true, "product": { "sku": sku, }, "qty": 1, } } }); }); } }; w.RcnRdr = rdr; var ctl = { 'bu': '//rcn.naturitas.com', 'cn': 'rcnsid', 'cc': function(){ let path = w.location.href; let comps = path.split("/"); let uri = comps.slice(3); if (uri[0] == 'c'){ let ending = uri[uri.length - 1]; let parts = ending.split("?"); return parts[0]; } if (uri[0] == 'u'){ let ending = uri[uri.length - 1]; let parts = ending.split("?"); return parts[0]; } if (uri[0] == 'p'){ let cat = uri[uri.length - 2]; return cat; } return false; }, 'sk': function(){ var sku = document.querySelector(".product__sku").textContent.trim(); return sku.split(" ")[1]; }, 'gc': function(n){ var v = "; " + d.cookie; var p = v.split("; " + n + "="); return (p.length == 2) ? p.pop().split(";").shift() : null; }, 'fc': function() { sid = this.gc(this.cn); cat = this.cc(); brand = 'undefined'; uri = this.bu+'/hrcn/r/crs/5111c190-bbc2-41e9-b03e-426af07c4d77/product/'+sid+'/'; customer = '0'; uri = uri + '?customer=' + customer; if (cat) { uri = uri + '&cat=' + cat; } if (brand != "undefined"){ uri = uri + '&brand=' + brand; } if (('product' == 'product') || ('product' == 'decatalogued') ){ uri = uri + '&sku=' + this.sk(); } fetch(uri) .then(r => r.json()) .catch(e => console.error('Error:', e)) .then(j => this.pc(j)); }, 'pc': function(j){ for (k in j.carousels) { this.rc(k, j.carousels[k]); } if (Object.keys(j.carousels).length > 0){ // window.addEventListener("load", function(event) { // Racoon.makeCarrousel(); // }); (async() => { console.log("waiting for Racoon to be available"); while(typeof Racoon === 'undefined') // define the condition as you like await new Promise(resolve => setTimeout(resolve, 500)); Racoon.makeCarrousel(); })(); } }, 'rc': function(i, c){ div = d.getElementById(i); if (typeof(div) != 'undefined' && div != null){ div.innerHTML = c; } } }; var wfc = function(){ if (ctl.gc(ctl.cn) !== null){ ctl.fc(); } else { setTimeout(wfc, 500); } }; wfc(); })(document, window);