Para auxiliar na organização de suas entregas e expedições, o módulo de Controle de Entrega e Expedição do sistema Automação Comercial Shop oferece uma solução completa para que você possa gerenciar todas as etapas, desde a venda até a entrega final ao cliente. Ele permite que você consulte informações como produtos vendidos, horário da venda e status da entrega.

Para que o módulo funcione corretamente, é necessário configurar o sistema para que as vendas sejam enviadas para ele.

Configurações para o envio de vendas

As configurações para envio de vendas são diferentes para o PDV Alterdata e para o Movimento de Estoque:

  • PDV Alterdata: Acesse "Configurações e Manutenção" > "PDV" > "Configurações Gerais" > "Outros". Marque a opção "Trabalha com Controle de Entrega e Expedição". Ao fazer isso, você poderá escolher entre duas opções:


    • Todas as vendas: Todas as vendas feitas no PDV serão enviadas automaticamente para o controle de entregas.

    • Perguntar por venda: O sistema irá perguntar, a cada venda, se ela deve ser enviada para o controle de entrega ou não.



  • Movimento de Estoque: Vá em "Configurações e Manutenção" > "Opções" > "Movimentação". Marque a opção "Trabalha com controle de expedição de mercadorias" e salve as alterações. Nesse caso, todas as vendas realizadas pelo Movimento de Estoque serão encaminhadas para o controle de entregas, sem a opção de selecionar por venda.

Acessando o Módulo de Controle de Entrega e Expedição

Você pode acessar o módulo dentro do sistema: Aba Estoque > Controle de Entrega e Expedição.





Principais Funcionalidades

A tela inicial do módulo oferece diversas ferramentas para ajudar no seu controle diário:

  • Atualizar entregas: Para carregar as informações mais recentes na tela.

  • Imprimir: Para gerar relatórios do controle de entrega.

  • Localizar entrega: Permite buscar entregas por diferentes critérios, como cliente, documento, data ou código do produto.

  • Baixa por cliente: Permite dar baixa nos produtos de um cliente específico. Você seleciona o cliente, inclui o código do produto e a quantidade entregue para registrar a baixa.



  • Baixa por documento: Baixa apenas o documento que você selecionou, sem a necessidade de confirmar as quantidades ou itens.

  • Histórico Baixas: Permite consultar e, se necessário, cancelar baixas já realizadas.


  • Expandir/Recolher agrupamento: As entregas são agrupadas por cliente, e esses botões permitem expandir ou recolher as informações para uma melhor visualização.

  • Cenários: Salve ou selecione cenários de visualização para organizar as informações da maneira que preferir.

  • Personalizar colunas: Permite adicionar ou remover colunas na tela principal, adaptando-a à sua necessidade.

Entenda as Configurações

O módulo possui uma tela de configurações dividida em duas abas para personalização:

  • Geral: Aqui você pode ativar notificações sonoras para novas entregas e configurar o intervalo de atualização. Também é possível definir operações para documentos de baixa de estoque e optar por usar o endereço de entrega do cadastro do cliente.


  • Customizações: Você pode criar status intermediários para as entregas, como "Adiar Entrega" ou "Confirmar entrega com cliente". Também é possível personalizar as cores e fontes das legendas na tela principal para indicar o status da entrega.

Datas de Venda e Entrega

O sistema utiliza a data do orçamento como a "Hora venda" padrão. Para a data da entrega, ele usa a data informada na aba "Dados adicionais", no campo "Data de entrega".

Autor do artigo: Rebarbosa.prime.shop

(Não remova esse quadro)

Descreva o passo a passo para o cliente seguindo os padrões de escrita de artigos, como:

  1. Escreva na voz ativa,
  2. Numere o passo a passo,
  3. Evite utilização de imagens,
  4. Escreva no tempo presente, na primeira pessoa e no imperativo (em passo a passos).


Essas informações não se tornam parte do conteúdo em sua nova página, elas ficam ocultas e só aparecem para usuário logado e se o artigo/dica estiver em modo de edição!

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