Bom dia, tudo bem?
Não teria necessidade de usar via webhook, se já existe um script que roda no front da loja. Isso vai entrar em que etapa da jornada? Na finalização apenas, ou quando ele logar no site?
Isso então funciona semelhante ao que ocorre com um widget ebit ou compre e confie. Então basicamente verificar em qual rota/página está e assim aplicar o código, assim como inserir na página esse html. Vou fazer uns testes e conforme for, irei publicar aqui a solução e onde você poderá inserir ele.
Daria para implementar o script no GTM inserindo variáveis de enhanced ecommerce na tag, ou também dá pra adicionar diretamente no JS customizado (nesse caso com um pouco mais de flexibilidade).
@cliquewebmarketing na call eu falei de o pessoal da Beeviral fazer a integração do lado deles e aí publicaríamos no marketplace sim, então não somos nós a integrar os webhooks deles (que até desconheço a documentação) mas sim o contrário, até porque nós temos a API pública e a documentação que até já passei pra eles e ajudaríamos com qualquer dúvida.
Ainda garanti mais clientes para eles caso eles integrassem né
@cliquewebmarketing
Bom dia! Então, tentamos testar o script para integração, mas para que o widget seja exibido é necessário uma chave válida para ser usada como ‘campaign_token’.
Se você tiver essa chave, poderia compartilhar comigo no privado?
Boa tarde! Aqui vai o código de checkout customizado. Teve um problema no token de campanha que foi enviado pro @carlospereira, onde indica que o token tá inválido. Peço pra que confira com o pessoal do Beeviral sobre isso, também cheque se o token foi enviado certinho, faltando alguma letra ou algo do gênero
// Inserir no custom-js/checkout.js
import ecomPassport from '@ecomplus/passport-client'
function initbvWidgetShared() {
const router = window.storefrontApp && window.storefrontApp.router
const addConfirmationBanner = ({name, params}) => {
if (name === "confirmation" && params.json) {
let order
const orderJson = decodeURIComponent(params.json)
if (orderJson) {
try {
order = JSON.parse(orderJson)
} catch (e) {
}
}
if (order) {
const customer = ecomPassport.getCustomer()
const customerName = `${customer.name.given_name} ${customer.name.middle_name}
${customer.name.family_name}`
const $confirmDiv = document.querySelector('#confirmation')
$confirmDiv.insertAdjacentHTML(
'beforeend',
`<div id="app_cw_widget"></div>`)
var bvWidgetShared = new window.bvWidgetShared();
bvWidgetShared.Init({
host: "https://indexia.app",
element: "app_cw_widget",
campaing_token: "XXXXXXXXXXXXXXXXXXXXX",
name: customerName,
email: customer.main_email,
phone: "",
valorconversao: `${order.amount.total}`,
sendreferralrequest: "Y",
content: "",
status: "Convertido"
})
}
}
}
if (router.currentRoute) {addConfirmationBanner(router.currentRoute)}
router.afterEach(addConfirmationBanner)
}
function initializebvWidgetShared(i, t) {
var e;
i.getElementById(t) ? initbvWidgetShared() : ((
e = i.createElement("script")).id = t
, e.async = !0
, e.src = "https://indexia.app/Scripts/app/widget_sharing.js"
, e.onload = initbvWidgetShared
, i.head.appendChild(e))
}
function initiateCallbvWidgetShared() {
initializebvWidgetShared(document, "bvWidgetShared-js-sdk")
}
initiateCallbvWidgetShared();
Boa tarde, nova atualização no código. O que foi passado pelo email, não funcionava corretamente. Foi preciso buscar o interno ao beeviral pra fazer funcionar.
// BEE VIRAL
import ecomPassport from '@ecomplus/passport-client'
function initbvWidgetShared() {
const router = window.storefrontApp && window.storefrontApp.router
const addConfirmationBanner = ({name, params}) => {
if (name === "confirmation" && params.json) {
let order
const orderJson = decodeURIComponent(params.json)
if (orderJson) {
try {
order = JSON.parse(orderJson)
} catch (e) {
}
}
if (order) {
const customer = ecomPassport.getCustomer()
const customerName = `${customer.name.given_name} ${customer.name.middle_name}
${customer.name.family_name}`
const $confirmDiv = document.querySelector('#confirmation')
$confirmDiv.insertAdjacentHTML('beforeend','<div id="app_cw_widget"></div>')
var bvWidgetShared = new window.bvWidgetShared();
bvWidgetShared.Init({
host: "https://account.beeviral.app",
element: "app_cw_widget",
campaign_token: "UU9Ka1NqZTVYanhudjc5SnhQVVhLZz09",
name: customerName,
email: customer.main_email,
phone: "",
valorconversao: `${order.amount.total}`,
sendreferralrequest: "N",
content: "",
status: "Convertido"
});
}
}
}
if (router.currentRoute) {
addConfirmationBanner(router.currentRoute)
}
router.afterEach(addConfirmationBanner)
}
function initializebvWidgetShared(i, t) {
var e;
i.getElementById(t) ? initbvWidgetShared() : ((
e = i.createElement("script")).id = t
, e.async = !0
, e.src = "https://account.beeviral.app/Scripts/app/widget_sharing.js"
, e.onload = initbvWidgetShared
, i.head.appendChild(e))
}
function initiateCallbvWidgetShared() {
initializebvWidgetShared(document, "bvWidgetShared-js-sdk")
}
window.addEventListener ? window.addEventListener("load", initiateCallbvWidgetShared, !1) : window.attachEvent("load", initiateCallbvWidgetShared, !1);