O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.
Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Enviar lembretes de carrinho abandonado com o SendGrid

Twilio
Made by Twilio

Monitora uma coleção de carrinhos rastreando o horário da última atualização de um objeto de carrinho. Quando o período ultrapassar um limite, envie ao usuário um e-mail com base no modelo dinâmico do SendGrid.

Como esta extensão funciona

Use esta extensão para automatizar o envio de um lembrete de e-mail para usuários sobre os itens que eles deixaram no carrinho de compras.

Esta extensão monitora os documentos adicionados a uma coleção especificada do Cloud Firestore. Para cada documento, a extensão registra o momento da última atualização. Quando o tempo desde a última atualização ultrapassa um limite configurável, as informações do documento são copiadas para uma nova coleção que aciona um e-mail usando a API Twilio SendGrid . As informações do documento são enviadas como os dados de modelo para um e-mail transacional dinâmico.

Outras configurações

Antes de instalar esta extensão, verifique se:

Índices do Firestore

Esta extensão exige um índice composto do Firestore. Você pode adicionar o índice no Console do Firebase ou com a linha de comando.

Índices no Console do Firebase
  1. Acesse a seção Cloud Firestore no Console do Firebase
  2. Acesse a guia Índices e clique em Adicionar índice
  3. Digite o nome da sua coleção de carrinhos
  4. Adicione os campos a seguir ao índice:
  5. metadata.emailSent - Ascending
  6. metadata.error - Ascending
  7. metadata.lastUpdated - Ascending
  8. Defina os Escopos da consulta como Coleção
  9. Clique em Criar
Índices com a CLI do Firebase
  1. No seu projeto do Firebase, abra o arquivo de configuração de índices com o nome padrão firestore.indexes.json
  2. Adicione o seguinte objeto à matriz indexes : json { "collectionGroup": "cart", "queryScope": "COLLECTION", "fields": [ { "fieldPath": "metadata.emailSent", "order": "ASCENDING" }, { "fieldPath": "metadata.error", "order": "ASCENDING" }, { "fieldPath": "metadata.lastUpdated", "order": "ASCENDING" } ] }

    O nome de collectionGroup precisa ser o nome da sua coleção de carrinhos. 1. Implante a configuração do índice com o comando firebase deploy . Se você quiser apenas implantar índices, adicione a sinalização --only firestore:indexes .

Como funciona

O carrinho de compras

Um carrinho de compras precisa ser implementado como um documento por carrinho. Você decide como quer armazenar os itens no documento, mas geralmente usa-se uma propriedade de matriz chamada items que contém informações sobre cada item no carrinho. O documento também precisa se referir a um usuário do Firebase Authentication . O ID do documento de carrinho precisa corresponder ao ID do usuário ou é preciso haver uma propriedade userId no documento. Quando você cria o documento de carrinho ou atualiza as propriedades dele, a extensão atualiza um carimbo de data/hora metadata.lastUpdated .

Como verificar o carrinho

Uma função é executada periodicamente para determinar se há algum carrinho abandonado e se é preciso enviar algum e-mail. Você pode configurar o período com CART_CHECK_INTERVAL usando a sintaxe cron.yaml.

Há algumas condições que um documento de carrinho precisa atender antes de ser processado para a próxima etapa:

  • o carimbo de data/hora metadata.lastUpdated precisa ser mais antigo que o período configurável ABANDONED_TIMEOUT em minutos
  • a propriedade booleana metadata.emailSent precisa ser false
  • não pode haver erros na propriedade metadata.error

Se todas estas condições forem atendidas, a extensão tentará carregar os dados do usuário usando a propriedade userId ou o ID do documento. Se o usuário não tiver um endereço de e-mail, um erro será registrado. Se o usuário tiver um endereço de e-mail, um documento será criado em EMAIL_COLLECTION . O documento inclui o e-mail do usuário e uma propriedade para dynamicTemplateData que consiste no conteúdo do carrinho do usuário e uma propriedade user que inclui os atributos email e displayName do usuário, se eles estiverem presentes. Esse dynamicTemplateData é usado para preencher os campos em um modelo de e-mail dinâmico do SendGrid.

Como enviar o e-mail

Quando um documento é adicionado a EMAIL_COLLECTION , o conteúdo dele é enfileirado para ser enviado por e-mail usando a API Twilio SendGrid. Todas as informações do documento de carrinho são adicionadas como dados de modelo dinâmico ao e-mail. Você pode configurar um DEFAULT_TEMPLATE_ID , que é o ID de um modelo dinâmico do SendGrid.

Você pode criar modelos transacionais dinâmicos no painel do SendGrid. Modelos do SendGrid usam o Handlebars para renderizar dados dinâmicos no e-mail.

Também é possível configurar DEFAULT_FROM como um endereço de e-mail que você verificou com o SendGrid como um remetente único ou pela autenticação de domínio . Também é possível definir um e-mail de DEFAULT_REPLY_TO .

Você pode acionar o envio de um e-mail a qualquer momento adicionando um documento a EMAIL_COLLECTION com um endereço de e-mail to e uma propriedade dynamicTemplateData .

admin.firestore().collection('cart_emails').add({
  to: 'example@example.com',
  dynamicTemplateData: {
    name: "Example"
  }
});

Faturamento

Para instalar uma extensão, seu projeto precisa estar no plano Blaze , com pagamento por utilização

– Um pequeno valor será cobrado de você (geralmente cerca de US$ 0,01/mês) referente aos recursos do Firebase exigidos pela extensão, mesmo se não forem usados. – Esta extensão usa outros serviços do Firebase e do Google Cloud Platform, que têm cobranças associadas caso o nível sem custos seja excedido: - Cloud Firestore - Firebase Authentication - Cloud Functions (Node.js 10+ runtime. Consulte as perguntas frequentes ) - Cloud Secret Manager

O uso desta extensão também exige que você tenha uma conta do Twilio SendGrid e credenciais para usar a API Twilio SendGrid para campanhas de marketing. Os custos associados ao uso desse serviço são de sua responsabilidade.

Como instalar a extensão

Como usar o Console do Firebase

Para instalar e gerenciar extensões, use o Console do Firebase.

Instalar usando o console

Como usar a Firebase CLI

Para instalar e gerenciar extensões, também é possível usar a Firebase CLI:

Etapa 1: execute o comando npm (em inglês) a seguir para instalar a CLI ou atualizá-la para a versão mais recente.

npm install -g firebase-tools
Não está funcionando? Consulte a referência da Firebase CLI ou altere suas permissões do npm (em inglês).

Etapa 2: configurar um novo diretório do projeto no Firebase ou acessar um já configurado

Etapa 3: adicionar esta extensão ao seu manifesto de extensões ao ser executada

firebase ext:install twilio/abandoned-cart-emails --local --project=projectId_or_alias

Step 4 (Optional): Test this extension locally with the Firebase Emulator Suite

firebase emulators:start

Etapa 5: implantar as extensões do seu manifesto ao projeto

firebase deploy --only extensions --project=projectId_or_alias
Compatível com
Cloud Firestore Autenticação
Autor
Licença
Apache-2.0
Versão
0.1.1