UTMs de marketing estão sendo passadas para o checkout

Opa,

De acordo com esse tópico anterior (UTMs de marketing estão sendo passadas para o checkout), o @rsantos em jun’22, parece ter encontrado a solução com o código abaixo:

function addMarketingData() {
    var IPS = getIPS()
    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);
}

function getIPS() {
    var IPS;
    document.cookie.split(';').forEach(function (cookie) {
        if(cookie.includes("IPS")){
            IPS = cookie;
        }
    });

    return IPS;
}

Gostaria de saber, por gentileza de alguém ou do próprio @rsantos, onde eu faço a inserção desse código e qual a maneira correta, dentro da tag ?

Desculpem, mas estou em produção e não posso errar essa alteração.

Obrigado e vamos seguindo.

Olá @EuGuSouza, quando os UTMs não estão sendo enviados para o checkout, o motivo normalmente é porque a ação de compra da sua loja foi personalizada e não utiliza o botão nativo da VTEX vtex.cmc:BuyButton/. Neste caso você vai precisar criar uma função como a mencionada em meu post e anexa-la a ação de compra, ou ainda ao botão finalizar compra se existir.

para enviar o marketingData ao orderForm utilizamos a função sendAttachment do módulo checkout do VTEX js, abaixo a documentação a respeito da função:

https://github.com/vtex/vtex.js/blob/master/docs/checkout/README.md#sendattachmentattachmentid-attachment-expectedorderformsections

Para verificar se deu certo você pode utilizar este guia:
https://developers.vtex.com/docs/guides/check-marketing-utms-used-at-checkout

Quanto a questão de testar em produção, você pode fazer de várias formas, duplicar seu site e deixar um site de homologação, utilizando os wids e ou lids:
https://developers.vtex.com/docs/guides/validating-a-layout-before-moving-it-to-production
ou até executar seus testes diretamente no console do navegador, fazendo com que a função seja executada apenas para você.