Onlinedienste hinzufügen (eingestellt)

<ph type="x-smartling-placeholder">

Onlinedienstleistungen sind Dienstleistungen, die vollständig online angeboten werden. über eine gehostete Plattform und die Nutzung des Dienstes durch einen Kunden ist nicht erforderlich. vor Ort. Beispiele für Onlinedienste:

  • Online-Yogakurs über Zoom
  • Online-Make-up-Masterclass über Google Meet
  • Online-Angebot für Klempnerarbeiten über Skype

Teilnahmevoraussetzungen für Onlinedienste

Bevor Sie mit der Implementierung beginnen, Richtlinien und Best Practices für Onlinedienste.

<ph type="x-smartling-placeholder">

Implementierung von Onlinediensten

Die Integration von Onlinediensten ist ein Add-on für die bestehenden End-to-End-Termine Integration und erfordert einige Änderungen an einer vorhandenen Implementierung. Auf übergeordneter Ebene sehen Sie folgende Änderungen:

  • Feeds: Fügen Sie type, VirtualSession , DirectMerchantPayment und CancellationPolicy (sofern nicht bereits hinzugefügt) zu den Dienstleistungsfeeds
  • Buchungsserver: Fügen Sie der Methode „CreateBooking“ „VirtualSessionInfo“ hinzu. E-Mails mit Informationen zur virtuellen Einrichtung an den Nutzer senden
  • Echtzeitaktualisierungen (bestehendes Verhalten): Verarbeiten Sie Änderungen an virtuelles Inventar über die Echtzeitaktualisierung für InventoryUpdate nutzen, über die Echtzeitaktualisierung für BookingNotification und Änderungen am Service über Echtzeitaktualisierung für den Dienst

Feeds

Dienstleistungsfeed

Die folgenden Felder werden dem Dienstleistungsfeed hinzugefügt, um Onlinedienste zu unterstützen .

Spezifikationen des Dienstleistungsfeeds

 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;
}

Beispiel für einen Dienstleistungsfeed

{
  "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"
    }
  ]
}
  • Lokalisierte Beschreibung: Die Beschreibung sollte klar formuliert sein. worum es bei der Dienstleistung geht. Weitere Informationen finden Sie in der Best Practices-Leitfaden zur optimalen Strukturierung Ihrer Dienste Inhalte.
  • Sitzungsanleitung: Die Sitzungsanleitung sollte alle die erforderliche Einrichtung vornehmen und die in der
    • Wenn die Video-URL und die Besprechungs-ID der Plattform nicht automatisch erstellt werden als Teil von CreateBooking (Details werden z.B. nicht über CreateBookingResponse) sollten Sie im Feld session_instructions wann und von wer Nutzer sollten damit rechnen, dass ihnen die Plattformdetails gesendet werden.
  • Sitzungsanforderungen: Die Sitzungsanforderungen sollten alle Die erforderlichen Geräte oder Materialien, die ein Nutzer für seine Teilnahme benötigt effektiv zu kommunizieren. Sie können auch optionale Materialien zur Verfügung stellen, die Nutzer aber bitte markieren Sie sie als optional.
  • Plattform: Die Plattform sollte die Plattform angeben, auf die der Nutzer zugreifen soll. die Sie für den Zugriff auf den Online-Dienst verwenden.
    • Wird die Plattform später vom Händler ermittelt, Setzen Sie platform auf FLEXIBLE.
    • Wenn die vom Händler verwendete Plattform nicht in der Liste enthalten ist, legen Sie platform bis OTHER und geben Sie other_platform_name
  • Stornierungsrichtlinien: Achten Sie auf korrekte Stornierungsbedingungen. Richtlinien. Bei Erstattungen und Stornierungen CancellationPolicy festlegen zulässig sind. Wenn die Richtlinie nicht konfiguriert ist, wird angenommen, dass Erstattungen nicht Zulässig sind.

Verfügbarkeitsfeed

  • Spots Total (Spots insgesamt): Geben Sie hier die Gesamtkapazität der Teilnehmer ein. Für die Plattform zulässig (Mitarbeiter muss abgezogen werden)

Buchungsserver

Optional: Wenn Ihr System eine Besprechungs-ID und eine URL im Namen Ihres Händler, bitte VirtualSessionInfo als Teil Ihres CreateBookingResponse

CreateBooking-Spezifikation

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"
    }
  }
}

Real-time Updates (Echtzeitaktualisierungen)

Die vorhandene Logik zum Aktualisieren von Inventar oder Buchungen sollte beibehalten werden. für virtuelle Buchungen.

  • InventoryUpdate RTU: Alle Aktualisierungen der Slotänderungen in Ihrem oder das Actions Center-System, sollte ein InventoryUpdate auslösen, Echtzeitaktualisierung, um uns über Änderungen an Slots zu informieren.
  • BookingNotification – Echtzeitaktualisierung: Aktualisierungen von Buchungen (z.B. Änderung der Uhrzeit oder Stornierungen) in Ihrem System oder den Actions Center-System, sollte eine Echtzeitaktualisierung für "BookingNotification" auslösen, um dies zu benachrichtigen. zu Änderungen an einer Buchung.
    • Wenn ein Nutzer die Zahlung nicht an den Händler/Partner sendet, Sende uns bitte einen Echtzeitkurs zur Stornierung. Sie erhalten eine Stornierungs-E-Mail vom Actions Center.
  • Echtzeitaktualisierung für Dienste: Wenn Sie Dienste derzeit über einen Dienst aktualisieren RTU, achten Sie darauf, die entsprechenden Onlinedienstfelder anzugeben, wenn für einen Onlinedienst aktualisieren.

E-Mails

Standardmäßig sendet das Actions Center die standardmäßige Buchungsbestätigung, Änderungs- und Kündigungs-E-Mails, wenn ein Nutzer eine Transaktion auf der Actions Center-Plattform durchführt.

Partner sollten außerdem Konferenzdetails, Zahlungsdetails und Stornierungsrichtlinien in separaten E-Mails an den Nutzer gesendet. Optional können Sie vor dem Termin oder Kurs eine Erinnerungs-E-Mail senden. Bitte beachten Sie die Richtliniendokument, um sicherzustellen, zu den E-Mail-Richtlinien für virtuelle Kurse.