Advertisement
renatoknot

Untitled

Sep 30th, 2022
807
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if (vtexjs.checkout.orderForm.items.length > 0) {
  2.   var div = $("div#seller-code");
  3.  
  4.   if (div.length == 0) {
  5.     $(".full-cart  .summary-coupon-wrap.text-center").append(
  6.       $("<div>", { id: "seller-code" })
  7.         .append(
  8.           $("<div>", { class: "form-seller-code" })
  9.             .append(
  10.               $("<p>", {
  11.                 class: "label-seller-code",
  12.                 text: "Código do vendedor(a)",
  13.               }),
  14.             )
  15.             .append(
  16.               $("<div>", { class: "content-seller-code" })
  17.                 .append(
  18.                   $("<input>", { name: "seller-code", class: "seller-code" }),
  19.                 )
  20.                 .append(
  21.                   $("<div>", {
  22.                     class: "seller-code-error",
  23.                     text: "CÓDIGO INVÁLIDO",
  24.                   }),
  25.                 ),
  26.             )
  27.             .append($("<button>", { class: "btn", text: "Adicionar" })),
  28.         )
  29.         .append(
  30.           $("<div>", { class: "seller-code-active" })
  31.             .append(
  32.               $("<p>", { class: "label-seller-code", text: "Vendedor(a)" }),
  33.             )
  34.             .append(
  35.               $("<a>", { class: "btn remove-seller-code", text: "" })
  36.                 .append($("<span>", { class: "label-seller-name" }))
  37.                 .append($("<i>", { class: "icon-remove" })),
  38.             ),
  39.         ),
  40.     );
  41.   }
  42.  
  43.   removeSellerCode();
  44.  
  45.   const urlParams = new URLSearchParams(window.location.search);
  46.  
  47.   const utmCampaign = urlParams.get("utm_campaign");
  48.   const utmMedium = urlParams.get("utm_medium");
  49.   const utmSource = urlParams.get("utm_source");
  50.   const vendedor = urlParams.get("vd");
  51.  
  52.   //Função para setar parâmtros Utm no orderForm
  53.   const getUtmParams = () => {
  54.     const mktData =
  55.       vtexjs.checkout.orderForm.marketingData != null
  56.         ? vtexjs.checkout.orderForm.marketingData
  57.         : {
  58.             coupon: "",
  59.             marketingTags: [],
  60.             utmSource: null,
  61.             utmMedium: null,
  62.             utmCampaign: null,
  63.             utmiPage: null,
  64.             utmiPart: null,
  65.             utmiCampaign: null,
  66.           };
  67.  
  68.     mktData.utmSource = utmSource;
  69.     mktData.utmCampaign = utmCampaign;
  70.     mktData.utmMedium = utmMedium;
  71.  
  72.     if (
  73.       vendedor !== null &&
  74.       (mktData.utmiCampaign === null || mktData.utmiCampaign === "0")
  75.     ) {
  76.       mktData.utmiCampaign = vendedor;
  77.     }
  78.  
  79.     if (!vendedor && !mktData.utmiCampaign) {
  80.       mktData.utmiCampaign = "0";
  81.     }
  82.  
  83.     vtexjs.checkout.sendAttachment("marketingData", mktData);
  84.   };
  85.  
  86.   if (utmCampaign || utmMedium || utmSource || vendedor) {
  87.     getUtmParams();
  88.   }
  89.  
  90.   $(".full-cart  .summary-coupon-wrap").toggleClass("span7", "span4");
  91.  
  92.   setClickPesquisar();
  93.  
  94.   $(window).on("orderFormUpdated.vtex", function (e, orderForm) {
  95.     if (!orderForm.items.length) {
  96.       $("div#seller-code").remove();
  97.     }
  98.   });
  99.  
  100.   var buscaSellerCode = function (code) {
  101.     $(".content-seller-code").removeClass("error");
  102.  
  103.     $.ajax({
  104.       url:
  105.         "//api.vtexcrm.com.br/redley/dataentities/VD/search/?_fields=id,cod,name&cod=" +
  106.         code,
  107.       dataType: "json",
  108.       type: "GET",
  109.       headers: {
  110.         Accept: "application/vnd.vtex.ds.v10+json",
  111.         "Content-Type": "application/json; charset=utf-8",
  112.       },
  113.     }).done(function (data) {
  114.       if (data.length) {
  115.         $("#text-loading").text("Aplicando promoções");
  116.         vtexjs.checkout.getOrderForm().then(function (orderForm) {
  117.           vtexjs.checkout
  118.             .sendAttachment("marketingData", {
  119.               coupon: $("#cart-coupon").val(),
  120.               utmiCampaign: data[0].cod,
  121.             })
  122.             .done(function () {
  123.               vtexjs.checkout
  124.                 .sendAttachment("openTextField", {
  125.                   value:
  126.                     "VENDEDOR: Nome:" +
  127.                     data[0].name +
  128.                     " - Codigo:" +
  129.                     data[0].cod,
  130.                 })
  131.                 .done(function () {
  132.                   localStorage.setItem("sellerInfo", JSON.stringify(data[0]));
  133.                   vtexjs.checkout.getOrderForm().then(function (orderForm) {
  134.                     $("div#seller-code").addClass("active");
  135.                     $("div#seller-code").html(
  136.                       `<div class="seller-code-active"><p class="label-seller-code">Vendedor(a)</p><a class="btn remove-seller-code"><span class="label-seller-name">${data[0].name}</span><i class="icon-remove"></i></a></div>`,
  137.                     );
  138.                     removeSellerCode();
  139.                   });
  140.                 });
  141.             });
  142.         });
  143.       } else {
  144.         $(".content-seller-code").addClass("error");
  145.         $(".carregando-seller").remove();
  146.       }
  147.     });
  148.   };
  149.  
  150.   if (localStorage.getItem("sellerInfo")) {
  151.     var sellerInfo = JSON.parse(localStorage.getItem("sellerInfo"));
  152.     $("div#seller-code .label-seller-name").text(sellerInfo.name);
  153.     $("div#seller-code").addClass("active");
  154.  
  155.     if (sellerInfo != undefined) {
  156.       vtexjs.checkout.getOrderForm().then(function (orderForm) {
  157.         vtexjs.checkout
  158.           .sendAttachment("marketingData", {
  159.             coupon: $("#cart-coupon").val(),
  160.             utmiCampaign: sellerInfo.cod,
  161.           })
  162.           .done(function () {
  163.             vtexjs.checkout
  164.               .sendAttachment("openTextField", {
  165.                 value:
  166.                   "VENDEDOR: Nome:" +
  167.                   sellerInfo.name +
  168.                   " - Codigo:" +
  169.                   sellerInfo.cod,
  170.               })
  171.               .done(function () {
  172.                 vtexjs.checkout.getOrderForm().then(function (orderForm) {});
  173.               });
  174.           });
  175.       });
  176.     }
  177.   } else if (location.search.split("vd=")[1]) {
  178.     var code = location.search.split("vd=")[1].split("&")[0];
  179.     buscaSellerCode(code);
  180.   }
  181.  
  182.   function removeSellerCode() {
  183.     $("div#seller-code .remove-seller-code").on("click", function (e) {
  184.       e.preventDefault();
  185.       localStorage.removeItem("sellerInfo");
  186.  
  187.       $("div#seller-code").removeClass("active");
  188.       vtexjs.checkout.getOrderForm().then(function (orderForm) {
  189.         vtexjs.checkout
  190.           .sendAttachment("marketingData", { utmiCampaign: "0" })
  191.           .done(function () {
  192.             vtexjs.checkout
  193.               .sendAttachment("openTextField", { value: " sem vendedor" })
  194.               .done(function () {
  195.                 vtexjs.checkout.getOrderForm().then(function (orderForm) {
  196.                   $(".carregando-seller").remove();
  197.                 });
  198.               });
  199.           });
  200.       });
  201.  
  202.       addSellerCode();
  203.     });
  204.   }
  205.  
  206.   function addSellerCode() {
  207.     $("div#seller-code").html(`
  208.                 <div class="form-seller-code">
  209.                         <p class="label-seller-code">Código do vendedor(a)</p><div class="content-seller-code">
  210.                             <input name="seller-code" class="seller-code">
  211.                 <div class="seller-code-error">CÓDIGO INVÁLIDO</div></div>
  212.                     <button class="btn">Adicionar</button></div>`);
  213.     $("div#seller-code").append(
  214.       "<div class='carregando-seller'><img src='https://redley.vteximg.com.br/arquivos/v2-redley-loading.gif' class='img-loading' /><span> Removendo vendedor(a) e promoções </span></div>",
  215.     );
  216.     setClickPesquisar();
  217.   }
  218.  
  219.   function setClickPesquisar() {
  220.     $("div#seller-code button").on("click", function (e) {
  221.       e.preventDefault();
  222.       var valueCode = $("div#seller-code .seller-code").val();
  223.       if (valueCode == "") {
  224.         Swal.fire({
  225.           icon: "warning",
  226.           title: "Oops...",
  227.           text: "Preencha o código de vendedor(a).",
  228.           confirmButtonColor: "black",
  229.         });
  230.       } else {
  231.         $("div#seller-code").append(
  232.           "<div class='carregando-seller'><img src='https://redley.vteximg.com.br/arquivos/v2-redley-loading.gif' class='img-loading' /><span id='text-loading'> Verificando vendedor(a) </span></div>",
  233.         );
  234.         buscaSellerCode(valueCode);
  235.       }
  236.     });
  237.   }
  238. }
  239.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement