Package madden.ingestion.offer

Index

ActionType

[START action_type_definition] Represents the fulfillment mode of the offer. If an offer can be shared across multiple fulfillment modes then duplicate offers are expected to be created for each fulfillment mode.

Enums
ACTION_TYPE_UNSPECIFIED
ACTION_TYPE_FOOD_DELIVERY The offer is applicable for food delivery services.
ACTION_TYPE_FOOD_TAKEOUT The offer is applicable for food takeout or pickup orders.
ACTION_TYPE_DINING The offer is for on-site dining at a restaurant.
ACTION_TYPE_SHOPPING_IN_STORE The offer is applicable for offline, in-store shopping purchases.

AdditionalFee

[START additional_fee_definition]

Fields
name

string

The name of the additional fee. Examples: convenience fee, handling fee etc. Required.

fee

Fee

Coupon

[START coupon_definition]

Fields
text

string

The coupon text the offer provider wants to display to users.

code

string

Coupon code required to redeem the offer. Required.

Fee

[START fee_definition] Next ID: 5

Fields
unit

FeeUnit

type

FeeType

Union field cost.

cost can be only one of the following:

amount

Money

amount_range

MoneyRange

FeeType

[START fee_type_definition]

Enums
FEE_TYPE_UNSPECIFIED The UNSPECIFIED or default enum value should not be used in feeds.
FEE_TYPE_FIXED
FEE_TYPE_VARIABLE

FeeUnit

[START fee_unit_definition]

Enums
FEE_UNIT_UNSPECIFIED The UNSPECIFIED or default enum value should not be used in feeds.
FEE_UNIT_PER_GUEST
FEE_UNIT_PER_TRANSACTION

FixedDenominations

Fields
amounts[]

Money

A list of all available discrete denominations (e.g., [100, 500, 1000]).

FoodOfferRestrictions

[START food_offer_restrictions_definition]

Fields
meal_types[]

MealType

The meal types the offer can be applied to, such as lunch or dinner. If unset, the offer can be applied to all meal types.

restricted_to_certain_courses

bool

Whether the offer can only be applied to certain courses.

GiftCardInfo

[START gift_card_info_definition]

Fields

Union field denomination_type.

denomination_type can be only one of the following:

fixed_denominations

FixedDenominations

Used when the gift card is available in specific, fixed amounts.

custom_range

MoneyRange

Used when the brand allows users to choose a custom (flexible) face value within a defined range.

MealType

[START meal_type_definition]

Enums
MEAL_TYPE_UNSPECIFIED The UNSPECIFIED or default enum value should not be used in feeds.
MEAL_TYPE_BREAKFAST
MEAL_TYPE_LUNCH
MEAL_TYPE_DINNER

MoneyRange

[START money_range_definition]

Fields
min_amount

Money

max_amount

Money

Offer

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

Fields
offer_id

string

Unique ID of the offer. Required.

entity_ids[]

string

List of merchants who are participating in this offer.

add_on_offer_applicable_to_all_entities

bool

If true, this offer is applicable to all entities under the aggregator. Only applicable for add on offers.

offer_source

OfferSource

An offer can be provided by the aggregator, an individual merchant, or even a third party as an add on. Required.

action_type

ActionType

The service that is providing the offer. An offer_id can belong to only one action_type. If an offer can be shared across multiple service types then duplicate offers with unique Ids are expected to be created for each service type. Required.

offer_modes[]

OfferMode

The methods the offer can be availed - walk in, reservation, online, etc. Required.

offer_category

OfferCategory

The category of the offer. Required.

source_assigned_priority

int32

Non-negative integer ([1-100], where 1 represents the highest priority) indicating the priority level of the offer assigned by the source. When multiple offers are available for the same merchant, this will be a signal for ranking offers. 0 would represent that the priority is not set.

offer_details

OfferDetails

Details of the offer such as the discount, booking cost, etc. Required.

offer_restrictions

OfferRestrictions

Describes how the offer is restricted i.e. whether a subscription/payment instrument is required, whether this offer can be combined with other offers (and what types), etc. Required.

coupon

Coupon

Details of a coupon. Required for offer_category: OFFER_CATEGORY_ADD_ON_COUPON_OFFER.

payment_instrument

PaymentInstrument

Details of a payment instrument. Required for offer_category: OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER.

subscription

Subscription

Details of a subscription. Required for offer_category: OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER.

terms

Terms

Terms and conditions of the offer. Required.

validity_periods[]

ValidityPeriod

The validity period of the offer. Describes what time period the offer is valid for including start and end times, days of the week, etc. Required.

offer_url

string

URL to the merchant's offer page. Required for offer_category: OFFER_CATEGORY_BASE_OFFER.

image_url

string

URL to the merchant’s offer image.

tags[]

OfferTag

Special tags associated with the offer. This is used to identify special offers like "Festive", "Top Rated", "Most booked", etc.

brand_id

string

Required for Gift Card deals to identify the brand offering the deal.

OfferCategory

[START offer_category_definition] Category of the offer. A base offer is a standard offer available to all customers such as 10% off spending over $100. A base offer restricted by a coupon or payment instrument will have the respective fields set. We also have add on x offers such as ADD_ON_PAYMENT_OFFER. Such offers can be added to other offers to gain additional discounts.

Enums
OFFER_CATEGORY_UNSPECIFIED The UNSPECIFIED or default enum value should not be used in feeds.
OFFER_CATEGORY_BASE_OFFER
OFFER_CATEGORY_ADD_ON_PAYMENT_OFFER
OFFER_CATEGORY_ADD_ON_COUPON_OFFER
OFFER_CATEGORY_ADD_ON_SUBSCRIPTION_OFFER

OfferCondition

[START offer_condition_definition]

Fields
description

string

OfferDetails

[START offer_details_definition] Next tag: 15

Fields
offer_display_text

string

The offer text the offer provider wants to display to customers on the search results page. Required.

max_discount_value

Money

The maximum discount that can be availed. For example, 10% off up to $100.

min_spend_value

Money

The minimum spend value to avail the discount. For example, 10% off when the total price is $100 or more.

booking_cost

Money

The cost to book this offer. For example, $100 off the final bill when a table is reserved at the cost of $15.

booking_cost_unit

FeeUnit

The unit of the booking cost. For example, per person, per transaction.

convenience_fee

Fee

booking_cost_adjustable

bool

Whether the booking cost is adjustable i.e. the booking cost is subtracted from the final bill. For example: 30% off dinner with reservation. Cost to reserve $15 and it will be applied to the final bill. Hence final bill: Total Spent - 30% - $15

additional_fees[]

AdditionalFee

Additional fees that are charged to the user. Examples: convenience, handling, delivery, packaging, service fee etc.

gift_card_info

GiftCardInfo

Details specifically for gift card deals.

Union field offer_specification. The discount can be a percentage or a fixed value subtracted from the total value. For example: 1. 10% off the final bill. 2. $15 off an order. Merchants can also offer custom discounts such as ‘buy one get one free’ through the relevant specification fields. Required. offer_specification can be only one of the following:
discount_percent

float

Percentage of the bill that is discounted. [0, 100] For 1+1 or 50% off offers that are applicable to the whole meal (e.g. 1+1 buffet, 1+1 on entire bill, 1+1 on set menu), this value can be set to 50.

discount_value

Money

Fixed value of the discount.

other_offer_detail_text

string

Free-form text to describe the discount. For specific 1+1 offers (e.g. 1+1 drinks, +1 main course, 1+1 selected menu items), these details should be described here.

OfferMode

[START offer_mode_definition] Specifies the method or channel through which the user can avail the offer.

Enums
OFFER_MODE_OTHER Use for fulfillment methods not covered by other specific modes.
OFFER_MODE_WALK_IN The offer is available for on-site visits without a prior reservation.
OFFER_MODE_FREE_RESERVATION The offer applies when a user makes a reservation that does not require an upfront fee.
OFFER_MODE_PAID_RESERVATION The offer applies when a user makes a reservation that requires an upfront payment.
OFFER_MODE_ONLINE_ORDER The offer is valid for orders placed through a website or digital platform.
OFFER_MODE_GIFT_CARD_PURCHASE Indicates a gift card purchase is the primary step required to acquire the deal.

OfferRestrictions

[START offer_restrictions_definition] Next tag: 11

Fields
combinable_with_other_offers

bool

Whether this offer can be combined with other offers. When true, partners can specify what offers this offer can be combined with. If both combinable_offer_categories & combinable_offer_ids are set then any offer matching one of the conditions above will be combinable.

combinable_offer_categories[]

OfferCategory

List of offer types that this offer can be combined with. For example, this offer may be combinable with other Coupons. If combinable_with_other_offers is true and this field is unset all types will be combinable.

combinable_offer_ids[]

string

List of offer_ids that this offer can be combined with. Some offers may only be combined with certain specific other offer_ids (can be considered parent offers). If combinable_with_other_offers is true and this field is unset all offer ids will be combinable.

inclusions[]

OfferCondition

List of conditions that must be met for the offer to be valid (e.g., non-alcoholic drinks, food).

exclusions[]

OfferCondition

List of conditions that would invalidate the offer (e.g., buffet, combo offers, and cocktails ).

min_guest

int32

The minimum number of people required to avail the offer.

food_offer_restrictions

FoodOfferRestrictions

Restrictions specific to food offers.

special_conditions[]

string

Special conditions for this offer that must be shown to the user. Examples: "Only valid for payment in [area]", "Excludes online payments"

OfferSource

[START offer_source_definition]

Enums
OFFER_SOURCE_UNSPECIFIED
OFFER_SOURCE_AGGREGATOR

OfferTag

[START offer_tag_definition]

Enums
OFFER_TAG_UNSPECIFIED The UNSPECIFIED or default enum value should not be used in feeds.
OFFER_TAG_NEW_YEAR_SPECIAL
OFFER_TAG_VALENTINES_SPECIAL

PaymentInstrument

[START payment_instrument_definition]

Fields
items[]

PaymentInstrumentItem

List of payment instruments that can be used to avail the offer. Required.

provider_name

string

Name of the payment instrument provider. Could be a banking partner, name of a bank, etc. For example: American Express, HDFC, ICICI.

PaymentInstrumentItem

[START payment_instrument_item_definition]

Fields
type

PaymentInstrumentType

Type of the payment instrument. Required.

name

string

Name of the payment instrument item like the name of the credit card. For example: HDFC Infinia, American Express Platinum. Required.

PaymentInstrumentType

[START payment_instrument_type_definition]

Enums
PAYMENT_INSTRUMENT_TYPE_UNSPECIFIED The UNSPECIFIED or default enum value should not be used in feeds.
PAYMENT_INSTRUMENT_CREDIT_CARD
PAYMENT_INSTRUMENT_DEBIT_CARD
PAYMENT_INSTRUMENT_BANK_ACCOUNT
PAYMENT_INSTRUMENT_UPI
PAYMENT_INSTRUMENT_ONLINE_WALLET
PAYMENT_INSTRUMENT_NETBANKING

Subscription

[START subscription_definition]

Fields
name

string

The name of the subscription. Required.

subscription_auto_added

bool

Whether the subscription is auto added when a user avails this offer

cost

Money

The cost of the subscription. Required.

subscription_duration

Duration

How long the subscription is valid for at the subscription_cost. Required.

terms_and_conditions_url

string

URL to the partner's terms and conditions relevant to this subscription.

Terms

[START terms_definition]

Fields
url

string

URL to the partner's terms and conditions.

restricted_to_certain_users

bool

Whether the offer is restricted to certain users.

terms_and_conditions

string

Primary T&C text provided by the partner.

additional_terms_and_conditions[]

string

Terms and conditions in addition to the primary T&C from the partner.