Skip to main content
The Hyra Order Logging API is an advanced, real-time solution for monitoring and managing the lifecycle of an order. It offers comprehensive visibility from the moment an order is placed to when it’s ready for pickup, tracking each participant involved.

Ready made scripts

Hyra provides some out of the box solutions for order logging for popular solutions.

Order Status Lifecycle

Each order must have a status associated with it. Depending on your system, you may decide to use different statuses. The following statuses are available:
  • handed_to - The order has been handed to the customer
  • submitted - The order has been submitted by the cashier
  • waiting_for_preparation - The order is waiting for preparation by a chef or other staff member
  • finding_new_colleague - The order is waiting for a new colleague to take over preparation (for example, if the previous chef left the game)
  • preparing - The order is being prepared by a chef or other staff member
  • completed - The order has been completed
  • waiting_for_pickup - The order is waiting for pickup by the customer or a delivery person
  • cancelled - The order has been cancelled

Requiring the module

The module used for Order Logging is stateful and persists its authentication state with the Hyra API. If you use a single script order solution, you can directly require the module as follows:
local orderLog = require(15254660066)
If you use multiple scripts, you can create a module script exporter. You need one of these to maintain the state of the module across several scripts.

Authentication

To authenticate, input your unique apiKey and workspaceId at the beginning of your main script:
orderLog.setupAPI(apiKey, workspaceId)
You only need to do this once per game server.

Interacting with the module

To log a new order, input the customer and actor as player objects, along with an argument table that can include an array of items and the initial status.The customer and the actor are both Player instances.
orderLog.createOrder(customer, actor, {
    items = {"item 1", "item 2"},
    status = "waiting_for_preparation",
})
Once an order has been created, you will receive a response object that includes the unique id and order_number for the order.
{
    error = false,
    id = "653db4bb1e3727cc1851ac07",
    order_number = "1001",
}
If there is anything wrong with the request, you will receive an error message.
{
    error = true,
    message = "Customer is required",
}
When creating an order, you will need to specify a valid actor. In some cases, you may not have a valid player, for example if the order was submitted via a kiosk. In this case, there are a few system IDs you can use:
  • 1 - POS (Point of Sale System)
  • 2 - Kiosk
  • 3 - Mobile Ordering
  • 4 - NPC
Using the unique order id (not the order_number) you can update the status of an order
orderLog.setWaiting("653db4bb1e3727cc1851ac07")
I