Daftar Isi
- Pilih topic yang pantas menginterupsi Anda
- Langkah 1 — Buat kanalnya
- Langkah 2 — Tambahkan webhook di Shopify
- Langkah 3 — Templatkan hanya field yang benar-benar Anda baca
- Langkah 4 — Rutekan per topic dengan kondisi
- Bangunkan saya hanya untuk pesanan besar
- Yang tidak dilakukan susunan ini
- Pertanyaan umum
- Apakah saya perlu aplikasi Shopify untuk ini?
- Bisakah gudang melihat pesanan tanpa melihat admin Shopify saya?
- Perlukah saya memasukkan nama pelanggan ke notifikasi?
- Bisakah saya ditelepon saat ada chargeback?
- Penutup
- Konten terkait
Email pesanan bawaan Shopify tiba kapan pun aplikasi surel Anda memutuskan menyinkron, mendarat di folder yang sudah Anda filter, dan terlihat sama saja entah pesanannya Rp 200 ribu atau Rp 20 juta. Kalau toko itu Anda sendiri yang jalankan, bentuk sinyalnya salah.
Webhook memperbaikinya. Shopify akan mem-POST setiap pesanan ke URL pilihan Anda, dan Echobell mengubah POST itu jadi notifikasi yang kerasnya Anda tentukan.
Pilih topic yang pantas menginterupsi Anda
Shopify menyebut jenis peristiwa webhook sebagai topic. Empat ini menutup kebutuhan sebagian besar toko yang dijalankan satu orang:
| Topic | Artinya | Urgensi |
|---|---|---|
orders/create | Ada pesanan masuk. | Biasa |
orders/paid | Pembayaran lolos. Pakai ini kalau yang Anda pedulikan hanya uang yang benar-benar masuk. | Biasa |
orders/cancelled | Pelanggan membatalkan. Layak diketahui sebelum Anda mengemas. | Sensitif waktu |
refunds/create | Pengembalian dana diterbitkan. | Sensitif waktu |
Berlanggananlah ke orders/create atau orders/paid, bukan keduanya, kecuali Anda memang ingin dua notifikasi per penjualan. Untuk kebanyakan toko, orders/paid yang jujur.
Langkah 1 — Buat kanalnya
Buat kanal di Echobell bernama semisal "Pesanan Shopify", salin URL webhook-nya, dan nyalakan Hanya POST. Shopify selalu mengirim lewat POST.
Kalau Anda mau kanal terpisah yang lebih nyaring untuk pembatalan dan pengembalian dana, buat sekalian sekarang dan setel ke sensitif waktu.
Langkah 2 — Tambahkan webhook di Shopify
Di admin Shopify, buka Pengaturan → Notifikasi → Webhook → Buat webhook. Pilih topic-nya, setel format ke JSON, lalu tempel URL kanal Anda.
Shopify mengirim payload uji saat Anda menyimpan. Kalau ponsel bergetar, jalurnya berfungsi.
Langkah 3 — Templatkan hanya field yang benar-benar Anda baca
Payload pesanan Shopify itu panjang — lebih dari seratus field per pesanan. Anda hanya butuh beberapa:
Judul
Pesanan baru #{{order_number}} · {{total_price}} {{currency}}
Isi
{{customer.first_name}} {{customer.last_name}}
{{line_items[0].title}}
line_items adalah array, jadi line_items[0] adalah barang pertama. Templat Echobell mendukung akses indeks, tetapi tidak ada perulangan: pesanan berisi tiga barang hanya menampilkan yang pertama. Kalau itu penting, taruh jumlahnya di sebelahnya:
{{line_items[0].title}} · total {{line_items.length}} barang
Berbeda dari Stripe, Shopify mengirim total_price sebagai string desimal — "49.00", bukan 4900 — jadi terbaca benar tanpa hitungan apa pun.
Langkah 4 — Rutekan per topic dengan kondisi
Kalau Anda mengarahkan beberapa topic ke satu kanal, Shopify memberi tahu yang mana lewat sebuah header:
header["x-shopify-topic"] == "orders/paid"
Itu cara terbersih memisahkan perilaku tanpa membuat satu webhook per kanal di admin.
Bangunkan saya hanya untuk pesanan besar
Pola yang sebenarnya diinginkan hampir semua pemilik toko: semua pesanan masuk ke kanal senyap, dan hanya yang di atas ambang tertentu masuk ke kanal nyaring.
Buat kanal kedua, setel ke sensitif waktu, arahkan satu webhook orders/paid lagi ke sana, lalu beri kondisi:
total_price > 500
Sekarang hari biasa jadi dengung latar, dan pesanan senilai 900 € jadi sesuatu yang Anda rasakan.
Yang tidak dilakukan susunan ini
Tanpa verifikasi HMAC. Shopify menandatangani setiap webhook dengan header X-Shopify-Hmac-Sha256. Echobell tidak memverifikasinya, jadi URL kanal Anda satu-satunya yang menahan orang asing di luar. Rahasiakan, biarkan Hanya POST menyala, dan bila notifikasi pesanan palsu bisa menimbulkan kerugian nyata, taruh endpoint Anda sendiri di depan untuk memverifikasi HMAC lalu biarkan dia memanggil Echobell.
Shopify bisa mengirim webhook yang sama dua kali. Ia mencoba ulang saat gagal, dan percobaan ulang tidak dideduplikasi. Perlakukan notifikasi sebagai dorongan untuk melihat pesanannya, bukan sebagai hitungan pesanan. Admin Shopify Anda adalah sumber kebenaran.
Topic inventaris cepat sekali jadi berisik. inventory_levels/update menyala pada setiap pergerakan stok, termasuk suntingan Anda sendiri. Kalau mau peringatan stok menipis, saring dengan ketat atau Anda akan menyesal sebelum makan siang.
Pertanyaan umum
Apakah saya perlu aplikasi Shopify untuk ini?
Tidak. Webhook di Pengaturan → Notifikasi sudah tertanam di admin dan tidak butuh aplikasi, akun partner, maupun kode.
Bisakah gudang melihat pesanan tanpa melihat admin Shopify saya?
Bisa. Bagikan kanalnya kepada mereka. Mereka menerima notifikasi dan tidak lebih — tanpa akses admin dan tanpa data pelanggan di luar yang templat Anda sertakan.
Perlukah saya memasukkan nama pelanggan ke notifikasi?
Itu keputusan Anda, dan layak diambil dengan sadar. Apa pun yang ada di templat akan muncul di layar terkunci. Nomor pesanan dan totalnya biasanya sudah cukup untuk bertindak.
Bisakah saya ditelepon saat ada chargeback?
Sengketa Shopify Payments datang lewat topic disputes/create di toko yang memakai Shopify Payments. Arahkan itu ke kanal panggilan — itulah satu-satunya peristiwa pesanan yang punya tenggat.
Penutup
Satu webhook, satu templat, dan satu kondisi kalau Anda mau versi nyaringnya. Butuh sekitar lima menit dan menggantikan kebiasaan menyegarkan halaman pesanan.
Unduh Echobell untuk iPhone atau ambil di Google Play, lalu buat satu pesanan uji dan lihat ia tiba sebelum email konfirmasi.