REST Resource: inventory.partners.merchants.services

Ресурс: Сервис

Информация об услуге, предоставляемой продавцом, например, стрижка.

JSON-представление
{
  "name": string,
  "serviceName": string,
  "localizedServiceName": {
    object (Text)
  },
  "description": string,
  "localizedDescription": {
    object (Text)
  },
  "price": {
    object (Price)
  },
  "priceInterpretation": enum (PriceInterpretation),
  "rules": {
    object (SchedulingRules)
  },
  "prepaymentType": enum (PrepaymentType),
  "prepaymentTerms": {
    object (PrepaymentTerms)
  },
  "form": [
    {
      object (ServiceIntakeForm)
    }
  ],
  "intakeForm": {
    object (ServiceIntakeForm)
  },
  "perTicketIntakeForm": {
    object (ServiceIntakeForm)
  },
  "taxRate": {
    object (TaxRate)
  },
  "paymentOptionId": [
    string
  ],
  "deposit": {
    object (Deposit)
  },
  "noShowFee": {
    object (NoShowFee)
  },
  "requireCreditCard": enum (RequireCreditCard),
  "actionLink": [
    {
      object (ActionLink)
    }
  ],
  "type": enum (ServiceType),
  "ticketType": [
    {
      object (TicketType)
    }
  ],
  "relatedMedia": [
    {
      object (RelatedMedia)
    }
  ],
  "serviceAttributeValueId": [
    {
      object (ServiceAttributeValueId)
    }
  ],
  "waitlistRules": {
    object (WaitlistRules)
  },
  "ticketingVerticalSpecificData": {
    object (TicketingVerticalSpecificData)
  },
  "integrationType": enum (IntegrationType),
  "perOrderFee": {
    object (PerOrderFee)
  },
  "toursAndActivitiesContent": {
    object (ToursAndActivitiesContent)
  },
  "location": [
    {
      object (Location)
    }
  ],
  "rating": {
    object (Rating)
  },
  "homeServiceData": {
    object (HomeServiceData)
  },
  "virtualSession": {
    object (VirtualSession)
  },
  "directMerchantPayment": {
    object (DirectMerchantPayment)
  }
}
Поля
name

string

Имя ресурса службы в формате partners/{partner_id}/merchants/{merchantId}/services/{serviceId} .

serviceName

string

Название услуги, например «Мужская стрижка». Устарело, вместо этого используйте localizedServiceName.

localizedServiceName

object ( Text )

Название услуги, например «Мужская стрижка». Возможно, в нескольких регионах.

description

string

Видимое пользователю описание услуги. Устарело, вместо этого используйте localizedDescription.

localizedDescription

object ( Text )

Видимое пользователю описание услуги.

Это поле поддерживает форматирование как в виде обычного текста, так и в формате HTML. В отличие от разделов с обычным текстом, здесь можно создавать индивидуальные макеты с использованием заголовков, абзацев, списков и некоторых фразовых тегов. Пожалуйста, внимательно прочитайте следующие инструкции и примечания, чтобы обеспечить максимальное удобство для пользователя.

Поддерживаемые HTML-теги форматирования:

Теги заголовков: <h1>, <h2>, <h3>, <h4>, <h5>, <h6>
Теги заголовков можно использовать для отображения заголовков и подзаголовков. Например, <h1>Маршрут</h1> отобразит встроенный текст в качестве самого важного заголовка раздела. Обратите внимание, что любые внутренние теги, стили и атрибуты HTML будут игнорироваться. Например, <h1 style=".."> будет обрабатываться так же, как <h1>. Сохранится только чистый текст.

Тег абзаца: <p>
Тег абзаца можно использовать для выделения подробного введения или содержания. Любые внутренние теги, стили или атрибуты будут игнорироваться, за некоторыми исключениями: <br>, <strong> и <em>. Более подробную информацию см. в разделе фразовых тегов ниже.

Теги списка: <ul>, <ol>, <li>
Тег <ul> можно использовать с тегом <li> для отображения неупорядоченных списков, а тег <ol> можно использовать с <li> для отображения упорядоченных списков. Это хороший способ отображать контрольные списки, расписания или любые другие списки, соответствующие вашим сценариям использования.
Пример: Чтобы показать список особенностей круизного путешествия:
<ол>
<li>Прекрасный вид на океан и возможность поиграть с дикой природой.</li>
<li>Тщательно продуманная организация поездок и услуг.</li>
<li>Гарантированная самая низкая цена.</li>
</ол>
Обратите внимание, что будут преобразованы только дочерние элементы <li> в тегах <ul> или <ol>. Все остальные дети будут отброшены. Кроме того, любые внутренние теги, атрибуты и стили будут игнорироваться; мы сохраняем только чистое текстовое содержимое.

Тег подразделения: <div>
Все поддерживаемые внутренние теги тега <div> будут анализироваться с соблюдением правил, изложенных выше. Это означает, что сам тег <div> не означает никакой группировки или отступов. Кроме того, любые внутренние атрибуты и стили будут игнорироваться.

Фразовые теги: <br>, <strong>, <em>:
Поддерживаются только три тега, упомянутые выше. <br> можно использовать для разрыва строк в абзацах, а <strong>/<em> — для выделения важного текста. Любые другие теги фраз будут игнорироваться.

Неподдерживаемые теги:

  • Теги <html>, <header> и <body> не допускаются.
  • Любые другие теги, не упомянутые выше, не поддерживаются (например, <table>, <td> ...).
    Любые URL-адреса, привязки и ссылки будут удалены и никогда не будут отображаться конечным пользователям. Если вы хотите использовать фотографии для создания интересного пользовательского опыта, используйте поле «связанные медиа» ниже, чтобы отправить URL-адреса своих фотографий.

Важные примечания:

  • Старайтесь не использовать другие теги, за исключением упомянутых выше поддерживаемых, поскольку содержимое неподдерживаемых тегов будет удалено и может привести к нежелательному взаимодействию с пользователем.
  • Старайтесь избегать глубоких вложенных структур, таких как более трех разных уровней заголовков или вложенных списков. Сохранение плоской, простой и понятной структуры помогает улучшить взаимодействие с пользователем.
  • Если поддерживаемых в настоящее время макетов недостаточно для ваших сценариев использования, обратитесь в команду «Зарезервировать через Google».
  • Рекомендуемый максимальный размер — 32 000 символов.
price

object ( Price )

Цена услуги.

priceInterpretation

enum ( PriceInterpretation )

Описывает, как цена интерпретируется и отображается пользователю. Может использоваться в любой отрасли, кроме ресторанов и развлечений, для настройки отображения цены на услугу.

rules

object ( SchedulingRules )

Правила записи/отмены записи.

prepaymentType

enum ( PrepaymentType )

Требуется ли предоплата, не является обязательной или не поддерживается.

prepaymentTerms

object ( PrepaymentTerms )

Условия примерно после завершения предоплаты.

form[]
(deprecated)

object ( ServiceIntakeForm )

Устарело. Пожалуйста, используйте IntakeForm и perTicketIntakeForm.

intakeForm

object ( ServiceIntakeForm )

Форма, запрашивающая дополнительную информацию у пользователя при бронировании этой услуги. (необязательный)

perTicketIntakeForm

object ( ServiceIntakeForm )

Форма, запрашивающая дополнительную информацию у пользователя при бронировании этой услуги. Эту форму необходимо заполнить один раз для каждого билета, который бронирует пользователь. (необязательный)

taxRate

object ( TaxRate )

Налоговая ставка услуги. Если это поле присутствует, оно переопределяет любой параметр TaxRate, установленный на уровне продавца. Пустое сообщение (т. е. TaxRate { }) сбросит применяемую ставку налога на ноль.

paymentOptionId[]

string

Список идентификаторов, ссылающихся на варианты оплаты, которые можно использовать для оплаты этой услуги. Фактические варианты оплаты определяются на уровне продавца, а также могут использоваться несколькими продавцами.

deposit

object ( Deposit )

Определяет способ списания депозита с пользователя. Переопределяет депозит за обслуживание, если он был указан. Установка пустого сообщения о депозите удаляет любой депозит на уровне обслуживания. (необязательный)

noShowFee

object ( NoShowFee )

Определяет плату за неявку, которая может взиматься с пользователя. Отменяет плату за неявку за услугу, если она была указана. Установка пустого сообщения NoShowFee удаляет любую плату за неявку на уровне обслуживания. (необязательный)

requireCreditCard

enum ( RequireCreditCard )

Указывает, должен ли пользователь предоставить кредитную карту, чтобы забронировать эту услугу. Это поле можно переопределить на уровне доступности. (необязательный)

type

enum ( ServiceType )

Предопределенный тип этой службы. (необязательный)

ticketType[]

object ( TicketType )

Типы билетов, которые можно забронировать/купить для этой услуги, если билеты поддерживаются. (необязательный)

relatedMedia[]

object ( RelatedMedia )

Фотографии, относящиеся к этой услуге. Google будет сканировать и хранить медиафайлы, чтобы обеспечить их наиболее эффективное отображение конечным пользователям. (необязательный)

serviceAttributeValueId[]

object ( ServiceAttributeValueId )

Значения атрибутов службы, применимые к этой службе (необязательно). Каждая Услуга может иметь ноль или более значений для каждого атрибута услуги, определенного в соответствующем Продавце. (необязательный)

waitlistRules

object ( WaitlistRules )

Правила записи в лист ожидания.

ticketingVerticalSpecificData

object ( TicketingVerticalSpecificData )

Дополнительная информация, уникальная для отрасли продажи билетов на мероприятия. (необязательный)

integrationType

enum ( IntegrationType )

Глубину интеграции, которую мы поддерживаем для этого сервиса. (опционально) Неактуально для партнеров со стартовой интеграцией. Для этих партнеров сквозная связь всегда будет отключена.

perOrderFee

object ( PerOrderFee )

Комиссия на уровне заказа за приобретение этой услуги. (необязательный)

toursAndActivitiesContent

object ( ToursAndActivitiesContent )

Поля контента, специфичные для туров и мероприятий.

location[]

object ( Location )

Места, связанные с этой услугой. ВАЖНЫЕ ПРИМЕЧАНИЯ. Если с этой услугой связано несколько посещенных мест или START_LOCATION отличается от VISITED_LOCATION, необходимо указать START_LOCATION. Пример: - Велосипедная экскурсия с посещением трех объектов, необходимо указать место начала. - Встреча на автобусе в вестибюле отеля, а затем отправление к посещаемому месту. Место встречи необходимо указать.

rating

object ( Rating )

Рейтинг пользователей этого сервиса как совокупный показатель по всем отзывам.

homeServiceData

object ( HomeServiceData )

Дополнительная информация, уникальная для сферы услуг на дому. (необязательный)

virtualSession

object ( VirtualSession )

Необязательный. Информация о виртуальной сессии. Это необходимо для включения виртуальных сервисов.

directMerchantPayment

object ( DirectMerchantPayment )

Необязательный. Дополнительная информация, которую необходимо добавить, если услуга требует от пользователя оплаты непосредственно продавцу. ВАЖНОЕ ПРИМЕЧАНИЕ: RwG не будет участвовать в этой сделке. Это необходимо, если определена виртуальная сессия и услуга не является бесплатной или для параметра prepaidType НЕ установлено значение REQUIRED.

ЦенаИнтерпретация

Описывает, как цена должна интерпретироваться и отображаться пользователю.

Перечисления
PRICE_INTERPRETATION_UNSPECIFIED Интерпретация цены не указана, по умолчанию равна EXACT_AMOUNT.
EXACT_AMOUNT

Когда цену следует интерпретировать как конкретную величину.

Примеры: 20 долларов за занятие йогой; 15 долларов за детскую стрижку

STARTS_AT

Когда цена услуги является переменной, но минимальная цена известна и отображается потребителям. Потребители могут сделать выбор, который приведет к увеличению цены.

Обратите внимание, что любая служба, использующая эту PriceInterpretation, должна использовать PrepaidType NOT_SUPPORTED.

Примеры: 30 долларов за уход за собакой, но дополнительные потребительские возможности могут увеличить цену.

NOT_DISPLAYED

Когда цена услуги является переменной и информация о цене не отображается потребителям заранее.

Обратите внимание, что любая служба, использующая эту PriceInterpretation, должна использовать PrepaidType NOT_SUPPORTED, а цена должна быть пустой.

Примеры: консультация по обслуживанию на дому.

Правила планирования

Правила планирования услуги.

JSON-представление
{
  "minAdvanceOnlineCanceling": string,
  "lateCancellationFee": {
    object (Price)
  },
  "noshowFee": {
    object (Price)
  },
  "admissionPolicy": enum (AdmissionPolicy),
  "cancellationPolicy": {
    object (CancellationPolicy)
  },

  // Union field min_booking_buffer can be only one of the following:
  "minAdvanceBooking": string,
  "minBookingBufferBeforeEndTime": string
  // End of list of possible types for union field min_booking_buffer.
}
Поля
minAdvanceOnlineCanceling

string ( int64 format)

Минимальное предварительное уведомление в секундах, необходимое для отмены забронированной встречи онлайн. (необязательный)

lateCancellationFee
(deprecated)

object ( Price )

Плата за отмену в течение минимального периода предварительного уведомления.

noshowFee
(deprecated)

object ( Price )

Плата за неявку без отмены бронирования.

admissionPolicy

enum ( AdmissionPolicy )

Политика допуска, применимая к этой услуге. Если не установлено, по умолчанию используется TIME_STRICT. (необязательный)

cancellationPolicy

object ( CancellationPolicy )

Политика отмены правил планирования. (обязательно для дел)

Поле объединения min_booking_buffer . Продолжительность (в секундах) с момента последнего бронирования до начала или окончания интервала доступности.

Если установлено «min_advance_booking», последнее доступное для бронирования время рассчитывается как (<время начала слота> — «min_advance_booking»). Если установлено «min_booking_buffer_before_end_time», последнее доступное для бронирования время рассчитывается как (<время окончания интервала> – «min_booking_buffer_before_end_time»). Обратите внимание, что значение «min_booking_buffer_before_end_time» должно быть положительным, если оно установлено. Если оба параметра не установлены, слот можно забронировать до времени начала слота. Если установлены оба поля, будет выбрано только одно значение, а другое значение проигнорировано — мы не можем надежно предсказать, какое значение будет выбрано.

Примеры:

  • Стрижку необходимо бронировать минимум за 1 час до начала. 'scheduling_rules{ min_advance_booking: 3600 ...}`

  • Музей, в котором последний билет можно купить за 30 минут до закрытия: 'scheduling_rules{ min_booking_buffer_before_end_time: 1800 ...}'

  • Билет в кино, который необходимо приобрести до начала. 'scheduling_rules{ ...}' (оставьте это поле пустым) (необязательно) min_booking_buffer может быть только одним из следующих:

minAdvanceBooking

string ( int64 format)

Продолжительность (в секундах) с момента последнего бронирования до начала интервала доступности.

minBookingBufferBeforeEndTime

string ( int64 format)

Продолжительность (в секундах) с момента последнего бронирования до окончания интервала доступности. Если это поле установлено, в поле «admissionPolicy» должно быть установлено значение TIME_FLEXIBLE, чтобы указать, что пользователи могут использовать приобретенные билеты после начала слотов.

Политика приема

Правила приема этого сервиса.

Перечисления
ADMISSION_POLICY_UNSPECIFIED Неиспользованный.
TIME_STRICT Клиенты должны присутствовать в момент начала интервала доступности, и ожидается, что услуга завершится во время окончания интервала. Примеры вариантов использования TIME_STRICT: * Экскурсия, которая начинается в 9 утра, требует, чтобы все участники прибыли ко времени начала, и возвращается примерно в 12:00. * Запись на стрижку в субботу в 15:00, которая займет около 30 минут. * Фитнес-класс с 18:00 до 20:00.
TIME_FLEXIBLE

Клиенты могут прибыть в любое время между временем начала и окончания интервала доступности, чтобы воспользоваться этим бронированием.

Примеры вариантов использования TIME_FLEXIBLE: * Билет в музей, который можно использовать в любое время с даты покупки. * Во второй половине дня вход в парк развлечений с 12:00 до 21:00.

TIMED_ENTRY_WITH_FLEXIBLE_DURATION

Клиентам необходимо прибыть к продавцу в начало интервала доступности, но они могут уйти в любое время.

Например, в сценарии посещения музея билет на вход по расписанию на 10 утра требует, чтобы пользователь был в музее в 10 утра. Время начала слотов доступности для этой услуги представляет собой назначенное время входа. Однако время окончания используется исключительно как ключ для определения свободного места для бронирования.

Политика отмены

Политика отмены услуги.

JSON-представление
{
  "refundCondition": [
    {
      object (RefundCondition)
    }
  ]
}
Поля
refundCondition[]

object ( RefundCondition )

Ноль или более условий возврата, применимых к полису.

Условия возврата

Определяет одно условие возврата. Несколько условий возврата можно использовать вместе, чтобы описать «этапы возврата» как различную продолжительность до начала услуги.

JSON-представление
{
  "minDurationBeforeStartTime": string,
  "refundPercent": integer
}
Поля
minDurationBeforeStartTime

string ( Duration format)

Продолжительность до времени начала, до которой клиент сможет получить возмещение части стоимости услуги, указанной в refundPercent . Если установлено значение 0 (по умолчанию), услугу можно отменить в любое время.

Продолжительность в секундах, содержащая до девяти дробных цифр и оканчивающаяся на « s ». Пример: "3.5s" .

refundPercent

integer ( uint32 format)

Процент, который может быть возвращен, если бронирование услуги отменено как минимум minDurationBeforeStartTime до времени начала услуги, в диапазоне [0, 100]. Если установлено значение 0 (по умолчанию), оплата за услугу не подлежит возврату. Если установлено значение 100, эта услуга подлежит полному возврату.

Тип предоплаты

Перечисление для указания типа предоплаты.

Перечисления
PREPAYMENT_TYPE_UNSPECIFIED По умолчанию мы будем считать, что предоплата НЕ_ПОДДЕРЖИВАЕТСЯ.
REQUIRED Пользователь должен оплатить эту услугу во время бронирования.
OPTIONAL Пользователь может внести предоплату за эту услугу во время бронирования или позже, но это не обязательно для бронирования.
NOT_SUPPORTED Предоплата для данной услуги не поддерживается.

ПредоплатаУсловия

Конкретная информация о том, когда будет завершена предоплата.

JSON-представление
{
  "chargeTiming": enum (ChargeTiming),
  "chargeTimeBeforeStartTimeSec": string
}
Поля
chargeTiming

enum ( ChargeTiming )

Когда будет произведена оплата относительно времени покупки.

chargeTimeBeforeStartTimeSec

string ( int64 format)

Время в секундах до времени запуска услуги, за которое с пользователя взимается оплата. Это поле следует задавать только в том случае, если ChargeTiming имеет значение CHARGE_LATER.

Время зарядки

Перечисление, чтобы указать, когда будет произведена оплата относительно времени покупки.

Перечисления
CHARGE_TIMING_UNSPECIFIED Неиспользованный.
CHARGE_NOW Плата будет списана с клиента немедленно.
CHARGE_LATER Плата будет списана с клиента позже.

Форма приема сервиса

Определяет форму приема, которая настраивает услугу, предоставляемую продавцом.

JSON-представление
{
  "field": [
    {
      object (ServiceIntakeFormField)
    }
  ],
  "firstTimeCustomers": boolean,
  "returningCustomers": boolean
}
Поля
field[]

object ( ServiceIntakeFormField )

Поля, которые будут отображаться пользователю.

firstTimeCustomers
(deprecated)

boolean

Если это правда, эта форма будет показана новым клиентам. Устарело. Эта функция не поддерживается для форм приема.

returningCustomers
(deprecated)

boolean

Если это правда, эта форма будет показана постоянным клиентам. Устарело. Эта функция не поддерживается для форм приема.

Поле формы обслуживанияIntakeFormField

Определяет поле, включенное в ServiceIntakeForm.

JSON-представление
{
  "id": string,
  "type": enum (FieldType),
  "label": string,
  "localizedLabel": {
    object (Text)
  },
  "value": [
    string
  ],
  "choiceText": [
    {
      object (Text)
    }
  ],
  "isRequired": boolean,
  "allowCustomAnswer": boolean,
  "additionalOption": [
    {
      object (Text)
    }
  ],
  "ticketTypeRestrict": [
    string
  ],
  "hint": {
    object (Text)
  }
}
Поля
id

string

Строка от партнера-агрегатора, которая уникально идентифицирует поле формы. Этот идентификатор должен совпадать с идентификатором в соответствующем поле ответа формы и должен быть уникальным как для уровня обслуживания, так и для форм приема заявок. (необходимый)

type

enum ( FieldType )

Тип этого поля.

label

string

Текст, отображаемый пользователю в этом поле. Устарело, используйте вместо него localizedLabel .

localizedLabel

object ( Text )

Текст, отображаемый пользователю в этом поле. Поле может быть указано в нескольких локалях. (необходимый)

value[]

string

Устанавливается тогда и только тогда, когда тип поля — LOCATION_SEARCH. Используйте «locationId» в поле «location», чтобы указать значение местоположения.

choiceText[]

object ( Text )

Устанавливается тогда и только тогда, когда тип поля — MULTIPLE_CHOICE, CHECKBOXES или DROPDOWN. Используется для перечисления возможных вариантов.

isRequired

boolean

Указывает, требуется ли пользователю ответ на это поле.

allowCustomAnswer

boolean

Указывает, разрешено ли пользовательское значение в дополнение к заранее определенным ответам. Это применимо только в том случае, если тип поля — LOCATION_SEARCH. (необязательный)

additionalOption[]

object ( Text )

В дополнение к указанным значениям предоставляются дополнительные параметры. Применимо только в том случае, если тип поля — LOCATION_SEARCH. Например, в дополнение к предоставленному списку местоположений другой доступной опцией может быть «Я свяжусь с поставщиком позже». (необязательный)

ticketTypeRestrict[]

string

Если этот вопрос должен отображаться только тогда, когда пользователь бронирует билеты определенных типов, это поле должно быть установлено как набор идентификаторов применимых типов билетов. Оставьте поле пустым, если вопрос всегда актуален.

hint

object ( Text )

Текст подсказки для ввода, который отображается как текстовый заполнитель. Это применимо только в том случае, если тип поля — SHORT_ANSWER или PARAGRAPH. (необязательный)

Тип поля

Enum для указания типа поля.

Перечисления
FIELD_TYPE_UNSPECIFIED Поля неопределенного или неизвестного типа будут игнорироваться.
SHORT_ANSWER Однострочное поле ввода текста.
PARAGRAPH Многострочное поле ввода текста.
MULTIPLE_CHOICE Набор переключателей, требующий выбора одного из множества вариантов.
CHECKBOXES Один или несколько перечисляемых элементов с флажками.
DROPDOWN Выбор из выпадающего списка.
BOOLEAN Кнопка да/нет.

Тип сервиса

Предопределенные типы услуг.

Перечисления
SERVICE_TYPE_UNSPECIFIED Неиспользованный.
SERVICE_TYPE_DINING_RESERVATION Бронирование столовой.
SERVICE_TYPE_FOOD_ORDERING Заказ еды может быть либо доставкой еды, либо едой на вынос, либо и тем, и другим.
SERVICE_TYPE_FOOD_DELIVERY Доставка еды.
SERVICE_TYPE_FOOD_TAKEOUT Еда на вынос.
SERVICE_TYPE_EVENT_TICKET Билет на мероприятие.
SERVICE_TYPE_TRIP_TOUR Поездка-тур.
SERVICE_TYPE_APPOINTMENT Служба, которая обеспечивает встречи или занятия. Рекомендуется для (1) здоровья и фитнеса, (2) спа и красоты и (3) финансовых консультаций и услуг по оценке. Ознакомьтесь с поддерживаемыми типами услуг: https://developers.google.com/maps-booking/guides/end-to-end-integration/overview.
SERVICE_TYPE_ONLINE_APPOINTMENT Сервис, обеспечивающий онлайн-запись на занятие или сеанс, который будет полностью виртуальным. Должен быть установлен, если включено бронирование виртуальных услуг.
SERVICE_TYPE_SHOPPING Сервис, который позволяет пользователям делать покупки у данного продавца. Это может быть доставка или самовывоз.

Тип билета

TicketType используется для различения билетов с разными ценами и/или доступностью из-за разных типов пользователей, разных атрибутов услуги или разных опций/дополнений.

Билет — это минимальная бронируемая единица услуги, например, место на рафтинге, вход в музей, аренда двухместного каяка на целый день.

JSON-представление
{
  "ticketTypeId": string,
  "shortDescription": string,
  "localizedShortDescription": {
    object (Text)
  },
  "price": {
    object (Price)
  },
  "perTicketFee": {
    object (PerTicketFee)
  },
  "optionDescription": string,
  "localizedOptionDescription": {
    object (Text)
  }
}
Поля
ticketTypeId

string

Идентификатор билета используется для различения разных типов билетов одной и той же услуги и должен быть уникальным только внутри услуги.

shortDescription

string

Краткое описание этого типа билета.

Это может быть видно пользователю, например, «взрослый», «ребенок», «ветеран», «Ряд J» и т. д. Обязательно, каждый тип билета должен иметь описание, чтобы его мог видеть пользователь. Устарело, вместо этого используйте localizedShortDescription.

localizedShortDescription

object ( Text )

Краткое описание этого типа билета с поддержкой i18n.

Это может быть видно пользователю, например, «взрослый», «ребенок», «ветеран», «Ряд J» и т. д. Обязательно, каждый тип билета должен иметь описание, чтобы его мог видеть пользователь. Для каждой локали могут быть указаны отдельные значения.

price

object ( Price )

Цена одного билета данного типа без учета налогов. К билетам применяется налоговая ставка Сервиса.

perTicketFee

object ( PerTicketFee )

Дополнительные сборы за покупку этого билета. (необязательный)

optionDescription

string

Описание любой дополнительной опции, которую представляет этот тип билета, если таковая имеется. Устарело, вместо этого используйте localizedOptionDescription.

localizedOptionDescription

object ( Text )

Описание любой дополнительной опции, которую представляет этот тип билета, если таковая имеется. Для каждой локали могут быть указаны отдельные значения.

Дополнительные параметры полезны, когда тип заявки представляет несколько измерений.

Пример 1: входной билет с разными типами «взрослый», «детский» и языком в качестве дополнительной опции, ожидаемый список TicketType будет следующим: - { TicketTypeId: «ticket_type_1» localizedShortDescription { value: «adult» } localizedOptionDescription { value: " английский" } } - { TicketTypeId: "ticket_type_2" localizedShortDescription { значение: "взрослый" } localizedOptionDescription { значение: "испанский" } } - { TicketTypeId: "ticket_type_3" localizedShortDescription { значение: "ребенок" } localizedOptionDescription { значение: "английский" } } - { TicketTypeId: "ticket_type_4" localizedShortDescription { значение: "ребенок" } localizedOptionDescription { значение: "испанский" } }

Пример 2: аренда каяка на несколько часов с дополнительным дополнением к сухому мешку, shortDescription может быть «3 часа», а optionDescription может быть «с сухим мешком» или «без сухого мешка»: - { TicketTypeId: «ticket_type_1» localizedShortDescription { значение: "2 часа" } localizedOptionDescription { значение: "английский" } } - { TicketTypeId: "ticket_type_2" localizedShortDescription { значение: "2 часа" } localizedOptionDescription { значение: "испанский" } } - { TicketTypeId: "ticket_type_3" localizedShortDescription {значение: "3 часа" } localizedOptionDescription {значение: "английский" } } - { TicketTypeId: "ticket_type_4" localizedShortDescription {значение: "3 часа" } localizedOptionDescription {значение: "испанский" } }

Необязательно, но если для какого-либо типа заявки в рамках службы установлено это поле, мы ожидаем, что для всех других типов заявок также будет установлено это поле (можно использовать параметрDescription по умолчанию). Например, [{ticket_type_1, взрослый, английский}, {ticket_type_1, взрослый, ''}] не является допустимым списком.

Поддерживаются только два тега форматирования HTML: и
. Они предназначены для указания опций как с заголовком, так и с подробным описанием, например: « Премиум-места ».
Этот вариант предлагает размещение в частных ложах, включая полностью мягкие сиденья, частные телевизоры, доставку еды и напитков на место. С этих мест открывается живописный вид на поле».

Плата за билет

Сборы, которые необходимо оплатить за каждый билет, приобретенный пользователем.

JSON-представление
{
  "serviceCharge": {
    object (Price)
  },
  "facilityFee": {
    object (Price)
  },
  "taxes": {
    object (Price)
  }
}
Поля
serviceCharge

object ( Price )

За услугу взимается дополнительная плата.

facilityFee

object ( Price )

Плата, которая поступает в место проведения/объект.

taxes

object ( Price )

Налоги за билет.

СвязанныеМедиа

Фотографии, относящиеся к этой услуге. Google будет сканировать эти медиафайлы, чтобы гарантировать их корректное отображение конечным пользователям. (необязательный)

JSON-представление
{
  "url": string,
  "type": enum (MediaType),
  "localizedCaption": {
    object (Text)
  },
  "attribution": {
    object (Attribution)
  },
  "caption": string
}
Поля
url

string

URL-адрес этого медиа-источника. Google будет сканировать медиафайлы, размещенные по этому URL.

type

enum ( MediaType )

Тип этого медиа-источника.

localizedCaption

object ( Text )

Заголовок носителя, поддерживающего i18n, поддерживается только обычный текст. Любые компоненты HTML будут удалены. (необязательный)

attribution

object ( Attribution )

Атрибутивная информация об источнике СМИ. Обратите внимание: если атрибуция должна отображаться в средствах массовой информации, чтобы отдать должное фотографу или агентству, это поле должно быть установлено. (необязательный)

caption
(deprecated)

string

Устарело, предпочитаю использовать localizedCaption.

Медиатип

Перечисление для указания типа этого медиа-источника. Поддерживаются только фотографии. Если вам нужна поддержка других медиафайлов, помимо фотографий, обратитесь в команду «Зарезервировать через Google».

Перечисления
TYPE_UNSPECIFIED Неиспользованный.
PHOTO Указывает, что носитель, предоставленный URL-адресом, является фотографией.

Атрибуция

Информация об авторстве для этого носителя.

JSON-представление
{
  "localizedText": {
    object (Text)
  },
  "text": string
}
Поля
localizedText

object ( Text )

Текст, в котором выражается благодарность фотографу или агентству, поддерживающему i18n. Этот текст будет отображаться вместе с исходным медиафайлом. Обратите внимание, что для этого поля поддерживается только обычный текст, любые компоненты HTML будут удалены (атрибуция на основе гиперссылок не поддерживается).

text
(deprecated)

string

Устарело, предпочитаю использовать localizedText.

ServiceAttributeValueId

Идентифицирует конкретное значение атрибута службы, которое должно быть применено к Службе.

JSON-представление
{
  "attributeId": string,
  "valueId": string
}
Поля
attributeId

string

Идентификатор атрибута, определенный в Merchant.service_attribute, например «тип услуги».

valueId

string

Идентификатор значения этого атрибута, например «стрижка». Должно соответствовать значению valueId в определении атрибута службы.

Список ожиданияПравила

Правила, связанные с включением в список ожидания.

JSON-представление
{
  "minPartySize": integer,
  "maxPartySize": integer,
  "supportsAdditionalRequest": boolean,
  "aboveMaxPartySizeOptions": [
    {
      object (UnsupportedPartySizeOption)
    }
  ]
}
Поля
minPartySize

integer

Необходимый. Должно быть положительным целым числом для служб, предоставляющих функции списка ожидания. Если услуга или продавец не предоставляет функции списка ожидания, его нельзя заполнять.

maxPartySize

integer

Необходимый. Должно быть положительным целым числом для служб, предоставляющих функции списка ожидания. Если услуга или продавец не предоставляет функции списка ожидания, его нельзя заполнять.

supportsAdditionalRequest

boolean

Если это правда, пользователь сможет отправить дополнительный текстовый запрос в свободной форме при присоединении к списку ожидания для этой услуги.

aboveMaxPartySizeOptions[]

object ( UnsupportedPartySizeOption )

Установите параметры для групп, размер которых превышает установленный maxPartySize. Оставьте пустым, если более крупным партиям не должны быть предоставлены альтернативные варианты присоединения к списку ожидания.

Неподдерживаемый партисизевариант

Варианты для сторон, выходящих за пределы диапазона.

JSON-представление
{
  "callMerchant": {
    object (CallMerchant)
  }
}
Поля
callMerchant

object ( CallMerchant )

Размер партии, выходящий за пределы допустимого диапазона, может стать поводом для беспокойства. Пользователю будет показано заранее заданное сообщение. Пример отображаемого текста: «Для вечеринок размером более {waitlistRules.max_party_size} позвоните в ресторан по телефону {phone}». CallMerchant должен быть установлен, но будет пустым.

CallMerchant

Пустое сообщение будет использоваться в UnsupportedPartySizeOption. При установке этого параметра пользователям будет отображаться возможность позвонить в компанию для бронирования.

Продажа билетовВертикальныеСпецифическиеДанные

Дополнительная информация, уникальная для отрасли продажи билетов на мероприятия.

JSON-представление
{
  "eventCategory": enum (EventCategory),
  "eventUrl": string,
  "entity": [
    {
      object (Entity)
    }
  ],
  "eventAttendanceMode": enum (AttendanceMode),
  "eventVirtualLocationUrl": [
    string
  ],
  "eventOrganizer": {
    object (Text)
  },
  "eventOrganizerUrl": string,
  "eventOrganizerType": enum (OrganizerType),
  "eventSourceUrl": [
    string
  ],
  "eventState": enum (EventState)
}
Поля
eventCategory

enum ( EventCategory )

Категория мероприятия. Устанавливается только тогда, когда событие попадает в одну из предопределенных категорий. (необязательный)

eventUrl

string

URL мероприятия на сайте партнера. (необязательный)

entity[]

object ( Entity )

Список сущностей, связанных с событием. (необязательный)

eventAttendanceMode

enum ( AttendanceMode )

Необходимый. Тип посещения мероприятия.

eventVirtualLocationUrl[]

string

Необязательный. URL-адрес, по которому можно посмотреть событие.

eventOrganizer

object ( Text )

Необязательный. Организатор, проводящий мероприятие.

eventOrganizerUrl

string

Необязательный. URL-адрес организатора, проводящего мероприятие.

eventOrganizerType

enum ( OrganizerType )

Необязательный. Тип органайзера.

eventSourceUrl[]

string

Необходимый. URL-адрес страниц, на которых можно найти информацию или описания событий.

eventState

enum ( EventState )

Необязательный. Состояние события.

КатегорияСобытия

Подмножество категорий событий, для которых мы настраиваем взаимодействие с продуктом. Примечание: не предполагается, что это универсальная онтология событий.

Перечисления
EVENT_CATEGORY_UNSPECIFIED Не указан. Не используйте.
EVENT_CATEGORY_CONCERT Концерты.
EVENT_CATEGORY_SPORTS Спортивные мероприятия.
EVENT_CATEGORY_THEATRE Театральные мероприятия.
EVENT_CATEGORY_EXHIBITS Экспонаты.
EVENT_CATEGORY_WORKSHOPS_AND_CLASSES Мастер-классы и занятия.

Сущность

Представляет сущность, связанную с событием.

JSON-представление
{
  "id": string,
  "name": string,
  "url": string,
  "entityType": enum (EntityType),
  "entityRole": enum (EntityRole),
  "publicIdentificationData": {
    object (PublicIdentificationData)
  }
}
Поля
id

string

Уникальный идентификатор сущности в базе данных партнера. (необязательный)

name

string

Название сущности. (необходимый)

url

string

URL-адрес веб-страницы, однозначно описывающей объект. Это веб-страница на веб-сайте партнера организации, если таковая имеется; для других общедоступных URL-адресов объекта используйте соответствующийUrl в publicIdentificationData. (необязательный)

entityType

enum ( EntityType )

Тип сущности. (необязательный)

entityRole

enum ( EntityRole )

Роль сущности в событии. (необязательный)

publicIdentificationData

object ( PublicIdentificationData )

Публичные ссылки на организацию. (необязательный)

тип сущности

Тип сущности. Примечание: не предполагается, что это универсальная онтология.

Перечисления
ENTITY_TYPE_UNSPECIFIED Не указан. Не используйте.
ENTITY_TYPE_PERFORMER Организация представляет артиста или группу, выступающую на концерте или шоу. Применимо только в том случае, если категория мероприятия — КОНЦЕРТ или ТЕАТР.
ENTITY_TYPE_PLAYER Организация представляет спортивную команду или игрока на мероприятии. Применимо только в том случае, если категория мероприятия — СПОРТ.
ENTITY_TYPE_CONCERT_TOUR Сущность представляет тур, к которому принадлежит это событие. Применимо только в том случае, если категория мероприятия — КОНЦЕРТ.
ENTITY_TYPE_SPORTS_SERIES Объект представляет спортивный турнир, к которому относится данное мероприятие. Применимо только в том случае, если категория мероприятия — СПОРТ.
ENTITY_TYPE_PLAY Объект представляет тип пьесы (например, мюзикл, комедия, балет и т. д.), представленной на мероприятии. Применимо только в том случае, если категория мероприятия — ТЕАТР.

EntityRole

Роль сущности в событии.

Перечисления
ENTITY_ROLE_UNSPECIFIED Не указан.
ENTITY_ROLE_HEADLINER Организация представляет хедлайнера или ведущего исполнителя на мероприятии.
ENTITY_ROLE_SUPPORTER Организация представляет исполнителя второго плана на мероприятии.
ENTITY_ROLE_HOME_TEAM Организация представляет команду хозяев на (спортивном) мероприятии.
ENTITY_ROLE_AWAY_TEAM Организация представляет команду гостей на (спортивном) мероприятии.

Публичные идентификационные данные

Идентификаторы, веб-страницы или любые другие общедоступные источники, которые ссылаются на объект.

JSON-представление
{
  "relevantUrl": [
    string
  ],
  "musicbrainzId": string
}
Поля
relevantUrl[]

string

Публичный URL-адрес любой веб-страницы, посвященной только этой теме. Это могут быть официальные веб-сайты, дискоги, платформы социальных сетей, страницы Википедии или imdb, например https://www.discogs.com/artist/1124645-Taylor-Swift , https://www.wikidata.org/wiki/Q19320959 , https://twitter.com/acmilan . (необязательный)

musicbrainzId

string

36-значный идентификатор исполнителя или других музыкальных объектов в формате musicbrainz, если применимо. См. https://musicbrainz.org/doc/MusicBrainz_Identifier . (необязательный)

Режим посещаемости

Тип посещения мероприятия.

Перечисления
ATTENDANCE_MODE_UNSPECIFIED Не указан.
ONLINE Для виртуальных мероприятий.
PHYSICAL Для физических мероприятий.
PHYSICAL_ONLINE_MIXED Для событий, как физических, так и виртуальных.

Тип органайзера

Тип органайзера.

Перечисления
ORGANIZER_TYPE_UNSPECIFIED Не указан.
PERSON Для организатора-человека.
ORGANIZATION Для организатора, который является организацией.

СобытиеСостояние

Состояние события.

Перечисления
EVENT_STATE_UNSPECIFIED Не указан.
SCHEDULED Мероприятие запланировано.
RESCHEDULED Мероприятие перенесено.
CANCELLED Мероприятие отменено.
POSTPONED Мероприятие переносится.

Тип интеграции

Поддерживается глубина интеграции.

Перечисления
INTEGRATION_TYPE_UNSPECIFIED По умолчанию END_TO_END.
INTEGRATION_TYPE_END_TO_END Полная интеграция, позволяющая осуществлять сквозное бронирование через Google.
INTEGRATION_TYPE_INVENTORY_ONLY Сервер бронирования не обязан поддерживать эту услугу. Необходимо отправлять только данные о продавцах, услугах и (необязательно) доступности.

Комиссия за заказ

Комиссии, которые необходимо оплатить один раз за заказ, независимо от количества билетов.

JSON-представление
{
  "deliveryFee": {
    object (Price)
  },
  "processingFee": {
    object (Price)
  }
}
Поля
deliveryFee

object ( Price )

Комиссия, которая может варьироваться в зависимости от способа доставки.

processingFee

object ( Price )

Комиссия за обработку способа оплаты пользователя.

ТурыИДеятельностиКонтент

Поля контента, специфичные для туров и мероприятий. Каждый элемент в повторяющемся поле должен быть независимым, чтобы обеспечить возможность отдельного рендеринга (например, в виде маркера).

Заполнение ToursAndActivitiesContent настоятельно рекомендуется для туров и мероприятий, но не является строго обязательным. Все поля поддерживают как обычный текст, так и текст в формате HTML для базового форматирования. Поддерживаемые HTML-теги форматирования:

Фразовые теги:
, , , : Поддерживаются только три тега, упомянутые выше.
можно использовать для разрыва строк в абзацах, а / / можно использовать для выделения важного текста. Любые другие теги фраз будут игнорироваться.

Все остальные теги и пользовательские стили запрещены и будут удалены. Любые URL-адреса, привязки и ссылки будут удалены и никогда не будут отображаться конечным пользователям.

Важные примечания: * Не дублируйте данные, уже предоставленные в highlights , exclusion и других, более конкретных полях описания услуги. * Избегайте использования других тегов, кроме поддерживаемых, упомянутых выше, поскольку содержимое неподдерживаемых тегов будет удалено и может привести к нежелательному взаимодействию с пользователем.

JSON-представление
{
  "highlights": [
    {
      object (Text)
    }
  ],
  "inclusions": [
    {
      object (Text)
    }
  ],
  "exclusions": [
    {
      object (Text)
    }
  ],
  "mustKnow": [
    {
      object (Text)
    }
  ]
}
Поля
highlights[]

object ( Text )

Видимый пользователю список основных моментов.

inclusions[]

object ( Text )

Видимый пользователю список включений.

exclusions[]

object ( Text )

Видимый пользователю список исключений.

mustKnow[]

object ( Text )

Видимый пользователю список важных примечаний. Используйте его для получения таких подробностей, как возрастные ограничения или другие условия, которые делают эту услугу неподходящей.

Расположение

Географическая информация о местоположении.

JSON-представление
{
  "placeId": string,
  "name": string,
  "telephone": string,
  "url": string,
  "geo": {
    object (GeoCoordinates)
  },
  "locationType": enum (LocationType),
  "locationId": string
}
Поля
placeId

string

Идентификатор места в базе данных Google Адресов и на Картах Google. Дополнительную информацию об идентификаторах мест см. на странице https://developers.google.com/places/web-service/place-id . Если это указано, Google сопоставит местоположение с этим местом.

name

string

Название местоположения, телефон, URL-адрес и геолокация используются для сопоставления местоположения с местами, уже представленными на Картах Google.

Это поле является необязательным, но может потребоваться в некоторых контекстах. Например, Service.location без имени не будет сопоставлен с юридическим лицом, даже если они расположены по одному и тому же адресу. (необязательный)

telephone

string

Общественный телефонный номер места, включая коды страны и города, например +14567891234. (необязательный)

url

string

URL общедоступного веб-сайта местоположения. (необязательный)

geo

object ( GeoCoordinates )

Географическая информация о местоположении, включая широту, долготу и адрес. (необязательный)

locationType

enum ( LocationType )

Тип местоположения необходимо указать, если это местоположение предоставляется для Услуги.

locationId

string

Уникальная ссылка на местоположение в рамках сервиса. Этот идентификатор можно использовать для ссылки на это местоположение в других полях службы. Например, в пользовательской форме приема можно использовать набор идентификаторов местоположений для указания вариантов места получения. Если этот идентификатор установлен, он должен быть уникальным в пределах одной службы. (необязательный)

Тип местоположения

Тип этого местоположения.

Перечисления
LOCATION_TYPE_UNSPECIFIED Тип местоположения не указан.
VISITED_LOCATION Местоположение, куда посещает эта служба.
START_LOCATION Местом запуска этой службы также является MEETING_LOCATION.
END_LOCATION Место, где заканчивается эта услуга.

Рейтинг

Определяет рейтинг объекта.

JSON-представление
{
  "value": number,
  "numberOfRatings": string
}
Поля
value

number

Среднее значение рейтинга (обязательно, если NumberOfRatings > 0). Значение должно находиться в диапазоне [1, 5] и может быть опущено тогда и только тогда, когда NumberOfRatings равно нулю.

numberOfRatings

string

Количество рейтингов, использованных при расчете значения (обязательно).

ГлавнаяСервисДанные

Дополнительная информация, необходимая для вертикального обслуживания на дому.

JSON-представление
{
  "categoryType": string,
  "jobType": string
}
Поля
categoryType

string

Категория высокого уровня, к которой относится данная услуга на дому. Например, сантехник, электрик и т. д.

jobType

string

Тип задания в категории, к которой принадлежит данная домашняя услуга. Например, unclog_drain, install_faucet — это типы заданий в категории «Сантехник».

виртуальная сессия

Информация о виртуальной/онлайн-сессии. Например, онлайн-занятия йогой, виртуальные кулинарные курсы и т. д.

JSON-представление
{
  "sessionInstructions": {
    object (Text)
  },
  "sessionRequirements": {
    object (Text)
  },
  "virtualPlatformInfo": {
    object (VirtualPlatformInfo)
  },
  "isSessionPrerecorded": boolean
}
Поля
sessionInstructions

object ( Text )

Инструкции по настройке этого виртуального класса. Если партнер не включает URL-адрес видео при бронировании, этот текст должен указывать, когда URL-адрес видео будет передан пользователю. Например. «URL-адрес Zoom будет отправлен по почте за 30 минут до занятия». (рекомендуется)

sessionRequirements

object ( Text )

Требования к данной виртуальной сессии. Например. коврик для йоги, кухонные принадлежности и т. д. (рекомендуется)

virtualPlatformInfo

object ( VirtualPlatformInfo )

Информация о виртуальной платформе, используемой в этом сеансе. (Требуется для включения виртуальных сервисов)

isSessionPrerecorded

boolean

Необходимый. Установите значение true, если виртуальный сеанс не активен и предварительно записан.

Информация о виртуальной платформе

Информация о платформе, которая будет использоваться для этой виртуальной сессии.

JSON-представление
{
  "platform": enum (Platform),
  "otherPlatformName": {
    object (Text)
  }
}
Поля
platform

enum ( Platform )

Платформа, используемая для виртуального сеанса.

otherPlatformName

object ( Text )

Имя платформы, если для платформы установлено значение OTHER. (Обязательно, если для платформы установлено значение ДРУГОЕ)

Платформа

Перечисление, указывающее, какую виртуальную платформу будет использовать продавец.

Перечисления
PLATFORM_UNSPECIFIED Неиспользованный.
FLEXIBLE Продавец может выбирать, какую видеоплатформу использовать.
GOOGLE_HANGOUTS Продукт Google Hangouts.
GOOGLE_MEET Продукт Google Meet.
ZOOM Zoom Видеосвязь.
SKYPE Скайп.
YOUTUBE Прямые трансляции на YouTube.
OTHER Должен быть установлен, если используемая видеоплатформа отличается от упомянутых здесь.

DirectMerchantОплата

Информация о том, как пользователь может оплатить услугу напрямую продавцу вместо предварительной оплаты услуги через RwG.

JSON-представление
{
  "paymentMethods": [
    {
      object (Text)
    }
  ]
}
Поля
paymentMethods[]

object ( Text )

Пользователям рекомендуется осуществлять оплату только способами оплаты, указанными ниже.

Методы

create

Создает новый Service продавца, управляемый указанным агрегатором, и возвращает его.

delete

Удаляет существующую Service продавца, управляемую указанным агрегатором.

patch

Обновляет существующую Service продавца, управляемую указанным агрегатором, и возвращает ее.