Através deste módulo o usuário do sistema visualiza a Curva ABC de Clientes, verificando a frequência e o potencial de compra dos clientes em sua loja. Este módulo possibilitará ao usuário efetuar consultas gerenciais, referentes à posição dos clientes no Ranking e na Curva ABC de Clientes, deste modo o controle de vendas por cliente será feito de acordo com fatores como número de dias que o cliente esteve na loja, frequência de dias em que o cliente compra na loja, há quanto tempo ele está sem comprar (recência) e valor comprado. Com estas informações, é possível entender melhor o perfil de cliente da sua empresa.
Processar Curva ABC de Clientes
Clique em Curva ABC de Clientes.
Clique em ABC/RFV para definir os parâmetros de configuração do módulo Curva ABC de Clientes.
As configurações ABC/RFV servirão de parâmetro para o cálculo dos percentuais da curva ABC e as configurações de pesos RFV. O parâmetro que tiver o valor mais alto, terá mais peso no resultado da análise.
(Opcional) Defina as configurações de faixa etária de clientes.
As faixas etárias auxiliam na análise das compras realizadas por seus clientes, possibilitando saber qual faixa etária de clientes mais compra em sua empresa.
Informe o período de processamento da Curva ABC de Cliente → ![]()
Clique em Sim para confirmar o processamento → ![]()
Defina as opções de filtro de acordo com oque desejar.
|
(Opcional) Clique em Sim para que a posição de cada cliente no ranking seja gravada na consulta de clientes.
No próximo processamento, a data e hora do último processamento da Curva ABC de Clientes poderá ser consultada na tela de Filtros.
Para reprocessar as opções de filtro, siga os passos:
Esta redefinição permite definir os dados que serão visualizados na grid do recurso Curva ABC de Clientes.
Defina os dados do filtro utilizando as funcionalidades de filtro por Empresas.
Os clientes que possuírem em seus cadastros as características incluídas no filtro Excluir, não serão considerados no processamento da Curva ABC.
(Opcional) Clique em Sim para que a posição de cada cliente no ranking seja gravada na consulta de clientes.
No próximo processamento, a data e hora do último processamento da Curva ABC de Clientes pode ser consultada na tela de Filtros.
Utilize este recurso para exportar o relatório no formato de sua preferência.
Para realizar esta exportação, siga os passos:

Utilize este recurso se desejar visualizar de modo prévio ou posterior a impressão dos gráficos: Ranking ou ABC/Ticket médio do cliente.
Para realizar a visualização de relatórios, siga os passos:
Selecione a opção desejada:
Selecione esta opção para visualizar a representação gráfica da posição na curva ABC/Ticket médio do cliente. Esta visualização tembém, pode ser feita ao clicar na opção Imprimir Grid localizada na tela principal do módulo CRM Curva ABC de Clientes. |
Selecione esta opção para visualizar a representação gráfica do Ranking do cliente.
|
Relatório Personalizado
Informa o layout desejado.
Para mais detalhes sobre as opções de definição de layout, consulte o tópico Layout.
Clique em Visualizar.
No relatório Curva ABC de Clientes - Listagem de Clientes serão apresentados todos clientes, suas posições na Curva ABC/Ranking bem como os valores de compra correspondentes ao período processado.
Para utilizar o recurso de cenários, siga os passos:
Dê duplo clique para aplicá-lo na tela principal do módulo CRM Curva ABC de Clientes.
Para mais detalhes sobre as opções de definição de cenários, consulte o tópico Cenários.
Para utilizar os recursos avançados do módulo Curva ABC de Clientes, siga os passos:
Selecione a opção desejada:
Utilize esta funcionalidade para personalizar as colunas do grid do Curva ABC de Clientes.
Clique em Exibir Colunas → ![]()
A tela Personalização será exibida.
Clique na informação ou coluna a ser inserida na tabela (mantenha o botão pressionado).
Arraste a informação ou coluna selecionada para posição desejada na tabela.
Autor do artigo:Rayana.sup.shop (Não remova esse quadro)Descreva o passo a passo para o cliente seguindo os padrões de escrita de artigos, como:
|
(Não remova esse quadro)Essas informações não se tonam parte do conteúdo em sua nova página, elas ficam ocultas e só aprecem para usuário logado e se o artigo/dica estiver em modo de edição! |
<div id="text-end"></div>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-193974933-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag2(){dataLayer.push(arguments);}
gtag2('js', new Date());
gtag2('config', 'UA-193974933-1');
function gtagevents (action,category) {
console.log(category + ':' + action);
gtag2('event',action,{event_category:category,event_label: document.title});
};
</script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
(function(){
// RASTREIO DE USO DO VÍDEO
function gtagvideo(action){
gtagevents(action,'Video')
}
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
var seeking = false;
var priorTime = 0;
var currentTime = 0;
var reportouFinalDoConteudo = false;
// se pausar o play é acionado também.
player.on('play', function(data) {
if(data.seconds == 0){
gtagvideo('video-iniciado');
}
priorTime = data.seconds;
});
player.on('ended', function() {
gtagvideo('video-finalizado');
});
//seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
// pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
player.on('seeking', function(data) {
seeking = true;
});
player.on('pause',function(data){
gtagvideo('video-pausado');
});
player.on('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagvideo('video-voltando');
}
if(currentTime > priorTime){
gtagvideo('video-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = data.seconds;
var finalDoConteudo = (data.duration - data.seconds) < 5;
if(finalDoConteudo && !reportouFinalDoConteudo){
gtagvideo('conteudo-finalizado')
reportouFinalDoConteudo = true;
}
});
player.on('fullscreenchange', function() {
gtagvideo('video-fullscreen');
});
})();
</script>
<script>
// RASTREIO DO USO DE AUDIO
(function(){
function gtagaudio(action){
gtagevents(action,'Audio')
}
var audio = document.querySelector("audio");
var seeking = false;
var priorTime = 0;
var currentTime = 0;
audio.addEventListener('play',function(){
if(audio.currentTime == 0){
gtagaudio('audio-iniciado');
}
priorTime = audio.currentTime;
});
audio.addEventListener('ended',function(){
gtagaudio('audio-finalizado');
});
audio.addEventListener('pause',function(){
gtagaudio('audio-pausado');
});
audio.addEventListener('seeking', function(data) {
seeking = true;
});
audio.addEventListener('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagaudio('audio-voltando');
}
if(currentTime > priorTime){
gtagaudio('audio-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = audio.currentTime;
});
})();
</script>
<script>
(function(){
var terminou = false;
//RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
document.addEventListener('scroll',() => {
if(document.getElementById('text-end').getBoundingClientRect().top < window.innerHeight){
if(!terminou){
terminou = true;
gtagevents('artigo-lido','Pagina')
}
}else{
terminou = false;
}
});
})();
</script>
|
<div id="text-end"></div>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-19PXZY9EEV"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag3(){dataLayer.push(arguments);}
gtag3('js', new Date());
gtag3('config', 'G-19PXZY9EEV');
function gtagevents (action,category) {
console.log(category + ':' + action);
gtag3('event',action,{event_category:category,event_label: document.title});
};
</script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
(function(){
// RASTREIO DE USO DO VÍDEO
function gtagvideo(action){
gtagevents(action,'Video')
}
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
var seeking = false;
var priorTime = 0;
var currentTime = 0;
var reportouFinalDoConteudo = false;
var reportouMetadeAssistido = false;
// se pausar o play é acionado também.
player.on('play', function(data) {
if(data.seconds == 0){
gtagvideo('video-iniciado');
}
priorTime = data.seconds;
});
player.on('ended', function() {
gtagvideo('video-finalizado');
});
//seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
// pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
player.on('seeking', function(data) {
seeking = true;
});
player.on('pause',function(data){
gtagvideo('video-pausado');
});
player.on('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagvideo('video-voltando');
}
if(currentTime > priorTime){
gtagvideo('video-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = data.seconds;
var finalDoConteudo = (data.duration - data.seconds) < 5;
if(finalDoConteudo && !reportouFinalDoConteudo){
gtagvideo('video-conteudo-finalizado')
reportouFinalDoConteudo = true;
}
var metadeAssistido = data.seconds > (data.duration/2);
if(metadeAssistido && !reportouMetadeAssistido){
gtagvideo('video-metade-assistido')
reportouMetadeAssistido = true;
}
});
player.on('fullscreenchange', function() {
gtagvideo('video-fullscreen');
});
})();
</script>
<script>
// RASTREIO DO USO DE AUDIO
(function(){
function gtagaudio(action){
gtagevents(action,'Audio')
}
var audio = document.querySelector("audio");
var seeking = false;
var priorTime = 0;
var currentTime = 0;
audio.addEventListener('play',function(){
if(audio.currentTime == 0){
gtagaudio('audio-iniciado');
}
priorTime = audio.currentTime;
});
audio.addEventListener('ended',function(){
gtagaudio('audio-finalizado');
});
audio.addEventListener('pause',function(){
gtagaudio('audio-pausado');
});
audio.addEventListener('seeking', function(data) {
seeking = true;
});
audio.addEventListener('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagaudio('audio-voltando');
}
if(currentTime > priorTime){
gtagaudio('audio-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = audio.currentTime;
});
})();
</script>
<script>
(function(){
const tamanhoDaTela = window.innerHeight;
let terminou = false;
let chegouNaMetade = false;
// se não remover o tamanho da tela do meio da página, o evento só será disparado quando o meio da página estiver acima da área visível.
// fazendo dessa forma assim que o meio da página estiver visível na base da janela o evento será disparado.
const meioDoTexto = (document.getElementById('text-end').getBoundingClientRect().top / 2) - tamanhoDaTela;
//RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
document.addEventListener('scroll',() => {
if(document.getElementById('text-end').getBoundingClientRect().top < tamanhoDaTela){
if(!terminou){
terminou = true;
gtagevents('artigo-lido','Pagina')
}
}else{
terminou = false;
}
//RASTREIO DE LEITURA ATÉ O MEIO DA PÁGINA
if(meioDoTexto < window.scrollY) {
if(!chegouNaMetade){
gtagevents('artigo-lido-ate-metade','Pagina');
chegouNaMetade = true;
}
} else {
chegouNaMetade = false;
}
});
})();
</script>
|