> For the complete documentation index, see [llms.txt](https://docs.diro.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.diro.app/booking/booking-dari-portal.md).

# Membuat Booking dari Portal

Tidak semua pelanggan booking sendiri lewat storefront. Untuk yang datang langsung, menelepon, atau chat WhatsApp, buat bookingnya dari portal.

**Pemesanan → Pemesanan → Tambah.**

Formnya satu halaman, bukan wizard bertahap. Isian ada di kolom kiri, ringkasan harga dan tombol simpan di kolom kanan yang ikut menggulir.

```mermaid
flowchart TD
  A["Pilih jenis:<br/>Layanan atau Event"] --> B["Pilih pelanggan"]
  B --> C["Pilih layanan"]
  C --> D["Pilih tanggal & slot"]
  D --> E["Pilih resource / provider"]
  E --> F["Add-on & biaya tambahan"]
  F --> G["Voucher atau membership"]
  G --> H{"Metode pembayaran"}
  H -->|"Bayar di Kasir"| I["Booking pending,<br/>tagih tunai nanti"]
  H -->|"Bayar Online"| J["Link pembayaran<br/>dikirim ke pelanggan"]
  H -->|"Ditanggung membership"| K["Booking langsung<br/>terkonfirmasi"]
```

## 1. Jenis booking

Pilih **Layanan** atau **Event** di bagian paling atas. Pilihan ini menentukan isi form berikutnya.

## 2. Pelanggan

Dua mode.

**Pelanggan lama** — cari di daftar pelanggan yang sudah terdaftar.

**Pelanggan baru** — masukkan **nomor telepon** lebih dulu. Sistem otomatis memeriksa apakah nomor itu sudah terdaftar:

* Kalau ketemu, muncul tawaran untuk memakai pelanggan yang sudah ada. Pakai ini — jangan buat data ganda.
* Kalau tidak ada, barulah kolom **nama lengkap** dan **email** muncul untuk diisi.

{% hint style="info" %}
Booking dari portal **tidak memerlukan verifikasi OTP**. Nomor telepon hanya dipakai untuk mencocokkan pelanggan dan sebagai kontak booking. Verifikasi OTP hanya berlaku di storefront.
{% endhint %}

Kalau pelanggan tersebut punya voucher atau membership yang berlaku, semuanya langsung muncul di sini sebagai tombol untuk diterapkan sekali klik.

## 3. Layanan, tanggal, dan slot

Pilih cabang, lalu layanan. Kalau layanan punya beberapa pilihan durasi, pilih durasinya di sini.

Setelah layanan dipilih, muncul pemilih tanggal dan deretan slot waktu. **Slot yang tampil sama persis dengan yang dilihat pelanggan di storefront** — aturan ketersediaannya identik.

{% hint style="warning" %}
Anda **tidak bisa memaksa** booking masuk ke slot yang penuh atau tidak tersedia. Kalau jumlah peserta melebihi kapasitas slot, tombol simpan dinonaktifkan. Ini disengaja, supaya jadwal di portal dan di storefront tidak pernah berbeda.

Kalau Anda memang perlu menerima booking di jam tersebut, ubah dulu jadwal layanan atau kapasitas slotnya. Lihat [Mengatur Jadwal Layanan](/operasional/jadwal-layanan.md).
{% endhint %}

## 4. Resource dan provider

Kalau slot yang dipilih menyediakan lebih dari satu provider atau ruangan, pilih di sini. Kalau hanya ada satu pilihan, sistem memilihkannya otomatis.

Provider yang dipilih di sini yang nanti mendapat komisi.

## 5. Add-on dan biaya tambahan

**Add-on** diambil dari katalog add-on Anda.

**Biaya tambahan** adalah baris bebas yang Anda ketik sendiri — nama, harga, dan jumlah. Gunakan untuk hal yang tidak ada di katalog: biaya parkir, produk yang dibawa pulang, penyesuaian harga kesepakatan.

## 6. Voucher dan membership

Masukkan kode voucher secara manual, atau klik voucher milik pelanggan yang sudah muncul di bagian pelanggan.

Kalau yang dipakai adalah **membership**, dua hal berubah:

* Daftar layanan menyempit menjadi hanya layanan yang tercakup membership tersebut.
* Langkah pembayaran dilewati — booking ditandai **ditanggung membership** dan langsung terkonfirmasi.

## 7. Pembayaran

| Pilihan            | Yang terjadi                                                                                                                              |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
| **Bayar di Kasir** | Booking dibuat dengan status pending, tanpa tagihan online. Pelanggan membayar langsung di tempat, dan Anda mencatat pembayarannya nanti. |
| **Bayar Online**   | Pelanggan mendapat tagihan lewat metode yang Anda pilih — QRIS, virtual account, atau e-wallet.                                           |

Ringkasan harga di kolom kanan menampilkan rincian lengkap sebelum Anda menyimpan: layanan, add-on, biaya tambahan, diskon, dan total.

## Mencatat pembayaran tunai

Buka detail booking, lalu **Tagih Pembayaran** atau **Tagih Sisa Pembayaran**. Selain metode online, tersedia pilihan **Bayar di Kasir** untuk mencatat uang tunai yang sudah diterima — tanpa melalui gateway pembayaran.

Ini yang Anda pakai setelah pelanggan walk-in membayar di kasir, agar bookingnya tercatat lunas dan masuk laporan dengan benar.

## Mengubah booking

Dari daftar atau detail booking:

* **Ubah booking** — mengganti pelanggan, layanan, tanggal, slot, resource, voucher, dan biaya tambahan sekaligus. Di dialog yang sama Anda juga bisa langsung menagih pembayaran.
* **Reschedule** — khusus memindahkan tanggal dan jam saja.
* **Ubah status** — memindahkan booking antar status.

Halaman detail booking menampilkan jadwal, rincian harga, data pelanggan, pembayaran, transaksi terkait, dan **riwayat perubahan** — siapa mengubah apa dan kapan.

{% hint style="warning" %}
Booking **event** tidak bisa diganti layanan atau tanggalnya lewat dialog ubah booking, karena akan membuat daftar peserta event tidak sinkron. Kelola perubahan event dari halaman event-nya.
{% endhint %}

## Hak akses

Membuat dan mengubah booking memerlukan peran dengan **akses penuh** pada modul Booking. Peran dengan **lihat saja** hanya bisa membuka daftar dan detail. Lihat [Staf, Peran & Hak Akses](/operasional/staf.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.diro.app/booking/booking-dari-portal.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
