10 Add an Item to an Event

Business Context

Events require many levels of organization including: booking a function space for the event, creating a food and beverage menu, and making sure all other resources needed for the event are available. A customer usually decides the menu for an event after the booking process has already occurred and communicates the choice to the partner a few weeks prior to the event happening. This topic describes the steps to search for an event using the REST APIs, and describes how to add an item to an event that has already been created in the application. An item could be audio visual equipment, such as an LCD projector or teleprompters, or it could be an additional setup, such as a stage and a podium.

The below workflow diagram explains the typical use cases for adding a menu to an event.

Customer — The meeting planner has chosen the item to add to their meeting setup for next week.

Partner — The partner communicates the customer's selection to the property so the item can be added to the event.

OPERA Cloud — The application looks for the specific event, returns the event ID, adds the item selected, and returns the event with the item added.

Figure 10-1 Workflow Diagram


This image shows the workflow diagram that explains the typical use cases for adding a menu to an event.

Prerequisites

Table 10-1 Required Software Tools

Tool Description Links

Postman

Postman is an API Platform that allows you to design, create and test API's.

Use Postman to send API requests or to use the Postman collections provided.

Using the Oracle Hospitality APIs

Tool

Table 10-2 Current Versions Required

OPERA Cloud Platform Module Description Minimum Version

OPERA Cloud Services

The customer must have a subscription to OPERA Cloud Foundation

 

Oracle Hospitality Integration Platform (OHIP)

For customers, OHIP is included in the subscription to OPERA Cloud Foundation.

Partners need a subscription to the Oracle Hospitality Integration Cloud Service.

 

Configuration of OPERA Controls

To activate the Create Block functionality, you must ensure the following OPERA Controls are active in the target property. You can use the following API operations to validate the settings:

Ensure that application function BLOCKS - BUSINESS BLOCK is active

RQ: ent/config/v1/settings?hotelId={{HotelId}}&parameterNameWildCard=BUSINESS BLOCK

Ensure that application function EVENTS - CATERING EVENTS is active

RQ: ent/config/v1/settings?hotelId={{HotelId}}&parameterNameWildCard=CATERING EVENTS

Ensure that application function EVENTS - EVENT RESOURCES is active

RQ: ent/config/v1/settings?hotelId={{HotelId}}&parameterNameWildCard=EVENT RESOURCES

Workflow

Step by step solution including:

Figure 10-2 The sequence of API calls (in any direction) 


This image shows the sequence of API calls (in any direction).

Description of Steps

A typical process to add a menu to an event is as follows:

  1. Search for an event using getEvents.
    1. Multiple search parameters are available, for example, dates, status, event type, and other parameters.
  2. Search for an Item using getInventoryItem.
    1. In this specific scenario, the customer has provided the name of the item to add to the event.
  3. Add the Item to the event using putEventsResources.
    1. The Item is added as configured. Pricing, number of items, and other details cannot be modified during this operation. If changes are required, see the appropriate section in this user guide.

Sample calls: Sample API calls for steps described in the diagram.

Sample for getEvents

Search for Event

GET {{HostName}}/evm/v1/events?eventStartDate=2023-12-12&eventEndDate=2023-12-12&eventStatusCodes=DEF&hotelIds={{HotelId}}&eventTypeCodes=MTG

Sample Response

{
    "eventSummaries": {
        "eventSummary": [
            {
                "eventId": {
                    "type": "EventId",
                    "idContext": "OPERA",
                    "id": "610375"
                },
                "blockIdList": [
                    {
                        "id": "875435",
                        "type": "Block"
                    }
                ],
                "blockName": "STEST - Wait 1",
                "attendees": 20,
                "functionSpaceDetails": {
                    "code": "ANNA",
                    "description": "Annapolis Room"
                },
                "functionSpaceSetup": {
                    "code": "BQ10",
                    "description": "Banquets 10 Chairs"
                },
                "eventStatus": {
                    "status": {
                        "code": "DEF",
                        "description": "Definite"
                    },
                    "color": "Red"
                },
                "cateringStatusDeductInventory": true,
                "cateringStatusReturnToInventory": false,
                "setupTime": 30,
                "tearDownTime": 30,
                "masterEvent": false,
                "subEvent": false,
                "packageEvent": false,
                "alternateEvent": false,
                "displayDoorCard": true,
                "doorCard": "STEST - Wait",
                "excludeFromForecast": false,
                "useForecastRevenue": true,
                "minimumOccupancy": 5,
                "maximumOccupancy": 60,
                "loudEvent": false,
                "rentalCode": "CUSTOM",
                "eventShared": false,
                "shareable": false,
                "includeSpaceInPackage": false,
                "hotelId": "BHOTEL",
                "blockHotelCode": "BHOTEL",
                "hasPostings": false,
                "blockHasPostings": false,
                "hasPartialPostings": false,
                "allPosted": false,
                "nothingPosted": false,
                "eventStartDate": "2023-12-12 09:00:00.0",
                "eventEndDate": "2023-12-12 17:00:00.0",
                "type": "MTG",
                "eventName": "Meeting Wait 1",
                "cateringCurrency": "USD",
                "cateringQuotedCurrency": "USD",
                "eventIndicators": [
                    {
                        "indicatorName": "REVENUE",
                        "count": 3
                    }
                ]
            }
        ],
        "totalPages": 1,
        "offset": 100,
        "limit": 100,
        "hasMore": false,
        "totalResults": 1
    },
    "links": []
}

Sample for getInventoryItem (slide projector)

Search for Item

GET{{HostName}}/evm/config/v1/hotels/{{HotelId}}/inventoryItems?usedForEvents=true&itemName=slide+projector

Sample Response:

{
    "items": [
        {
            "hotelId": "BHOTEL",
            "itemId": {
                "id": "39059",
                "type": "ItemInventoryId"
            },
            "itemClassId": {
                "id": "24278",
                "type": "ItemClassId"
            },
            "itemClassCode": "81",
            "itemClassDescription": "Audio Visual Equipment",
            "itemName": {
                "defaultText": "Slide Projector",
                "translatedTexts": [
                    {
                        "value": "Dia-Projektor",
                        "language": "DE"
                    },
                    {
                        "value": "Rétro-projecteur",
                        "language": "F"
                    }
                ]
            },
            "itemDescription": "Slide Projector",
            "itemCode": "S39059",
            "revenueType": "AVEQ",
            "revenueTypeEditable": true,
            "externalOrder": false,
            "print": true,
            "sellInfo": {
                "available": {},
                "availableQty": 0,
                "qtyInStock": 3,
                "defaultQty": 1,
                "sellSeparate": false,
                "sellControl": false,
                "welcomeOffer": true,
                "webBookable": false,
                "itemClassWebBookable": false,
                "outsideStay": false,
                "fixedCharge": false,
                "discountable": true,
                "itemClassDiscountable": true,
                "criticalInventory": true,
                "price": {
                    "amount": 10
                }
            },
            "tracesPerDay": false,
            "displaySequence": 15,
            "eventTypes": [
                "AFT",
                "BKO",
                "BRK",
                "BRKFT",
                "BRKFTB",
                "BRKFTP",
                "CKT",
                "COF",
                "DD",
                "DIN",
                "DINB",
                "DINP",
                "EVT1",
                "EVT2",
                "EVT3",
                "KOF",
                "LIZ",
                "LIZ2",
                "LONG",
                "LUN",
                "LUNB",
                "LUNP",
                "MTG",
                "NOTMEMTG",
                "NYHTFDRG",
                "REC",
                "RECP",
                "SEM",
                "WED",
                "WEDC",
                "WEDDB",
                "WEDDP"
            ],
            "departments": [],
            "attributes": [],
            "rates": [
                {
                    "itemRateId": {
                        "id": "31860",
                        "type": "ItemRateId"
                    },
                    "itemRateCode": "DAY",
                    "name": "Per Day",
                    "price": {
                        "amount": 200
                    },
                    "hourly": false,
                    "default": true
                },
                {
                    "itemRateId": {
                        "id": "90597",
                        "type": "ItemRateId"
                    },
                    "itemRateCode": "COMP",
                    "name": "Complimentary",
                    "price": {},
                    "hourly": false,
                    "default": false
                }
            ],
            "vendors": [],
            "resourceNotes": [],
            "itemClassDisplaySequence": 8,
            "usedForEvents": true,
            "usedForReservation": false,
            "itemFromTemplate": false
        }
    ]


Sample for putEventsResources

Add the Menu

PUT{{HostName}}/evm/v1/eventsResources

Body:

{
    "eventItems": {
        "eventItemInfo": [
            {
                "eventItem": {
                    "quantity": "1",
                    "externalOrder": false,
                    "hotelId": "BHOTEL",
                    "itemId": {
                        "type": "ItemInventoryId",
                        "id": "134562"
                    }
                }
            }
        ],
        "includedInPackage": false,
        "critical": false
    },
    "eventDetails": [
        {
            "eventPrimaryInfo": {
                "eventId": {
                    "type": "EventId",
                    "id": "610375"
                },
                "hotelId": "BHOTEL"
            },
            "eventBlockInfo": {
                "blockIdList": [
                    {
                        "type": "Block",
                        "id": "875435"
                    }
                ],
                "markAsRecentlyAccessed": false
            }
        }
    ]
}

References

  • For more information, refer to the Events topic in the OPERA Cloud Services user guide.