Block Management

Block management involves the organization and administration of group reservations or blocks of rooms in a hotel. This process in OPERA Cloud includes setting aside rooms for events, conferences, or group bookings, ensuring availability, and managing associated logistics and billing. You can retrieve block allocations to manage group reservations and optimize room inventory. This data helps in dynamic pricing adjustments and accurate forecasting for better revenue management in OPERA Cloud.

Figure 4-3 Workflow


This image shows the workflow for block management.

Use Cases

Use Case Description Operation
Retrieve details about your block allocations You can fetch block allocation information for a hotel within a specified date range. This returns details about the allocated inventory, rates, and room type statistics, aiding in the management of group reservations and optimization of room inventory. getBlockAllocationSummary

Retrieve Block Allocations Summary Data using getBlockAllocationSummary

The asynchronous operation getBlockAllocationSummary can be used to retrieve detailed information about room block allocations. This information includes the number of rooms allocated, block dates, and associated rates, which are crucial for managing group reservations and optimizing room inventory. The data can be utilized for dynamic pricing adjustments, accurate forecasting, and effective revenue management.

Business Logic Comments
Retrieving the initial block allocations summary data using start/endDate

The block allocation summary data can be requested using startDate and endDate to fetch the initial block allocations summary data for a specified date range:

  • startDate: The beginning date to filter block allocations.
  • endDate: The ending date to filter block allocations.

Other Critical Parameters include:

  • hotelId: Specifies the hotel for which block allocations are being queried.
  • blockId: Retrieves a specific block by its unique ID.
  • status: Filters blocks based on their current status.
  • roomType: Filters block allocations by the type of room.
  • rateCode: Filters block allocations based on the rate code applied.
Retrieving the incremental block allocations summary Data using startLastModifiedDate/endLastModifiedDate

The block summary data can be requested using startLastModifiedDate/endLastModifiedDate to fetch the reservation summary data for a given date range:

  • startLastModifiedDate: Filters reservations that have been modified on or after this date.
  • endLastModifiedDate: Filters reservations that have been modified on or before this date.
Key Considerations
  • The hotelId parameter is essential to identify which hotel's block allocations are being queried.
  • Keep the date range (startDate and endDate or startLastModifiedDate and endLastModifiedDate) as narrow as possible to reduce the search window to a specific time frame.
  • Filtering options like blockId, status, roomType, and rateCode allow for more precise and relevant search results, ensuring that the data retrieved is highly specific to your needs.
Key Response Data Elements

The key response data elements include the following:

  • Hotel Information:
    • Hotel ID: Identifier for the hotel.
  • Block Information:
    • Block ID: Unique identifier for the block of rooms.
    • Status: Current status of the block (for example, confirmed, tentative).
  • Allocation Information:
    • Allocation Dates:
      • Start Date: The beginning date of the block allocation.
      • End Date: The ending date of the block allocation.
    • Room Type: Description of the room type allocated in the block.
    • Allocated Rooms: Number of rooms allocated in the block.
    • Available Rooms: Number of rooms still available within the block.
  • Rate Information:
    • Rate Code: Code representing the rate plan applied to the block.
    • Rate Amount: The amount charged per room in the block.
    • Rate Currency: The currency in which the rate is denoted.
  • Modification Information:
    • Last Modified Date: The date and time when the block was last modified.
Sample API request/response
  1. startBlockAllocationSummaryProcess

    1.1. startBlockAllocationSummaryProcess (requested using the parameters startDate/endDate)

startBlockAllocationSummaryProcess (startDate/endDate)

Endpoint:
POST {{HostName}}/blk/async/v1/externalSystems/{{ExtSystemCode}}/hotels/{{HotelId}}/blocks/allocationSummary


Request Body:
{
  "startLastModifiedDate": "2024-07-01",
  "endLastModifiedDate": "2024-07-01"
}

Sample Successful Response:
202 Accepted

1.2. startBlockAllocationSummaryProcess (requested using the parameters startLastModifiedDate/endLastModifiedDate)

startBlockAllocationSummaryProcess (startLastModifiedDate/endLastModifiedDate)

Endpoint:
POST {{HostName}}/blk/async/v1/externalSystems/{{ExtSystemCode}}/hotels/{{HotelId}}/blocks/allocationSummary


Sample Successful Response:
202 Accepted

2. getBlockAllocationSummaryProcessStatus

getBlockAllocationSummaryProcessStatus

Endpoint:
HEAD {{HostName}}/blk/async/v1/externalSystems/{{ExtSystemCode}}/hotels/{{HotelId}}/blocks/allocationSummary/{{RequestId1}}

Sample Request cURL:

curl --location --head '{{HostName}}/blk/async/v1/externalSystems/{{ExtSystemCode}}/hotels/{{HotelId}}/blocks/allocationSummary/{{RequestId1}}'
--header 'Content-Type: application/json' \
--header 'x-hotelId: {{HotelId}}' \
--header 'x-app-key: {{AppKey}}' \
--header 'Authorization: Bearer {{Token}}' \
--data ''

Sample Successful (200 OK) Response:


201 Created
(You are ready to proceed to Step 3)

3. getBlockAllocationSummary

getBlockAllocationSummary

Endpoint:
GET  {{HostName}}/blk/async/v1/externalSystems/{{ExtSystemCode}}/hotels/{{HotelId}}/blocks/allocationSummary/{{RequestId2}}


Sample Successful (200 OK) Response:
[
    {
        "blockId": 1825245,
        "blockCode": "TOU280723_007",
        "blockName": "touroomgrid",
        "masterBlockId": 1825246,
        "status": "ACT",
        "marketCode": "IPL",
        "startDate": "2023-07-28T00:00:00",
        "endDate": "2023-07-29T00:00:00",
        "cutOffDays": 0,
        "cateringOwner": 12213,
        "cateringOwnerCode": "ALL",
        "owner": 12213,
        "ownerCode": "ALL",
        "roomsOwner": 12213,
        "roomsOwnerCode": "ALL",
        "createDateTime": "2023-07-28T05:12:59",
        "blockType": "G",
        "lastModifiedDate": "2023-07-28T05:12:59",
        "sourceCode": "WI",
        "bookingMedium": "WI",
        "allocationDates": [
            {
                "allocationDate": "2023-07-28T00:00:00",
                "allocations": [
                    {
                        "originalRooms": 10,
                        "roomType": "TR",
                        "currentRooms": 0,
                        "pickupRooms": 0,
                        "inventory": {
                            "onePerson": 0,
                            "twoPerson": 0,
                            "threePerson": 0,
                            "fourPerson": 0,
                            "sellLimit": 0
                        },
                        "rates": {
                            "onePerson": 500,
                            "twoPerson": 0,
                            "threePerson": 0,
                            "fourPerson": 0,
                            "extraPerson": 0
                        },
                        "actualRevenue": {
                            "currency": "NOK"
                        }
                    },
                    {
                        "originalRooms": 10,
                        "roomType": "QE",
                        "currentRooms": 0,
                        "pickupRooms": 0,
                        "inventory": {
                            "onePerson": 0,
                            "twoPerson": 0,
                            "threePerson": 0,
                            "fourPerson": 0,
                            "sellLimit": 0
                        },
                        "rates": {
                            "onePerson": 500,
                            "twoPerson": 0,
                            "threePerson": 0,
                            "fourPerson": 0,
                            "extraPerson": 0
                        },
                        "actualRevenue": {
                            "currency": "NOK"
                        }
                    },
                    {
                        "originalRooms": 10,
                        "roomType": "SR",
                        "currentRooms": 0,
                        "pickupRooms": 0,
                        "inventory": {
                            "onePerson": 0,
                            "twoPerson": 0,
                            "threePerson": 0,
                            "fourPerson": 0,
                            "sellLimit": 0
                        },
                        "rates": {
                            "onePerson": 500,
                            "twoPerson": 0,
                            "threePerson": 0,
                            "fourPerson": 0,
                            "extraPerson": 0
                        },
                        "actualRevenue": {
                            "currency": "NOK"
                        }
                    }
                ]
            }
        ]
    }
]