A Dito extrai dados da Linx através de Views, que leem dados das tabelas da Linx, disponibilizadas pela própria marca.

Para facilitar a criação das Views, a Dito disponibiliza scripts para a criação dessas views, no padrão que esperamos os dados.

Pré-requisitos



Credenciais necessárias


  • Disponibilizar os acessos ao banco de dados para a Dito:
    • Nome do banco (SqlServer, Postgres …)
    • Host
    • Porta
    • Usuário
    • Senha
    • Driver (SGBD)
    • Driver SSL Mode (se utilizar)
    • Driver options (se utilizar)


Scripts para criação das views:


Vendedores (dito_crm_vendedores.sql):

Para criar a view de vendedores, basta rodar o código SQL abaixo

CREATE VIEW DITO_CRM_VENDEDORES AS (
  SELECT
    vd.VENDEDOR AS codigo_vendedor,
    vd.CPF AS cpf,
    vd.NOME_VENDEDOR AS nome_vendedor,
    vd.CODIGO_FILIAL AS id_loja,
    CASE 
      WHEN vd.DATA_DESATIVACAO IS NULL OR vd.DATA_DESATIVACAO >= GETDATE() THEN
        'ATIVO'
      ELSE 'INATIVO'
    END AS status,
    lv.FILIAL as loja,
    vd.DESC_CARGO as cargo,
    fls.REDE_LOJAS AS rede_lojas
  FROM
    dbo.LOJA_VENDEDORES vd
  LEFT JOIN dbo.LOJAS_VAREJO lv ON
    vd.CODIGO_FILIAL = lv.CODIGO_FILIAL
  LEFT JOIN dbo.FILIAIS fls ON
    vd.CODIGO_FILIAL = fls.COD_FILIAL
);


Tamanhos (dito_crm_tamanhos.sql):

Para criar a view de Tamanhos, basta rodar o código SQL abaixo:

CREATE VIEW DITO_CRM_TAMANHOS AS (
 SELECT
  GRADE,
  descricao_tamanho,
   numero_tamanho
 FROM
 (
  SELECT
   GRADE,
   TAMANHO_1,
   TAMANHO_2,
   TAMANHO_3,
   TAMANHO_4,
   TAMANHO_5,
   TAMANHO_6,
   TAMANHO_7,
   TAMANHO_8,
   TAMANHO_9,
   TAMANHO_10,
   TAMANHO_11,
   TAMANHO_12,
   TAMANHO_13,
   TAMANHO_14,
   TAMANHO_15,
   TAMANHO_16,
   TAMANHO_17,
   TAMANHO_18,
   TAMANHO_19,
   TAMANHO_20,
   TAMANHO_21,
   TAMANHO_22,
   TAMANHO_23,
   TAMANHO_24,
   TAMANHO_25,
   TAMANHO_26,
   TAMANHO_27,
   TAMANHO_28,
   TAMANHO_29,
   TAMANHO_30,
   TAMANHO_31,
   TAMANHO_32,
   TAMANHO_33,
   TAMANHO_34,
   TAMANHO_35,
   TAMANHO_36,
   TAMANHO_37,
   TAMANHO_38,
   TAMANHO_39,
   TAMANHO_40,
   TAMANHO_41,
   TAMANHO_42,
   TAMANHO_43,
   TAMANHO_44,
   TAMANHO_45,
   TAMANHO_46,
   TAMANHO_47,
   TAMANHO_48
  FROM
   PRODUTOS_TAMANHOS 
 ) AS tm unpivot (descricao_tamanho for numero_tamanho in (
  TAMANHO_1,
  TAMANHO_2,
  TAMANHO_3,
  TAMANHO_4,
  TAMANHO_5,
  TAMANHO_6,
  TAMANHO_7,
  TAMANHO_8,
  TAMANHO_9,
  TAMANHO_10,
  TAMANHO_11,
  TAMANHO_12,
  TAMANHO_13,
  TAMANHO_14,
  TAMANHO_15,
  TAMANHO_16,
  TAMANHO_17,
  TAMANHO_18,
  TAMANHO_19,
  TAMANHO_20,
  TAMANHO_21,
  TAMANHO_22,
  TAMANHO_23,
  TAMANHO_24,
  TAMANHO_25,
  TAMANHO_26,
  TAMANHO_27,
  TAMANHO_28,
  TAMANHO_29,
  TAMANHO_30,
  TAMANHO_31,
  TAMANHO_32,
  TAMANHO_33,
  TAMANHO_34,
  TAMANHO_35,
  TAMANHO_36,
  TAMANHO_37,
  TAMANHO_38,
  TAMANHO_39,
  TAMANHO_40,
  TAMANHO_41,
  TAMANHO_42,
  TAMANHO_43,
  TAMANHO_44,
  TAMANHO_45,
  TAMANHO_46,
  TAMANHO_47,
  TAMANHO_48
 )) AS unptm
);


Transações e usuários (dito_crm_compras.sql):

Para criar a view de transações e usuários, basta rodar o código SQL abaixo:

CREATE VIEW DITO_CRM_COMPRAS AS (
  SELECT
    CONCAT(vd.TICKET, vd.CODIGO_FILIAL, vd.DATA_DIGITACAO) AS id,
    fls.TIPO_FILIAL AS store_type,
    fls.REDE_LOJAS AS store_rede_lojas,
    rls.DESC_REDE_LOJAS AS store_desc_rede_lojas,
    'TRACK GROUPED' AS bar1,
    vd.DATA_DIGITACAO AS event_created_at,
    vd.TICKET AS id_transacao,
    vd.QTDE_TOTAL AS quantidade_produtos,
    vd.VALOR_FRETE AS total_frete,
    CAST((VALOR_VENDA_BRUTA - ISNULL(VALOR_FRETE, 0 )) AS CHAR) AS subtotal,
    CAST(vd.VALOR_PAGO AS CHAR) AS revenue,
    vd.CODIGO_FILIAL AS id_loja,
    lv.FILIAL AS loja,
    vd.VENDEDOR AS codigo_vendedor,
    lvd.NOME_VENDEDOR AS vendedor,
    lfp.FORMA_PGTO AS forma_pagamento,
    CAST(vd.DESCONTO AS CHAR) as desconto,
    'TRACK FLAT' AS bar2,
    vpd.RATEIO_DESCONTO_VENDA AS desconto_item,
    vpd.QTDE AS quantidade,
    p.PRODUTO AS id_produto,
    p.DESC_PRODUTO AS produto,
    p.GRUPO_PRODUTO AS grupo,
    p.SUBGRUPO_PRODUTO AS subgrupo,
    p.COLECAO AS colecao,
    dtt.descricao_tamanho AS tamanho,
    p.LINHA AS linha,
    p.GRIFFE AS grife,
    p.MODELO AS modelo,
    p.REDE_LOJAS AS prod_rede_lojas,
    rl.DESC_REDE_LOJAS AS product_desc_rede_lojas,
    psc.SUBCATEGORIA_PRODUTO AS subcategoria,
    pc.CATEGORIA_PRODUTO AS categoria,
    pcc.DESC_COR_PRODUTO AS cor,
    CAST(vpd.PRECO_LIQUIDO AS CHAR) as preco_item,
    vpd.OPERACAO as operacao,
    'IDENTIFY' AS bar3,
    c.CLIENTE_VAREJO AS name,
    c.CPF_CGC AS cpf,
    c.SEXO AS genero,
    c.ENDERECO AS endereco,
    c.COMPLEMENTO AS complemento,
    c.UF AS uf,
    c.CIDADE AS location,
    c.CEP AS cep,
    CONCAT(c.DDD, c.TELEFONE) AS telefone,
    c.ANIVERSARIO AS birthday,
    c.CADASTRAMENTO AS customer_created_ate,
    c.EMAIL AS email,
    c.BAIRRO AS bairro,
    CONCAT(c.DDD_CELULAR, c.CELULAR) AS celular,
    c.DATA_PARA_TRANSFERENCIA as customer_updated_at,
    c.ULTIMA_COMPRA as customer_last_purchase_date,
    c.TIPO_LOGRADOURO as logradouro,
    c.NUMERO as numero
   FROM
    (
    SELECT
     NULL AS RATEIO_DESCONTO_VENDA,
     QTDE,
     TICKET,
     CODIGO_FILIAL,
     DATA_VENDA,
     PRODUTO,
     COR_PRODUTO,
     TAMANHO,
     PRECO_LIQUIDO,
     'D' AS OPERACAO
    FROM
     LOJA_VENDA_TROCA
    WHERE QTDE > 0
   UNION ALL
    SELECT
     RATEIO_DESCONTO_VENDA,
     QTDE,
     TICKET,
     CODIGO_FILIAL,
     DATA_VENDA,
     PRODUTO,
     COR_PRODUTO,
     TAMANHO,
     PRECO_LIQUIDO,
     'C' AS OPERACAO
    FROM
     LOJA_VENDA_PRODUTO
    WHERE QTDE > 0 ) AS vpd
   JOIN LOJA_VENDA AS vd ON
    vd.TICKET = vpd.TICKET
    AND vd.CODIGO_FILIAL = vpd.CODIGO_FILIAL
    AND vd.DATA_VENDA = vpd.DATA_VENDA
   LEFT JOIN CLIENTES_VAREJO c ON
    vd.CODIGO_CLIENTE = c.CODIGO_CLIENTE
   LEFT JOIN FILIAIS AS fls ON
    vd.CODIGO_FILIAL = fls.COD_FILIAL
   LEFT JOIN LOJA_VENDEDORES AS lvd ON
    vd.CODIGO_FILIAL = lvd.CODIGO_FILIAL
    AND vd.VENDEDOR = lvd.VENDEDOR
   LEFT JOIN PRODUTOS AS p ON
    vpd.PRODUTO = p.PRODUTO
   LEFT JOIN PRODUTOS_CATEGORIA AS pc ON
    p.COD_CATEGORIA = pc.COD_CATEGORIA
   LEFT JOIN PRODUTOS_SUBCATEGORIA AS psc ON
    p.COD_SUBCATEGORIA = psc.COD_SUBCATEGORIA
    AND p.COD_CATEGORIA = psc.COD_CATEGORIA
   LEFT JOIN PRODUTO_CORES AS pcc ON
    vpd.PRODUTO = pcc.PRODUTO
    AND vpd.COR_PRODUTO = pcc.COR_PRODUTO
   LEFT JOIN DITO_CRM_TAMANHOS AS dtt ON
    p.GRADE = dtt.GRADE
    AND vpd.TAMANHO = REPLACE(dtt.numero_tamanho, 'TAMANHO_', '')
   LEFT JOIN LOJAS_REDE AS rl ON
    p.REDE_LOJAS = rl.REDE_LOJAS
   LEFT JOIN LOJAS_REDE AS rls ON
    fls.REDE_LOJAS = rls.REDE_LOJAS
   LEFT JOIN LOJAS_VAREJO AS lv ON
    vd.CODIGO_FILIAL = lv.CODIGO_FILIAL
	  LEFT JOIN LOJA_FORMAS_PGTO lfp ON 
	 	 vd.SUGESTAO_COD_FORMA_PGTO = lfp.COD_FORMA_PGTO
   WHERE
    vd.TOTAL_QTDE_CANCELADA = 0
);


Plano de Tracking

Dados dos Usuários

dito.identify({
 id: dito.generateID('99999999999'),
 name: 'Nome Usuário',
  email: '[email protected]',
 location: 'Cidade',
 birthday: '22/12/1997'
 gender: 'female'
 data: {
  cpf: '99999999999',
  cnpj: '99999999999999',
  endereco: 'Nome Rua, 33, complemento, bairro',
  uf: 'MG',
  cep: '999.999-99',
  telefone: '31988887777',
 }
});


Dados do UsuárioCadastro do UsuárioGlossário Dito
ID
Nome
E-mail
Cidade
Data de nascimento
Gênero

cpf cnpj
Código Pessoa
Telefone
Endereço
UF
tipo pessoa
Cep
dito.identify({ id: dito.generateID('99999999999'), name: 'Nome Usuário', email: '[email protected]', location: 'Cidade', birthday: '22/12/1997' gender: 'female' data: { cpf: '99999999999', cnpj: '99999999999999', endereco: 'Nome Rua, 33, cCadastrouomplemento, bairro', uf: 'MG', cep: '999.999-99', telefone: '31988887777', } }); ID: Informação única utilizada para identificar e registrar os usuários durante a coleta de informações que estarão presentes na ficha dos mesmos. Recomendamos que ele esteja em todas as páginas do seu ambiente. São exemplos de IDs: CPF, e-mail e código próprio.

Dados dos Eventos

Página/açãoEventoPropriedades (exemplo
Cadastrouregister- browser (Firefox)
- dispositivo (Desktop)
- sistema_operacional (Windows)
- utm_source (Dito)
- utm_medium (email)
- utm_campaign (Dito-vendas-recorrentes
ComproucomprouRevenue (473.21)

- codigo_vendedor (50:1 OU 50)
- id_loja (1)
- id_transacao (46650)
- forma_pagamento (CARTÃO)
- nome_loja (LOJA 1)
- nome_vendedor (GERAL)
- quantidade_produtos (5)
- total (473.21)
- total_desconto (0)
- valor_frete (43.61)
- tipo_loja (LOJA)
- rede_lojas (03)
- desc_rede_lojas (OUTLE200
Comprou produtocomprou-produto- id_transacao (52182)
- categoria (KIT)
- colecao (INVERNO)
- cor (PRETA)
- grupo (MOLETOM)
- id_produto (12787)
- linha (LINHA
- marca (ALGUMA MARCA)
- nome_produto (CAMISETA X)
- preco_produto (100)
- quantidade_produto (1)
- subcategoria (subcategoria do produto)
- subgrupo (subgrupo do produto)
- tamanho (M)
- desconto (0)
- modelo (modelo do produto)
DevolveudevolveuRevenue (-473.21)

- codigo_vendedor (50:1 OU 50)
- id_loja (1)
- id_transacao (46650)
- forma_pagamento (CARTÃO)
- nome_loja (LOJA 1)
- nome_vendedor (GERAL)
- quantidade_produtos (5)
- total (473.21)
- total_desconto (0)
- valor_frete (43.61)
- tipo_loja (LOJA)
- rede_lojas (03)
- desc_rede_lojas (OUTLET)
Devolveu produtodevolveu-produto- id_transacao (52182)
- categoria (KIT)
- colecao (INVERNO)
- cor (PRETA)
- grupo (MOLETOM)
- id_produto (12787)
- linha (LINHA)
- marca (ALGUMA MARCA)
- nome_produto (CAMISETA X)
- preco_produto (100)
- quantidade_produto (1)
- subcategoria (subcategoria do produto)
- subgrupo (subgrupo do produto)
- tamanho (M)
- desconto (0)
- modelo (modelo do produto)