Cách xây dựng website đặt phòng khách sạn: phòng, giá, tình trạng còn phòng và thanh toán
Website đặt phòng khách sạn cho phép khách chọn ngày, xem phòng nào còn trống cho mọi đêm trong kỳ lưu trú, xem tổng giá, rồi thanh toán hoặc đặt cọc, mà không ai phải gửi qua lại email. Để xây một website như vậy, bạn cần các loại phòng kèm số lượng phòng, mô hình tình trạng còn phòng theo đêm, giá có thể thay đổi theo ngày, một luồng đặt phòng kiểm tra lại tình trạng còn phòng khi lưu, và một màn hình quản trị cho lễ tân. Phần khó không phải là các trang đẹp mắt. Đó là đảm bảo một phòng không bao giờ bị bán hai lần, đặc biệt nếu bạn cũng bán trên các nền tảng đặt phòng.
Website cần những gì
Các trang
- Công khai: trang chủ, phòng (ảnh, giường, diện tích, tiện nghi, số khách tối đa), tìm kiếm theo ngày và số khách, kết quả với tổng giá theo loại phòng, biểu mẫu đặt phòng, thanh toán, và trang xác nhận có đường link quản lý đặt phòng.
- Hỗ trợ: vị trí và chỉ đường, chính sách (giờ nhận và trả phòng, hủy, trẻ em, thú cưng), câu hỏi thường gặp, liên hệ.
- Riêng tư (nhân viên): khách đến và khách rời trong ngày, lưới lịch theo phòng và theo đêm, danh sách đặt phòng, ngày bị chặn, giá và cài đặt phòng.
Dữ liệu
| Bảng | Trường chính |
|---|---|
| Loại phòng | Tên, mô tả, số người lớn và trẻ em tối đa, giá cơ bản, ảnh |
| Phòng | Loại phòng, số hoặc tên phòng, đang hoạt động có/không |
| Giá | Loại phòng, ngày hoặc khoảng ngày, giá mỗi đêm, số đêm tối thiểu |
| Đặt phòng | Khách, loại phòng, phòng được gán, ngày nhận, ngày trả, số khách, tổng tiền, tiền cọc đã thanh toán, trạng thái, nguồn (trực tiếp, OTA) |
| Khách | Tên, email, số điện thoại, quốc gia, ghi chú |
| Chặn | Phòng, khoảng ngày, lý do (bảo trì, chủ sở hữu sử dụng) |
Lưu ngày nhận và ngày trả phòng dưới dạng ngày, không phải giờ, và coi ngày trả phòng là không bao gồm: kỳ lưu trú từ ngày 10 đến ngày 12 dùng các đêm của ngày 10 và 11. Làm sai điều này gây ra lỗi tình trạng còn phòng phổ biến nhất.
Phân quyền
Khách thấy giá và việc một loại phòng có còn trống hay không, không bao giờ thấy ai khác đang ở đó. Nhân viên lễ tân thấy đặt phòng và thông tin khách; chỉ chủ sở hữu được thay đổi giá và chính sách. Điều đó nghĩa là cần một tài khoản nhân viên với ít nhất hai vai trò.
Quyết định và đánh đổi
Yêu cầu đặt phòng hay đặt ngay
Yêu cầu đặt phòng (khách gửi ngày và thông tin, bạn xác nhận qua email) đơn giản hơn nhiều và phù hợp với nhà nghỉ nhỏ. Đặt ngay cần kiểm tra tình trạng còn phòng và xử lý thanh toán thật chặt chẽ, nhưng tỷ lệ chuyển đổi cao hơn. Nhiều cơ sở bắt đầu với yêu cầu và chuyển sang đặt ngay sau.
Bán theo loại phòng hay theo phòng cụ thể
Khách thường đặt một loại phòng (“Phòng đôi hướng biển”), và nhân viên gán phòng thực tế sau. Bán theo phòng cụ thể dễ xây hơn nhưng khiến lịch khó lấp đầy hơn.
Giá
Bắt đầu với một mức giá mỗi đêm cho mỗi loại phòng, kèm tùy chọn ghi đè theo khoảng ngày (mùa cao điểm, ngày lễ) và số đêm tối thiểu. Giá động, mã khuyến mãi và gói dịch vụ để sau.
Thanh toán
Các lựa chọn, theo thứ tự tăng dần độ phức tạp: thanh toán khi nhận phòng; đặt cọc qua trang thanh toán được lưu trữ như Stripe Checkout; thanh toán trước toàn bộ cho giá không hoàn tiền; hoặc lưu thẻ để trừ tiền sau. Quy định thanh toán, thuế và phí lưu trú khác nhau theo quốc gia, hãy kiểm tra luật địa phương hoặc hỏi chuyên gia. Hướng dẫn thanh toán bao quát cơ chế.
Các kênh khác
Nếu phòng của bạn cũng được niêm yết trên các đại lý du lịch trực tuyến hoặc nền tảng cho thuê kỳ nghỉ, bạn phải giữ lịch đồng bộ với nhau. Nhiều nền tảng đó có thể xuất và nhập lịch qua liên kết iCal; đồng bộ theo cách này là phổ biến với cơ sở nhỏ nhưng luôn có độ trễ, không tức thời. Channel manager là giải pháp chuyên nghiệp.
Một prompt đầu tiên hiệu quả
Xây dựng một website đặt phòng trực tiếp cho Harbour House, một nhà nghỉ 9 phòng ở Tobermory, Scotland. Loại phòng: Phòng đôi (4 phòng, 2 khách, £120/đêm), Phòng hai giường đơn (3 phòng, 2 khách, £115), Phòng gia đình (2 phòng, 2 người lớn + 2 trẻ em, £165). Khách tìm kiếm theo ngày nhận phòng, ngày trả phòng và số khách, và chỉ thấy các loại phòng còn phòng trống cho mọi đêm của kỳ lưu trú, kèm tổng giá. Ngày trả phòng không được tính. Tối thiểu 2 đêm vào tháng 7 và tháng 8. Biểu mẫu đặt phòng thu thập tên, email, số điện thoại và giờ đến; lưu thành “đang chờ” và kiểm tra lại tình trạng còn phòng trên máy chủ trước khi lưu. Khu vực nhân viên có đăng nhập: khách đến và khách đi trong ngày, lưới lịch phòng theo đêm, danh sách đặt phòng với trạng thái, và cách chặn ngày. Hiển thị giờ nhận phòng 15–20 giờ, giờ trả phòng 10 giờ và chính sách hủy (miễn phí đến 7 ngày trước) trên mọi trang đặt phòng. Thiết kế yên tĩnh kiểu ven biển, ưu tiên điện thoại.
Các bước xây dựng
- Mô hình hóa phòng và đêm trước. Loại phòng, phòng, giá và kiểm tra tình trạng còn phòng. Kiểm thử trước khi làm bất kỳ phần thiết kế nào.
- Tìm kiếm và kết quả. Bộ chọn ngày, số khách, tổng giá cho kỳ lưu trú, trạng thái “hết phòng” rõ ràng.
- Luồng đặt phòng. Biểu mẫu → kiểm tra lại tình trạng còn phòng trên máy chủ → đặt phòng ở trạng thái đang chờ → trang xác nhận có đường link quản lý.
- Khu vực nhân viên có đăng nhập: khách đến, khách đi, lưới lịch, chặn ngày.
- Email xác nhận qua nhà cung cấp riêng, với ngày, tổng tiền, địa chỉ và chính sách. Xem gửi email.
- Tiền cọc trong chế độ thử nghiệm của Stripe, chỉ xác nhận đặt phòng khi thanh toán thành công. Webhook thanh toán cần ứng dụng của bạn được xuất bản tại một URL công khai.
- Đồng bộ lịch với các kênh khác nếu bạn dùng, cùng với việc kiểm tra thủ công hằng ngày lúc đầu.
- Kiểm thử các trường hợp biên: hai trình duyệt cùng đặt phòng cuối cùng, kỳ lưu trú vượt qua thay đổi giá, một đặt phòng bị hủy giải phóng các đêm, kỳ lưu trú một đêm trong giai đoạn yêu cầu tối thiểu nhiều đêm.
- Xuất bản và tự đặt một phòng thật trước khi tắt quy trình cũ.
Những lỗi thường gặp
- Chỉ kiểm tra tình trạng còn phòng trên trình duyệt. Sớm muộn hai khách sẽ cùng đặt phòng cuối cùng vào cùng một lúc.
- Tính đêm trả phòng là đã có khách (hoặc không tính đêm nhận phòng). Hãy viết một kiểm thử cho kỳ lưu trú hai đêm.
- Một giá phẳng. Đa số cơ sở cần ít nhất các ghi đè theo mùa.
- Giấu tổng tiền đến bước cuối cùng. Hãy hiển thị tổng giá đầy đủ của kỳ lưu trú, kể cả các phí bạn đã biết, ngay trong kết quả.
- Chính sách bị chôn ở chân trang. Hãy hiển thị điều khoản hủy ngay cạnh nút thanh toán.
- Coi đồng bộ iCal là tức thời. Không phải vậy; hãy đóng ngày bằng tay khi gần đầy phòng.
Khi một sản phẩm có sẵn là lựa chọn tốt hơn
Nếu bạn điều hành hơn một số ít phòng, bán qua nhiều đại lý du lịch trực tuyến, hoặc cần dọn phòng, hóa đơn và báo cáo, một hệ thống quản lý cơ sở lưu trú có booking engine và channel manager tích hợp thường là lựa chọn đúng. Những sản phẩm này tồn tại để giải quyết việc bán trùng phòng giữa các kênh, và tự tái tạo điều đó cho tốt rất tốn kém.
Một website riêng phù hợp với cơ sở nhỏ chủ yếu nhận đặt trực tiếp, với kho phòng đặc thù (lều glamping, cabin dùng chung tiện nghi, phòng bán kèm hoạt động), hoặc khi bạn muốn thiết kế và trải nghiệm khách hàng của riêng mình mà không phải trả phí hằng tháng cho mỗi phòng. Một số chủ cơ sở kết hợp website riêng với một booking engine hosted nhúng vào đó, thường là lựa chọn tốt nhất của cả hai.
Xây dựng với Mythex
Trên Mythex, bạn mô tả cơ sở trong khung chat, xem lại website trong bản xem trước trực tiếp (kể cả khung kích cỡ điện thoại), và xuất bản khi mọi thứ hoạt động. Đặt phòng, phòng và giá nằm trong cơ sở dữ liệu Postgres mà agent thêm vào khi ứng dụng cần lưu dữ liệu; nó ngủ khi không dùng và thức dậy ở yêu cầu tiếp theo. Đăng nhập nhân viên, email xác nhận và tiền cọc được kết nối với nhà cung cấp và khóa riêng của bạn; Mythex không có sản phẩm đăng nhập, email hay thanh toán tích hợp cho người dùng cuối, vì vậy hãy đọc công thức Stripe trước khi thêm tiền cọc. Dùng /test để agent đi qua luồng tìm kiếm và đặt phòng, và checkpoint để hoàn tác một thay đổi làm hỏng tình trạng còn phòng.
Để có prompt khởi đầu, hãy xem trình tạo hệ thống đặt phòng khách sạn, trình tạo hệ thống đặt phòng nhà nghỉ, hoặc mẫu website đặt lều glamping. Với đặt theo giờ hoặc theo lịch hẹn thay vì theo đêm, xem hướng dẫn ứng dụng đặt lịch.
Câu hỏi thường gặp
Đặt phòng khách sạn khác đặt lịch hẹn như thế nào?
Khách sạn bán đêm lưu trú, không bán khung giờ. Bạn theo dõi số phòng trống của mỗi loại vào từng đêm, một kỳ lưu trú kéo dài nhiều đêm, và giá có thể thay đổi theo từng đêm.
Làm sao tránh bán trùng phòng khi tôi cũng bán trên các trang đặt phòng khác?
Mọi kênh phải dùng chung một nguồn dữ liệu về tình trạng còn phòng. Các cơ sở nhỏ thường đồng bộ lịch qua liên kết iCal, việc này không tức thời, nên hãy giữ một khoảng đệm hoặc đóng ngày nhanh chóng. Cơ sở lớn dùng một channel manager cập nhật mọi kênh gần như theo thời gian thực.
Khách có phải thanh toán toàn bộ khi đặt không?
Tùy vào chính sách của bạn. Các lựa chọn phổ biến là đặt cọc khi đặt phòng, thanh toán trước toàn bộ cho giá không hoàn tiền, hoặc lưu thẻ và trừ tiền sau. Dù chọn cách nào, hãy hiển thị chính sách hủy trước khi thanh toán.
Với một cơ sở nhỏ, website đặt phòng riêng có đáng không?
Với một B&B nhỏ, một website riêng với đặt yêu cầu hoặc đặt ngay đơn giản có thể hoạt động tốt. Khi bạn bán trên nhiều đại lý du lịch trực tuyến hoặc quản lý nhiều phòng, một hệ thống quản lý cơ sở lưu trú có booking engine và channel manager thường đáng với phí của nó.