Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기

SendGrid로 장바구니 이탈 알림 보내기

Twilio
Made by Twilio

장바구니 객체가 마지막으로 업데이트된 시간을 추적하는 장바구니 컬렉션을 살펴봅니다. 일정 기간이 지나면 SendGrid 동적 템플릿을 기반으로 사용자에게 이메일을 보냅니다.

이 확장 프로그램의 작동 방식

이 확장 프로그램을 사용하면 사용자가 장바구니에 남긴 항목에 대한 이메일 알림을 자동으로 보낼 수 있습니다.

이 확장 프로그램은 지정된 Cloud Firestore 컬렉션에 추가된 문서를 살펴봅니다. 각 문서에 대해 확장 프로그램은 문서가 마지막으로 업데이트된 시간을 기록합니다. 그런 다음 마지막으로 업데이트된 시간이 구성 가능한 임계값을 초과하면 문서의 정보가 Twilio SendGrid API를 사용하여 이메일을 트리거하는 새 컬렉션에 복사됩니다. 문서의 정보는 동적 거래 이메일의 템플릿 데이터로 전송됩니다.

추가 설정

이 확장 프로그램을 설치하기 전에 먼저 다음을 수행했는지 확인합니다.

Firestore 색인

이 확장 프로그램에는 복합 Firestore 색인이 필요합니다. Firebase Console이나 명령줄에서 색인을 추가할 수 있습니다.

Firebase Console의 색인
  1. Firebase ConsoleCloud Firestore 섹션으로 이동합니다.
  2. 색인 탭으로 이동하여 색인 추가를 클릭합니다.
  3. 장바구니 컬렉션의 컬렉션 이름을 입력합니다.
  4. 색인에 다음 필드를 추가합니다.
  5. metadata.emailSent - Ascending
  6. metadata.error - Ascending
  7. metadata.lastUpdated - Ascending
  8. 쿼리 범위컬렉션으로 설정합니다.
  9. 만들기를 클릭합니다.
Firebase CLI를 사용한 색인
  1. Firebase 프로젝트에서 기본 파일 이름이 firestore.indexes.json인 색인 구성 파일을 엽니다.
  2. indexes 배열에 다음 객체를 추가합니다. json { "collectionGroup": "cart", "queryScope": "COLLECTION", "fields": [ { "fieldPath": "metadata.emailSent", "order": "ASCENDING" }, { "fieldPath": "metadata.error", "order": "ASCENDING" }, { "fieldPath": "metadata.lastUpdated", "order": "ASCENDING" } ] }

    'collectionGroup' 이름은 장바구니 컬렉션의 컬렉션 이름이어야 합니다. 1. 'firebase deploy' 명령어로 색인 구성을 배포합니다. 색인만 배포하려면 --only firestore:indexes 플래그를 추가합니다.

실행 방식

장바구니

장바구니는 장바구니당 문서로 구현되어야 합니다. 문서에 항목을 저장하는 방법은 사용자가 결정하지만, 장바구니의 각 항목에 대한 정보를 포함하는 'items'라는 배열 속성이 일반적인 방법입니다. 문서에는 Firebase 인증 사용자에 대한 참조도 있어야 합니다. 장바구니 문서 ID가 사용자 ID와 일치하거나 문서에 'userId' 속성이 있어야 합니다. 장바구니 문서를 생성하거나 장바구니 문서의 속성을 업데이트하면 확장 프로그램이 metadata.lastUpdated 타임스탬프를 업데이트합니다.

장바구니 확인

함수가 주기적으로 실행되어 장바구니 이탈이 있는지 및 이메일을 보내야 하는지를 결정합니다. cron.yaml 구문을 사용하여 CART_CHECK_INTERVAL로 기간을 구성할 수 있습니다.

장바구니 문서가 다음 단계로 처리되려면 먼저 충족해야 하는 조건이 몇 가지 있습니다.

  • metadata.lastUpdated 타임스탬프가 구성 가능한 ABANDONED_TIMEOUT 시간(분)보다 이전이어야 합니다.
  • metadata.emailSent 불리언 속성이 거짓이어야 합니다.
  • metadata.error 속성에 오류가 없어야 합니다.

이러한 모든 조건이 충족되면 확장 프로그램은 'userId' 속성 또는 문서 ID를 사용하여 사용자 데이터를 로드하려고 시도합니다. 사용자에게 이메일 주소가 없으면 오류가 기록됩니다. 사용자에게 이메일 주소가 있으면 EMAIL_COLLECTION에 문서가 생성됩니다. 문서에는 사용자 이메일과 사용자 장바구니의 내용으로 구성된 'dynamicTemplateData'의 속성, 그리고 사용자의 'email' 및 'displayName'이 있는 경우 이를 포함하는 'user' 속성이 포함됩니다. 이 dynamicTemplateData는 SendGrid 동적 이메일 템플릿의 필드를 채우는 데 사용됩니다.

이메일 보내기

문서가 EMAIL_COLLECTION에 추가되면 콘텐츠가 Twilio SendGrid API를 사용하여 이메일로 전송되도록 대기열에 추가됩니다. 장바구니 문서의 모든 정보는 이메일에 대한 동적 템플릿 데이터로 추가됩니다. SendGrid 동적 템플릿의 ID인 'DEFAULT_TEMPLATE_ID'를 설정할 수 있습니다.

SendGrid 대시보드에서 동적 트랜잭션 템플릿을 생성할 수 있습니다. SendGrid 템플릿은 Handlebars를 사용하여 동적 데이터를 이메일로 렌더링합니다.

또한 DEFAULT_FROM을 SendGrid에서 단일 발신자로 또는 도메인 인증을 통해 인증한 이메일 주소로 구성해야 합니다. DEFAULT_REPLY_TO 이메일도 설정할 수 있습니다.

to 이메일 주소와 dynamicTemplateData 속성을 사용하여 EMAIL_COLLECTION에 문서를 추가하면 언제든지 이메일이 전송되도록 트리거할 수 있습니다.

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

결제

확장 프로그램을 설치하려면 프로젝트에서 사용한 만큼만 지불하는 Blaze 요금제를 이용해야 합니다.

  • 이 확장 프로그램에 필요한 Firebase 리소스에 대해 사용 여부와 관계없이 일반적으로 월 $0.01 정도의 소액이 청구됩니다.
  • 이 확장 프로그램은 서비스의 무료 등급을 초과하는 경우 관련 요금이 청구될 수 있는 다른 Firebase 및 Google Cloud Platform 서비스를 사용합니다.
  • Cloud Firestore
  • Firebase 인증
  • Cloud Functions (Node.js 10 이상 런타임. FAQ 보기)
  • Cloud Secret Manager

이 확장 프로그램을 사용하려면 마케팅 캠페인에 Twilio SendGrid API를 사용하기 위한 Twilio SendGrid 계정 및 사용자 인증 정보도 있어야 합니다. Twilio SendGrid 사용으로 인한 관련 비용은 사용자가 부담해야 합니다.

확장 프로그램 설치 방법

Firebase Console 사용

Firebase Console을 사용해 확장 프로그램을 설치하고 관리할 수 있습니다.

Console을 사용해 설치하기

Firebase CLI 사용

Firebase CLI를 사용해 확장 프로그램을 설치하고 관리할 수도 있습니다.

1단계: 다음 npm 명령어를 실행하여 CLI를 설치하거나 최신 CLI 버전으로 업데이트합니다.

npm install -g firebase-tools
작동하지 않는 경우 Firebase CLI 참조를 살펴보거나 npm 권한을 변경하세요.

2단계: 새 Firebase 프로젝트 디렉터리를 설정하거나 기존 디렉터리로 이동합니다.

3단계: 다음을 실행하여 이 확장 프로그램을 확장 프로그램 매니페스트에 추가합니다.

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

4단계(선택사항): Firebase 에뮬레이터 도구 모음으로 이 확장 프로그램을 로컬에서 테스트합니다.

firebase emulators:start

5단계: 매니페스트의 확장 프로그램을 프로젝트에 배포합니다.

firebase deploy --only extensions --project=projectId_or_alias
지원
Cloud Firestore Authentication
작성자
라이선스
Apache-2.0
버전
0.1.1