{% extends "base.html" %} {% block title %}Melhor Envio{% endblock %} {% block content %} {% set cotacao_aplicada = melhor_envio_cotacao_aplicada or {} %} {% set cotacao_aplicada_opcao = cotacao_aplicada.get('selected_option') if cotacao_aplicada else None %} {% set cotacao_aplicada_id = cotacao_aplicada_opcao.get('id') if cotacao_aplicada_opcao else None %} {% set checkout_atual = melhor_envio_checkout_atual or {} %} {% set tracking_atual = melhor_envio_tracking_atual or {} %}

Melhor Envio

Fase inicial da implantação do frete para vendas online. Nesta tela o CapeServer já separa o que está apto para cotação, o que deve seguir por entrega local e o que ainda precisa de cliente/endereço.

Aptas para cotação
{{ resumo_melhor_envio.aptos_cotacao or 0 }}
Sugestão local
{{ resumo_melhor_envio.sugestao_local or 0 }}
Faltando endereço
{{ resumo_melhor_envio.faltando_endereco or 0 }}
Faltando cliente
{{ resumo_melhor_envio.faltando_cliente or 0 }}
Prontas para cotação
Vendas online com cliente e endereço suficientes para iniciar o frete.
{{ registros_melhor_envio|length }}
{% if registros_melhor_envio %}
{% for registro in registros_melhor_envio %} {% endfor %}
Pedido Cliente Pagamento Rota sugerida Endereço Valor Ações
#{{ registro.numero_pedido }}
{{ registro.data_venda_fmt }}
{{ registro.cliente_nome }}
{{ registro.cidade }}{% if registro.bairro %} • {{ registro.bairro }}{% endif %}
{{ registro.pagamento_descricao }}
{{ registro.checkout_status_label }}
{{ registro.financeiro_status_label }}
{% if registro.entrega_local_sugerida %} Entrega local pode ser mais adequada {% else %} Cotar no Melhor Envio {% endif %}
{{ registro.endereco_resumo }}
R$ {{ '%.2f'|format(registro.valor_total or 0) }}
{% else %}
Nenhuma venda apta para cotação foi encontrada agora.
{% endif %}
Bloqueios antes da cotação
Itens que ainda não devem seguir para o Melhor Envio.
{% if registros_bloqueados_melhor_envio %}
{% for registro in registros_bloqueados_melhor_envio %}
Pedido #{{ registro.numero_pedido }} — {{ registro.cliente_nome }}
{{ registro.endereco_resumo }}
{% if not registro.cliente_ok %} Cliente obrigatório {% elif not registro.logradouro_ok %} Completar endereço {% else %} Definir regra {% endif %}
{% endfor %}
{% else %}
Tudo limpo por aqui — sem bloqueios visíveis nesta filtragem.
{% endif %}
Pré-cotação da venda selecionada
{% if registro_destacado_melhor_envio %}
Pedido #{{ registro_destacado_melhor_envio.numero_pedido }}
{{ registro_destacado_melhor_envio.cliente_nome }}
{{ registro_destacado_melhor_envio.endereco_resumo }}
{{ registro_destacado_melhor_envio.pagamento_descricao }} {{ registro_destacado_melhor_envio.pagamento_status }} {{ registro_destacado_melhor_envio.financeiro_status_label }} {% if cotacao_aplicada_opcao %} Frete aplicado: R$ {{ '%.2f'|format(cotacao_aplicada_opcao.price or 0) }} {% endif %}
{% if registro_destacado_melhor_envio.financeiro_tem_titulo %}
Título #{{ registro_destacado_melhor_envio.conta_receber_id }} • Venc.: {{ registro_destacado_melhor_envio.financeiro_data_vencimento_fmt }} • Pago: {{ registro_destacado_melhor_envio.financeiro_data_pagamento_fmt }}
{% endif %}
{% if cotacao_aplicada_opcao %}
Cotação aplicada
{{ cotacao_aplicada_opcao.company_name }} / {{ cotacao_aplicada_opcao.name }}
Valor: R$ {{ '%.2f'|format(cotacao_aplicada_opcao.price or 0) }} {% if cotacao_aplicada_opcao.delivery_time %} • Prazo: {{ cotacao_aplicada_opcao.delivery_time }} {% endif %} {% if cotacao_aplicada.aplicado_em %} • Aplicado em {{ cotacao_aplicada.aplicado_em }} {% endif %}
{% endif %} {% if checkout_atual %}
Checkout logístico registrado {{ checkout_atual.status_label or 'Registrado' }}
{% if checkout_atual.order_id %}
Order ID: {{ checkout_atual.order_id }}
{% endif %} {% if checkout_atual.shipment_id %}
Shipment ID: {{ checkout_atual.shipment_id }}
{% endif %} {% if checkout_atual.protocol %}
Protocolo: {{ checkout_atual.protocol }}
{% endif %} {% if checkout_atual.tracking_code %}
Rastreio: {{ checkout_atual.tracking_code }}
{% endif %} {% if checkout_atual.registrado_em %}
Registrado em {{ checkout_atual.registrado_em }}
{% endif %} {% if checkout_atual.ultima_ocorrencia %}
{{ checkout_atual.ultima_ocorrencia }}
{% endif %}
{% if checkout_atual.order_id %} PDF via CapeServer {% endif %} {% if checkout_atual.label_url %} Abrir etiqueta {% endif %} {% if checkout_atual.label_pdf_url %} PDF da etiqueta {% endif %}
{% endif %} {% if melhor_envio_erro %}
{{ melhor_envio_erro }}
{% endif %} {% if melhor_envio_diagnostico %}
{% if melhor_envio_diagnostico.ready %}
Configuração e dados mínimos prontos para pré-cotação.
{% else %}
Ainda há pendências antes de consultar o Melhor Envio.
{% endif %} {% if melhor_envio_diagnostico.errors %}
Pendências
    {% for erro in melhor_envio_diagnostico.errors %}
  • {{ erro }}
  • {% endfor %}
{% endif %} {% if melhor_envio_diagnostico.warnings %}
Estimativas aplicadas
    {% for aviso in melhor_envio_diagnostico.warnings %}
  • {{ aviso }}
  • {% endfor %}
{% endif %} {% if melhor_envio_diagnostico.payload_preview %}
Prévia do payload
{{ melhor_envio_diagnostico.payload_preview|tojson(indent=2) }}
{% endif %}
{% endif %} {% if melhor_envio_checkout_diagnostico %}
Checkout da etiqueta
{% if melhor_envio_checkout_diagnostico.ready %}
A venda já tem dados suficientes para registrar a compra da etiqueta e iniciar o rastreio.
{% else %}
Ainda faltam dados antes de considerar a etiqueta pronta para compra/registro.
{% endif %} {% if melhor_envio_checkout_diagnostico.errors %}
    {% for erro in melhor_envio_checkout_diagnostico.errors %}
  • {{ erro }}
  • {% endfor %}
{% endif %} {% if melhor_envio_checkout_diagnostico.warnings %}
    {% for aviso in melhor_envio_checkout_diagnostico.warnings %}
  • {{ aviso }}
  • {% endfor %}
{% endif %} {% if melhor_envio_checkout_diagnostico.payload_preview %}
Prévia do payload de checkout
{{ melhor_envio_checkout_diagnostico.payload_preview|tojson(indent=2) }}
{% endif %}
{% endif %}
Buscar pré-cotação real {% if cotacao_aplicada_opcao %} Gerar etiqueta de expedição {% endif %}
{% if cotacao_aplicada_opcao %}
Compra real da etiqueta
Usa a sequência oficial do Melhor Envio: carrinho, checkout, geração da etiqueta e leitura do tracking inicial.
{% if not melhor_envio_checkout_diagnostico.ready %}
Corrija as pendências acima antes de disparar a compra real.
{% endif %}
Registrar compra da etiqueta
Atualizar rastreio
{% if checkout_atual.order_id %}
Consulta novamente a API do Melhor Envio usando o order salvo para atualizar o status e o histórico de eventos.
{% endif %}
{% set status_tracking = tracking_atual.status or checkout_atual.status or 'em_transito' %}
{% if tracking_atual %}
Acompanhamento atual
{{ tracking_atual.status_label or 'Manual' }}
{% if tracking_atual.codigo %}Código: {{ tracking_atual.codigo }}{% endif %} {% if tracking_atual.atualizado_em %} • Atualizado em {{ tracking_atual.atualizado_em }}{% endif %}
{% if tracking_atual.ultima_ocorrencia %}
{{ tracking_atual.ultima_ocorrencia }}
{% endif %} {% if tracking_atual.events %}
Últimos eventos
    {% for evento in tracking_atual.events[:5] %}
  • {{ evento.status_label or evento.status or 'Evento' }} {% if evento.data %} — {{ evento.data }}{% endif %} {% if evento.descricao %}
    {{ evento.descricao }}
    {% endif %}
  • {% endfor %}
{% endif %}
{% endif %} {% endif %} {% if melhor_envio_pre_cotacao and melhor_envio_pre_cotacao.options %}
Resultados da pré-cotação
{% for opcao in melhor_envio_pre_cotacao.options %} {% endfor %}
Serviço Transportadora Preço Aplicar
{{ opcao.name }}
{% if opcao.delivery_time %}
Prazo: {{ opcao.delivery_time }}
{% endif %} {% if opcao.error %}
{{ opcao.error }}
{% endif %}
{{ opcao.company_name }} R$ {{ '%.2f'|format(opcao.price or 0) }} {% if opcao.error %} Indisponível {% else %}
{% endif %}
{% elif cotacao_executada and melhor_envio_pre_cotacao %}
A consulta foi executada, mas a API não retornou opções de frete utilizáveis com os dados atuais.
{% endif %} {% else %}
Selecione uma venda apta na lista ao lado para revisar o payload e disparar a pré-cotação.
{% endif %}
Próximos passos da integração
  1. Selecionar a venda online apta.
  2. Montar payload de remetente/destinatário e volumes.
  3. Buscar cotação antes da compra da etiqueta.
  4. Executar o checkout físico por bipagem.
  5. Após conferência, efetivar etiqueta e transmissão fiscal.
Regras já aplicadas nesta fase
  • A tela só trabalha com vendas marcadas como online.
  • Venda online sem cliente fica bloqueada para as próximas etapas.
  • Quando o endereço está completo, a venda já aparece como apta para cotação.
  • Se a cidade do cliente bate com a da empresa, o sistema sinaliza que a entrega local pode ser uma alternativa.
{% endblock %}