Como recuperar utm_source e utm_campaign para adcionar ao checkout?

O botão adicionar ao carrinho de nossa loja é personalizado, por isso nós mesmos tivemos a necessidade de reescrever a função de adicionar o produto ao carrinho.

Acontece que quando adicionamos o produto ao carrinho, os dados utm_source e utm_campaign não estão sendo enviados.

Lendo a documentação da vtex, entendemos que tais informações devem ser enviadas via post e isso estamos fazendo no código abaixo.

vtexjs.checkout.getOrderForm() .then(function(orderForm) { var marketingData = orderForm.marketingData; marketingData = { 'utmSource': 'instagram', 'utmCampaign': 'instagram-stories', 'utmMedium': 'banner' }; return vtexjs.checkout.sendAttachment('marketingData', marketingData) }).done(function(orderForm) { // console.log(orderForm); });

O que precisamos agora é recuperar os dados utm_source, utm_campaign e utm_medium automaticamente, pois no exemplo acimo os mesmo foram inclusos manualmente.

Alguma ideia?

Ezequiel, este é um exemplo que tenho de uma loja que sofreu por esse problema e conseguimos resolver, estranho que no seu caso não está funcionando.

Lembrando que deve ser enviado os produtos(ou seja, ter produtos no carrinho) antes de executar essa função:

var IPS = Cookies.get('IPS'); var utms = { utmCampaign: (IPS.indexOf('Campanha')!= -1 ? IPS.split('Campanha=')[1].split('&')[0]:""), utmMedium: (IPS.indexOf('Midia')!= -1 ? IPS.split('Midia=')[1].split('&')[0]:""), utmSource: (IPS.indexOf('Parceiro')!= -1 ? IPS.split('Parceiro=')[1].split('&')[0]:""), } vtexjs.checkout.sendAttachment('marketingData', utms);

Nathan, obrigado pelo retorno.

Fiz um teste aqui e funcionou a recuperação dos utms.

Quanto a ter que ter produtos no carrinho estou ligado e obrigado por mencionar.

Gracias por el aporte.

Le incorporé la variable coupon, quedó de la siguiente manera:

vtexjs.checkout.getOrderForm() .then(function(orderForm) { var marketingData = orderForm.marketingData; marketingData = { 'coupon': 'TESTCUPON', 'utmSource': 'TESTSOURCE', 'utmCampaign': 'TESTCAMPAIGN', 'utmMedium': 'TESTMEDIUM', 'utmiCampaign': 'INTERNO' }; return vtexjs.checkout.sendAttachment('marketingData', marketingData); }).done(function(orderForm) { console.log(orderForm); console.log(orderForm.marketingData); });