message ServiceFeed {
FeedMetadata metadata = 1;
repeated Service service = 2;
}
Service – Définition
// The definition of a service provided by a merchant.
message Service {
// An opaque string from an aggregator partner which uniquely identifies a
// merchant. (required)
string merchant_id = 1;
// An opaque string from an aggregator partner which uniquely identifies the
// service. (required)
string service_id = 2;
// The name of the service. Deprecated. Please use localized_service_name.
string name = 3 [deprecated = true];
// The name of the service, e.g. "Men's haircut". Possibly in several locales.
// (required)
Text localized_service_name = 26;
// The description of the service.
// Deprecated. Please use localized_description.
string description = 4 [deprecated = true];
// The description of the product. Limited formatting options are allowed in
// the HTML format. Supported tags:
// * h1-h5
// * ul, ol, li
// * strong, italic, em
// * p, br
// Other tags are not supported and will be removed. CSS, tables, style
// property, `a` links are not supported. Images are not allowed, use the
// related_media field instead.
// Important notes:
// * Try not to use other tags except for the supported ones mentioned
// above, because the contents within unsupported tags will be stripped,
// and may lead to an undesirable user experience.
// * Try avoid deep nested structures like more than 3 different heading
// levels or nested lists. Keeping the structure flat, simple, and
// straightforward, helps to create a better user experience.
// * Do not duplicate info from the product_features field below in the
// description as both would normally be shown side by side.
// Recommended to not exceed length of 10000 in any language. Max length:
// 16000.
// Recommended.
// (optional)
Text localized_description = 27;
// The price of the service. (optional, overridden when payment options or
// ticket types present)
Price price = 5;
// Describes how the price is interpreted and displayed to the user. Can be
// used by any vertical except Dining and Things To Do to configure display of
// the service price. (optional)
PriceInterpretation price_interpretation = 23;
// Rules to book/cancel an appointment. (optional)
SchedulingRules rules = 6;
// Enum to indicate the prepayment type.
enum PrepaymentType {
// By default we will assume that the prepayment is NOT_SUPPORTED.
PREPAYMENT_TYPE_UNSPECIFIED = 0;
// The user has to pay this service at the booking time.
REQUIRED = 1;
// The user can choose to pre-pay this service at the booking time or later,
// but it is not required in order to book.
OPTIONAL = 2;
// The prepayment is not supported for this service.
NOT_SUPPORTED = 3;
}
// Whether a prepayment is required, optional or not supported. (optional)
PrepaymentType prepayment_type = 8;
// Specific information around when prepayment is completed.
message PrepaymentTerms {
// Enum to specify when the charge will occur relative to the purchase
// time.
enum ChargeTiming {
CHARGE_TIMING_UNSPECIFIED = 0;
CHARGE_NOW = 1;
CHARGE_LATER = 2;
}
ChargeTiming charge_timing = 1;
}
PrepaymentTerms prepayment_terms = 34;
// The service's tax rate. If present this field overrides any tax_rate set at
// the merchant level. An empty message (i.e. tax_rate { }) will reset the
// applied tax rate to zero. (optional)
TaxRate tax_rate = 9;
// A list of ids referencing the payment options which can be used to pay
// for this service. The actual payment options are defined at the Merchant
// level, and can also be shared among multiple Merchants. (optional)
repeated string payment_option_id = 10;
// Defines how a deposit may be charged to the user. Can be overridden at the
// availability level. (optional)
Deposit deposit = 11;
// Defines a no show fee that may be charged to the user. Can be overridden
// at the availability level. (optional)
NoShowFee no_show_fee = 12;
// Indicates whether the user must provide a credit card in order to book this
// service.
// This value can be overridden at the availability level. (optional)
RequireCreditCard require_credit_card = 13;
// Additional information which needs to be added if the service requires the
// user to pay directly to the merchant. IMPORTANT NOTE: RwG would not be
// involved in this transaction. (Optional. Required if virtual_session is
// defined and prepayment_type is NOT set to REQUIRED).
DirectMerchantPayment direct_merchant_payment = 36;
// An action link related to this service. If action link exists, type (see
// below) must be set in the Service.
repeated ActionLink action_link = 14;
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;
// Services that provide event based ticketing (e.g. concerts, sporting
// events, shows). Do not use for Reserve with Google integrations.
SERVICE_TYPE_EVENT_TICKET = 3;
SERVICE_TYPE_TRIP_TOUR = 4;
// 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/maps-booking/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;
// Service that allows users to shop from the given merchant. It could
// either be delivery or pickup.
SERVICE_TYPE_SHOPPING = 9;
}
// The predefined type of this service. (optional)
ServiceType type = 15;
// Types of tickets that can be booked/purchased for this service. Only
// supported in order based booking API, see
// https://developers.google.com/maps-booking/guides/partner-implementing-booking-server-1a
// (optional)
repeated TicketType ticket_type = 16;
// Photos related to this service. Google will crawl these media to ensure
// that they are displayed correctly to end-users. (optional)
repeated RelatedMedia related_media = 17;
// Service attribute values that apply to this service (optional).
// Each Service may have zero or more values for each service attribute
// defined in the corresponding Merchant.
repeated ServiceAttributeValueId service_attribute_value_id = 18;
// Rules related to joining the waitlist. Should be populated if the service
// and merchant support waitlist functionality. Should not be populated
// otherwise.
WaitlistRules waitlist_rules = 19;
// Additional information unique to the event ticketing vertical. (optional)
TicketingVerticalSpecificData ticketing_vertical_specific_data = 22;
// User rating for this service as an aggregate metric over all reviews.
Rating rating = 30;
// Additional information unique to home service vertical. (optional)
HomeServiceData home_service_data = 31;
// Information about virtual session. (Optional. Required if enabling
// virtual services)
VirtualSession virtual_session = 35;
// Ranking hint for this service. Optional.
ServiceRankingHint ranking_hint = 37;
// A template specifying how Google should generate URLs to external site.
// Used for Dining Reservations Payment Redirect Partners only.
UriTemplate uri_template = 38;
}
Price – Définition
// The price of a service or a fee.
message Price {
// The price in micro-units of the currency.
// For example: 1.95 USD is 1950000 in micro-units.
// If your price contains fractions of the smallest currency unit, then it
// will be rounded using nearest even rounding (e.g. 2.5 cents rounded
// to 2 cents, 3.5 cents rounded to 4 cents, 0.5 cents rounded to 0 cents,
// 2.51 cents rounded to 3 cents). (required)
int64 price_micros = 1;
// The currency of the price that is defined in ISO 4217. (required)
string currency_code = 2;
// An optional and opaque string that identifies the pricing option that is
// associated with the extended price. (optional)
string pricing_option_tag = 3;
}
PriceInterpretation – Définition
// Describes how a Price should be interpreted and displayed to the user.
enum PriceInterpretation {
// Price interpretation unspecified, defaults to EXACT_AMOUNT.
PRICE_INTERPRETATION_UNSPECIFIED = 0;
// When the price should be interpreted as a specific value.
//
// Examples:
// $20 for a yoga class; $15 for a child haircut
EXACT_AMOUNT = 1;
// When the price of a service is variable but a minimum price is known and
// displayed to consumers. Consumers may make choices which increase the
// price.
//
// Note that any service that uses this PriceInterpretation must use
// PrepaymentType NOT_SUPPORTED.
//
// Examples:
// $30 for dog grooming, but additional consumer choices may increase the
// price
STARTS_AT = 2;
}
Text – Définition
// A possibly-localized text payload. Some Text fields may contain marked-up
// content.
message Text {
// Required. Text value in an unknown locale, which will be displayed if
// `localized_value` for the user locale is empty or missing. The locale for
// this value may depend on the partner or service provider, and it should not
// be assumed to be any specific language.
string value = 1;
// Per-locale text values. Required.
repeated LocalizedString localized_value = 2;
}
LocalizedString – Définition
// Instance of a string in one locale.
message LocalizedString {
// IETF BCP 47 language code, such as "en", "mas", "zh-Hant", "de-CH-1901".
// See http://www.w3.org/International/articles/language-tags/.
string locale = 1;
// Message in the locale above (UTF-8).
string value = 2;
}
SchedulingRules – Définition
// The scheduling rules for a service.
message SchedulingRules {
// The duration (in seconds) from when the last booking can be made to
// when the availability slot starts or ends.
//
// If "min_advance_booking" is set, the last bookable time is calculated as
// (<slot start time> - "min_advance_booking").
// If "min_booking_buffer_before_end_time" is set, the last bookable time is
// calculated as (<slot end time> - "min_booking_buffer_before_end_time").
// Note that the value of "min_booking_buffer_before_end_time" must be
// positive if set.
// If both are unset, the slot is bookable until the slot begin time. If both
// fields are set, only one value will be picked while the other value
// ignored--we cannot reliably predict which value is chosen.
//
// Examples:
// * A haircut that needs to be booked at least 1 hour before the start time.
// 'scheduling_rules{ min_advance_booking: 3600 ...}`
//
// * A museum where the last ticket can be purchased 30 mins before closing:
// 'scheduling_rules{ min_booking_buffer_before_end_time: 1800 ...}'
//
// * A movie ticket that needs to be purchased before the start time.
// 'scheduling_rules{ ...}' (leave this field empty)
// (optional)
oneof min_booking_buffer {
// The duration (in seconds) from when the last booking can be made to
// when the availability slot starts.
int64 min_advance_booking = 1;
// The duration (in seconds) from when the last booking can be made to
// when the availability slot ends. If this field is set, the
// "admission_policy" field must be set to TIME_FLEXIBLE to indicate that
// users can use the purchased tickets after slots start.
int64 min_booking_buffer_before_end_time = 6;
}
// The minimum advance notice in seconds required to cancel a booked
// appointment online. (optional)
int64 min_advance_online_canceling = 2;
// The fee for canceling within the minimum advance notice period.
Price late_cancellation_fee = 3 [deprecated = true];
// The fee for no-show without canceling.
Price noshow_fee = 4 [deprecated = true];
// The admission policy of this service.
enum AdmissionPolicy {
// Unused.
ADMISSION_POLICY_UNSPECIFIED = 0;
// Customers are required to be present at the start time of the
// availability slot, and the service is expected to finish at the
// end time of the slot.
// Examples of TIME_STRICT use cases:
// * A tour that starts at 9am that requires all attendees to arrive
// at the start time, and returns at around 12pm.
// * A haircut reservation at 3pm on Saturday that will take approximately
// 30 minutes.
// * A fitness class from 6pm to 8pm.
TIME_STRICT = 1;
// Customers can arrive at any time between the start and end time of the
// availability slot to use this booking.
//
// Examples of TIME_FLEXIBLE use cases:
// * A museum ticket that can be used during any time on the purchase
// date.
// * An afternoon admission to an amusement park that can be used from
// 12pm to 9pm.
TIME_FLEXIBLE = 2;
// Customers need to arrive at the merchant at the start time of the
// availability slot but can leave any time they want.
//
// For example, in the museum admission scenario, a timed entry ticket
// for 10am requires the user to be at the museum at 10am. The start time of
// availability slots for this service represents the designated entry
// time. The end time, however, is used solely as a key to identify the
// availability slot for booking.
TIMED_ENTRY_WITH_FLEXIBLE_DURATION = 3;
}
// The admission policy that applied to this service. If unset, defaults to
// TIME_STRICT. (optional)
AdmissionPolicy admission_policy = 5;
// Scheduling rules cancellation policy (required for Things-to-do).
// Defaults to non-refundable.
CancellationPolicy cancellation_policy = 7;
}
TaxRate – Définition
// A tax rate applied when charging the user for a service, and which can be set
// on either a per merchant, or per service basis.
message TaxRate {
// A tax rate in millionths of one percent, effectively giving 6 decimals of
// precision. For example, if the tax rate is 7.253%, this field should be set
// to 7253000.
//
// If this field is left unset or set to 0, the total price charged to a user
// for any service provided by this merchant is the exact price specified by
// Service.price. The service price is assumed to be exempt from or already
// inclusive of applicable taxes. Taxes will not be shown to the user as a
// separate line item.
//
// If this field is set to any nonzero value, the total price charged to a
// user for any service provided by this merchant will include the service
// price plus the tax assessed using the tax rate provided here. Fractions of
// the smallest currency unit (for example, fractions of one cent) will be
// rounded using nearest even rounding. Taxes will be shown to the user as a
// separate line item. (required)
int32 micro_percent = 1;
}
Deposit – Définition
// A deposit that the user may be charged or have a hold on their credit card
// for.
message Deposit {
// Deposit amount.
Price deposit = 1;
// Minimum advance cancellation for the deposit.
int64 min_advance_cancellation_sec = 2;
// Defines how the deposit is determined from the availability.
PriceType deposit_type = 3;
}
NoShowFee – Définition
// A fee that a user may be charged if they have made a booking but do not
// show up.
message NoShowFee {
// The amount the user may be charged if they do not show up for their
// reservation.
Price fee = 1;
// Defines how the fee is determined from the availability.
PriceType fee_type = 3;
}
PriceType – Définition
// Defines how a total price is determined from an availability.
enum PriceType {
// The price is for a fixed amount. This is the default value if the field is
// not set.
//
// Examples:
// $50 deposit to reserve a table; $20 no show fee for a yoga class
FIXED_RATE_DEFAULT = 0;
// The price specified is per person, and the total price is calculated
// according to the party size specified in Resources as price_micros *
// party_size. A PER_PERSON price must be accompanied by a party size in the
// availability resources. If it is not, a party size of one is used.
//
// Examples:
// $10 each for tickets to a museum
PER_PERSON = 1;
}
RequireCreditCard – Définition
// Defines whether a credit card is required in order to book an appointment.
enum RequireCreditCard {
// The credit card requirement is not explicitly specified and the
// behaviour is identical to the one specified for CONDITIONAL.
REQUIRE_CREDIT_CARD_UNSPECIFIED = 0;
// Google will require a credit card for the booking if any of the following
// conditions are met:
// * the availability has a price and the prepayment_type is REQUIRED
// * the no_show_fee is set
// * the deposit field is set.
REQUIRE_CREDIT_CARD_CONDITIONAL = 1;
// A credit card is always required in order to book this availability
// regardless of other field values.
REQUIRE_CREDIT_CARD_ALWAYS = 2;
}
ActionLink – Définition
// An action URL with associated language, list of countries restricted to, and
// optional platform that indicates which platform this action should be
// performed on.
message ActionLink {
// The entry point URL for this action link.
string url = 1;
// The BCP-47 language tag identifying the language in which the content
// from this URI is available.
string language = 2;
// An unordered list of ISO 3166-1 alpha-2 country codes. Leave empty for
// unrestricted visibility.
repeated string restricted_country = 3;
// The platform that this action should be performed on. If this field is
// unset, ACTION_PLATFORM_WEB_APPLICATION will be used as fallback.
ActionPlatform platform = 4;
// Predetermined type of action associated with an action link.
enum ActionLinkType {
// The action link type is unspecified.
ACTION_LINK_TYPE_UNSPECIFIED = 0;
// The action link type is booking an appointment.
ACTION_LINK_TYPE_BOOK_APPOINTMENT = 1;
// The action link type is booking an online appointment.
ACTION_LINK_TYPE_BOOK_ONLINE_APPOINTMENT = 2;
// The action link type is ordering food for delivery or takeout or both.
ACTION_LINK_TYPE_ORDER_FOOD = 3;
// The action link type is ordering food for delivery.
ACTION_LINK_TYPE_ORDER_FOOD_DELIVERY = 4;
// The action link type is ordering food for takeout.
ACTION_LINK_TYPE_ORDER_FOOD_TAKEOUT = 5;
// The action link type is making a dining reservation.
ACTION_LINK_TYPE_MAKE_DINING_RESERVATION = 6;
// The action link type allows users to shop from the given merchant. It
// could either be delivery or pickup.
ACTION_LINK_TYPE_SHOP_ONLINE = 7;
}
// Predetermined type of action associated with an action link.
ActionLinkType action_link_type = 5;
// Metadata for the order online link.
// Supports action with ActionLinkType of ACTION_LINK_TYPE_SHOP_ONLINE.
OrderOnlineMetadata order_online_metadata = 6;
// Metadata for Food Ordering links.
// Supports action type:
// * `ACTION_LINK_TYPE_ORDER_FOOD_DELIVERY`
// * `ACTION_LINK_TYPE_ORDER_FOOD_TAKEOUT`
// Does NOT support `ACTION_LINK_TYPE_ORDER_FOOD`
FoodOrderingMetadata food_ordering_metadata = 7
;
// Additional information about action link which is unique to the events
// vertical.
message EventMetadata {
// Predetermined event surface associated with an action link. This is only
// used for Events vertical.
enum Surface {
// The surface is unspecified.
SURFACE_UNSPECIFIED = 0;
// The action link is booking a event ticket in Search.
SURFACE_SEARCH = 1;
// The action link is booking a event ticket in YouTube.
SURFACE_YOUTUBE = 2;
// The action link is clicking on an Ad for the event.
SURFACE_ADS = 3;
}
// Predetermined event surface associated with an action link. This is only
// used for Events vertical.
Surface surface = 1;
}
EventMetadata event_metadata = 9;
reserved 8;
}
ActionPlatform – Définition
// The platform that the action is performed on. Web application is the general
// fallback. It is recommended to have at least one ActionLink with
// ACTION_PLATFORM_WEB_APPLICATION. Links with Android and iOS as platform are
// only used on the respective system.
enum ActionPlatform {
// The platform is unspecified.
ACTION_PLATFORM_UNSPECIFIED = 0;
// The action platform is web in general.
ACTION_PLATFORM_WEB_APPLICATION = 1;
// The action platform is web on mobile devices.
ACTION_PLATFORM_MOBILE_WEB = 2;
// The action platform is Android OS.
ACTION_PLATFORM_ANDROID = 3;
// The action platform is iOS.
ACTION_PLATFORM_IOS = 4;
}
Rating – Définition
// Defines Rating for an entity.
message Rating {
// Average rating value (required when number_of_ratings > 0).
// The value must be in the range of [1, 5] and can be omitted if and only if
// the number_of_ratings is zero.
double value = 1;
// Number of ratings used in calculating the value (required).
uint64 number_of_ratings = 2;
}
CancellationPolicy – Définition
// 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;
}
RelatedMedia – Définition
// Photos related to this service. Google will crawl these media to ensure
// that they are displayed correctly to end-users. (optional)
message RelatedMedia {
// URL of this media source. Google will crawl the media hosted at this URL.
string url = 1;
// Type of this media source.
MediaType type = 2;
// Enum to indicate the type of this media source. Only photos are supported.
// Please reach out to the Reserve with Google team if other media beyond
// photos need to be supported.
enum MediaType {
// Unused.
TYPE_UNSPECIFIED = 0;
// Indicates the media provided by the url is a photo.
PHOTO = 1;
}
// Caption of the media that supports i18n, only plain text is supported. Any
// HTML components will be stripped. (optional)
Text localized_caption = 5;
// Attribution information about the source of the media. Note that if
// the attribution is required to display with the media to give credit to
// photographer or agency, this field must be set. (optional)
Attribution attribution = 4;
// Attribution information for this media.
message Attribution {
// The text to give credit to the photographer or agency supporting i18n.
// This text will be displayed together with the source media. Note that
// only plain text is supported for this field, any HTML components will be
// stripped (hyperlink based attribution is not supported).
Text localized_text = 2;
// Deprecated, prefer to use localized_text.
string text = 1 [deprecated = true];
}
// Deprecated, prefer to use localized_caption.
string caption = 3 [deprecated = true];
}
ServiceAttributeValueId – Définition
// Identifies a particular value of a service attribute to be applied to a
// Service.
message ServiceAttributeValueId {
// ID of an attribute as defined in Merchant.service_attribute, e.g.
// "service-type".
string attribute_id = 1;
// ID of the value for this attribute, e.g. "haircut". Must match a value_id
// in the service attribute definition.
string value_id = 2;
}
WaitlistRules – Définition
// Rules related to joining the waitlist.
message WaitlistRules {
// Required. Must be a positive integer for services providing waitlist
// functionality. If the service or merchant does not provide waitlist
// functionality, this must not be populated.
int32 min_party_size = 1;
// Required. Must be a positive integer for services providing waitlist
// functionality. If the service or merchant does not provide waitlist
// functionality, this must not be populated.
int32 max_party_size = 2;
// If true, the user will be able to send a free-form additional text request
// when joining the waitlist for this service.
bool supports_additional_request = 3;
// Set options for parties larger than the set max_party_size.
// Leave empty if larger parties should not be given alternative options
// for joining a waitlist.
repeated UnsupportedPartySizeOption above_max_party_size_options = 4;
}
Définition de UnsupportedPartySizeOption
// Options for parties that are out of range.
message UnsupportedPartySizeOption {
// Available options for parties that are out of range.
oneof kind {
// Party sizes that are out of range can call the business.
// A predefined message will be displayed to the user.
// Sample text to be displayed: "For parties larger than
// {waitlist_rules.max_party_size} please call the restaurant at
// {restaurant phone number in Google maps}." CallMerchant must be
// set, but will be empty.
CallMerchant call_merchant = 1;
}
}
Définition CallMerchant
// Empty message to be used in UnsupportedPartySizeOption, setting this will
// display a pre-defined message to users to call the business for a booking.
message CallMerchant {}
HomeServiceData – Définition
// Additional information required to be provided for home service vertical.
message HomeServiceData {
// The high level category to which this home service belongs to. E.g.
// plumber, electrician etc.
string category_type = 1;
// The job type under the category to which the given home service belongs to.
// E.g. unclog_drain, install_faucet are the job types under plumber
// category.
string job_type = 2;
}
VirtualSession – Définition
// 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;
}
DirectMerchantPayment – Définition
// 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;
}
ServiceRankingHint Définition
// Ranking hints for a service.
message ServiceRankingHint {
// Arbitrary partner or merchant assigned rank for this service.
//
// Services with a higher score will be shown more prominently (e.g. shown
// higher in lists). Note that other factors may also influence ranking, such
// as price, availability, user history, etc.
//
// Optional. Must be non-negative if set.
float score = 1 [features.field_presence = EXPLICIT];
}
{
"metadata": {
"total_shards": 1,
"processing_instruction": "PROCESS_AS_COMPLETE",
"shard_number": 0,
"generation_timestamp": 1462926569
},
"service": [
{
"merchant_id": "fitness-1",
"service_id": "hathayogaclass",
"localized_service_name": {
"value": "Hatha Yoga Class",
"localized_value": [
{
"locale": "en",
"value": "Hatha Yoga Class"
}
]
},
"localized_description": {
"value": "Yoga master John will teach the basics of Hatha Yoga. Water and mat for purchase at the studio.",
"localized_value": [
{
"locale": "en",
"value": "Yoga master John will teach the basics of Hatha Yoga. Water and mat for purchase at the studio."
}
]
},
"price": {
"currency_code": "USD",
"price_micros": 30000000
},
"prepayment_type": "NOT_SUPPORTED"
},
{
"merchant_id": "fitness-1",
"service_id": "hotyogaclass",
"localized_service_name": {
"value": "Hot Yoga Class",
"localized_value": [
{
"locale": "en",
"value": "Hot Yoga Class"
}
]
},
"localized_description": {
"value": "Yoga master Jane will teach the basics of hot yoga. Water and mat for purchase at the studio.",
"localized_value": [
{
"locale": "en",
"value": "Yoga master Jane will teach the basics of hot yoga. Water and mat for purchase at the studio."
}
]
},
"price": {
"currency_code": "USD",
"price_micros": 30000000
},
"prepayment_type": "NOT_SUPPORTED"
}
]
}
À FAIRE: Services financiers
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/08/12 (UTC).
[null,null,["Dernière mise à jour le 2024/08/12 (UTC)."],[[["A `ServiceFeed` contains metadata and a list of services offered by a merchant, recommended to be uploaded in JSON format."],["Each `Service` within a `ServiceFeed` represents a specific offering with details like pricing, booking requirements, and payment options."],["Services can be categorized by `type` (e.g., dining, appointment) and further detailed with attributes like `ticket_type` or `virtual_session` for online appointments."],["Rich content such as multilingual names and descriptions, images, and external links can be included to enhance service listings."],["Specialized data structures like `SchedulingRules`, `WaitlistRules`, and industry-specific fields cater to diverse service offerings and operational needs."]]],[]]