Order Capture e Penny Perfect Pricing na PráticaOrder Capture e Penny Perfect Pricing na Prática

Por que a conectividade não pode mais ser desculpa para perder vendas

Imagine um representante comercial percorrendo uma rota de quarenta pontos de venda em uma única manhã. Ele chega a um supermercado de bairro em uma região onde o sinal 4G oscila entre inexistente e frustrante. Precisa registrar um pedido de reabastecimento, aplicar uma promoção regional vigente e fechar a visita antes de partir para o próximo cliente. Sem conexão, o pedido simplesmente não aconteceria — ou pior, seria anotado em um caderno de papel para ser digitado horas depois, com os erros que esse tipo de retrabalho sempre carrega.

É exatamente esse cenário que o Consumer Goods Cloud Offline Mobile App resolve. A Salesforce atualizou o aplicativo em 24 de junho de 2026 no Google Play, trazendo correções de bugs e melhorias de estabilidade para uma ferramenta que já é peça central na estratégia de execução de varejo para empresas de bens de consumo. Mas o app em si é apenas a ponta do iceberg. Por trás dele existe um framework completo de modelagem no VS Code, um motor de precificação centena-perfeita (penny perfect pricing), e a capacidade de capturar pedidos de clientes diretos e indiretos — tudo isso funcionando sem depender de uma única barra de sinal.

Neste artigo, vamos dissecar como o Order Capture offline funciona na prática, como o Penny Perfect Pricing calcula preços com precisão de centavos mesmo sem conexão, e como desenvolvedores podem estender o framework usando Apex e Lightning Web Components.

O Consumer Goods Cloud Offline Mobile App por dentro

O aplicativo offline do Consumer Goods Cloud não é simplesmente um wrapper mobile da interface do Salesforce. Ele é uma plataforma de software completa, construída sobre um framework proprietário que a Salesforce mantém e atualiza a cada release principal do produto. O que isso significa na prática é que o app tem seu próprio ciclo de vida, suas próprias camadas de sincronização, e um modelo de customização que passa obrigatoriamente pelo VS Code Based Modeler for Consumer Goods Cloud.

O Modeler é onde a mágica acontece do ponto de vista técnico. Em vez de customizar a interface do app diretamente no Salesforce Setup, os desenvolvedores trabalham dentro do VS Code, usando um conjunto de arquivos de configuração e metadados que definem desde a aparência dos componentes até a lógica de negócio que roda offline. Esse modelo garante que as customizações sejam versionáveis, testáveis e portáveis entre orgs — algo que qualquer equipe de DevOps vai reconhecer como fundamental.

A sincronização entre o dispositivo e o Salesforce org segue um padrão de sync bidirecional. Quando o representante está offline, todos os dados coletados — visitas, pedidos, observações, fotos de execução de display — ficam armazenados localmente no dispositivo em uma camada de banco offline. No momento em que a conectividade é restabelecida, o app dispara um processo de sync que envia os dados para o org e recebe de volta quaisquer atualizações que tenham ocorrido enquanto o dispositivo estava desconectado.

Order Capture offline: pedidos sem depender da nuvem

A funcionalidade de Order Capture no modo offline é talvez o recurso de maior impacto comercial do Consumer Goods Cloud. Com a atualização mais recente, clientes diretos e indiretos podem registrar pedidos completamente offline, com precificação orientada por promoções e regras de preço configuradas centralmente no Salesforce.

O fluxo funciona assim: o representante inicia uma visita a um ponto de venda, e o app carrega automaticamente os dados relevantes daquele cliente — histórico de compras, produtos disponíveis, promoções ativas, preços contratados. Tudo isso já foi sincronizado previamente e está disponível localmente. O representante então adiciona produtos ao pedido, seleciona quantidades, e o motor de precificação offline entra em ação.

O que torna o Penny Perfect Pricing tão especial

O termo penny perfect pricing não é marketing. Ele descreve a capacidade do sistema de calcular o preço exato de um pedido — incluindo descontos promocionais, regras de tier, preços por canal, taxas embutidas e arredondamentos — com precisão até o último centavo, exatamente como o cálculo seria feito se estivesse online conectado ao Salesforce.

Isso é extraordinariamente complexo de implementar offline. A engine de precificação precisa replicar localmente toda a lógica de pricing rules que normalmente roda nos servidores da Salesforce, incluindo regras condicionais, heranças de promoção e cálculos em camadas. O resultado é que o representante vê na tela do dispositivo o preço final que o cliente vai pagar, com a mesma precisão que o sistema de back-office vai confirmar depois do sync.

Para empresas que operam com margens apertadas e volume alto de pedidos em campo, essa precisão não é um luxo — é a diferença entre fechar uma venda com confiança e descobrir depois que o preço estava errado.

VS Code Based Modeler: customizando o app offline

O framework do Consumer Goods Cloud Offline Mobile App é projetado para ser extensível. A Salesforce envia atualizações do framework em todos os releases principais do produto e também através de releases independentes do Consumer Goods Cloud Mobile App Framework. Isso significa que os desenvolvedores precisam estar atentos a mudanças que podem afetar suas customizações.

O Modeler no VS Code permite configurar e customizar praticamente todos os aspectos da interface e dos processos do app. Isso inclui a criação de picklist mappings para tradução de valores entre o modelo offline e o modelo de dados do Salesforce, configuração de idiomas para tradução, ativação de fins de semana na agenda de visitas, e a criação de plugins inteligentes que estendem o comportamento padrão.

A estrutura de um projeto no Modeler segue um padrão familiar para quem já trabalha com Salesforce DX. Você tem arquivos de configuração em XML e JSON que definem metadados do app, e pode usar ferramentas de linha de comando para fazer deploy das customizações entre ambientes de sandbox e produção.

Exemplo prático em Apex: processando ordens após sync

Quando um pedido é capturado offline e sincronizado com o Salesforce, ele chega como um registro que precisa ser processado. Vamos olhar um exemplo de uma classe Apex que processa ordens recém-sincronizadas, valida regras de negócio e dispara integrações downstream:

public class OrderCaptureProcessor {
    
    @InvocableMethod(label='Process Offline Orders' description='Processes orders synced from CGC offline app')
    public static void processOrders(List<Id> orderIds) {
        List<Order> orders = [
            SELECT Id, cgcloud__Order_Account__c, cgcloud__Phase__c, cgcloud__Gross_Total_Value__c, 
                   (SELECT Id, cgcloud__Product__c, cgcloud__Quantity__c, 
                    cgcloud__Price__c FROM cgcloud__Order_Item__c)
            FROM cgcloud__Order__c 
            WHERE Id IN :orderIds 
            AND cgcloud__Document_Type__c = 'OrderEntry'
            AND cgcloud__Release_Platform__c = 'Mobility'
        ];
        
        List<Order> ordersToUpdate = new List<Order>();
        
        for (Order ord : orders) {
            // Valida se o pedido tem itens
            if (ord.OrderItems.isEmpty()) {
                ord.Status = 'Cancelled';
                ord.Description = 'Pedido cancelado: sem itens.';
                continue;
            }
            
            // Recalcula o total para validar o penny perfect pricing
            Decimal recalculatedTotal = 0;
            for (OrderItem item : ord.OrderItems) {
                recalculatedTotal += item.Quantity * item.UnitPrice;
            }
            
            // Tolerância de 1 centavo para arredondamentos
            if (Math.abs(recalculatedTotal - ord.TotalAmount) > 0.01) {
                // Loga discrepância para revisão manual
                insert new CGC_Pricing_Discrepancy_Log__c(
                    Order__c = ord.Id,
                    Expected_Total__c = recalculatedTotal,
                    Received_Total__c = ord.TotalAmount,
                    Source__c = 'Offline Sync'
                );
                continue;
            }
            
            ord.Status = 'Activated';
            ordersToUpdate.add(ord);
        }
        
        if (!ordersToUpdate.isEmpty()) {
            update ordersToUpdate;
            // Dispara notificação para o time de logística
            OrderNotificationService.notifyFulfillment(ordersToUpdate);
        }
    }
}

Esse exemplo mostra um padrão que recomendo fortemente: sempre recalcular o total do pedido no servidor após o sync, mesmo que o Penny Perfect Pricing tenha feito o cálculo offline. A tolerância de um centavo para arredondamentos é uma salvaguarda prática que evita falsos positivos em discrepâncias insignificantes.

Exemplo em LWC: painel de status de sincronização

Um componente LWC que mostra o status de sincronização dos pedidos offline pode ser útil no console do gerente de vendas. Aqui está um exemplo:

// syncStatusPanel.js
import { LightningElement, wire, track } from 'lwc';
import { refreshApex } from '@salesforce/apex';
import getOfflineSyncStatus from '@salesforce/apex/OfflineSyncController.getSyncStatus';

export default class SyncStatusPanel extends LightningElement {
    @track syncData;
    @track isLoading = true;
    wiredResult;
    
    @wire(getOfflineSyncStatus)
    wiredSync(response) {
        this.wiredResult = response;
        if (response.data) {
            this.syncData = response.data;
            this.isLoading = false;
        } else if (response.error) {
            console.error('Erro ao carregar status de sync:', response.error);
            this.isLoading = false;
        }
    }
    
    get pendingOrders() {
        if (!this.syncData) return 0;
        return this.syncData.pendingCount || 0;
    }
    
    get lastSyncLabel() {
        if (!this.syncData || !this.syncData.lastSyncTime) {
            return 'Nunca sincronizado';
        }
        return 'Última sync: ' + this.syncData.lastSyncTime;
    }
    
    handleRefresh() {
        this.isLoading = true;
        refreshApex(this.wiredResult);
    }
}
<!-- syncStatusPanel.html -->
<template>
  <lightning-card title="Status de Sincronização Offline" icon-name="standard:offline">
    <div class="slds-m-around_medium">
      <template if:true={isLoading}>
        <lightning-spinner alternative-text="Carregando..."></lightning-spinner>
      </template>
      <template if:false={isLoading}>
        <div class="slds-grid slds-gutters">
          <div class="slds-col">
            <p class="slds-text-heading_medium">{pendingOrders}</p>
            <p class="slds-text-body_small">Pedidos pendentes</p>
          </div>
          <div class="slds-col">
            <p class="slds-text-body_regular">{lastSyncLabel}</p>
          </div>
        </div>
        <lightning-button 
          label="Atualizar" 
          onclick={handleRefresh}
          class="slds-m-top_small">
        </lightning-button>
      </template>
    </div>
  </lightning-card>
</template>

Integração com Agentforce: o futuro do campo conectado

Com o Agentforce Mobile SDK anunciado no Summer ’26, surge uma possibilidade fascinante: embedder agentes de IA diretamente no fluxo de trabalho do representante de campo. Imagine um agente que, durante a visita offline, analisa o histórico de compras do ponto de venda e sugere produtos complementares baseados em padrões de compra de clientes similares.

A integração entre o Consumer Goods Cloud e o Agentforce ainda é um território em exploração, mas os blocos de construção já existem. O módulo lightning/accApi do LWC, que vai GA no Summer ’26, permite que componentes LWC abram e controlem o painel do Agentforce diretamente. Em uma versão futura do app offline, um botão “Sugerir Pedido” poderia disparar um agente que analisa o contexto da visita e propõe uma lista de produtos otimizada.

Impacto para empresas e desenvolvedores

Para empresas de bens de consumo, o Consumer Goods Cloud Offline representa uma mudança fundamental na forma como as equipes de campo operam. A capacidade de capturar pedidos com precificação precisa, sem depender de conectividade, remove o maior gargalo operacional do trade marketing. Representantes gastam menos tempo com retrabalho administrativo e mais tempo construindo relacionamento com os pontos de venda.

Para desenvolvedores, o framework oferece um terreno rico para customização. O VS Code Based Modeler é uma ferramenta poderosa que demanda aprendizado, mas que recompensa o investimento com a capacidade de moldar a experiência do app de forma profunda. A documentação oficial do Salesforce Help cobre desde a configuração inicial até cenários avançados como plugins customizados e extensões de lógica de negócio.

O requisito principal para ter sucesso com o app offline é entender que ele não é uma solução plug-and-play. Implementações bem-sucedidas exigem modelagem cuidadosa dos processos de negócio, configuração precisa das regras de pricing, e testes rigorosos dos fluxos de sincronização. Mas quando implementado corretamente, o retorno sobre investimento é mensurável em dias, não em meses.

Conclusão e próximos passos

O Consumer Goods Cloud Offline Mobile App continua evoluindo como uma das ferramentas mais importantes do portfólio de soluções verticais da Salesforce. A atualização de junho de 2026 pode trazer correções de bugs em vez de grandes novidades funcionais, mas isso não diminui a relevância do tema — pelo contrário, mostra que a Salesforce está refinando ativamente uma plataforma que já é madura.

Se você trabalha com Consumer Goods Cloud ou está avaliando a solução para sua empresa, recomendo três passos imediatos. Primeiro, baixe o app na Google Play Store e explore a interface para entender o que seus representantes vão usar no campo. Segundo, configure um ambiente de sandbox e instale o VS Code Based Modeler para experimentar as customizações. Terceiro, mapeie seus processos de pricing e promocionais antes de começar a implementar — a qualidade da sua configuração de Penny Perfect Pricing é o que vai determinar se seus pedidos offline chegam prontos para faturamento ou chegam com discrepâncias que exigem retrabalho.

E se você quiser se aprofundar nos aspectos técnicos do desenvolvimento no ecossistema Salesforce, confira nossos artigos sobre as novidades do Summer ’26 Release, incluindo as mudanças no Apex user-mode e os novos State Managers do LWC. O futuro do desenvolvimento Salesforce está cada vez mais agêntico, e as soluções verticais como o Consumer Goods Cloud são onde essa transformação encontra o mundo real do varejo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *