Revel 2.74 API Updates
Welcome to the 2.74 Revel API changelog!
In Revel 2.74, we made some useful changes to our Product and WebOrders resources.
Please review the changes below in order to test and update your integration accordingly.
Modified Resources:
Modifications made to the Products resource:
-
For the /resources/ProductModifier endpoint, an optional parameter was added called
maximum_modifier_qty
-
For the GET endpoints: Added an integer value to the response with key named:
maximum_modifier_qty
Field name:
maximum_modifier_qty
Value type: Integer
Description: Maximum quantity that a user may select per modifier. Not to exceed default modifier value
or maximum modifiers per group. Blank value or quantity of 0 means no maximum. -
This API change allows customers to set a maximum quantity that a user may select per modifier. For example, a product called “Cheese Pizza” has a modifier called “Cheese” with a maximum value of 3 on the cheese to prevent someone from adding more than 3 cheese modifiers.
-
For the POST, PUT, PATCH endpoints: Added a new optional body parameter called
maximum_modifier_qty
-
Note: Additional modifications were made to the WebOrders resource to allow customers to call the menu and retrieve the modifier maximum quantity for a product modifier (see below).
Modifications were made to the WebOrders resource:
-
For the WebOrders Menu, ProductUpcharge, and Modifiers endpoints, modifications were made to support changes for the maximum modifier quantities (see above for Products resource).
- For the /weborders/menu, /weborders/product_upcharge/ , and /weborders/modifiers endpoints, a new field is returned in the response called
maximum_modifier_qty
- For the /weborders/menu, /weborders/product_upcharge/ , and /weborders/modifiers endpoints, a new field is returned in the response called
-
For the WebOrders Products, Menu, System Settings, and Attributes endpoints, new optional query parameters were added to the GET request to support unique custom menus for specific channels.
*When a custom menu is configured with multi-channel mode (mode = 6), GET requests can now include additional parameters for
mode
andname
to specify the targeted custom menu. For example:- /weborders/products/?establishment=101&mode=6&name=ThirdPartyMenu
- /weborders/menu/?establishment=101&mode=6&name=ThirdPartyMenu
- /weborders/system_settings/?establishment=101&mode=6&name=ThirdPartyMenu
- /weborders/attributes/?establishment=101&mode=6&name=ThirdPartyMenu
-
For the WebOrders Special Resources endpoints, new optional parameters mode and name were added to the POST request to specify the targeted custom menu. The following WebOrder endpoints were modified:
specialresources/cart/calculate
,specialresources/cart/validate
,specialresources/cart/submit
.
Example of an object with multi-channel custom menu:
{
"establishment":101,
"customMenuInfo": {
"mode": 6,
"name": "ThirdPartyMenu"
},
"items":[
{
"price":5,
"product":26586,
"quantity":1
},
{
"price":10,
"product":26587,
"quantity":1
}
],
"orderInfo":{
"created_date":"2022-03-22T02:00:00",
"pickup_time": "2022-03-22T09:00:00-07:00",
"dining_option":0,
"notes":"Add utensils",
"asap":false,
"customer":{
"phone":"5555555555",
"email":"[email protected]",
"first_name":"Revel",
"last_name":"Test"
}
},
"paymentInfo": {
"type": 7,
"tip": 0,
"amount":"10",
"cardInfo": {
"firstDigits": "4000",
"lastDigits": "2224",
"firstName": "A",
"lastName": "K"
},
"transaction_id": "e2d8bfe019960139240e0a58d0b21hg82a"
}
}
Note: It is important to use the same parameter values for both GET and POST requests to avoid any unexpected results.