# 创建预约表单

> 创建顾客用来选择服务、时间和付款的预约页面，可以从零开始，或使用BCL的现成模板。
>
> Source: https://docs.bcl.my/zh/create-booking-form/

预约表单是顾客打开来预约的页面。他们选择服务、时间，如果你允许的话也可以选择员工，然后在线付款。你可以从零开始创建表单，也可以从模板开始。

## 开始之前

表单提供的是你已经创建好的服务。请先创建服务；如果是Appointment服务，也要先添加员工。请看[创建预约服务](/zh/booking-services/)和[添加预约员工](/zh/booking-staff/)。

## 创建预约表单

逐个标签页设置表单，然后保存：

1. 前往**Bookings** → **Forms**，点击**Create Form**。

   *(Screenshot: Booking Forms页面，Create Form按钮已标示)*

2. 在**General**标签页输入**Title**。BCL会自动填写**URL Slug**，也就是表单链接的最后一部分，例如`https://<your-subdomain>.bcl.my/booking/kopi-kampung-cupping-session`。需要的话，也可以添加**Description**。

   *(Screenshot: Create New Booking Form页面，Title和URL Slug已标示)*

3. 在**Booking Setup**标签页，选择**Booking Type**、**Staff Selection Mode**和**Available Services**。只能添加所选类型的服务。

   *(Screenshot: Booking Setup标签页，Booking Type、Staff Selection Mode和Available Services已标示)*

4. 在**Payment**标签页，至少选择一个**Payment Option**（例如FPX），以及电子发票（e-Invoice）用的**Classification Code**（例如**022 - Others**）。两者都是必填的。除非你选择其他portal，否则**Portal Key**会使用账号的默认portal。除非你在这里更改，否则**Payment Mode**会跟随你账号的Test Mode或Live Mode。
5. 在**Availability**标签页，保留**Recurring schedule**，并设置**Operating Hours**。点击某一天，开启那一天的**Open on**，再设置**From**和**To**。点击**Add Slot**设置当天的休息时间，点击**Add day off**设置公共假期。

   *(Screenshot: Operating Hours，星期一营业时间为09:00 AM到06:00 PM，星期日为Off)*

6. 点击**Add Booking Form**。

   *(Screenshot: 页面顶部的Add Booking Form按钮已标示)*

BCL会显示**Booking created**，并打开新表单让你编辑。

**Form Settings**、**Appearance**、**Custom Fields**和**Miscellaneous**是可选的。它们包括预约编号格式、条款与条件、图片、额外问题，以及付款后显示的页面。

## 员工选择模式

**Staff Selection Mode**决定顾客是否可以选择员工：

| 模式 | 顾客看到什么 |
| --- | --- |
| **Disabled (No staff selection)** | 不能选择员工。会出现**Staff Assignment**栏位：<strong>Automatic (system assigns)</strong>会选一位有空的员工，<strong>Manual (admin assigns later)</strong>则由你之后指派。 |
| **Optional (Customer can choose or skip)** | 员工列表，另加**No Preference**。 |
| **Required (Must select staff)** | 顾客必须选择一位员工。 |

## 分享表单

在**Booking Forms**列表，点击表单那一行的**View Form**，打开公开页面。从浏览器复制链接来分享，或在表单编辑页面使用**Embed Code**标签页，把表单放到你的网站上。

*(Screenshot: 一个预约表单的那一行，View Form链接已标示)*

顾客会经过三个步骤：**Service**、**Schedule**和**Confirm**。他们在最后一步付款。

*(Screenshot: 公开的预约页面，已选择Latte Art Class，并显示Prefer a Staff Member选项)*

## 从模板开始

BCL有20个现成的预约表单模板，分成**Accommodation**、**Appointment**、**Class**、**Restaurant**、**Sport**和**Ticket**几组，例如Hair Salon、Restaurant Reservation、Badminton Court和Resort & Chalet。每张卡片都会显示它会创建多少服务、员工和选项，以及示例价格。

1. 前往**Bookings** → **Forms**，点击**Templates**。
2. 选择一个组别或浏览**All**，然后在最接近的模板上点击**Use Template**。

   *(Screenshot: Booking Form Templates面板，Private Coaching卡片上的Use Template已标示)*

BCL会创建表单、它的服务、服务类别和示例员工，然后打开表单让你编辑。表单是关闭的，所以还没有人能预约。分享之前：

1. 把**Title**、**URL Slug**和**Description**改成你自己的。
2. 改名或替换示例服务和员工，并检查他们的价格和工作时间。
3. 在**Payment**标签页选择**Payment Option**。
4. 在**Form Settings**标签页开启**Form Active**，然后点击**Update Booking**。

预约表单没有**Import JSON**。要把预约表单复制到另一个账号，请在那里重新创建，或从同一个模板开始。

## 小贴士

分享链接之前，请检查这几点：

- **让营业时间配合员工**。只有表单开放而且有员工上班时，那个时间才能被预约。请让**Operating Hours**和员工的**Working Hours**保持一致。
- **用Add day off设置假期**。休息日会关闭整个表单当天的预约，所以你不用更改每周的营业时间。
- **做一次测试预约**。在测试模式下，自己预约一个时段。它会像顾客的预约一样出现在**Bookings**和**Calendar**里。

## 常见问题

### 怎样只让星期四、星期五和星期六可以预约？

打开表单，前往Availability标签页，在Operating Hours下开启Open on Thursday、Open on Friday和Open on Saturday，并设置From和To时间。其他日子全部关闭。

### 顾客可以选择由哪位员工服务吗？

可以。在Booking Setup标签页，把Staff Selection Mode设为<strong>Optional (Customer can choose or skip)</strong>或<strong>Required (Must select staff)</strong>。选择<strong>Disabled (No staff selection)</strong>时，由BCL指派员工。

### 我中午1点到2点休息吃午餐。可以封锁那个小时吗？

可以。在Operating Hours下点击Add Slot，给那一天设两个时间段，例如9:00 AM到1:00 PM，以及2:00 PM到6:00 PM。
