# Shopify + Brew

Picu otomatisasi Brew dari peristiwa pelanggan, pesanan, checkout, dan pemenuhan pesanan Shopify. Menjalankan alur sambutan, bukti pembelian, checkout yang ditinggalkan, dan pengiriman barang.

URL kanonis: https://brew.new/id/browse/integrations/shopify

- Arah: Data masuk
- Koneksi: Kunci rahasia webhook
- Pemicu peristiwa e-commerce

## Kemampuan yang aktif

- **Pemicu peristiwa**: Picu otomatisasi Brew dari peristiwa pelanggan, pesanan, checkout, dan pemenuhan pesanan Shopify. Menjalankan alur sambutan, bukti pembelian, checkout yang ditinggalkan, dan pengiriman barang.

## Ubah peristiwa toko menjadi email yang bermanfaat

Hubungkan Shopify untuk memulai email bermerek saat pelanggan mendaftar, pesanan dibayar, checkout dibuat, atau pesanan dikirim. Brew mendukung 13 topik webhook Shopify untuk pelanggan, pesanan, checkout, dan pemenuhan pesanan.

Penyiapannya memakai webhook yang Anda buat di admin Shopify. Anda tidak memerlukan aplikasi Shopify, client ID, atau OAuth. Shopify tetap bertanggung jawab atas pesanan, pembayaran, dan pemenuhan pesanan. Brew membuat dan mengirim emailnya.


## Yang bisa Anda buat

- Email sambutan pelanggan: customers/create dipicu saat data pelanggan dibuat di Shopify.
- Konfirmasi pesanan dan bukti pembelian: orders/create dipicu saat pesanan dibuat, dan orders/paid dipicu saat pembayaran diterima. Keduanya membawa orderNumber, totalPrice, currency, dan financialStatus. Pilih salah satu untuk setiap pesan agar tidak terkirim ganda.
- Pemberitahuan pembatalan: orders/cancelled dipicu saat pesanan dibatalkan dan membawa nomor pesanan serta status pembayarannya.
- Notifikasi pengiriman barang: fulfillments/create membawa trackingNumber dan trackingUrl jika pemenuhan pesanan memilikinya. orders/fulfilled juga dipicu saat pesanan dikirim, tetapi tidak membawa field pelacakan, jadi pilih satu pemicu untuk setiap email pengiriman barang.
- Tindak lanjut pemenuhan pesanan: fulfillments/update dipicu saat pemenuhan pesanan berubah. fulfillmentStatus adalah status pemrosesan pemenuhan pesanan, seperti pending, success, atau failure, bukan konfirmasi bahwa barang sudah tiba. Untuk email terima kasih atau permintaan ulasan setelah barang tiba, kirim peristiwa kustom Brew hanya setelah aplikasi Anda mengonfirmasi bahwa barang sudah tiba.
- Pengingat checkout: checkouts/create dipicu saat checkout dibuat dan dapat membawa abandonedCheckoutUrl, yaitu tautan untuk melanjutkan checkout tersebut.
- Selaraskan dengan notifikasi pelanggan Shopify agar pelanggan tidak menerima pesan yang sama dari keduanya.

## Pengingat checkout perlu pemeriksaan status

checkouts/create dipicu saat checkout dibuat, bukan saat checkout ditinggalkan. Alur pengingat dimulai dari peristiwa itu, lalu menunggu. Pesanan yang kemudian dibuat tidak menghentikan eksekusi yang sudah dimulai.

Setelah langkah Tunggu, kondisi membaca field kontak terkini seperti shopify_last_order_status dan shopify_last_order_at. Field tersebut menggambarkan pesanan terakhir yang diketahui Brew, bukan checkout yang satu ini, sehingga tidak dapat membuktikan bahwa checkout ini sudah menjadi pesanan.

checkouts/update dipicu setiap kali checkout berubah, bukan setelah jeda waktu tertentu, sehingga peristiwa ini saja tidak bisa dipakai sebagai pengingat kedua yang terjadwal.

Checkout tanpa alamat email tidak memulai otomatisasi, kecuali Brew sudah pernah melihat email untuk ID pelanggan Shopify yang sama. Sebelum memublikasikan, uji checkout yang berlanjut menjadi pesanan dan checkout yang tidak.


## Siapkan Shopify di Brew

- Buka Integrasi, pilih Shopify, lalu pilih Buat URL webhook.
- Masukkan domain myshopify.com Anda, seperti acme.myshopify.com, bukan domain kustom toko online Anda. Brew mencocokkannya dengan header X-Shopify-Shop-Domain pada setiap webhook.
- Di admin Shopify, buka Pengaturan > Notifikasi, lalu gulir ke Webhook. Shopify hanya mengirim suatu topik ke webhook yang dibuat untuk topik tersebut, jadi buat satu webhook untuk setiap peristiwa yang ingin Anda gunakan. Atur format ke JSON, tempelkan URL Brew, lalu pilih versi API terbaru.
- Salin kunci rahasia yang tertera di bagian bawah area Webhook. Kunci rahasia yang sama menandatangani setiap webhook untuk toko tersebut. Tempelkan ke Brew, lalu pilih Hubungkan.
- Buka menu pada setiap webhook yang Anda buat, lalu kirim notifikasi uji. Notifikasi uji pertama mengubah status di Brew dari “Menunggu peristiwa uji” menjadi “Terhubung”, dan setiap notifikasi uji menandai peristiwanya sebagai diterima. Notifikasi uji hanya memverifikasi webhook. Brew tidak menambahkan kontak dan tidak memulai otomatisasi.
- Saat Anda memilih Hubungkan, Brew membuat 13 pemicu, satu untuk setiap topik. Tidak ada tombol untuk mengaktifkan atau menonaktifkan peristiwa, tetapi topik tanpa webhook Shopify tidak akan pernah dipicu.
- Buat otomatisasi, pilih peristiwa Shopify yang memicunya, lalu jalankan uji selagi otomatisasi masih berstatus Draf. Hanya otomatisasi berstatus Aktif yang dijalankan saat peristiwa yang cocok masuk.

## Peristiwa Shopify yang didukung

Brew mendukung 13 topik webhook berikut:

- customers/create
- customers/update
- customers/delete
- customers/enable
- customers/disable
- orders/create
- orders/paid
- orders/cancelled
- orders/fulfilled
- checkouts/create
- checkouts/update
- fulfillments/create
- fulfillments/update

## Sinkronisasi kontak dan personalisasi

Setiap peristiwa terverifikasi yang memiliki alamat email sungguhan akan membuat atau memperbarui kontak Brew, yang dicocokkan berdasarkan email, baik peristiwa itu dipakai otomatisasi maupun tidak. Jika datanya tersedia, Brew mengisi nama depan, nama belakang, shopify_customer_id, dan shopify_shop_domain.

Peristiwa pesanan memperbarui shopify_last_order_number, shopify_last_order_total, shopify_last_order_currency, dan shopify_last_order_at. orders/create, orders/paid, dan orders/cancelled juga mengisi shopify_last_order_status, sedangkan orders/fulfilled mengisi shopify_last_fulfillment_status. Peristiwa pemenuhan pesanan memperbarui shopify_last_tracking_number, shopify_last_tracking_url, dan shopify_last_fulfillment_status. Peristiwa checkout memperbarui shopify_last_checkout_url.

customers/delete, customers/disable, dan customers/enable mengisi shopify_account_status dengan deleted, disabled, atau active. Brew tidak menghapus kontak atau menghentikan langganannya, jadi gunakan filter pada field tersebut jika diperlukan.

Gunakan skema payload yang dideklarasikan untuk peristiwa terpilih sebagai acuan merge tag. Setiap peristiwa menyertakan email, firstName, lastName, currency, shopDomain, dan createdAt jika tersedia. Peristiwa pesanan menambahkan orderNumber, totalPrice, financialStatus, dan fulfillmentStatus. Peristiwa checkout menambahkan totalPrice dan abandonedCheckoutUrl. Peristiwa pemenuhan pesanan menambahkan trackingNumber, trackingUrl, dan fulfillmentStatus.

Field totalPrice berisi nominal yang dikirim Shopify dalam mata uang pesanan, seperti 49.95, bukan dalam sen. Payload tidak menyertakan rincian item pesanan, dan ID objek Shopify tidak tersedia sebagai merge tag.

Webhook pelanggan Shopify tidak lagi menyertakan persetujuan pemasaran, jadi Brew tidak menerimanya. Catat persetujuan secara terpisah dan periksa sebelum pengiriman promosi.


## Apakah Brew mendukung peristiwa pengembalian dana dan keranjang?

Tidak. Shopify tidak memiliki topik orders/refunded, dan webhook pengembalian dananya tidak membawa data pelanggan. carts/update tidak membawa identitas penerima, jadi Brew tidak dapat mengirim email dengan aman dari peristiwa itu. Jangan tambahkan webhook untuk topik-topik tersebut.


## Mengapa peristiwa muncul tetapi email tidak terkirim?

Menerima peristiwa dan mengirim email adalah dua langkah terpisah. Pastikan otomatisasi yang cocok berstatus Aktif, lalu periksa filter dan riwayat eksekusinya, kelayakan penerima, serta domain pengirim. Notifikasi uji ditampilkan sebagai peristiwa uji dan tidak pernah memulai otomatisasi. Peristiwa tanpa alamat email untuk pelanggan yang tidak dikenal dicatat sebagai peristiwa tanpa penerima.


## Batasan dan pemecahan masalah

- Brew tidak dapat mengubah pelanggan, pesanan, atau pemenuhan pesanan Shopify.
- Respons 401 dengan shop_domain_mismatch berarti domain yang dimasukkan di Brew tidak cocok dengan toko yang mengirim webhook. Hubungkan ulang dengan domain myshopify.com kanonis toko Anda.
- Jika Anda merotasi kunci rahasia di Shopify, hubungkan ulang dengan nilai yang baru. Brew mensyaratkan kunci rahasia minimal 16 karakter.
- Jika pemicu menampilkan “Belum ada peristiwa”, buat webhook Shopify untuk topik tersebut, lalu kirim notifikasi uji dari webhook itu.
- Webhook pesanan mungkin tidak menyertakan nama pelanggan. Gunakan nilai cadangan merge tag untuk firstName, misalnya sapaan default.
- Tinjau persetujuan dan tujuan setiap email. Menyinkronkan pelanggan Shopify tidak memberi izin untuk pengiriman promosi.

## Sumber dan panduan penyiapan

- [Panduan penyiapan Shopify](https://docs.brew.new/integrations/import/shopify)
- [Membuat otomatisasi](https://docs.brew.new/create-emails/build-an-automation)
- [Merge tag](https://docs.brew.new/create-emails/merge-tags)
- [Yang bisa Anda kirim dengan Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Webhook Shopify](https://shopify.dev/docs/apps/build/webhooks)

## Terkait

- [Semua integrasi](https://brew.new/id/browse/integrations.md)
- [Daftar](https://brew.new/id/sign-up.md)
- Situs web: https://brew.new
