Crie pedidos multicanal rápidos e confiáveis, aproveitando atualizações em tempo real por meio do MongoDB Change Streams e Atlas Triggers.
Casos de uso: Catálogo, Pedidos omnichannel
Setores: Varejo
Produtos: MongoDB Atlas, MongoDB Change Streams, MongoDB Atlas Triggers
Visão Geral da Solução
Os clientes de hoje esperam experiências de compra perfeitas que usem canais online e offline, como comprar online para coleta ou entrega. No entanto, os retalhistas lutam para implementar soluções técnicas que ofereçam suporte a experiências de compra multicanal. Os retalhistas precisam de um sistema flexível que ofereça visibilidade em tempo real, lide com padrões de tráfego dinâmicos e permita integrações modernas em todos os pontos de contato com o cliente.
Esta solução demonstra como criar um website e-commerce multicanal usando o MongoDB Atlas. A demonstração permite que os usuários escolham seu método de envio preferido (BOPIS ou entrega em repouso) e acompanhe o progresso do pedido em tempo real até a entrega. Ao aproveitar os principais recursos do MongoDB, incluindo Change Streams, Atlas Triggers e o modelo de documento flexível, você aprenderá a criar um sistema de pedidos multicanal robusto e dimensionável.
Arquiteturas de referência
Essa solução usa MongoDB Change Streams e Atlas Triggers para permitir operações de dados em tempo real em vários aplicativos. A arquitetura consiste em dois componentes principais: Aplicativos de tempo real e MongoDB Atlas.
Os aplicativos em tempo real incluem qualquer aplicativo que responda a alterações no banco de dados, como aplicativos e-commerce, centro de distribuição, armazém e inventário.
Esta solução tem o seguinte fluxo de trabalho:
Uma ação de um aplicativo produz uma modificação de dados, como atualizar o status do pedido.
O evento está registrado na coleção
ordersno MongoDB Atlas.Estas alterações são registradas no oplog, que utiliza a coleção
oplog.rs.A API Change Streams monitora essas alterações. Você pode monitorar alterações nos níveis de coleção, banco de dados ou todo o cluster e filtrar alterações específicas usando o framework de agregação do MongoDB.
Com base em suas necessidades de arquitetura, você pode:
Atualize o lado do aplicativo.
Acione uma tarefa automatizada por meio das funções do Atlas.
Essa arquitetura fornece uma base para vários aplicativos do mundo real, como:
Notificações em tempo real: alertas automáticos para os clientes informando quando os pedidos estão disponíveis para retirada.
Sistemas reativos: gerenciamento inteligente de estoque com reabastecimento automático.
Arquitetura orientada a eventos: sincronização de microsserviços em tempo real com integração opcional ao Kafka.
Captura de alterações de dados: atualização imediata de preços de produtos em todo o sistema.
Análise em tempo real: recálculo instantâneo de risco de fraude usando modelos de ML.
figura 1. Arquitetura de solução de pedidos multicanal
Abordagem do modelo de dados
O modelo de dados desta solução usa duas coleções primárias, chamadas products e orders. Cada coleção utiliza um formato field: value para fornecer uma representação organizada dos dados armazenados.
Coleção "produtos"
A coleção products armazena informações abrangentes do produto, como as seguintes:
ID, nome e um identificador exclusivo de produto (como SKUs).
Campos de categorização, como
masterCategory,subCategoryearticleType.Objetos aninhados para preços com campos
amountecurrency.Atributos específicos do produto, como status de preenchimento automático e cor base.
Campos relacionados ao inventário e metadados do produto.
figura 2. documento de exemplo na coleção products
Coleção "pedidos"
A coleção orders acompanha detalhes do pedido, incluindo o seguinte:
Identificadores únicos para pedidos e usuários.
Uma array de produtos para cada pedido.
status_historyarray, que captura a progresso dos estados do pedido com registros de data e hora.Diferenciação entre tipos de pedido (Comprar online, Recolher na armazenar vs. Comprar online, Obter Entrega em Casa).
Endereços de envio específicos do pedido.
Fluxos de trabalho de status com base no tipo de entrega:
Os pedidos do BOPIS mostram status, como "Em processo" ou "Pronto para coleta".
Os pedidos de entrega em domiciário passam pelos seguintes estados: "Em processo", "Pronto para entrega", "Retirado do armazém", "Em trânsito" e "Entregue".
figura 3. Documentos de exemplo na coleção orders
Construir a solução
Esta solução utiliza este repositório GitHub. O procedimento a seguir descreve como configurar a demonstração. Para obter detalhes completos sobre diretrizes e implementação, consulte o READMEdo repositório.
Preencher o banco de dados de demonstração
Realize o provisionamento de um cluster em sua conta Atlas e preencha seu banco de dados com os dados necessários para a demonstração. Você pode usar mongorestore para preencher rapidamente o banco de dados com os dados de despejo necessários, armazenados na pasta /dump/leafy_popup_store no repositório do GitHub.
Adicione o trigger de status do pedido
Crie um trigger de banco de dados que escute a coleção orders para inserir e atualizar eventos. Isso executa uma função que você pode copiar do repositório GitHub.
Como essa demonstração envolve um cliente fazendo um pedido em um website e-commerce, o trigger imita os processos necessários para atualizar o status do pedido a cada 10 segundos, avançando nos estágios do pedido até que ele seja marcado como entregue. Os processos simulados incluem funcionários do armazém gerenciando um pedido, serviços postais entregando pacotes ou funcionários que armazenam empacotando um pedido.
Configure o frontend do seu aplicativo
Clone o repositório GitHub para sua máquina local, configure suas variáveis de ambiente e instale dependências. Por fim, execute o aplicativo localmente e acesse o frontend em http://localhost:8080/cart.
Principais Aprendizados
Flexibilidade e velocidade: a flexibilidade do MongoDB permite que você adapte suas estruturas de dados com facilidade, levando a um tempo de lançamento no mercado mais rápido e a uma experiência multicanal consistente.
Funcionalidades em tempo real: recursos como Change Streams e Atlas Triggers permitem o processamento de dados em tempo real, o que é essencial para tarefas como rastreamento de pedidos e atualizações de estoque.
Arquitetura inteligente: a arquitetura dimensionável e flexível do MongoDB facilita a integração de FERRAMENTAS como Change Streams e Atlas Triggers sem camadas adicionais de aplicativo.
Autor(a)
Angie Guemes, MongoDB
Florencia Arin, MongoDB