var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; }; if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } } { let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opener = _____WB$wombat$assign$function_____("opener"); var generales = function () { var init = function () { $('.helperComplement').remove(); initSlick(); clickOutside(); customSelect(); secundaryMenu(); funCustomCheckbox(); fnEventTiendas(); updateAmountItemsInCart(); initProductShelfCounter(); initProductShelfBuyButton(); fixShelfPrice(); calculateShelfDiscount(); listenFixedBody(); initCartSummaryModal(); initDepartmentAccordion(); categoryNavigatorNameFix(); detectUserSalesChannel(); accordionMobile(); translations(); initScrollToTop(); //Requisito previo para modificar la orden de compra vtexjs.checkout.getOrderForm(); }; var listenFixedBody = function () { $(document).on("Dialog:Show", function () { $("body").addClass("fixed"); }); $(document).on("Dialog:Hide", function () { $("body").removeClass("fixed"); }); }; var initProductShelfCounter = function () { $(".item-shelf").each(function () { var productContainer = $(this); if (productContainer.hasClass("amountCounter")) { return; } productContainer.find(".btnLess").click(subtractAmount); productContainer.find(".btnMore").click(addAmount); productContainer.find(".amount").val(1).on("change", function () { validateAmount(productContainer); }); productContainer.addClass("amountCounter"); }); }; var initProductShelfBuyButton = function(){ $(".item-shelf").each(function () { var productContainer = $(this); if (productContainer.hasClass("buyProductShelf")) { return; } productContainer.find(".buyInShelfBtn").click(function () { var amount = Number(productContainer.find(".amount").val()); var productID = Number(productContainer.attr("data-productid")); var productSKU = Number(productContainer.attr("data-skuproduct")); addProductToCart(productID, productSKU, amount); }); productContainer.addClass("buyProductShelf"); }); }; var validateAmount = function (productContainer) { var amountContainer = productContainer.find(".amount"); var amountMessageContainer = productContainer.find(".availableMessage"); var amount = Number(amountContainer.val()); var available = Number(productContainer.attr("data-availableAmount")); var productID = productContainer.attr("data-productid"); var validate = function () { if (amount > available) { amountContainer.val(available); amountMessageContainer.text("Existen " + available + " unidades disponibles"); amountMessageContainer.fadeIn(); setTimeout(function () { amountMessageContainer.fadeOut(); }, 5000); } }; if (isNaN(available)) { vtexjs.catalog.getProductWithVariations(productID).done(function (product) { available = product.skus[0].availablequantity; productContainer.attr("data-availableAmount", available); validate(); }); } else { validate(); } }; var addAmount = function () { var productContainer = $(this).closest(".item-shelf"); var amountContainer = productContainer.find(".amount"); var amount = Number(amountContainer.val()); amountContainer.val(amount + 1); validateAmount(productContainer); }; var subtractAmount = function () { var productContainer = $(this).closest(".item-shelf"); var amountContainer = productContainer.find(".amount"); var amount = Number(amountContainer.val()); if (amount < 2) { return; } amountContainer.val(amount - 1); }; var fnEventTiendas = function () { $(window).on('StoreLocator:FilterSelected', function (event, filtro) { if (filtro === '0') { $('.select__tienda-container').show(); } }); }; var updateAmountItemsInCart = function () { $(document).trigger("cartSummary:reloadCart"); }; var addProductToCart = function (productID, sku, amount) { amount = amount ? amount : 1; var salesChanel = getCookie("VTEXSC"); salesChanel = salesChanel ? salesChanel.replace("sc=", "") : 1; salesChanel = salesChanel ? Number(salesChanel) : 1; vtexjs.checkout.getOrderForm().always(function () { vtexjs.checkout.addToCart([{id: sku, quantity: Number(amount), seller: 1}], null, salesChanel) .done(function() { parent.generales.updateAmountItemsInCart(); parent.generales.showCartSummary(productID, sku, amount); }); }); }; var showCartSummary = function (productID, sku, amount) { var modalContainer = $("#modal_agregado"); vtexjs.catalog.getProductWithVariations(productID).done(function (product) { var productSKU = $.grep(product.skus, function (currentSKU) { return currentSKU.sku === sku; })[0]; if (!productSKU) { return; } var bestPrice = (productSKU.bestPrice + productSKU.taxAsInt) /100; modalContainer.find(".cantidad span").text(amount); modalContainer.find(".nombre_agregado").text(productSKU.skuname); modalContainer.find(".added_img img").attr("src", productSKU.image); modalContainer.find(".valor_agregado").text(currencyFormat(bestPrice)); modalContainer.fadeIn(350, function () { modalContainer.find('.content_modal').addClass('visible'); $('body').addClass('fixed'); }); }); }; // CERRAR ELEMENTOS LA HACER CLICK FUERA DE ELLOS var clickOutside = function () { $(document).mouseup(function (e) { var customSelectSelector = $('.customSelect.open'); if (!customSelectSelector.is(e.target) && customSelectSelector.has(e.target).length === 0) { customSelectSelector.removeClass('open'); } var secundaryMenuSelector = $('#secundaryMenuConten'); if (!secundaryMenuSelector.is(e.target) && secundaryMenuSelector.has(e.target).length === 0) { secundaryMenuSelector.removeClass('open'); secundaryMenuSelector.find('.menuIcon').removeClass('closeMenuIcon'); } }); $(document).bind("touchend", function (e) { var customSelectSelector = $('.customSelect.open'); if (!customSelectSelector.is(e.target) && customSelectSelector.has(e.target).length === 0) { customSelectSelector.removeClass('open'); } }); }; //----- CUSTOM SELECT ----- var customSelect = function () { $('.customSelect .selectedOption').click(function () { if ($(this).parent('.customSelect').hasClass('open')) { $(this).parent('.customSelect').removeClass('open'); } else { $(this).parent('.customSelect').addClass('open'); } }); $('.customSelect li').click(function () { $(this).parents('.customSelect').find('.selectedOption').html($(this).html()); $(this).addClass('selected'); $(this).siblings().removeClass('selected'); $(this).parents('.customSelect').removeClass('open'); }); }; //----- FUNCIONALIDAD DE LOS CUSTOM CHECKBOX ----- var funCustomCheckbox = function () { $('.customCheckBox').parent().click(function () { if ($(this).find('.customCheckBox').hasClass('checked')) { $(this).find('.customCheckBox').removeClass("checked"); } else { $(this).find('.customCheckBox').addClass("checked"); } }); }; //----- SECUNDARY MENU ----- var secundaryMenu = function () { $('#btnSecundaryMenu').click(function () { if ($(this).parent('#secundaryMenuConten').hasClass('open')) { $(this).parent('#secundaryMenuConten').removeClass('open'); $(this).find('.menuIcon').removeClass('closeMenuIcon'); } else { $(this).parent('#secundaryMenuConten').addClass('open'); $(this).find('.menuIcon').addClass('closeMenuIcon'); } }); }; var initSlick = function () { $('.vitrina_departamento ul').slick({ arrows: true, dots: true, slidesToShow: 5, slidesToScroll: 5, autoplay: true, autoplaySpeed: 5000, infinite: true, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 3, slidesToScroll: 3, infinite: true, dots: true } }, { breakpoint: 1023, settings: { slidesToShow: 2, slidesToScroll: 2 } }, { breakpoint: 480, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $('.vitrina_departamento_tres ul').slick({ arrows: true, dots: true, slidesToShow: 3, slidesToScroll: 3, autoplay: true, autoplaySpeed: 5000, infinite: true, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 3, slidesToScroll: 3, infinite: true, dots: true } }, { breakpoint: 1023, settings: { slidesToShow: 2, slidesToScroll: 2 } }, { breakpoint: 480, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $('.vitrina_departamento_cuatro ul').slick({ arrows: true, dots: true, slidesToShow: 4, slidesToScroll: 4, autoplay: true, autoplaySpeed: 5000, infinite: true, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 3, slidesToScroll: 3, infinite: true, dots: true } }, { breakpoint: 1023, settings: { slidesToShow: 2, slidesToScroll: 2 } }, { breakpoint: 480, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $('.vitrina_departamento_uno ul').slick({ arrows: true, dots: true, slidesToShow: 1, slidesToScroll: 1, autoplay: true, autoplaySpeed: 5000, infinite: true, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 3, slidesToScroll: 3, infinite: true, dots: true } }, { breakpoint: 1023, settings: { slidesToShow: 2, slidesToScroll: 2 } }, { breakpoint: 480, settings: { slidesToShow: 2, slidesToScroll: 2 } } ] }); $('.banner-slider').slick({ arrows: false, dots: true, autoplay: true, fade: true }); $('#departament-banner').slick({ arrows: false, dots: true, autoplay: true, fade: true }); $(window).bind('load resize', function () { var winWidth = $(window).innerWidth(); if (winWidth <= 768) { $('.related-shelf ul').slick({ arrows: false, dots: true }); } }); }; var initCartSummaryModal = function () { $('.close_modal, .btn-tocontinue').click(function () { $(this).closest('.content_modal').removeClass('visible'); setTimeout(function () { $('.modal2').fadeOut(300); setTimeout(function () { $('body').removeClass('fixed'); }, 300) }, 600) }); }; var initDepartmentAccordion = function () { $('.btn-navigation-mobile').click(function () { $(this).siblings('.menu-departamento').slideToggle(); }); }; var categoryNavigatorNameFix = function () { $('.search-single-navigator h4 a').each(function () { var new_text = $(this).text().replace(/((\s*)\((.*)\))/, ""); $(this).text(new_text); }); }; var detectUserSalesChannel = function () { getCurrentUser().then(function (user) { if(!user.IsUserDefined){ /*$(".btnLogIn-close").hide(); $(".ultimo").hide(); $(".shelfBestPrice").hide(); $(".shelfQuantitySelector").hide(); $(".buyInShelfBtn").hide(); $(".plugin-preco").hide(); $("#quantitySelector").hide(); $("#questionBtn").hide(); $(".buy-in-page-button").hide(); $(".input-group").hide(); $(".BottonComprar").hide();*/ console.log(user); if(isUpdateSalesChannelRequired(1)){ // changeSalesChannel(1); } } else{ $(".btnLogIn-close").show(); $(".ultimo").show(); setUserName(user); $(".ultimo").show(); return getSalesChannelByEmail(user.Email); } }).then(function (salesChannerInfo) { var salesChannel = salesChannerInfo && salesChannerInfo[0] ? salesChannerInfo[0].preciosB2B : 0; console.log(salesChannel); /* if( salesChannel == 0 || salesChannel == null ){ console.log("No muestra precio"); }else{ $(".shelfBestPrice").show(); $(".shelfQuantitySelector").show(); $(".buyInShelfBtn").show(); $(".plugin-preco").show(); $("#quantitySelector").show(); $("#questionBtn").show(); $(".buy-in-page-button").show(); $(".input-group").show(); $(".CantPago").show(); } */ $(".shelfBestPrice").show(); $(".shelfQuantitySelector").show(); $(".buyInShelfBtn").show(); $(".plugin-preco").show(); $("#quantitySelector").show(); $("#questionBtn").show(); $(".buy-in-page-button").show(); $(".input-group").show(); $(".CantPago").show(); if(!isUpdateSalesChannelRequired(salesChannel)){ if(window.location.pathname === "/cargando-perfil"){ window.location.pathname = "/"; } return; } showValidatingProductsModal(); updateCartSalesChannel(salesChannel).then(function (orderForm, updatedOrderForm) { if(updatedOrderForm.items.length !== orderForm.items.length){ var unavailableProducts = detectUnavailableProducts(orderForm.items, updatedOrderForm.items); displayUnavailableProducts(unavailableProducts, salesChannel); updateAmountItemsInCart(); } else{ changeSalesChannel(salesChannel); } }); }); }; var setUserName = function (user) { var firstName = user.FirstName ? user.FirstName : ""; var lastName = user.LastName ? user.LastName : ""; var name = user.FirstName ? firstName + " " + lastName : user.Email; /*$("#btnLogIn") .text(name) .attr("href", "/account/orders");*/ $("#btnLogIn") .text(name) .attr("href", "/account"); }; var isUpdateSalesChannelRequired = function (salesChannel) { if(!salesChannel){return;} var vtexSalesChanelCookie = getCookie("VTEXSC"); //Si VTEX no ha establecido un canal de ventas entonces asignar por defecto el primero vtexSalesChanelCookie = vtexSalesChanelCookie ? vtexSalesChanelCookie : "sc=1"; var urlQueryString = decodeURIComponent(window.location.search); var isSalesChannelOnQueryString = new RegExp("sc=" + salesChannel,"i").test(urlQueryString); var isSalesChannelOnVTEXCookie = (vtexSalesChanelCookie === "sc=" + salesChannel); /* * Valida que el nuevo canal de ventas no sea igual al almacenado en la cookie VTEXSC de VTEX ni en el parámetro * sc de la URL, si alguno es diferente entonces es necesario actualizar el canal de ventas * */ return !isSalesChannelOnQueryString && !isSalesChannelOnVTEXCookie; }; var changeSalesChannel = function(salesChannel) { var urlQueryString = decodeURIComponent(window.location.search); var queryStringSourceChannelValue = new RegExp("sc=","i"); var parsedQueryString = urlQueryString.replace("?", "").split("&"); //Descarta el parámetro sc actual de la URL parsedQueryString = parsedQueryString.filter(function(search) { return !queryStringSourceChannelValue.test(search) }); //Agregar el parámetro sc con el nuevo canal de ventas y valida la URL parsedQueryString = parsedQueryString.concat(["sc=" + salesChannel]).join("&"); parsedQueryString = parsedQueryString.charAt(0) === "&" ? parsedQueryString.substring(1) : parsedQueryString; //Asigna el canal de ventas en la cookie de VTEXSC de VTEX y recarga la página con la URL del nuevo canal setCookie("VTEXSC", "sc="+salesChannel, 30); // window.location = window.location.origin + "/?" + parsedQueryString; window.location.replace(window.location); }; var updateCartSalesChannel = function (salesChannel) { var promise = $.Deferred(); getOrderForm(["items"]).then(function(orderForm){ var url = "/api/checkout/pub/orderForm/"+orderForm.orderFormId+"/items/update/?sc="+salesChannel; if(!orderForm.items.length){ promise.resolve(orderForm, orderForm); return; } var updateItems = orderForm.items.map(function(item, index){ return { index: index, quantity: item.quantity }; }); return $.ajax({ url: url, type: "POST", contentType: "application/json", data: JSON.stringify({"orderItems":updateItems, "expectedOrderFormSections": ["items"]}) }).then(function (updatedOrderForm) { promise.resolve(orderForm, updatedOrderForm); }).fail(function () { //Si falla la actualización del carrito se recarga para forzar el reinicio del proceso window.location.reload(); }); }); return promise; }; var detectUnavailableProducts = function (oldOrderFormProducts, updatedOrderFormProducts) { var unavailableProducts = []; $.each(oldOrderFormProducts, function (index, product) { var found = $.grep(updatedOrderFormProducts, function (newProduct) { return newProduct.id === product.id; }).length > 0; if(!found){ unavailableProducts.push(product); } }); return unavailableProducts; }; var showValidatingProductsModal = function () { var modalContainer = $(".productLoading"); modalContainer.fadeIn(); modalContainer.find(".message").show(); modalContainer.find(".product").hide(); }; var showUnavailableProductSection = function () { var modalContainer = $(".productLoading"); var productListContainer = modalContainer.find(".product"); modalContainer.fadeIn(); modalContainer.find(".message").fadeOut(); productListContainer.fadeIn(); productListContainer.find(".list-container").empty(); }; var displayUnavailableProducts = function (unavailableProducts, salesChannel) { var modalContainer = $(".productLoading"); var listContainer = modalContainer.find(".list-container"); modalContainer.find(".accept").click(function () { changeSalesChannel(salesChannel); }); showUnavailableProductSection(); $.each(unavailableProducts, function (index, product) { var productContainer = $("