Offer

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

Zapis 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
}
Pola
offerId

string

Unikalny identyfikator oferty. Wymagane.

entityIds[]

string

Lista sprzedawców, którzy uczestniczą w tej ofercie.

addOnOfferApplicableToAllEntities

boolean

Jeśli wartość to „true”, oferta dotyczy wszystkich podmiotów w ramach agregatora. Dotyczy to tylko ofert dodatkowych.

offerSource

enum (OfferSource)

Oferta może być udostępniana przez pośrednika, pojedynczego sprzedawcę, a nawet przez osobę trzecią jako dodatek. Wymagane.

actionType

enum (ActionType)

Usługa, która udostępnia ofertę. Identyfikator offerId może należeć tylko do jednego typu actionType. Jeśli oferta może być udostępniana w ramach wielu typów usług, dla każdego typu usługi należy utworzyć zduplikowane oferty z unikalnymi identyfikatorami. Wymagane.

offerModes[]

enum (OfferMode)

Sposoby skorzystania z oferty – wizyta w sklepie, rezerwacja, online itp. Wymagane.

offerCategory

enum (OfferCategory)

Kategoria oferty. Wymagane.

sourceAssignedPriority

integer

Nieujemna liczba całkowita ([1–100], gdzie 1 oznacza najwyższy priorytet) wskazująca poziom priorytetu oferty przypisany przez źródło. Jeśli u tego samego sprzedawcy dostępnych jest kilka ofert, będzie to sygnał do rankingu ofert. Wartość 0 oznacza, że priorytet nie jest ustawiony.

offerDetails

object (OfferDetails)

Szczegóły oferty, takie jak rabat, koszt rezerwacji itp. Wymagane.

offerRestrictions

object (OfferRestrictions)

Opisuje ograniczenia oferty, np. czy wymagana jest subskrypcja lub instrument płatniczy, czy ofertę można łączyć z innymi ofertami (i jakimi), itp. Wymagany.

coupon

object (Coupon)

Szczegóły kuponu. Wymagane w przypadku offerCategory: OFFER_CATEGORY_ADD_ON_COUPON_OFFER.

paymentInstrument

object (PaymentInstrument)

Szczegóły instrumentu płatniczego. Wymagane w przypadku offerCategory: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.

subscription

object (Subscription)

Szczegóły subskrypcji. Wymagany w przypadku offerCategory: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER.

terms

object (Terms)

Warunki oferty. Wymagane.

validityPeriods[]

object (ValidityPeriod)

Okres ważności oferty. Określa okres ważności oferty, w tym godziny rozpoczęcia i zakończenia, dni tygodnia itp. Wymagane.

offerUrl

string

Adres URL strony z ofertą sprzedawcy. Wymagany w przypadku offerCategory: OFFER_CATEGORY_BASE_OFFER.

imageUrl

string

Adres URL obrazu oferty sprzedawcy.

tags[]

enum (OfferTag)

Tagi specjalne powiązane z ofertą. Służy do identyfikowania ofert specjalnych, takich jak „Świąteczne”, „Najwyżej oceniane”, „Najczęściej rezerwowane” itp.

brandId

string

Identyfikuje markę powiązaną z ofertą. Jeśli nie zostanie ustawiona, używana jest marka domyślna.

OfferDetails

[START offer_details_definition] Next tag: 15

Zapis 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.
}
Pola
offerDisplayText

string

Tekst oferty, który dostawca oferty chce wyświetlać klientom na stronie wyników wyszukiwania. Wymagane.

maxDiscountValue

object (Money)

Maksymalny rabat, jaki można uzyskać. Na przykład: rabat 10% do 100 PLN.

minSpendValue

object (Money)

Minimalne wydatki, aby skorzystać z rabatu. Na przykład 10% zniżki, gdy łączna cena wynosi co najmniej 100 PLN.

bookingCost

object (Money)

Koszt rezerwacji tej oferty. Na przykład 100 zł zniżki na rachunek końcowy, gdy stolik zostanie zarezerwowany za 15 zł.

bookingCostUnit

enum (FeeUnit)

Jednostka kosztu rezerwacji. Na przykład na osobę lub na transakcję.

convenienceFee

object (Fee)

bookingCostAdjustable

boolean

Czy koszt rezerwacji można odliczyć, tzn. czy koszt rezerwacji jest odejmowany od rachunku końcowego. Na przykład: 30% zniżki na kolację z rezerwacją. Koszt rezerwacji wynosi 15 USD i zostanie odliczony od ostatecznego rachunku. Ostateczny rachunek: łączne wydatki – 30% – 15 USD

additionalFees[]

object (AdditionalFee)

Dodatkowe opłaty, które są pobierane od użytkownika. Przykłady: opłata za wygodę, obsługę, dostawę, opakowanie, usługę itp.

giftCardInfo

object (GiftCardInfo)

Szczegóły dotyczące ofert kart podarunkowych.

Pole zbiorcze offer_specification. Rabat może być wyrażony jako procent lub stała wartość odejmowana od łącznej wartości. Na przykład: 1. 10% zniżki na rachunek końcowy. 2. 15 USD zniżki na zamówienie. Sprzedawcy mogą też oferować rabaty niestandardowe, np. „kup jeden produkt i otrzymaj jeden w cenie”, za pomocą odpowiednich pól specyfikacji. Wymagane. offer_specification może mieć tylko jedną z tych wartości:
discountPercent

number

Odsetek rachunku, który jest objęty rabatem. [0, 100] W przypadku ofert 1+1 lub 50% zniżki, które dotyczą całego posiłku (np. bufet 1+1, 1+1 na cały rachunek, 1+1 na menu), tę wartość można ustawić na 50.

discountValue

object (Money)

Stała wartość rabatu.

otherOfferDetailText

string

Dowolny tekst opisujący rabat. W przypadku konkretnych ofert 1+1 (np. 1+1 napój, +1 danie główne, 1+1 wybrane pozycje menu) należy je opisać tutaj.

OfferRestrictions

[START offer_restrictions_definition] Next tag: 11

Zapis JSON
{
  "combinableWithOtherOffers": boolean,
  "combinableOfferCategories": [
    enum (OfferCategory)
  ],
  "combinableOfferIds": [
    string
  ],
  "inclusions": [
    {
      object (OfferCondition)
    }
  ],
  "exclusions": [
    {
      object (OfferCondition)
    }
  ],
  "minGuest": integer,
  "foodOfferRestrictions": {
    object (FoodOfferRestrictions)
  },
  "specialConditions": [
    string
  ]
}
Pola
combinableWithOtherOffers

boolean

Czy tę ofertę można łączyć z innymi ofertami. Jeśli ta wartość jest prawdziwa, partnerzy mogą określić, z jakimi ofertami można łączyć tę ofertę. Jeśli ustawione są zarówno combinableOfferCategories, jak i combinableOfferIds, można łączyć każdą ofertę spełniającą jeden z powyższych warunków.

combinableOfferCategories[]

enum (OfferCategory)

Lista typów ofert, z którymi można połączyć tę ofertę. Na przykład tę ofertę można łączyć z innymi kuponami. Jeśli wartość combinableWithOtherOffers to „true”, a to pole nie jest ustawione, wszystkie typy będą mogły być łączone.

combinableOfferIds[]

string

Lista identyfikatorów ofert, z którymi można połączyć tę ofertę. Niektóre oferty można łączyć tylko z określonymi innymi identyfikatorami ofert (można je uznać za oferty nadrzędne). Jeśli wartość combinableWithOtherOffers to „true”, a to pole nie jest ustawione, wszystkie identyfikatory ofert będą mogły być łączone.

inclusions[]

object (OfferCondition)

Lista warunków, które muszą być spełnione, aby oferta była ważna (np. napoje bezalkoholowe, jedzenie).

exclusions[]

object (OfferCondition)

Lista warunków, które unieważniają ofertę (np. bufet, oferty łączone i koktajle).

minGuest

integer

Minimalna liczba osób wymagana do skorzystania z oferty.

foodOfferRestrictions

object (FoodOfferRestrictions)

Ograniczenia dotyczące ofert żywności.

specialConditions[]

string

Warunki specjalne tej oferty, które muszą być widoczne dla użytkownika. Przykłady: „Tylko w przypadku płatności w [obszar]”, „Nie obejmuje płatności online”.

OfferCondition

[START offer_condition_definition]

Zapis JSON
{
  "description": string
}
Pola
description

string

PaymentInstrument

[START payment_instrument_definition]

Zapis JSON
{
  "items": [
    {
      object (PaymentInstrumentItem)
    }
  ],
  "providerName": string
}
Pola
items[]

object (PaymentInstrumentItem)

Lista instrumentów płatniczych, których można użyć do skorzystania z oferty. Wymagane.

providerName

string

Nazwa dostawcy instrumentu płatniczego. Może to być partner bankowy, nazwa banku itp. Na przykład: American Express, HDFC, ICICI.

PaymentInstrumentItem

[START payment_instrument_item_definition]

Zapis JSON
{
  "type": enum (PaymentInstrumentType),
  "name": string
}
Pola
type

enum (PaymentInstrumentType)

Rodzaj instrumentu płatniczego. Wymagane.

name

string

Nazwa instrumentu płatniczego, np. nazwa karty kredytowej. Na przykład: HDFC Infinia, American Express Platinum. Wymagane.

Subskrypcja

[START subscription_definition]

Zapis JSON
{
  "name": string,
  "subscriptionAutoAdded": boolean,
  "cost": {
    object (Money)
  },
  "subscriptionDuration": string,
  "termsAndConditionsUrl": string
}
Pola
name

string

Nazwa subskrypcji. Wymagane.

subscriptionAutoAdded

boolean

Czy subskrypcja jest dodawana automatycznie, gdy użytkownik skorzysta z tej oferty.

cost

object (Money)

Koszt subskrypcji. Wymagane.

subscriptionDuration

string (Duration format)

Okres ważności subskrypcji w ramach kosztu abonamentu. Wymagane.

Czas trwania w sekundach z maksymalnie 9 miejscami po przecinku, zakończony znakiem „s”. Przykład: "3.5s".

termsAndConditionsUrl

string

Adres URL warunków partnera dotyczących tej subskrypcji.

Warunki

[START terms_definition]

Zapis JSON
{
  "url": string,
  "restrictedToCertainUsers": boolean,
  "termsAndConditions": string,
  "additionalTermsAndConditions": [
    string
  ]
}
Pola
url

string

URL warunków korzystania z usługi partnera.

restrictedToCertainUsers

boolean

Czy oferta jest ograniczona do określonych użytkowników.

termsAndConditions

string

Główny tekst warunków podany przez partnera.

additionalTermsAndConditions[]

string

Warunki dodatkowe do głównych warunków partnera.