Meu Natal Digital

Uma mensagemde Natal feitapara cada criança.

Vídeos personalizados, cartinhas e surpresas do Papai Noel.

Uma loja de Natal em React que roda dentro do WordPress, em duas identidades.

Loja on-linePapai Noel e Natal de féWordPress + WooCommerce

  • React 18.3
  • TypeScript 5.9
  • Webpack 5
  • Tailwind 3.4
  • WooCommerce REST
  • JWT
Meu Natal Digital

Uma mensagemde Natal feitapara cada criança.

Vídeos personalizados, cartinhas e surpresas do Papai Noel.

  • React 18.3
  • TypeScript 5.9
  • Webpack 5
  • Tailwind 3.4
  • WooCommerce REST
  • JWT

Uma loja de Natal em React que roda dentro do WordPress, em duas identidades.

Loja on-linePapai Noel e Natal de féWordPress + WooCommerce

  • React 18.3
  • TypeScript 5.9
  • Webpack 5
  • Tailwind 3.4
  • WooCommerce REST
  • JWT

A loja em números

Um catálogo inteiro atrás de cada porta.

Os números desta loja saem do código: o catálogo, as fichas de pedido, as duas identidades e a área do cliente.

O Natal chega em

A mesma contagem que abre a loja, ao vivo até o dia 25.

  1. Produtos no catálogo

    Vídeos, mensagens, histórias, cartinhas, pacotes e WhatsApp, cada um com o seu código no WooCommerce.

  2. Linhas de produto

    Do convite do Papai Noel às histórias bíblicas, cada linha com a sua vitrine.

  3. Campos de personalização

    21 campos de pedido e 7 de endereço; cada produto pede só os seus.

  4. Identidades na mesma loja

    Papai Noel e Natal de fé, trocadas por uma chave só.

  5. Abas na área do cliente

    Visão geral, pedidos, vídeos, perfil e configurações.

  6. Pontos no editor visual

    Textos, imagens e espaçamentos ajustáveis na própria página.

  • React 18.3
  • TypeScript 5.9
  • Webpack 5
  • Tailwind 3.4
  • WooCommerce REST
  • JWT
  • Embla Carousel 8.6
  • react-snowfall 2.3

A personalização

Cada pedido chega com uma ficha.

O vídeo chama a criança pelo nome porque o pedido leva os dados dela. Cada produto tem a sua ficha, conferida antes de ir para o carrinho.

  1. Uma ficha por produto

    São 21 fichas: o convite simples pede nome e idade; o premium pede mais quatro campos, como a característica especial.

  2. Seis tipos de campo

    Texto, número, texto longo, lista, escolha e endereço, cada um com o seu limite.

  3. Conferida antes do carrinho

    Obrigatório, tamanho máximo, mínimo e máximo e formato: a mensagem diz o que corrigir.

    validateField()
  4. O CEP preenche o endereço

    Nas cartinhas pelos Correios, o CEP busca a rua, o bairro, a cidade e o estado.

    viacep.com.br
  5. A ficha segue com o item

    O item entra no carrinho com a ficha, e o serviço de pedidos grava cada campo no pedido do WooCommerce.

    _natal_nome · _natal_idade

Vídeo Papai Noel Convite Premium

SKU 3-VPN-CONV-PRE · 7 dias úteis

  1. Nome da criançaTexto · até 50Ana
  2. IdadeNúmero · de 1 a 126Idade deve ser no máximo 12
  3. Irmão ou irmãTexto · opcionalPedro
  4. Como se comportou este ano?EscolhaSe comportou muito bem
  5. Cenário do vídeoListaPolo Norte
  6. Uma característica especialTexto · até 100Adora dinossauros

Ficha conferida · pronta para o carrinho

Um envelope de luz sob um céu estrelado, com a loja em versão de fé num notebook ao lado

02/Natal de fé

O Natal também é uma mensagem de fé.

Mensagens personalizadas para celebrar o nascimento de Jesus com a família.

A loja tem duas identidades e uma chave só. A mesma tela troca o logo, as cores, o vídeo do topo, a cor da neve e o produto em destaque, e a escolha fica guardada no navegador.

  • Papai NoelO topo
    Natal de féO topo
  • Papai NoelComo funciona
    Natal de féComo funciona
  • Papai NoelO catálogo
    Natal de féO catálogo
  • Papai NoelO que você recebe
    Natal de féO que você recebe
  • 1 chaveUma escolha liga a identidade inteira, sem trocar de página.
  • 27 arquivosOs componentes que mudam de cara com ela.
  • Neve douradaAté a neve que cai na página troca de branca para dourada.
  • GuardadaA escolha fica no navegador e volta na próxima visita.

A entrega

O vídeo chega com regras.

Depois do pedido, o vídeo mora na área do cliente, com prazo, limite de visualizações e marca d'água. O player confere cada regra antes de tocar.

A tela de vídeos de exemplo da loja
Faltam 3 dias de acesso
  1. Prazo de acesso

    Passou a data, o player fecha e mostra o aviso de acesso expirado. Com 3 dias ou menos, a contagem muda de cor.

    expiresAt < agora
  2. Limite de visualizações

    Cada vez que o vídeo toca, a visualização é registrada; no limite, ele não abre mais.

    currentViews >= maxViews
  3. Só toca quando está ativo

    Enquanto é produzido, o vídeo fica pendente; pronto, fica ativo; vencido, expira.

    pending · active · expired
  4. Marca d'água do pedido

    O número do pedido fica por cima do vídeo durante toda a reprodução.

  5. Sem baixar

    Sem botão de download, tela cheia ou janela flutuante; o clique direito, o Ctrl+S e o arrastar ficam bloqueados.

  6. Para a família ver

    O link do vídeo sai pelo WhatsApp ou por e-mail.

A área do cliente

  • Visão geral
  • Pedidos
  • Vídeos
  • Perfil
  • Configurações

Níveis pelo total gasto

  1. BronzeAté R$ 149
  2. PrataA partir de R$ 150
  3. OuroA partir de R$ 300
  4. DiamanteA partir de R$ 500

Por dentro

Uma loja inteira dentro do WordPress.

O app não substitui o site: entra numa página do WordPress, fala com o WooCommerce e chega ao navegador num pacote só, com a versão no nome do arquivo.

  1. WordPress e WooCommerce

    Produtos, pedidos, clientes e cupons pela API REST do WooCommerce; o login entra por JWT. As rotas próprias da loja (vídeos, pedidos e personalização) têm o seu cliente no app.

    /wc/v3 · /jwt-auth/v1 · /natal/v1
  2. Uma página do tema

    O app monta numa div da página, e um CSS próprio força a largura total dentro do tema Astra.

    #natal-root
  3. Um pacote só

    O webpack gera um pacote UMD chamado NatalApp; o React vem da própria página, fora do pacote.

    library: NatalApp · externals: react
  4. A versão no nome do arquivo

    O version.json entra no nome: natal.bundle.v208.js e main.v208.css. Versão nova, arquivo novo, e o navegador não usa a cópia antiga.

    version.json → v208
  5. O editor visual

    Shift+F liga a edição na própria página: 32 pontos de texto, imagem e espaçamento, com desfazer e refazer, gravados no código por um servidor local.

    Tunable · element-styles.ts

As tecnologias

Do que é feito, peça por peça

Uma loja que roda dentro de um site WordPress: a vitrine é feita em React e conversa com o WooCommerce para os pedidos e a conta do cliente. Escolha uma peça para ver o que ela faz aqui e em que arquivo está.

11tecnologias, em 3 camadas

Tela

Servidor

Construção

As telas

A loja, tela por tela.

As duas identidades e a entrada da conta, como o cliente vê.