Skip to main content

Online Ordering Tutorial

Introduction

The Order and Pay API allows integrators to connect to customer accounts to retrieve restaurant data, create orders, and apply payments.

There are two types of online orders:

  • Local Orders are for dine-in.

    • They allow you to assign the order to a table in the restaurant.
    • When they are awaiting payment, they appear in the 'Dine In' section of the Orders tab in the POS.
  • To Go Orders are for delivery and takeaway.

    • They allow you to set a delivery address and/or a collection time.
    • When they are awaiting payment, they appear in the Pickup/Delivery section of the Orders tab in the POS.
NOTE

Both Local and To Go orders will appear on the receipt screen in the POS when they have been fully paid.

Below, you will find step by step instructions for creating both types of online orders.

Before You Begin
  • Make sure you have a test account that is configured to receive online orders. If you're not sure, contact K-Series Support or your Technical Partner Manager.

  • Make sure you have an up-to-date iPad with the latest version of the POS installed and connected to your test account. See the Help Center for more details.

  • If you want to send both types of orders, you will need separate Order Profiles set up for each one. For the purpose of this exercise, the default Order Profile for online ordering is a profile of type "Dine In".

  • Set up a Postman workspace by following our Setting Up Postman tutorial.

  • Make sure you have an access token for the account you will be working with. If you do not, please see our Authentication Tutorial

  • Make sure you have your businessLocationId saved in your Postman environment.

Part 1 - Retrieve item details

Step 1 - Load all menus

Open the Order & Payment Tutorial folder in your Postman workspace an send the GET All Menus request. This will return all the available POS menus. Copy the ikentooMenuId of the menu you wish to work with.

Part 1.1

Step 2 - Load Specific Menu

Open the GET Single Menu request. Paste the ikentooMenuId into the Path Variables in the Params tab and click 'Send.' This will return the menu details. Save this response for later use.

Part 1.2

Step 3 Retrieve Floor Plan Details (Local Orders Only)

Open the GET Floor Plans request. This will return the available tables. Save this response for later use.

Part 1.3


Part 2 - Create a Webhook

Step 1

Navigate to webhook.site and copy the URL that it generates.

Part 2.1

Step 2

Open the PUT Create Webhook request and paste the URL into the url field of the request body. Enter a name for the webhook in the endpointId field. Leave the other fields as is.

Part 2.2


GOOD TO KNOW

When withBasicAuth is set to true you can set a username and password for the webhook. This gives you the option to authenticate the requests being sent to your endpoint.

Part 3 - Build your online order payload

Use the details collected in Part 1 to populate your order request. Below you will find some example request bodies.

For both types of order, you will need to add the following to the payload:

  • At least one item sku from your menu, along with a quantity.
  • Your newly created endpointId.
  • A thirdPartyReference. The thirdPartyReference can be any string, and must be unique for each order.
Note

Section A) is for Local orders

Section B) is for To Go orders

Step 1

A) For Local Orders, you will also need to add a tableNumber to your payload.

Example request body:

    {
"businessLocationId":{{businessLocationId}},
"thirdPartyReference":"UNIQUEORDERREFERENCE",
"endpointId" : "DOCUMENTATIONTESTING",
"customerInfo" : {
"firstName" : "Jane"
},
"tableNumber": "1",
"items" : [ {
"quantity" : 2,
"sku" : "14"
},
{
"quantity" : 2,
"sku" : "FT1"
} ]
}

B) For To Go orders, you will also need to fill in the accountProfileCode for your Takeaway order profile.

Example request body:

    {
"accountProfileCode": "AAP-TOGO",
"businessLocationId":{{businessLocationId}},
"thirdPartyReference":"UNIQUEORDERREFERENCE10",
"endpointId" : "DOCUMENTATIONTESTING",
"customerInfo" : {
"firstName" : "Jane"
},
"items" : [ {
"quantity" : 2,
"sku" : "14"
},
{
"quantity" : 2,
"sku" : "FT1"
} ],
"takeAway": true
}

Part 4 - Send the order

Step 1

A) Paste your Local Order request into the Body section of the POST Create Local Order request.

Click 'Send':

Part 4.1a

B) Paste your To Go Order request into the Body section of the POST Create To Go Order request.

Click 'Send':

Part 4.1b

note

You will receive a 200 OK response. This means that the order has been successfully received, but doesn't necessarily mean that it has been sent to the POS. This must be confirmed via the webhook.

Step 2

Two confirmation webhooks should be sent to your endpoint.

A) Local Order:

Part 4.2a1

Part 4.2a2

B) To Go Order:

Part 4.2b1

Part 4.2b2

note

If there is a problem with the order, an error message will be sent to the webhook, indicating the reason for the issue. In this case, the order will not be sent to the POS. It will need to be corrected and sent again.

Step 3

The order will appear in the POS.

A) Local Order:

Unnpaid or Partially Paid:

Part 4.3a1

Fully Paid:

Part 4.3a2

B) To Go Order

Unnpaid or Partially Paid:

Part 4.3b1

Fully Paid:

Part 4.3b2

Step 4

Once the order is closed, you'll receive another webhook, in the case of To Go orders, you will receive two.

A) Local Order

Part 4.4a

B) To Go Order

Part 4.4b1

Part 4.4b2