Offer

LINT.IfChange(offer_definition) [START offer_definition] Next tag: 26

JSON-представление
{
  "offerId": string,
  "entityIds": [
    string
  ],
  "addOnOfferApplicableToAllEntities": boolean,
  "offerSource": enum (OfferSource),
  "actionType": enum (ActionType),
  "offerModes": [
    enum (OfferMode)
  ],
  "offerCategory": enum (OfferCategory),
  "sourceAssignedPriority": integer,
  "offerDetails": {
    object (OfferDetails)
  },
  "offerRestrictions": {
    object (OfferRestrictions)
  },
  "coupon": {
    object (Coupon)
  },
  "paymentInstrument": {
    object (PaymentInstrument)
  },
  "subscription": {
    object (Subscription)
  },
  "terms": {
    object (Terms)
  },
  "validityPeriods": [
    {
      object (ValidityPeriod)
    }
  ],
  "offerUrl": string,
  "imageUrl": string,
  "tags": [
    enum (OfferTag)
  ],
  "brandId": string
}
Поля
offerId

string

Уникальный идентификатор предложения. Обязательно.

entityIds[]

string

Список продавцов, участвующих в этой акции.

addOnOfferApplicableToAllEntities

boolean

Если задано значение true, предложение применяется ко всем объектам агрегатора. Применимо только к дополнительным предложениям.

offerSource

enum (OfferSource)

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

actionType

enum (ActionType)

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

offerModes[]

enum (OfferMode)

Способы воспользоваться предложением: посещение сервисного центра, бронирование, онлайн и т. д. Обязательный атрибут.

offerCategory

enum (OfferCategory)

Категория предложения. Обязательно.

sourceAssignedPriority

integer

Неотрицательное целое число от 1 до 100, где 1 – наивысший приоритет. Указывает уровень приоритета предложения, назначенный источником. Если у одного продавца есть несколько специальных предложений, это будет сигналом для ранжирования. 0 означает, что приоритет не задан.

offerDetails

object (OfferDetails)

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

offerRestrictions

object (OfferRestrictions)

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

coupon

object (Coupon)

Сведения о купоне. Обязательный атрибут для offerCategory: OFFER_CATEGORY_ADD_ON_COUPON_OFFER.

paymentInstrument

object (PaymentInstrument)

Сведения о способе оплаты. Обязательно для offerCategory: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.

subscription

object (Subscription)

Сведения о подписке. Обязательный атрибут для offerCategory: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER.

terms

object (Terms)

Условия использования предложения. Обязательно.

validityPeriods[]

object (ValidityPeriod)

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

offerUrl

string

URL страницы с предложением продавца. Обязательный атрибут для offerCategory: OFFER_CATEGORY_BASE_OFFER.

imageUrl

string

URL изображения предложения продавца.

tags[]

enum (OfferTag)

Специальные теги, связанные с предложением. Используется для обозначения специальных предложений, например "Праздничное", "Лучшее", "Самое популярное" и т. д.

brandId

string

Бренд, связанный с предложением. Если правило не настроено, используется бренд по умолчанию.

OfferDetails

[START offer_details_definition] Next tag: 15

JSON-представление
{
  "offerDisplayText": string,
  "maxDiscountValue": {
    object (Money)
  },
  "minSpendValue": {
    object (Money)
  },
  "bookingCost": {
    object (Money)
  },
  "bookingCostUnit": enum (FeeUnit),
  "convenienceFee": {
    object (Fee)
  },
  "bookingCostAdjustable": boolean,
  "additionalFees": [
    {
      object (AdditionalFee)
    }
  ],
  "giftCardInfo": {
    object (GiftCardInfo)
  },

  // Union field offer_specification can be only one of the following:
  "discountPercent": number,
  "discountValue": {
    object (Money)
  },
  "otherOfferDetailText": string
  // End of list of possible types for union field offer_specification.
}
Поля
offerDisplayText

string

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

maxDiscountValue

object (Money)

Максимальная скидка, которую можно получить. Пример: скидка 10% на сумму до 100 долларов США.

minSpendValue

object (Money)

Минимальная сумма расходов для получения скидки. Например, скидка 10% при покупке на сумму от 100 долларов США.

bookingCost

object (Money)

Стоимость бронирования по этому предложению. Например, скидка 100 долларов США на итоговый счет при бронировании столика за 15 долларов США.

bookingCostUnit

enum (FeeUnit)

Единица стоимости бронирования. Например, на человека или на транзакцию.

convenienceFee

object (Fee)

bookingCostAdjustable

boolean

Можно ли скорректировать стоимость бронирования, то есть вычесть ее из окончательного счета. Пример: скидка 30% на ужин при бронировании. Стоимость бронирования составляет 15 долларов США. Эта сумма будет включена в итоговый счет. Итоговый счет: общая сумма расходов минус 30 % минус 15 долл. США.

additionalFees[]

object (AdditionalFee)

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

giftCardInfo

object (GiftCardInfo)

Сведения о специальных предложениях на подарочные карты.

Объединенное поле offer_specification. Скидка может быть выражена в процентах или в виде фиксированной суммы, вычитаемой из общей стоимости. Пример 1. Скидка 10% на итоговый счет. 2. Скидка 15 $ на заказ. Продавцы также могут предлагать специальные скидки, например "два по цене одного", используя соответствующие поля спецификации. Обязательно. offer_specification может иметь одно из следующих значений:
discountPercent

number

Процентная доля счета, на которую распространяется скидка. [0, 100] Для предложений "1+1" или "Скидка 50 %", которые распространяются на весь заказ (например, "1+1" на шведский стол, "1+1" на весь чек, "1+1" на комплексный обед), можно указать значение 50.

discountValue

object (Money)

Фиксированное значение скидки.

otherOfferDetailText

string

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

OfferRestrictions

[START offer_restrictions_definition] Следующий тег: 11

JSON-представление
{
  "combinableWithOtherOffers": boolean,
  "combinableOfferCategories": [
    enum (OfferCategory)
  ],
  "combinableOfferIds": [
    string
  ],
  "inclusions": [
    {
      object (OfferCondition)
    }
  ],
  "exclusions": [
    {
      object (OfferCondition)
    }
  ],
  "minGuest": integer,
  "foodOfferRestrictions": {
    object (FoodOfferRestrictions)
  },
  "specialConditions": [
    string
  ]
}
Поля
combinableWithOtherOffers

boolean

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

combinableOfferCategories[]

enum (OfferCategory)

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

combinableOfferIds[]

string

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

inclusions[]

object (OfferCondition)

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

exclusions[]

object (OfferCondition)

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

minGuest

integer

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

foodOfferRestrictions

object (FoodOfferRestrictions)

Ограничения, относящиеся к предложениям еды.

specialConditions[]

string

Специальные условия предложения, которые должны быть показаны пользователю. Примеры: "Действительно только для оплаты в [регион]", "Не распространяется на онлайн-платежи".

OfferCondition

[START offer_condition_definition]

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

string

PaymentInstrument

[START payment_instrument_definition]

JSON-представление
{
  "items": [
    {
      object (PaymentInstrumentItem)
    }
  ],
  "providerName": string
}
Поля
items[]

object (PaymentInstrumentItem)

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

providerName

string

Название поставщика платежного инструмента. Например, American Express, HDFC, ICICI.

PaymentInstrumentItem

[START payment_instrument_item_definition]

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

enum (PaymentInstrumentType)

Тип способа оплаты. Обязательно.

name

string

Название способа оплаты, например кредитной карты. Например, HDFC Infinia, American Express Platinum. Обязательно.

Подписка

[START subscription_definition]

JSON-представление
{
  "name": string,
  "subscriptionAutoAdded": boolean,
  "cost": {
    object (Money)
  },
  "subscriptionDuration": string,
  "termsAndConditionsUrl": string
}
Поля
name

string

Название подписки. Обязательно.

subscriptionAutoAdded

boolean

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

cost

object (Money)

Стоимость подписки. Обязательно.

subscriptionDuration

string (Duration format)

Срок действия подписки по указанной абонентской плате. Обязательно.

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

termsAndConditionsUrl

string

URL условий использования партнера, относящихся к этой подписке.

Условия использования

[START terms_definition]

JSON-представление
{
  "url": string,
  "restrictedToCertainUsers": boolean,
  "termsAndConditions": string,
  "additionalTermsAndConditions": [
    string
  ]
}
Поля
url

string

URL страницы с условиями использования партнера.

restrictedToCertainUsers

boolean

Ограничено ли предложение для определенных пользователей.

termsAndConditions

string

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

additionalTermsAndConditions[]

string

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