Skip to main content

Global Catalog

Endpoint Updates

oAuth id Response

The oAuth exchange token endpoint you build must include the id property in the response, which corresponds to the merchant's id (provider merchant id) within your system.

Get Catalog X-Provider-Merchant-Id Header

Requests to your Get Catalog endpoint will include the X-Provider-Merchant-Id header instead of the X-Provider-Location-Id header.

Location-Specifc Object Changes

Global catalog integrations have additional features on catalog objects to support differences across locations.

Location Overrides

In the example below, location overrides have been applied into certain items' location_overrides to change the price, availability, and description of items at specific locations. Specifically, location_2 has discounts on each platter's price, and location_1 has 86'd its "Party Platter". For a full list properties that can be overriden refer to the API documentation.

{
"category": [
{
"provider_id": "starters_provider_id",
"name": "Starters",
"item_family_ids": [
"platter_provider_id"
]
}
],
"item_family": [
{
"provider_id": "platter_provider_id",
"name": "c",
"description": "Appetizer Platter",
"is_active": true,
"modifier_group_ids": [],
"item_ids": [
"small_platter_provider_id",
"large_platter_provider_id",
"party_platter_provider_id"
],
"images": []
}
],
"item": [
{
"provider_id": "small_platter_provider_id",
"name": "Small Platter",
"is_active": true,
"price_amount": 500,
"price_currency": "usd",
"location_overrides": [
{
"provider_location_id": "location_2",
"override": {
"price_amount": 399,
},
},
],
},
{
"provider_id": "large_platter_provider_id",
"name": "Large Platter",
"is_active": true,
"price_amount": 800,
"price_currency": "usd",
"location_overrides": [
{
"provider_location_id": "location_2",
"override": {
"price_amount": 599,
},
},
],
},
{
"provider_id": "party_platter_provider_id",
"name": "Party Platter",
"is_active": true,
"price_amount": 2000,
"price_currency": "usd",
"location_overrides": [
{
"provider_location_id": "location_1",
"override": {
"is_active": false,
},
},
{
"provider_location_id": "location_2",
"override": {
"price_amount": 1599,
},
},
],
}
],
"modifier_group": [],
"modifier": [],
"menu": []
}

Location Memberships

In the example below, the "Brunch" menu has been introduced, but only exists at location_2. If location_memberships is ommited, the entity will exist at all locations. Note that location memberships only can be applied to certain entity types, please refer to the API documentation for more details.

{
"category": [
{
"provider_id": "sandwiches_provider_id",
"name": "Sandwiches",
"item_family_ids": ["blt_provider_id"]
},
{
"provider_id": "pancakes_provider_id",
"name": "Pancakes",
"item_family_ids": ["pancake_provider_id"]
},
],
"item_family": [
{
"provider_id": "blt_provider_id",
"name": "BLT Sandwich",
"description": "BLT Sandwich",
"is_active": true,
"price_amount": 1000,
"modifier_group_ids": [],
"item_ids": [],
"images": []
},
{
"provider_id": "pancake_provider_id",
"name": "Pancakes",
"description": "3 Pancakes",
"is_active": true,
"price_amount": 800,
"modifier_group_ids": [],
"item_ids": [],
"images": []
},
],
"item": [],
"modifier_group": [],
"modifier": [],
"menu": [
{
"provider_id": "brunch_provider_id",
"name": "Brunch",
"category_ids": ["pancakes_provider_id", "sandwiches_provider_id"],
"schedule": {
"monday": ["10:00-12:00"],
"tuesday": ["10:00-12:00"],
"wednesday": ["10:00-12:00"],
"thursday": ["10:00-12:00"],
"friday": ["10:00-12:00"],
"saturday": ["10:00-14:00"],
"sunday": ["10:00-14:00"]
},
"location_memberships": ["location_2"],
},
{
"provider_id": "lunch_and_dinner_provider_id",
"name": "Lunch & Dinner",
"category_ids": ["sandwiches_provider_id"],
"schedule": {
"monday": ["10:00-20:00"],
"tuesday": ["10:00-20:00"],
"wednesday": ["10:00-20:00"],
"thursday": ["10:00-20:00"],
"friday": ["10:00-20:00"],
"saturday": ["10:00-20:00"],
"sunday": ["10:00-20:00"]
}
},
]
}