เพิ่มบริการออนไลน์ (เลิกใช้งานแล้ว)

บริการออนไลน์หมายถึงบริการที่จัดผ่านระบบออนไลน์โดยสมบูรณ์ ผ่านแพลตฟอร์มที่โฮสต์ และไม่จําเป็นต้องให้ลูกค้าเข้าร่วมบริการ แบบเข้าร่วมด้วยตนเอง ตัวอย่างบริการออนไลน์อาจรวมถึง

  • คลาสโยคะออนไลน์ผ่าน 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 เมื่อใดและจากใครที่ ผู้ใช้ควรคาดหวังว่าจะได้รับรายละเอียดแพลตฟอร์ม
  • ข้อกำหนดของเซสชัน: ข้อกำหนดเกี่ยวกับเซสชันควรอธิบาย อุปกรณ์หรือวัสดุที่จำเป็นที่ผู้ใช้ต้องใช้ในการเข้าร่วม ชั้นเรียนได้อย่างมีประสิทธิภาพ คุณอาจใส่เนื้อหาเสริมที่ผู้ใช้อาจ แต่ให้ทำเครื่องหมายว่าไม่บังคับ
  • แพลตฟอร์ม: แพลตฟอร์มควรระบุแพลตฟอร์มที่ผู้ใช้จะ ใช้เพื่อเข้าถึงบริการออนไลน์
    • หากผู้ขายจะกำหนดแพลตฟอร์มในภายหลัง ตั้งค่า 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

พาร์ทเนอร์ควรส่งรายละเอียดการประชุม รายละเอียดการชำระเงิน และข้อมูลนโยบายการยกเลิกในอีเมลแยกต่างหากถึงผู้ใช้ หรือคุณจะส่งอีเมลช่วยเตือนก่อนถึงเวลานัดหมายหรือชั้นเรียนก็ได้ โปรดอ้างอิง เอกสารนโยบายเพื่อให้มั่นใจว่าคุณปฏิบัติตาม ไปยังนโยบายอีเมลสำหรับชั้นเรียนออนไลน์