Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Mengirim Pengingat Keranjang yang Diabaikan dengan SendGrid

Twilio
Made by Twilio

Mengamati koleksi keranjang dan melacak waktu pembaruan terakhir suatu objek keranjang. Ketika sudah melewati periode tertentu, kirimkan email kepada pengguna berdasarkan Template Dinamis SendGrid.

Cara kerja ekstensi ini

Gunakan ekstensi ini untuk mengotomatiskan pengiriman email pengingat kepada pengguna tentang item yang mereka tinggalkan di keranjang belanja mereka.

Ekstensi ini akan mengamati dokumen yang ditambahkan ke koleksi Cloud Firestore tertentu. Untuk setiap dokumen, ekstensi mencatat waktu pembaruan terakhir dari dokumen tersebut. Lalu, ketika waktu pembaruan terakhir melewati batas yang dapat dikonfigurasi, informasi di dalam dokumen disalin ke koleksi baru yang memicu email menggunakan SendGrid API Twilio. Informasi di dalam dokumen dikirim sebagai data template untuk email transaksional dinamis.

Penyiapan tambahan

Sebelum menginstal ekstensi ini, pastikan:

Indeks Firestore

Ekstensi ini memerlukan indeks komposit Firestore. Anda dapat menambahkan indeks di Firebase console atau melalui command line.

Indeks di Firebase console
  1. Buka bagian Cloud Firestore di Firebase console
  2. Buka tab Indexes dan klik Add Index
  3. Masukkan nama koleksi untuk koleksi keranjang Anda
  4. Tambahkan kolom berikut ke indeks:
  5. metadata.emailSent - Ascending
  6. metadata.error - Ascending
  7. metadata.lastUpdated - Ascending
  8. Tetapkan Query scopes ke Collection
  9. Klik Create
Indeks dengan Firebase CLI
  1. Di project Firebase Anda, buka file konfigurasi indeks, dengan nama file default firestore.indexes.json
  2. Tambahkan objek berikut ke array indexes: json { "collectionGroup": "cart", "queryScope": "COLLECTION", "fields": [ { "fieldPath": "metadata.emailSent", "order": "ASCENDING" }, { "fieldPath": "metadata.error", "order": "ASCENDING" }, { "fieldPath": "metadata.lastUpdated", "order": "ASCENDING" } ] }

    Nama collectionGroup harus merupakan nama koleksi untuk koleksi keranjang Anda. 1. Deploy konfigurasi indeks Anda dengan perintah firebase deploy. Jika Anda hanya ingin men-deploy indeks, tambahkan flag --only firestore:indexes.

Cara kerja

Keranjang belanja

Satu keranjang belanja seharusnya diterapkan sebagai satu dokumen per keranjang. Anda dapat bebas menyimpan item di dalam dokumen dengan cara apa pun, tetapi properti array yang bernama items yang berisi informasi tentang masing-masing item di dalam keranjang biasa digunakan. Dokumen juga harus memiliki referensi ke Pengguna Firebase Authentication, ID dokumen keranjang harus cocok dengan ID pengguna atau harus ada properti userId di dokumen. Saat Anda membuat dokumen keranjang atau memperbarui properti di dokumen keranjang, ekstensi akan memperbarui stempel waktu metadata.lastUpdated.

Memeriksa keranjang

Sebuah fungsi akan berjalan secara berkala untuk menentukan apakah ada keranjang yang diabaikan dan Anda harus mengirim email. Anda dapat mengonfigurasikan periode waktu dengan CART_CHECK_INTERVAL menggunakan cron.yaml syntax.

Ada beberapa persyaratan yang harus dipenuhi sebuah dokumen keranjang sebelum diproses ke tahap berikutnya:

  • stempel waktu metadata.lastUpdated harus lebih lama daripada waktu ABANDONED_TIMEOUT dalam menit yang dapat dikonfigurasi
  • properti boolean metadata.emailSent harus berupa false
  • harus tidak ada error di dalam properti metadata.error

Jika semua persyaratan tersebut dipenuhi, ekstensi akan berupaya memuat data pengguna menggunakan properti userId atau ID dokumen. Jika pengguna tidak memiliki alamat email, error akan terekam. Jika pengguna memiliki alamat email, dokumen akan dibuat di EMAIL_COLLECTION. Dokumen akan mencakup email pengguna dan properti untuk dynamicTemplateData yang terdiri dari isi keranjang pengguna dan properti user yang mencakup email dan displayName pengguna jika ada. dynamicTemplateData ini digunakan untuk mengisi kolom di dalam template email dinamis SendGrid.

Mengirimkan email

Ketika sebuah dokumen ditambahkan ke EMAIL_COLLECTION, isinya akan dimasukkan ke dalam antrean untuk dikirim melalui email menggunakan SendGrid API Twilio. Semua informasi dari dokumen keranjang ditambahkan sebagai data template dinamis untuk email. Anda dapat mengonfigurasikan DEFAULT_TEMPLATE_ID yang merupakan ID template dinamis SendGrid.

Anda dapat membuat template transaksional dinamis di dasbor SendGrid. Template SendGrid menggunakan Handlebars untuk merender data dinamis ke dalam email.

Anda juga harus mengonfigurasikan DEFAULT_FROM Anda menjadi alamat email yang telah Anda verifikasikan dengan SendGrid sebagai pengirim tunggal atau melalui autentikasi domain. Anda juga dapat menetapkan email DEFAULT_REPLY_TO.

Anda dapat memicu email untuk dikirimkan kapan saja dengan menambahkan dokumen ke EMAIL_COLLECTION dengan alamat email to dan properti dynamicTemplateData.

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

Penagihan

Untuk menginstal ekstensi, project Anda harus menggunakan paket Blaze (bayar sesuai penggunaan)

  • Anda akan dikenai sedikit biaya (biasanya sekitar $0,01/bulan) untuk resource Firebase yang diperlukan oleh ekstensi ini (meskipun jika tidak digunakan).
  • Ekstensi ini menggunakan layanan Firebase dan Google Cloud Platform lainnya yang mengenakan biaya terkait jika Anda melebihi paket tanpa biaya layanan:
  • Cloud Firestore
  • Firebase Authentication
  • Cloud Functions (Node.js 10+ runtime. Lihat FAQ)
  • Cloud Secret Manager

Penggunaan ekstensi ini juga mengharuskan Anda untuk memiliki akun SendGrid Twilio dan kredensial agar dapat menggunakan SendGrid API Twilio untuk kampanye pemasaran. Anda bertanggung jawab atas semua biaya terkait penggunaan SendGrid Twilio Anda.

Cara menginstal ekstensi ini

Menggunakan Firebase console

Anda dapat menggunakan Firebase console untuk menginstal dan mengelola ekstensi.

Instal menggunakan konsol

Menggunakan Firebase CLI

Anda juga dapat menggunakan Firebase CLI untuk menginstal dan mengelola ekstensi:

Langkah 1: Jalankan perintah npm berikut untuk menginstal CLI atau mengupdate ke versi CLI terbaru.

npm install -g firebase-tools
Tidak berhasil? Lihat referensi Firebase CLI atau ubah izin npm Anda.

Langkah 2: Siapkan direktori project Firebase baru atau buka direktori yang sudah ada

Langkah 3: Tambahkan ekstensi ini ke manifes ekstensi Anda dengan menjalankan

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

Langkah 4 (Opsional): Uji ekstensi ini secara lokal dengan Firebase Emulator Suite

firebase emulators:start

Langkah 5: Deploy ekstensi dalam manifes ke project Anda

firebase deploy --only extensions --project=projectId_or_alias
Dukungan
Cloud Firestore Authentication
Penulis
Lisensi
Apache-2.0
Versi
0.1.1