บริการออนไลน์หมายถึงบริการที่จัดผ่านระบบออนไลน์โดยสมบูรณ์ ผ่านแพลตฟอร์มที่โฮสต์ และไม่จําเป็นต้องให้ลูกค้าเข้าร่วมบริการ แบบเข้าร่วมด้วยตนเอง ตัวอย่างบริการออนไลน์อาจรวมถึง
- คลาสโยคะออนไลน์ผ่าน Zoom
- มาสเตอร์คลาสแต่งหน้าออนไลน์ผ่าน Google Meet
- ดูวิดีโอประเมินงานซ่อมประปาออนไลน์ผ่าน Skype
ข้อกำหนดของการได้รับสิทธิ์ให้บริการออนไลน์
ก่อนที่จะเริ่มติดตั้งใช้งาน โปรดอ่าน นโยบายและบริการออนไลน์ที่ดีที่สุด
การนำบริการออนไลน์ไปใช้งาน
การผสานรวมบริการออนไลน์เป็นส่วนเสริมของการนัดหมายที่มีอยู่แบบครบวงจร และต้องมีการเปลี่ยนแปลงบางอย่างกับการติดตั้งใช้งานที่มีอยู่ การเปลี่ยนแปลงต่อไปนี้ในระดับสูงมีดังนี้
- ฟีด: เพิ่ม
type
,VirtualSession
,DirectMerchantPayment
และCancellationPolicy
(หากยังไม่ได้เพิ่ม) ลงในฟีดบริการ - เซิร์ฟเวอร์การจอง: เพิ่ม VirtualSessionInfo ไปยังเมธอด CreateBooking ส่งอีเมลพร้อมข้อมูลการตั้งค่าเสมือนจริงให้ผู้ใช้
- การอัปเดตแบบเรียลไทม์ (การทำงานที่มีอยู่): จัดการกับการเปลี่ยนแปลง พื้นที่โฆษณาเสมือนผ่าน InventoryUpdate RTU การแก้ไข การจองผ่าน BookingNotification RTU และการเปลี่ยนแปลงบริการผ่าน RTU ของบริการ
ฟีด
ฟีดบริการ
ระบบจะเพิ่มช่องต่อไปนี้ลงในฟีดบริการเพื่อรองรับการใช้งานออนไลน์ บริการต่างๆ
ข้อกำหนดฟีดบริการ
enum ServiceType { SERVICE_TYPE_UNSPECIFIED = 0; // Service that provides dining reservation. SERVICE_TYPE_DINING_RESERVATION = 1; // Service that provides food ordering in general, could be either takeout // or delivery or both. SERVICE_TYPE_FOOD_ORDERING = 2; // Service that only provides food delivery. SERVICE_TYPE_FOOD_DELIVERY = 6; // Service that only provides food takeout. SERVICE_TYPE_FOOD_TAKEOUT = 7; // Service that provides appointments or classes. Recommended for (1) health // and fitness, (2) spa and beauty, and (3) financial consults and // evaluations services. Please see the supported service types: // https://developers.google.com/actions-center/guides/end-to-end-integration/overview SERVICE_TYPE_APPOINTMENT = 5; // Service that provides appointment for an online class or session which // will be fully virtual. Must be set if enabling virtual service bookings. SERVICE_TYPE_ONLINE_APPOINTMENT = 8; } // Information about virtual/online session. E.g. Online yoga class, virtual // cooking class etc. message VirtualSession { // Instructions on how this virtual class is set up. If the partner does not // include the video URL with the booking, then this text must include when // the video URL will be shared with the user. Eg. “Zoom url will be mailed // 30 minutes prior to the class”. (Recommended) // Only the folloiwng four tags are supported: <br>, <strong>, <em>, <i>. Text session_instructions = 1; // Requirements for the given virtual session. Eg. yoga mat, // cooking utensils etc. (Recommended) // Only the folloiwng four tags are supported: <br>, <strong>, <em>, <i>. Text session_requirements = 2; // Information about the virtual platform used in this session. (Required to // enable virtual services) message VirtualPlatformInfo { // Enum to indicate which virtual platform would be used by the merchant. enum Platform { PLATFORM_UNSPECIFIED = 0; // The merchant is flexible in which video platform they use. FLEXIBLE = 1; GOOGLE_HANGOUTS = 2; GOOGLE_MEET = 3; ZOOM = 4; SKYPE = 5; YOUTUBE = 6; // Should be set if the video platform used is different from the ones // mentioned here. OTHER = 7; } Platform platform = 1; // The name of the platform if the platform is set to OTHER. (Required if // platform is set to OTHER) Text other_platform_name = 2; } VirtualPlatformInfo virtual_platform_info = 3; // Set this as true if the virtual session is not live and is pre-recorded. // (Optional) bool is_session_prerecorded = 4; } // Information about how the user can pay directly to the merchant instead of // pre-paying for the service via RwG. message DirectMerchantPayment { // Users would be advised to pay only via the payment methods mentioned below. repeated Text payment_methods = 1; } // Cancellation policy for a service. message CancellationPolicy { // Defines a single refund condition. Multiple refund conditions could be // used together to describe "refund steps" as various durations before the // service start time. message RefundCondition { // Duration in seconds before the start time, until when the customer can // receive a refund for part of the service's cost specified in // `refund_percent`. // When set to 0 (default), the service can be cancelled at any time. int64 min_duration_before_start_time_sec = 1; // The percent that can be refunded, as long as the service booking is // cancelled at least `min_duration_before_start_time` before the service // start time, in the range of [0, 100]. When set to 0 (default), the // service is not refundable. When set to 100 this service is fully // refundable. uint32 refund_percent = 2; } // Zero or more refund conditions applicable to the policy. repeated RefundCondition refund_condition = 1; }
ตัวอย่างฟีดบริการ
{ "service": [ { "merchant_id": "100", "service_id": "100-1", "type" : "SERVICE_TYPE_ONLINE_APPOINTMENT", "localized_service_name": { "value": "Makeup masterclass", "localized_value": [ { "locale": "en", "value": "Makeup masterclass" } ] }, "localized_description": { "value": "Learn how to do runway makeup from an award winning makeup artist.", "localized_value": [ { "locale": "en", "value": "Learn how to do runway makeup from an award winning makeup artist." } ] }, "virtual_session": { "session_instructions": { "value": "You must have access to a computer, and a solid internet connection. Class registration link will be sent to you 15 mins before the start of the class. The class link will be accessible 1 day after the class. ", "localized_value": [ { "locale": "en", "value": "You must have access to a computer, and a solid internet connection. Class registration link will be sent to you 15 mins before the start of the class. The class link will be accessible 1 day after the class. " } ] }, "session_requirements": { "value": "makeup brush, makeup palette, mirror", "localized_value": [ { "locale": "en", "value": "makeup brush, makeup palette, mirror" } ] }, "virtual_platform_info": { "platform": "OTHER", "other_platform_name": "Susan's hosted platform" } }, "direct_merchant_payment": { "payment_methods": [ { "value": "Venmo", "localized_value": [ { "locale": "en", "value": "Venmo" } ] } ] }, "price": { "price_micros": 75000000, "currency_code": "USD" }, "rules": { "min_advance_booking": 0, "min_advance_online_canceling": 86400, "cancellation_policy": { "refund_condition": [ { "min_duration_before_start_time_sec": 3600, "refund_percent": 100 } ] } }, "prepayment_type": "NOT_SUPPORTED", "tax_rate": { "micro_percent": 7750000 } }, { "merchant_id": "100", "service_id": "100-2", "type" : "SERVICE_TYPE_ONLINE_APPOINTMENT", "localized_service_name": { "value": "Advanced Vinyasa Yoga", "localized_value": [ { "locale": "en", "value": "Advanced Vinyasa Yoga" } ] }, "localized_description": { "value": "Learn the advanced techniques of vinyasa yoga taught by award winning yoga instructors.", "localized_value": [ { "locale": "en", "value": "Learn the advanced techniques of vinyasa yoga taught by award winning yoga instructors." } ] }, "virtual_session": { "session_instructions": { "value": "You must have access to a computer, and a solid internet connection. Class registration link will be included in an email from the merchant.", "localized_value": [ { "locale": "en", "value": "You must have access to a computer, and a solid internet connection. Class registration link will be included in an email from the merchant." } ] }, "session_requirements": { "value": "yoga mat, dumbbells", "localized_value": [ { "locale": "en", "value": "yoga mat, dumbbells" } ] }, "virtual_platform_info": { "platform": "ZOOM" } }, "price": { "price_micros": 40000000, "currency_code": "USD" }, "rules": { "min_advance_booking": 0, "min_advance_online_canceling": 86400, "cancellation_policy": { "refund_condition": [ { "min_duration_before_start_time_sec": 86400, "refund_percent": 100 }, { "min_duration_before_start_time_sec": 3600, "refund_percent": 50 } ] } }, "prepayment_type": "REQUIRED", "tax_rate": { "micro_percent": 7750000 }, "require_credit_card": "REQUIRE_CREDIT_CARD_ALWAYS" } ] }
- คำอธิบายที่แปลแล้ว: คำอธิบายควรชี้แจงอย่างชัดเจน บริการเกี่ยวกับอะไร โปรดอ้างอิง คู่มือแนวทางปฏิบัติแนะนำเกี่ยวกับวิธีจัดโครงสร้างบริการที่ดีที่สุด เนื้อหา
- วิธีการสําหรับเซสชัน: วิธีการสําหรับเซสชันควรอธิบาย
การตั้งค่าที่จำเป็นและเป็นไปตามคำแนะนำที่ระบุไว้ใน
นโยบาย
- หากไม่ได้สร้าง URL ของวิดีโอแพลตฟอร์มและรหัสการประชุมโดยอัตโนมัติ
เป็นส่วนหนึ่งของ CreateBooking (เช่น ไม่ได้ส่งรายละเอียดผ่าน
CreateBookingResponse
) คุณควรระบุอย่างชัดเจนในsession_instructions
เมื่อใดและจากใครที่ ผู้ใช้ควรคาดหวังว่าจะได้รับรายละเอียดแพลตฟอร์ม
- หากไม่ได้สร้าง URL ของวิดีโอแพลตฟอร์มและรหัสการประชุมโดยอัตโนมัติ
เป็นส่วนหนึ่งของ CreateBooking (เช่น ไม่ได้ส่งรายละเอียดผ่าน
- ข้อกำหนดของเซสชัน: ข้อกำหนดเกี่ยวกับเซสชันควรอธิบาย อุปกรณ์หรือวัสดุที่จำเป็นที่ผู้ใช้ต้องใช้ในการเข้าร่วม ชั้นเรียนได้อย่างมีประสิทธิภาพ คุณอาจใส่เนื้อหาเสริมที่ผู้ใช้อาจ แต่ให้ทำเครื่องหมายว่าไม่บังคับ
- แพลตฟอร์ม: แพลตฟอร์มควรระบุแพลตฟอร์มที่ผู้ใช้จะ
ใช้เพื่อเข้าถึงบริการออนไลน์
- หากผู้ขายจะกำหนดแพลตฟอร์มในภายหลัง
ตั้งค่า
platform
เป็นFLEXIBLE
- หากแพลตฟอร์มที่ผู้ขายใช้อยู่ไม่อยู่ในรายการ ให้ตั้งค่า
platform
ถึงOTHER
และระบุother_platform_name
- หากผู้ขายจะกำหนดแพลตฟอร์มในภายหลัง
ตั้งค่า
- นโยบายการยกเลิก: การยกเลิกที่ถูกต้องเป็นสิ่งสำคัญ
ตั้งค่า
CancellationPolicy
หากมีการขอเงินคืนและยกเลิก ได้ สมมติฐานเริ่มต้นหากไม่ได้ตั้งค่าคือ การคืนเงินจะไม่ อนุญาต
ฟีดความพร้อมจำหน่ายสินค้า
- จำนวนทั้งหมดของสปอต: กำหนดจำนวนผู้เข้าร่วมทั้งหมด ที่ได้รับอนุญาตสำหรับแพลตฟอร์ม (อย่าลืมหักลบจำนวนพนักงานออก)
เซิร์ฟเวอร์การจอง
ไม่บังคับ: หากระบบของคุณสร้างรหัสการประชุมและ URL ในนามของ
ผู้ขาย โปรดระบุ VirtualSessionInfo
เป็นส่วนหนึ่งของ
CreateBookingResponse
สร้างข้อกำหนดการจอง
message Booking { // Information related to the virtual session which was booked. message VirtualSessionInfo { // URL which was created for the virtual session. (optional) string session_url = 1; // The meeting id which was created for the virtual session. (optional) string meeting_id = 2; // Password required to access the session. (optional) string password = 3 [(datapol.semantic_type) = ST_ACCOUNT_CREDENTIAL]; } VirtualSessionInfo virtual_session_info = X; }
CreateBookingRequest
{ "idempotency_token": "10000000000", "payment_information": { "prepayment_status": "PREPAYMENT_NOT_PROVIDED" }, "slot": { "confirmation_mode": "CONFIRMATION_MODE_SYNCHRONOUS", "duration_sec": "3600", "merchant_id": "10001", "service_id": "10001-1", "start_sec": "1586829600" }, "user_information": { "email": "john.doe@gmail.com", "family_name": "John", "given_name": "Doe", "telephone": "+123 456 7890", "user_id": "110291237" } }
CreateBookingResponse
{ "booking": { "bookingId": "abcdefg-12345", "slot": { "merchantId": "10001", "serviceId": "10001-1", "startSec": "1586804400", "durationSec": "3600" }, "userInformation": { "userId": "110291237", "givenName": "John", "familyName": "Doe", "telephone": "+123 456 7890", "email": "john.doe@gmail.com" }, "status": "CONFIRMED", "virtual_session_info": { "video_url": "meet.google.com/abcd-efg", "meeting_id": "abcd-efg", "password" : "somepassword" } } }
การอัปเดตแบบเรียลไทม์
ควรใช้ตรรกะที่มีอยู่สำหรับการอัปเดตสินค้าคงคลังหรือการจอง สำหรับการจองออนไลน์
- RTU สำหรับการอัปเดตสินค้าคงคลัง: การอัปเดตเมื่อมีการเปลี่ยนแปลงช่องในบัญชี หรือระบบของ Actions Center ควรเริ่มการทำงานของ InventoryUpdate RTU เพื่อแจ้งให้เราทราบเกี่ยวกับการเปลี่ยนแปลงในช่อง
-
BookingNotification RTU: การอัปเดตการจอง
(เช่น การแก้ไขเวลาหรือการยกเลิก) ในระบบหรือ
ระบบ Actions Center ควรเริ่มระบบ BookingNotification RTU เพื่อแจ้งเตือน
การเปลี่ยนแปลงการจอง
- หากผู้ใช้ไม่ได้ชำระเงินให้กับผู้ขาย/พาร์ทเนอร์ โปรด ส่ง RTU การยกเลิกมาให้เรา ระบบจะส่งอีเมลยกเลิกภายใน Actions Center
- RTU ของบริการ: หากคุณอัปเดตบริการผ่านบริการหนึ่งๆ อยู่ในปัจจุบัน RTU โปรดใส่ช่องบริการออนไลน์ที่เหมาะสมในกรณีต่อไปนี้ การอัปเดตสำหรับบริการออนไลน์
อีเมล
โดยค่าเริ่มต้น Actions Center จะส่งการยืนยันการจองมาตรฐาน อีเมลการแก้ไขและการยกเลิกเมื่อผู้ใช้ทำธุรกรรมในแพลตฟอร์ม Actions Center
พาร์ทเนอร์ควรส่งรายละเอียดการประชุม รายละเอียดการชำระเงิน และข้อมูลนโยบายการยกเลิกในอีเมลแยกต่างหากถึงผู้ใช้ หรือคุณจะส่งอีเมลช่วยเตือนก่อนถึงเวลานัดหมายหรือชั้นเรียนก็ได้ โปรดอ้างอิง เอกสารนโยบายเพื่อให้มั่นใจว่าคุณปฏิบัติตาม ไปยังนโยบายอีเมลสำหรับชั้นเรียนออนไลน์