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?
nathan
August 1, 2019, 9:44pm
2
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.
cto
October 2, 2019, 9:12pm
4
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);
});