Integração com Beeviral

@leonardo conforme conversamos, segue tópico aqui na comunidade para alinhar integração com a Beeviral

Esse é o modelo do script no painel deles:

<!-- Create a simple CodeMirror instance -->
<script>
    function initIndexia() {
        var customer = new window.newCustomer();
        customer.Init({
            host: "https://account.beeviral.app",
            campaign_token: "0000000-0000-0000-0000-00000000000",
            email: "email do seu cliente",
            name: "nome do seu cliente",
            phone: "",
            sendreferralrequest: "N"
        });

        customer.send();
    }
    //
    function initializeIndexia(i, t) {
		var e;
		i.getElementById(t) ? initIndexia() : ((
			e = i.createElement("script")).id = t
			, e.async = !0
			, e.src = "https://account.beeviral.app/Scripts/app/widget.js"
			, e.onload = initIndexia
			, i.head.appendChild(e))
	}
	function initiateCallIndexia() {
		initializeIndexia(document, "indexia-js-sdk")
	}
	window.addEventListener ? window.addEventListener("load", initiateCallIndexia, !1) : window.attachEvent("load", initiateCallIndexia, !1);
</script>
                                                       

Esse link é do BEEVIRAL API (avançado)
https://account.beeviral.app/api/swagger/ui/index

Tem tbm a opção do WEBHOOK

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?

São 3 opções de integração.

Essa do código JS é mais simples, vai na página de finalização de compra.

Além disso, é necessário que essa parte (<div id="app_cw_widget"></div>) seja inserida na pagina no local onde o widget será exibido…

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.

Ok

eu participei juntamente com o Leo de uma reunião com eles… ficou a sugestão de criação de um widget no mktplace de apps.

Mas não seria agora…

Boa tarde pessoal,

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).

Vou pedir ajuda aos universitários @silvavinicius @carlospereira :grinning_face_with_smiling_eyes:

@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é :grimacing:

O exemplo do e-mail pareceu ser mais completo:

<script type="text/javascript">

function initbvWidgetShared() {

var bvWidgetShared = new window.bvWidgetShared();

bvWidgetShared.Init({

host: https://indexia.app,

element: "app_cw_widget",

campaign_token: "XXXXXXXXXXXXXXXXXXXXXX",

name: "{{nomecomprador}}",

email: "{{email}}",

phone: "",

valorconversao: "{{ValorPedido}}",

sendreferralrequest: "Y",

content: "",

status: "Convertido"

});

}

//

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();

</script>

@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?

3 curtidas

Enviei

1 curtida

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 :grin:

// 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();

3 curtidas

Ok,

basta ajustar o token e Inserir no custom-js/checkout.js?

2 curtidas

@cliquewebmarketing isso mesmo!

2 curtidas

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);

Funcionou!

para eu colocar na página MINHA CONTA e MEUS PEDIDOS
como seria?

No caso, qual motivo pra colocar em minha conta e meus pedidos?

É mais uma oportunidade para conseguir a indicação do cliente.

Tipo, quando ele finaliza o pedido, pode não perceber, ou não ver o botao de indicação.

Na pagina minha compra e meus pedidos, podemos deixar disponível tbm, assim temos mais locais para o cliente indicar e ser recompensado.

Mas acredito que seja outro script, não? Porque esse ai é obrigatório ter o total do pedido.