Pular para o conteúdo
Pedro Melo
Todos os projetos

BMW Group | CTW

O carrinho e a fundação da BMW Motorrad na loja do BMW Group

Fullstack numa plataforma de e-commerce de alto tráfego para BMW, MINI e BMW Motorrad, no ar em mais de 30 países. Feito presencialmente em Lisboa.

Ver a loja da BMW Motorrad no ar
Papel
Desenvolvedor fullstack
Período
jun. de 2022 – jul. de 2023
marcas numa plataforma, Motorrad incluída
3
países
30+
visitas por dia, segundo o Adobe Analytics
40 mil

Experimente

Informe um VIN de exemplo para identificar o veículo e ver quais peças servem, navegue pelos equipamentos da BMW Motorrad com tamanhos, monte o carrinho e finalize. As requisições vão para Lambdas simuladas; produtos, VINs e preços são fictícios.

Informe o VIN para ver quais peças servem.

Identifique seu veículo

O VIN está no documento do veículo: 17 letras e números.

VINs de exemplo

Loja BMW Motorrad

Preços com IVA incluído
  • Masculino-40%
    Jaqueta rally impermeável

    705,60 €1.176,00 €

  • Unissex
    Luvas adventure

    179,00 €

  • Feminino-40%
    Camiseta com logo

    23,40 €39,00 €

Preço riscado: o menor preço nos 30 dias antes do desconto.

Carrinho (0)

Seu carrinho está vazio. Adicione um serviço, uma peça ou um equipamento.

Subtotal
0,00 €
IVA de 19% incluído
0,00 €
Total
0,00 €

Chamadas à API, atendidas por Lambdas simuladas

    Por trás da loja: o importador de catálogo

    Produtos, filtros e concessionárias chegam à loja por uma importação de CSV na AWS. Escolha um arquivo e acompanhe cada etapa; a segunda linha é a loja lendo o que foi importado.

    Importação

    1. CSV Importerplataforma
    2. AkamaiDNS
    3. Amazon S3guarda o CSV
    4. AWS Lambdavalida cada campo
    5. Validado?
    6. Secrets Managerchaves da API
    7. Servidorrequisições HTTP
    8. commercetoolsprodutos, filtros, concessionárias
    9. Banco

    X-Ray e CloudWatch registram cada etapa da importação, validação e mapeamento

    Loja

    1. Next.js SSRloja
    2. AWS Lambdacatálogo
    3. Servidor
    4. commercetools
    5. Banco
    6. Next.js CSRo que o cliente vê

    Escolha um arquivo e importe.

    Logs

      O problema

      Clientes da BMW e da MINI precisavam de um lugar só para comprar serviços digitais e peças e agendar manutenção e reparos, com um carrinho que funcionasse igual em todo mercado.

      Aí vinha uma terceira marca: a BMW Motorrad precisava da própria loja, na mesma plataforma, sem duplicar o código.

      Tudo isso roda em mais de 30 países, então cada preço, linha de imposto e data precisa seguir o mercado, com alto tráfego.

      O que construí

      • O carrinho: adicionar serviços, peças e equipamentos, mudar quantidades e os totais, impostos e moeda de cada mercado, do front em React e Next.js até o back em Node.js e AWS Lambda.
      • A fundação da BMW Motorrad na plataforma, ao lado de BMW e MINI: a loja de equipamentos e vestuário, com tamanhos e preços promocionais, e a infraestrutura na AWS por trás dela.
      • O seletor de veículo: o cliente informa o VIN, o veículo é identificado e a loja oferece só as peças que servem nele.
      • A loja digital de serviços e peças, o fluxo de agendamento de manutenção e reparos e testes com Jest numa plataforma com cerca de 40 mil visitas por dia.
      • Um importador de CSV na AWS para produtos, filtros e concessionárias: o arquivo chega ao S3 por trás do Akamai, uma Lambda valida cada campo, as credenciais vêm do Secrets Manager, os dados vão para o commercetools, e X-Ray e CloudWatch registram cada etapa.

      Decisões

      Uma plataforma, três marcas
      BMW, MINI e BMW Motorrad compartilham a loja e o carrinho; cada marca traz o próprio catálogo e visual, não o próprio código.
      Começar pelo veículo
      O VIN identifica exatamente o carro ou a moto, então o cliente não fica na dúvida se a peça serve.
      O mercado decide os números
      Moeda, imposto, regras de preço promocional e formato de data vêm do mercado, então o mesmo carrinho fica certo na Alemanha, no Reino Unido ou no Japão.

      Stack

      • React
      • Next.js
      • Node.js
      • AWS Lambda
      • Amazon S3
      • Secrets Manager
      • CloudWatch
      • commercetools
      • Akamai
      • Jest