Snooze / Unsnooze Products

Overview

When customers want to make one or more products or modifiers temporarily unavailable online, they will action a 'Snooze' request to prevent the item being ordered for a certain period of time. This would typically be a response to items going out of stock.

Format

Both Snooze and Unsnooze events will be communicated to all channels hosting a menu containing the snoozed items.

Unsnoozing

When the snooze timeframe lapses, or if the snoozed status is removed manually, items will be 'Unsnoozed' automatically. Channels should therefore anticipate that items can become unsnoozed at any time before the originally specified snooze period ends.

Snoozed Items on Active Menus Only
Only when a menu is published successfully to a channel, will snooze events be triggered for items contained in the menu.

Response

The intended purpose of snoozing a product is that it will no longer be available for a specified time period. As such, there is a need for this snoozed state to be clear on the customer facing menu. Two UI details that are commonly applied as follows;

  • Items in view but clearly marked unavailable - a snoozed item can be visible but not available to select e.g. by greying out the product image.
  • Showing estimated unsnooze time - as snooze requests contain the intended length of time for an item to be unavailable, it is therefore possible to show an estimate of when the product will become available again.

If your channel does not support the above suggested UI for displaying snoozed products, removing them from view altogether will achieve the same intended outcome.

Request format

When one or more products are snoozed or unsnoozed, you can expect the request format shown below to be delivered to your specified webhook.

{
    "accountId": "5b****71c6489f0029****d4",
    "locationId": "5c****ecc6489f0001****b8",
    "channelLinkId": "5e****abc11dec0001****9b",
    "operations": [
        {
            "action": "snooze",
            "data": {
                "items": [
                    {
                        "plu": "PIE1",
                        "snoozeStart": "2020-03-24T16:21:54.955000Z",
                        "snoozeEnd": "2020-03-24T22:21:54.955000Z"
                    }
                ]
            },
            "allSnoozedItems": [
                {
                    "plu": "PIE1",
                    "snoozeStart": "2020-03-24T16:21:54.955000Z",
                    "snoozeEnd": "2020-03-24T22:21:54.955000Z"
                },
                {
                    "plu": "MSB1",
                    "snoozeStart": "2020-03-24T16:21:54.955000Z",
                    "snoozeEnd": "2020-03-24T22:21:54.955000Z"
                }
            ]
        }
    ]
}
{
    "accountId": "5b****71c6489f0029****d4",
    "locationId": "5c****ecc6489f0001****b8",
    "channelLinkId": "5e****abc11dec0001****9b",
    "operations": [
        {
            "action": "unsnooze",
            "data": {
                "items": [
                    {
                        "plu": "PIE1",
                        "snoozeStart": "2020-03-24T16:21:54.955000Z",
                        "snoozeEnd": "2020-03-24T22:21:54.955000Z"
                    },
                    {
                        "plu": "MSB1",
                        "snoozeStart": "2020-03-24T16:21:54.955000Z",
                        "snoozeEnd": "2020-03-24T22:21:54.955000Z"
                    }
                ],
                "allSnoozedItems": []
            }
        }
    ]
}
accountIdThe ID of the customer accountstr
locationIdThe ID of a specific location in the customer accountstr
channelLinkIdThe unique id of the store on the channel platformstr
action"snooze" or "unsnooze"str
data.itemsa list of items showing the period during which they each should be snoozed
pluThe items should be snoozed based on the PLU.str
snoozeStartWhen snooze status should begin, timestamp is in UTC yyyy-MM-ddTHH:mm:ssZstr
snoozeEndWhen snooze status should end, timestamp is in UTC yyyy-MM-ddTHH:mm:ssZstr
allSnoozedItemsEach time you receive a snooze request for your channel, you will also receive the complete list of all items (allSnoozedItems) that should currently be in a snoozed state i.e. all previously snoozed items included will be included with each request. This additional list of items can be disabled if required via Channel settings.
Body Params
string
required

ID of the customer account.

string
required

ID of a location in the customer account.

string
required

Unique ID of the store on the channel platform.

operations
array of objects
required
length ≥ 1

Snooze or unsnooze operations to apply.

operations*
string
enum
required

Action to apply to the listed items.

Allowed:
data
object
required
Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json