Harthliving OTA · bản chữ cho AI · dựng từ vault (nguồn sửa lần cuối 29/09/2026 22:33) · mục lục: https://harthliving-ota.pages.dev/ai/index.txt URL (HTML): https://harthliving-ota.pages.dev/library/tech/ota-messages-readme/ # 19-Harthliving-OTA/status/messages — Tin nhắn gửi khách qua OTA Kho tin nhắn Harth Living gửi khách trong hộp thư của **Booking.com · Airbnb · Agoda**: tin chào sau khi đặt, hướng dẫn nhận phòng, nhắc trả phòng, cảm ơn sau khi đi. **Vì sao cần folder riêng, không nhét vào `03-posts/`:** post là nội dung marketing một-tới-nhiều, còn tin OTA là nội dung vận hành một-tới-một, có placeholder động, bị luật từng nền tảng ràng buộc và **cùng một nội dung phải cắt khác nhau cho từng kênh**. Trộn chung sẽ hỏng cả hai. **Đọc nhanh cả kho trên trình duyệt:** `/ota-messages booking` (hoặc `python3 scripts/ota-messages-viewer.py`) → `http://localhost:8866/?platform=booking` — mọi tin một trang, khối dán sẵn có nút Chép. Chỉ đọc. ## ⚠️ Bẫy khi gộp ba trang thành một file chia sẻ (23/09/2026) `build-ota-share-page.py` ghép ba trang độc lập của viewer vào MỘT tài liệu. Mỗi trang vốn tự do đặt `id` theo slug nên khi gộp lại **id trùng nhau giữa ba nền tảng**. Ba hậu quả đã gặp thật: 1. **Bấm mục thanh bên không nhảy** — trình duyệt tìm thấy `id` đầu tiên, nằm trong tab đang ẩn. 2. 🔴 **Nút Chép lấy nhầm bản** — `getElementById('paste-'+slug)` luôn trả về bản **Booking**, nên đứng ở tab Agoda bấm Chép lại ra bản Booking (có số điện thoại mà Agoda che thành `XXX`). Lỗi im lặng, nhìn trang không thấy gì bất thường. 3. **Tiêu đề đầu trang đứng yên ở "Booking.com"** vì thanh trên chỉ lấy từ trang Booking. Cách sửa đang dùng: gắn tiền tố `--` vào mọi `id` / `href="#…"` / `data-target`; bỏ ba bản `