Cara Membuat Aplikasi Pemesanan: Slot, Ketersediaan, Pengingat, dan Deposit
Untuk membangun aplikasi pemesanan, Anda membutuhkan empat hal yang bekerja bersama: daftar apa saja yang bisa dipesan (layanan, ruangan, staf), aturan kapan masing-masing tersedia, alur pemesanan yang hanya menawarkan slot yang benar-benar kosong, dan tampilan privat tempat bisnis mengelola pemesanan yang masuk. Pembuat aplikasi AI bisa menghasilkan versi pertama yang berfungsi dari deskripsi singkat dalam hitungan menit; pekerjaan yang sebenarnya adalah menentukan aturannya — durasi slot, jeda, pembatalan, zona waktu — dan menguji bahwa pemesanan ganda tidak mungkin terjadi.
Mulailah dengan memutuskan apa arti "pemesanan" bagi Anda
Aplikasi pemesanan tampak mirip di permukaan tetapi sangat berbeda di dalamnya. Jawab hal-hal ini terlebih dahulu:
- Apa yang dipesan? Sebuah layanan (potong rambut), seseorang (tutor), sumber daya (ruang rapat, lapangan, van), atau tempat dalam sesi (kelas yoga dengan 12 kursi).
- Berapa lama durasinya? Tetap per layanan, atau dipilih oleh pelanggan?
- Siapa yang memberikannya? Satu orang, beberapa staf dengan jam kerja masing-masing, atau tidak ada orang (ruangan)?
- Apa yang terjadi setelah dipesan? Konfirmasi langsung, atau permintaan yang harus disetujui pemilik?
- Apakah ada uang yang terlibat? Gratis, bayar di tempat, deposit di muka, atau pembayaran penuh di muka?
"Ajukan waktu, pemilik mengonfirmasi lewat email" jauh lebih sederhana untuk dibangun daripada "pemesanan langsung dengan tiga kalender staf dan deposit". Keduanya valid — pilih yang benar-benar Anda butuhkan untuk versi pertama.
Apa yang dibutuhkan aplikasi
Data
| Tabel | Kolom utama |
|---|---|
| Layanan | Nama, durasi, harga, jeda setelahnya, aktif ya/tidak |
| Staf atau sumber daya | Nama, layanan apa saja yang mereka tawarkan |
| Ketersediaan | Jam kerja mingguan per anggota staf, plus pengecualian (hari libur, penutupan sekali waktu) |
| Pemesanan | Layanan, staf, waktu mulai, waktu selesai, detail pelanggan, status (menunggu, dikonfirmasi, dibatalkan), status pembayaran |
| Pelanggan | Nama, email, telepon, catatan — opsional di awal; bisa juga disimpan di dalam pemesanan |
Menyimpan waktu selesai pada setiap pemesanan, bukan hanya waktu mulai, membuat pemeriksaan tumpang tindih jauh lebih sederhana.
Halaman
- Publik: daftar layanan, pemilih slot, formulir pemesanan, halaman konfirmasi, dan tautan batal atau jadwal ulang.
- Privat (pemilik atau staf): jadwal hari ini, pemesanan mendatang, cara memblokir waktu libur, dan pengaturan untuk layanan serta jam kerja.
Izin akses
Pelanggan hanya boleh melihat slot kosong atau sibuk — jangan pernah nama pelanggan lain. Staf mungkin hanya melihat jadwal mereka sendiri; pemilik melihat semuanya. Tuliskan ini, karena keputusan ini menentukan apakah Anda membutuhkan login dan peran. Panduan kami tentang menambahkan login ke aplikasi Anda membahas pilihan-pilihannya.
Bagian yang sulit, dan cara menanganinya
Pemesanan ganda
Bug klasiknya: dua orang memuat halaman, keduanya melihat pukul 10:00 kosong, keduanya memesannya. Perbaikannya adalah memeriksa lagi di server saat pemesanan disimpan dan menolaknya jika ada yang sekarang tumpang tindih. Mintalah ini secara eksplisit:
Saat menyimpan pemesanan, periksa ulang di server bahwa tidak ada pemesanan yang sudah dikonfirmasi atau menunggu untuk anggota staf yang sama yang tumpang tindih dengan waktu yang diminta (termasuk jeda). Jika ada, tolak dan tampilkan "Waktu itu baru saja terisi — silakan pilih waktu lain."
Lalu uji dengan dua jendela browser.
Zona waktu
Simpan setiap waktu dalam UTC dan konversikan untuk tampilan. Tentukan zona waktu siapa yang ditampilkan di halaman pemesanan — biasanya zona waktu bisnis untuk layanan tatap muka, dan zona waktu pelanggan untuk panggilan daring — dan beri label di halaman. Uji sebuah pemesanan yang melintasi perubahan waktu musim panas.
Jeda, pemberitahuan, dan batas
Aturan umum yang layak diputuskan sejak awal: jeda antar janji, pemberitahuan minimum ("tidak ada pemesanan kurang dari 2 jam sebelumnya"), seberapa jauh ke depan orang bisa memesan, dan batas harian. Setiap aturan cukup satu kalimat dalam prompt; jika dilewatkan, AI akan memilih default untuk Anda.
Pembatalan dan tidak datang
Beri setiap konfirmasi tautan batal dengan token unik agar pelanggan tidak perlu akun. Tentukan jendela pembatalan dan apakah deposit bisa dikembalikan, dan tampilkan kebijakan itu sebelum pembayaran.
Pengingat
Email atau SMS pengingat membutuhkan sesuatu yang berjalan sesuai jadwal ("setiap 15 menit, kirim pengingat untuk pemesanan yang dimulai dalam 24 jam"). Periksa bagaimana pembuat aplikasi dan hosting Anda menangani tugas terjadwal. Jika tidak mendukung, gunakan penjadwal eksternal yang memanggil endpoint di aplikasi Anda, atau kirim email konfirmasi dengan undangan kalender terlampir agar kalender pelanggan sendiri yang mengingatkan mereka. Lihat cara mengirim email dari aplikasi Anda untuk sisi penyedia layanannya.
Deposit dan pembayaran
Pola umum dengan Stripe:
- Pelanggan memilih slot; aplikasi membuat pemesanan menunggu yang menahan slot itu untuk waktu singkat (misalnya 15 menit).
- Aplikasi mengarahkan mereka ke Stripe Checkout untuk deposit.
- Stripe memberi tahu aplikasi Anda lewat webhook saat pembayaran berhasil; pemesanan menjadi dikonfirmasi.
- Jika pembayaran tidak dilakukan tepat waktu, pemesanan menunggu itu kedaluwarsa dan slotnya kembali kosong.
Tarif standar Stripe adalah persentase ditambah biaya tetap per pembayaran kartu yang berhasil, tanpa biaya bulanan (per September 2026); tarifnya berbeda di tiap negara, jadi periksa halaman harga Stripe untuk negara Anda. Gunakan mode uji dan kartu uji sampai semuanya berfungsi. Panduan kami tentang menambahkan pembayaran menjelaskannya langkah demi langkah.
Prompt pertama yang berhasil
Bangun aplikasi pemesanan untuk Northside Barbers. Layanan: Potong rambut (30 menit, $25), Rapikan jenggot (15 menit, $12), Potong rambut + jenggot (45 menit, $32). Dua barber, Sam dan Ali, masing-masing bekerja Selasa–Sabtu pukul 9:00–18:00. Pelanggan memilih layanan, lalu barber tertentu atau "barber mana saja", lalu hanya melihat waktu mulai 15 menit yang kosong untuk 14 hari ke depan, dan mengisi nama, telepon, serta email. Simpan pemesanan di database, dengan jeda 10 menit setelah setiap janji, dan periksa ulang ketersediaan saat menyimpan untuk mencegah pemesanan ganda. Tampilkan halaman konfirmasi dengan tautan batal. Pemilik memiliki halaman privat yang menampilkan pemesanan hari ini dan yang akan datang, dapat membatalkan pemesanan, dan dapat memblokir waktu. Waktu mengikuti zona waktu lokal toko. Desain yang bersih, mengutamakan ponsel.
Prompt ini menyebutkan layanan, staf, jam kerja, aturan, dan tampilan pemilik — semua hal yang jika tidak disebutkan, AI harus menebaknya.
Langkah pembuatan
- Alur pemesanan inti dulu. Layanan → slot → formulir → pemesanan tersimpan → konfirmasi. Jangan lanjut ke yang lain sebelum ini berfungsi di ponsel.
- Tampilan pemilik. Daftar hari ini, daftar mendatang, batalkan, blokir waktu.
- Lindungi halaman pemilik. Tambahkan login sebelum data sungguhan dimasukkan.
- Aturan. Jeda, periode pemberitahuan, batas jauh-ke-depan pemesanan, hari libur.
- Email. Konfirmasi dengan undangan kalender dan tautan batal.
- Deposit jika Anda membutuhkannya, di mode uji Stripe terlebih dahulu.
- Uji kasus-kasus tepi. Dua jendela memesan slot yang sama, pemesanan yang melewati tengah malam, tanggal perubahan waktu musim panas, pemesanan yang dibatalkan membebaskan slotnya.
- Terbitkan, lalu buat pemesanan sungguhan sendiri sebelum membagikan tautannya.
Kesalahan umum
- Memeriksa ketersediaan hanya di browser. Tampak benar tetapi tetap menghasilkan pemesanan ganda.
- Menyimpan waktu lokal tanpa zona waktu. Berfungsi sampai jam berubah.
- Menampilkan nama pelanggan di kalender publik. Tampilkan hanya kosong atau sibuk.
- Membangun penjadwalan staf, poin loyalitas, dan SMS di hari pertama. Luncurkan alur inti dulu, lalu tambahkan apa yang benar-benar diminta pelanggan.
- Tidak ada cara bagi pemilik untuk memblokir waktu. Hari sakit pertama akan menimbulkan tidak datang.
Kapan Calendly (atau yang serupa) adalah pilihan yang lebih baik
Jika Anda seorang diri membagikan ketersediaan untuk panggilan, alat penjadwalan sulit dikalahkan. Per September 2026, paket gratis Calendly mencakup satu jenis acara, satu koneksi kalender, dan penjadwalan satu-lawan-satu dengan halaman pemesanan yang bisa disesuaikan; paket berbayar menambahkan lebih banyak jenis acara dan fitur tim. Alat seperti itu terhubung ke kalender Anda yang sudah ada tanpa perlu disiapkan, sedangkan aplikasi kustom harus dibangun agar bisa melakukan hal itu.
Bangun sendiri ketika Anda membutuhkan aturan yang tidak didukung alat tersebut, beberapa sumber daya yang bisa dipesan, branding Anda sendiri di seluruh halaman, pemesanan yang terhubung dengan data lain (pelanggan, pesanan, keanggotaan), atau Anda sedang membangun produk pemesanan untuk dijual kepada orang lain.
Membangunnya dengan Mythex
Di Mythex, Anda mendeskripsikan aplikasi pemesanan di chat, aplikasi itu dibangun di pratinjau langsung, dan database Postgres ditambahkan ketika pemesanan perlu disimpan. Kasus penggunaan halaman pemesanan di dokumentasi menyarankan untuk mulai dengan formulir permintaan dan daftar admin, lalu menambahkan sisanya. Jujurlah tentang apa yang sudah tersedia dan apa yang Anda sambungkan sendiri: Mythex tidak memiliki sinkronisasi kalender bawaan, pengingat SMS, atau produk deposit. Email melalui penyedia Anda sendiri, deposit melalui kunci Stripe Anda sendiri yang disimpan sebagai rahasia proyek (resep Stripe), dan aturan anti pemesanan ganda serta zona waktu adalah hal-hal yang Anda tentukan dan uji, seperti di atas.
Perintah /test meminta agen mengklik alur pemesanan di pratinjau dan melaporkan apa yang rusak. Untuk prompt awal, coba templat situs pemesanan barbershop atau pemesan rapat, atau telusuri semua templat aplikasi.
Pertanyaan
Fitur apa saja yang dibutuhkan aplikasi pemesanan?
Minimal: daftar layanan beserta durasinya, cara menampilkan hanya slot waktu yang kosong, formulir pemesanan, konfirmasi, dan halaman privat tempat bisnis melihat dan mengelola pemesanan. Pengingat, deposit, dan kalender staf menyusul kemudian.
Bagaimana cara mencegah pemesanan ganda?
Periksa ketersediaan di server pada saat pemesanan disimpan, bukan hanya saat halaman dimuat, lalu tolak pemesanan jika slot sudah terisi dalam jeda waktu itu. Uji dengan mencoba memesan slot yang sama dari dua jendela browser.
Bisakah aplikasi pemesanan kustom menerima deposit?
Bisa. Pendekatan umumnya adalah mengarahkan pelanggan ke halaman Stripe Checkout untuk deposit dan baru mengonfirmasi pemesanan setelah pembayaran berhasil. Anda memerlukan akun dan kunci Stripe sendiri.
Sebaiknya saya membangun aplikasi pemesanan atau memakai Calendly?
Jika hanya satu orang yang perlu membagikan ketersediaannya dan tidak ada yang tidak biasa dalam alurnya, alat penjadwalan seperti Calendly lebih cepat dan lebih murah dijalankan. Bangun sendiri ketika Anda membutuhkan aturan sendiri, beberapa sumber daya, branding Anda di seluruh halaman, atau pemesanan yang terhubung dengan data lain yang Anda simpan.