Olá bom dia,
através deste link: DOC VTEX
verifiquei que o checkout de uma loja que trabalho não está carregando marketingData (utm_source, utm_campaign e utm_medium)
O checkout foi personalizado, para ajudar o arquivo foi minificado e a empresa não possui o arquivo original.
Acredito que devo configurar esta parte pra isso…
addToCartFromShelf(t, e) {
const n = this, r = [{id: t, quantity: e, seller: 1}];
$(".loader-overlay").fadeIn(), vtexjs.checkout.getOrderForm().then(t => {
vtexjs.checkout.addToCart(r, null, 2).done(t => {
console.log("added"), n.showItemsNotInCart()
}).fail(t => {
$(".loader-overlay").fadeOut(), console.log("error")
})
})
},
Alguém pode me mostrar como posso adicionar marketingData?
sei que tenho que usar a função vtexjs.checkout.sendAttachment mas estou em dúvida como coloca-la na função acima.
Desde já agradeço a atenção!
Olá @rsantos
Para você adicionar o UTM pode seguir o exemplo desta publicação feita aqui no community .
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);
});
Olá @bruno.araujo obrigado pelas orientações, você acha que da forma que fiz abaixo vai atender? Como está em produção tenho medo de dar problema no checkout.
addToCartFromShelf(t, e) {
const n = this, r = [{id: t, quantity: e, seller: 1}];
$(".loader-overlay").fadeIn(), vtexjs.checkout.getOrderForm().then(t => {
vtexjs.checkout.addToCart(r, null, 2).done(t => {
console.log("added"), n.showItemsNotInCart()
}).fail(t => {
$(".loader-overlay").fadeOut(), console.log("error")
})
});
this.addMarketingData()
},
addMarketingData() {
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);
},
Boa noite,
Fiz os testes e deu certo mas o código acima, funcionava apenas quando adicionava produto diretamente dentro do checkout. Quando eu estava na loja sem estar no checkout e clicava em add produto não funcionava então adicionei a seguinte função para solucionar o problema.
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;
}
Estou deixando aqui caso mais alguém esteja com dificuldade com o mesmo problema.
Obrigado @bruno.araujo
2 Likes
system
Closed
June 3, 2022, 9:58pm
5
This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.