// Info about a merchant that is on the aggregator's platform.
// A merchant feed should be a list of this message.
message Merchant {
// An opaque string generated by the partner that identifies a merchant.
// Must be unique across all merchants.
// Strongly recommended to only include URL-safe characters. (required)
string merchant_id = 1;
// The name, telephone, url and geo are used to support matching partner
// inventory with merchants already present on Google Maps. This information
// will not be displayed.
//
// The name of the merchant. (required)
string name = 2;
// The contact telephone number of the merchant including its country and area
// codes, e.g. +14567891234. Highly recommended. (optional)
string telephone = 3;
// The url of the merchant's public website. Highly recommended. (optional)
string url = 4;
// The Geo info of the merchant, including latitude, longitude, and address.
// (required)
GeoCoordinates geo = 5;
// The category of the business in aggregator's platform. (required)
// You should categorize this business as you categorize it in your inventory.
// We will use your provided category as a parameter in trying to determine
// the best location match to the physical business.
string category = 6;
// This field is deprecated, please use tax_rate instead.
uint32 tax_rate_basis_points = 8 [deprecated = true];
// The merchant's tax rate. If present this field overrides the deprecated
// tax_rate_basis_points field. An empty message (i.e. tax_rate { }) will
// reset the applied tax rate to zero.
//
// This field is required for payments integration. (optional)
TaxRate tax_rate = 9;
// Restrictions to the payment methods this merchant accepts. We assume no
// restrictions exist if this field is not set. (optional)
PaymentRestrictions payment_restrictions = 10;
// Payment options available for this merchant. Services under this merchant
// will be able to individually limit the payment options they allow.
// (optional)
repeated PaymentOption payment_option = 11;
// Configuration for a tokenized payment processor, if the merchant has
// support for it.
TokenizationConfig tokenization_config = 15;
// The specific merchant's Terms and Conditions displayed to the user when a
// service is being booked through Reserve with Google.
// In addition to these the aggregator partner's Terms and Conditions are
// always displayed to the user and must not be provided here. (optional)
Terms terms = 13;
// An opaque string that identifies the consumer-facing brand to use when
// displaying partner attribution. This field allows partners with multiple
// consumer-facing brands to provide merchants for all brands within the same
// feed.
//
// A brand consists of consumer-facing properties like the name, logo, Terms
// of Service, and Privacy Policy.
//
// If there is only one consumer-facing partner brand, this field does not
// need to be set and can be ignored.
//
// If the partner...
//
// Does not have multiple consumer-facing brands?
// --> Ignore this field
//
// Has Multiple Brands that are configured?
//
// If this field is set
// --> Associated consumer-facing brand attribution is used
//
// If this field is unset or the empty string
// --> Default consumer-facing brand attribution is used
//
// Careful Note: most partners do not need to set this field. If a partner
// wishes to use this field, they must contact us first to configure separate
// brands, including the default brand.
string brand_id = 14;
// Hints to help Google match a merchant to a place on Google Maps.
// Note: Typically, this field does not need to be set, as Google will match
// merchants to places on Google Maps using the information provided above.
// (optional)
MerchantMatchingHints matching_hints = 16;
// Definitions for any service attributes used to describe the Services for
// this Merchant. (optional)
repeated ServiceAttribute service_attribute = 17;
// An action URL with associated language, list of countries restricted to,
// type, and optional platform that indicates which platform this action
// should be performed on. This action link is specifically for the merchant,
// please use the ActionLink in the service feed to link to a specific
// service.
repeated ActionLink action_link = 20;
// General advisements from a specific merchant for a user joining a waitlist
// through Reserve with Google. Individual text fields in the advisement
// should be limited to 100 bytes in length.
Advisement waitlist_advisement = 22;
// Economic Operator information associated to this specific merchant, if
// applicable for an end to end payments integration.
// For further info, refer to:
// https://developers.google.com/actions-center/verticals/reservations/e2e/partner-portal/testing/regulatory-requirements#economic-operator
//
// (optional)
EconomicOperator economic_operator = 23;
}
GeoCoordinates – Définition
// The Geo data of a location, including latitude, longitude, and address.
// At least one of [lat/lng or address] should be provided (or both).
message GeoCoordinates {
// [-90, +90] degrees (inclusive). (optional)
double latitude = 1;
// [-180, +180] degrees (inclusive). (optional)
double longitude = 2;
// Address for a location, could either be structured or unstructured.
oneof addresses {
// Postal address of the location, preferred.
PostalAddress address = 3;
// An unstructured address could also be provided as a fallback.
// E.g. "1600 amphitheatre parkway mountain view, ca 94043"
string unstructured_address = 4;
}
}
PostalAddress – Définition
// The postal address for a merchant.
message PostalAddress {
// The country, using ISO 3166-1 alpha-2 country code, e.g. "US" (required)
string country = 1;
// The locality/city, e.g. "Mountain View". (required)
string locality = 2;
// The region/state/province, e.g. "CA". This field is only required in
// countries where region is commonly a part of the address. (optional)
string region = 3;
// The postal code, e.g. "94043". (required)
string postal_code = 4;
// The street address, e.g. "1600 Amphitheatre Pkwy". (required)
string street_address = 5;
}
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;
}
PaymentRestrictions – Définition
// Restrictions to the payment methods this merchant accepts.
message PaymentRestrictions {
// Restrictions to the credit cards this merchant accepts. We assume all
// credit cards are accepted if this field is not set.
// Note that the list of cards supported by CreditCardType will grow over
// time, meaning that leaving this empty subjects a configuration to future
// changes. (optional)
CreditCardRestrictions credit_card_restrictions = 1;
}
CreditCardRestrictions – Définition
// Restrictions to the credit card types this merchant accepts.
message CreditCardRestrictions {
// A credit card type.
enum CreditCardType {
// Unused.
CREDIT_CARD_TYPE_UNSPECIFIED = 0;
// A Visa credit card.
VISA = 1;
// A Mastercard credit card.
MASTERCARD = 2;
// An American Express credit card.
AMERICAN_EXPRESS = 3;
// A Discover credit card.
DISCOVER = 4;
// A JCB credit card.
JCB = 5;
}
// A list of supported credit cards. No credit cards are supported if empty.
// (optional)
repeated CreditCardType credit_card_type = 1;
}
Définition des options de paiement
// A payment option, which can be used to pay for services provided by a
// merchant. Payment options can be shared among multiple merchants
// (e.g. merchants belonging to the same chain).
message PaymentOption {
// An opaque string from an aggregator partner to identify a payment option.
//
// This id is global to the whole aggregator, and re-using a value across
// multiple merchants will allow a user to pay with the corresponding payment
// option across those merchants.
//
// When re-using an id across multiple merchants, updating any value for a
// payment option under one merchant will also update any other payment option
// with the same id, under a different merchant. As such, it's a best practice
// to have all payment options sharing the same id, always be updated to
// identical values, to avoid any possibility of nondeterministic behavior.
//
// Do NOT confuse it with the internal payment option id. (required)
string payment_option_id = 1;
// The name of the payment option. This can be user visible. (required)
string name = 2;
// A description of the payment option. This can be user visible. (optional)
string description = 3;
// The price of the payment option. (required)
Price price = 4;
// The tax rate for this payment option. If present this field overrides the
// tax_rate field present in the Merchant or Service. An empty message
// (i.e. tax_rate { }) will reset the applied tax rate to zero. (optional)
TaxRate tax_rate = 5;
// A payment option type.
enum PaymentOptionType {
// Unused.
PAYMENT_OPTION_TYPE_UNSPECIFIED = 0;
// Payment option can only be used once.
PAYMENT_OPTION_SINGLE_USE = 1;
// Payment option can be used if its session count > 0.
PAYMENT_OPTION_MULTI_USE = 2;
// Payment option can be used within its valid time range - session count
// is inapplicable.
PAYMENT_OPTION_UNLIMITED = 3;
}
// The type of this payment option. Single-use for drop-ins, multi-use for
// packs, and unlimited for memberships. (required)
PaymentOptionType payment_option_type = 6;
// How many sessions this payment option can be used for. Valid only for
// multi-session / packs, where the value should be > 1.
// (required if payment_option_type is PAYMENT_OPTION_MULTI_USE)
int64 session_count = 7;
// The payment option can be purchased within this interval. (optional)
TimeRange purchase_interval = 8;
// The payment option can be used within this interval (e.g. special price
// for January 2017).
// If present, this overrides valid_duration_sec and activation_type.
// (optional)
TimeRange valid_interval = 9;
// Duration of the payment option validity (e.g. 30 day membership).
// (optional)
int64 valid_duration_sec = 10;
// Defines how the validity start date is determined.
enum ActivationType {
// Unused.
ACTIVATION_TYPE_UNSPECIFIED = 0;
// Validity starts at the time of purchase.
ACTIVATION_ON_PURCHASE = 1;
// Validity starts when the payment option is used for the first time.
ACTIVATION_ON_FIRST_USE = 2;
}
// Defines how the validity start date is determined for this payment option.
// (required)
ActivationType activation_type = 11;
// Restricts the users eligible to purchase this payment option. Can be used
// to restrict a promotional payment option to a subset of users. If not set,
// all users are eligible. (optional)
UserPurchaseRestriction user_restriction = 12;
}
UserPurchaseRestriction – Définition
message UserPurchaseRestriction {
// A payment option that can only be purchased by users who have never
// purchased from the same merchant before. (required if new_to_payment_option
// is not set)
bool new_to_merchant = 1;
// A payment option that can only be purchased by users who have never
// purchased the same payment option before. (required if new_to_payment is
// not set)
bool new_to_payment_option = 2;
}
TimeRange – Définition
// A closed-open time range, i.e. [begin_sec, end_sec)
message TimeRange {
// Seconds of UTC time since Unix epoch (required)
int64 begin_sec = 1;
// Seconds of UTC time since Unix epoch (required)
int64 end_sec = 2;
}
TokenizationConfig – Définition
// A configuration for payment-processor tokenization, set up on a per-Merchant
// basis.
message TokenizationConfig {
// A tokenization configuration will typically have one
// tokenization_parameter whose key is "gateway" and whose value is the
// name of the processor.
//
// The rest of the parameters are dependent on the processor. See
// documentation from Google Pay and your processor for further information.
// https://developers.google.com/pay/api/web/object-reference# \
// PaymentMethodTokenizationSpecification
// https://developers.google.com/pay/api/#participating-google-pay-processors
//
// Braintree example:
// tokenization_parameter { key: "gateway" value: "braintree" }
// tokenization_parameter { key: "braintree:apiVersion" value: "v1" }
// tokenization_parameter { key: "braintree:sdkVersion" value: "2.30.0" }
// tokenization_parameter { key: "braintree:merchantId" value: "abcdef" }
// tokenization_parameter { key: "braintree:clientKey"
// value: "production_xxx_yyy" }
//
// Stripe example:
// tokenization_parameter { key: "gateway" value: "stripe" }
// tokenization_parameter { key: "stripe:version" value: "2018-02-28" }
// tokenization_parameter { key: "stripe:publishableKey" value: "pk_1234" }
//
// Adyen example:
// tokenization_parameter { key: "gateway" value: "adyen" }
// tokenization_parameter { key: "gatewayMerchantId" value: "yourId" }
map<string, string> tokenization_parameter = 1;
// The following field controls how much billing information to include in the
// payment token. Verification of billing information is the responsibility of
// Google Pay upon entry of Form Of Payment (FOP). If the FOP is currently in
// Google Pay without the requested level of billing information, the user
// will not see their FOP as a choice, and they will have to enter the FOP and
// required information according to the current Google Pay UI.
//
// Some merchants like to keep the requested information minimal because
// requesting more information can lead to lower conversion rates.
//
// Note that they can also go to payments.google.com to enhance an FOP but
// most users will not know to do so.
// How much of the Billing Address to require of the user and include in the
// token. The enum values correspond to parameters in the Google Pay API (see
// https://developers.google.com/pay/api/web/reference/object\
// #BillingAddressParameters).
enum BillingInformationFormat {
BILLING_INFORMATION_FORMAT_UNSPECIFIED = 0;
// name, country code, and postal code (GPay default setting).
MIN = 1;
// name, street address, locality, region, country code, and postal code
FULL = 2;
}
// Include in the payment token the user's billing information as entered into
// Google Pay with their FOP (see above).
BillingInformationFormat billing_information_format = 2;
// Name of the Merchant Of Record (MOR). This user-visible name will be shown
// in 3DS2 challenges. In some cases, this is the Merchant, in others this is
// the Aggregator.
string merchant_of_record_name = 3;
// Country where transaction will be processed, in ISO 3166-1 alpha-2 form.
string payment_country_code = 4;
// Per CardNetwork Processing information.
message CardNetworkParameters {
// The Card Network that these parameters are about
CreditCardRestrictions.CreditCardType card_network = 1;
// The Bank Identification Number of the acquiring bank used for processing
// of the card.
//
// If this value is not known to you, you should ask your acquirer or
// merchant processor representative.
string acquirer_bin = 2;
// The merchant identifier assigned by the acquirer to the merchant for use
// in transaction authorization (for Visa and American Express
// transactions).
//
// If this value is not known to you, you should ask the acquirer or
// merchant processor representative.
string acquirer_merchant_id = 3;
}
// Per-Card Network processing parameters.
//
// These are currently only required for PSD2
// (https://en.wikipedia.org/wiki/Payment_Services_Directive)
// processing when payment_country_code is a European country where PSD2 is in
// effect. They are also only currently required for VISA and
// AMERICAN_EXPRESS.
repeated CardNetworkParameters card_network_parameters = 5;
// Fields supported to authorize a card transaction.
//
// See the GPay documentation at
// https://developers.google.com/pay/api/web/reference/object#CardParameters
enum AuthMethod {
AUTH_METHOD_UNSPECIFIED = 0;
// This authentication method is associated with payment cards stored on
// file with the user's Google Account. Returned payment data includes
// personal account number (PAN) with the expiration month and the
// expiration year.
PAN_ONLY = 1;
// This authentication method is associated with cards stored as Android
// device tokens. Returned payment data includes a 3-D Secure (3DS)
// cryptogram generated on the device.
CRYPTOGRAM_3DS = 2;
}
// Defines types of cardholder data that are accepted by the gateway.
// If not specified, no restrictions are applied.
//
// Note that partners who use commercial gateways should leave this
// empty unless their gateway provider has specified otherwise. Restricting
// allowed_auth_methods is most useful in the scenario that a partner
// integrates with GPay as a gateway themselves.
repeated AuthMethod allowed_auth_methods = 6;
}
Terms – Définition
// A set of rules and guidelines that are displayed to the
// user in order to make a booking through Reserve with Google.
message Terms {
// The URL to the Terms and Conditions. (optional)
string url = 1;
// The text to be displayed to the user.
// Use localized_text below for new integrations.
string text = 2;
// The localized text to be displayed to the user. (required)
Text localized_text = 3;
}
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;
}
Définition des conseils
// Advisements that are displayed to the user when booking through Reserve with
// Google.
message Advisement {
// Custom message to be displayed to the user when booking through
// Reserve with Google.
Text text = 1;
}
Définition de l'opérateur EconomicOperator
// Economic Operator information for the Merchant.
message EconomicOperator {
// Name, address, telephone number and email address of the economic operator,
// defined as the manufacturer, authorized representative, importer,
// distributor, fulfillment service provider or any other natural or legal
// person subject to obligations related to the manufacture of products,
// making them available, or putting them into service.
// Freeform string representation of the economic_operator. This information
// may be formatted using " " and "\n".
Text text = 1;
}
MerchantMatchingHints – Définition
// Hints used to help Google match a merchant to a place on Google Maps.
message MerchantMatchingHints {
// The Place ID for a place in the Google Places database and on Google Maps.
// See https://developers.google.com/places/place-id for more about Place IDs.
// If this is provided, Google will use it as a hint when matching, and
// prioritize the hint over other candidates.
string place_id = 1;
}
ServiceAttribute – Définition
// Service attributes are partner-defined categories that describe the Services
// for a Merchant. For example, a bank may define an "Account Type"
// service attribute with possible values of "Personal" and "Business", while a
// hair salon may define a "Service Type" service attribute with possible
// values of "Haircut", "Color", and "Style".
message ServiceAttribute {
// An identifier that uniquely identifies this service attribute among others
// for the same merchant, e.g. "account-type".
string attribute_id = 1;
// A user-visible name for this attribute, e.g. "Account Type".
string attribute_name = 2;
// Represents a possible value for a particular service attribute.
message Value {
// An identifier that uniquely identifies this value among others for
// this service attribute, e.g. "personal".
string value_id = 1;
// A user-visible name for the value, e.g. "Personal".
string value_name = 2;
}
// All possible values for this service attribute.
repeated Value value = 3;
}
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;
}
OrderOnlineMetadata – Définition
// Metadata for an order online action link.
message OrderOnlineMetadata {
// Available fulfillment options for an order online action link.
repeated FulfillmentOption fulfillment_option = 1;
}
Définition de FulfillmentOption
// The fulfillment option for an order online action link.
message FulfillmentOption {
// The fulfillment type associated with an action link.
enum FulfillmentType {
// The fulfillment type is unspecified.
FULFILLMENT_TYPE_UNSPECIFIED = 0;
// The fulfillment type is delivery.
FULFILLMENT_TYPE_DELIVERY = 1;
// The fulfillment type is pickup.
FULFILLMENT_TYPE_PICKUP = 2;
}
// Required. The fulfillment type.
FulfillmentType fulfillment_type = 1;
// Day level availability.
message AvailableDay {
// Required. An available date for a fulfillment method. Assumed to be in
// merchant's timezone.
google.type.Date fulfillment_date = 1;
// Required. Unix timestamp. The last time a user could order, and receive
// items by `fulfillment_date`. In other words, after last_ordering_time,
// fulfillment_date will no longer be shown as available.
//
// For example, if the fulfillment_date is 2020-08-10:
// - a last_ordering_time value of 2020-08-10 18:00 means that, in order to
// receive their order on 2020-08-10, a customer must make that order by 6pm
// that same day.
// - a last_ordering_time value of 2020-08-08 20:00 means that, in order to
// receive their order on 2020-08-10, a customer must make that order by 8pm
// two days prior.
google.protobuf.Timestamp last_ordering_time = 2;
}
// Required. A list of days on which there is availability for this
// fulfillment method (preferably at least 2).
repeated AvailableDay available_day = 2;
// No fee required for the fulfillment method associated with the action link.
message NoFee {}
// The minimum fee required for the fulfillment method associated with the
// action link.
message MinimumFee {
// Required. The base fee amount for the fulfillment method.
Price base_fee_amount = 1;
}
// The fixed fee required for the fulfillment method associated with the
// action link.
message FixedFee {
// Required. The amount of the fixed fee for the fulfillment method.
Price amount = 1;
}
// Fee details for the fulfillment method associated with the action link.
message FeeDetails {
// Fee model for the fulfillment method.
oneof fee_details {
// No fee for the fulfillment method.
NoFee no_fee = 1;
// The base fee associated with the fulfillment method.
MinimumFee base_fee = 2;
// The fixed fee associated with the fulfillment method.
FixedFee fixed_fee = 3;
}
}
// Required. Fee details for the fulfillment method.
FeeDetails fee_details = 3;
// Required. Minimum order for the fulfillment method associated with the
// action link.
Price minimum_order = 4;
}
FoodOrderingMetadata – Définition
// Metadata for food ordering action links.
message FoodOrderingMetadata {
// Details of fees charged to the user on top of the item total.
// Repeated for different types of fees like service fee, delivery fee etc.
repeated FeeDetails fee_details = 1;
// Order fulfillment time duration from order confirmation.
// For delivery orders, time duration until the food is delivered.
// For pickup orders, time duration until the food is ready for pickup.
oneof fulfillment_duration_options {
// Fixed duration. For example: 30 mins.
google.protobuf.Duration fulfillment_lead_time_duration = 2
;
// A range of duration.
// Examples:
// * 30 mins to 45 mins
// * Greater than 30 mins
// * Less than 50 mins
DurationRange fulfillment_lead_time_duration_range = 4
;
}
// Details on advanced ordering support also known as order ahead where user
// can place an order for fulfillment at a later time than right now.
AdvanceOrderDetails advance_order_details = 3;
// Fee details.
message FeeDetails {
// Fee type.
enum FeeType {
// Fee type unspecified.
FEE_TYPE_UNSPECIFIED = 0;
// For delivery fees.
DELIVERY = 1;
// For service fees.
SERVICE = 2;
}
// Fee type. (required)
FeeType type = 1
;
// Fee amount either in unit currency, a percentage of the cart value, or a
// combination of both. (required)
FeeAmount fee_amount = 2
;
// `FeeAmount` examples:
// * Fixed fee: USD 0 (no fee), USD 1.5
// * Range of fixed fee: USD 1.0 (minimum), USD 3.0 (maximum), USD 5.0-6.0
// * Percentage of cart size: 15.5%, 10%-20%, 10% (minimum), 15% (maximum)
// * Compound of range and percentage:
// 25.5% & USD 2.5 (minimum), 25.5% & USD 4.5 (maximum),
// 10% & USD 1.5-2.5, 10.5%-20% & USD 2.5-3.5
message FeeAmount {
// Options to specify monetary amount.
oneof amount_options {
// Fixed amount. For example USD 3.5.
google.type.Money amount = 1;
// Range of amount.
// Upper and/or Lower bounds of fee range must be positive.
// Examples:
// * USD 3.5 to USD 5.5
// * At least USD 3.5
// * At most USD 5.5
MoneyRange amount_range = 2
;
// Unknown amount.
bool amount_unknown = 4;
}
// Fee in terms of a percentage of the cart value.
// Supports a range (bounded and unbounded) or a fixed percentage.
// Value should be between 0 (exclusive) and 100 (inclusive).
// Examples:
// * Fixed 5.5%
// * At least 5.5%
// * At most 5.5%
// * 4.5% to 5.5%
QuantitativeValue cart_percentage = 3
;
}
}
// For order ahead support.
message AdvanceOrderDetails {
// True if Advance Orders, also known as Order Ahead, is supported.
// (required)
bool is_supported = 1;
}
}
DurationRange – Définition
// Wrapper for a range of duration that can be bounded or unbounded.
// At least one of min_duration and max_duration duration is required.
message DurationRange {
// Minimum duration.
google.protobuf.Duration min_duration = 1
;
// Maximum duration.
google.protobuf.Duration max_duration = 2
;
}
MoneyRange – Définition
// Wrapper for a range of monetary amount that could be bounded or unbounded.
// At least one of min_amount and max_amount is required.
message MoneyRange {
// Minimum amount.
google.type.Money min_amount = 1
;
// Maximum amount.
google.type.Money max_amount = 2;
}
QuantitativeValue – Définition
// Wrapper for a numerical value that could be a range or a fixed value.
// `QuantitativeValue` examples:
// * Singular value: `value: 10.5`
// * Bounded range: `value_range {min_value: 5.5, max_value 10.5}`
// * Lower bound: `value_range {min_value: 5.5}`
// * Upper bound: `value_range {max_value: 10.5}`
message QuantitativeValue {
// Range of values such that `min_value` < `max_value`.
// Requires at least one of `min_value` and `max_value`.
message RangeValue {
// Minimum value.
double min_value =
1
;
// Maximum value.
double max_value =
2
;
}
// (required)
oneof value_options {
option (validator.one_of) = {
// A singular value. For example: 5.6
double value = 1;
// A range of values that could also be open ended or bounded.
// Examples:
// * At least 5.5
// * At most 5.5
// * 5.5 to 6.5
RangeValue value_range = 2
;
}
}
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/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2024/09/04 (UTC)."],[[["The Merchant Feed is a structured data format that provides information about businesses on a platform, primarily for enabling user actions."],["Merchants are described using attributes like ID, name, location, contact details, business category, and supported payment options."],["Action Links allow users to interact with merchants through specific actions like booking, ordering, or visiting a website."],["Metadata associated with actions provides details like pricing, fulfillment options, fees, and platform availability."],["The feed aims to streamline user interactions with businesses by providing structured and actionable information."]]],[]]