You are on page 1of 6

ODATES & OTIMES

1. INTRODUCTION

This document details oDates and oTimes in the Zuppler platform and how the date and time functionality in the
system can be extended using this feature.

2. WHEN DO WE NEED ODATES AND OTIMES

oDates and oTimes are used if we need to override the default behavior of time and date selection when scheduling an
order. When using oDates and oTimes, ASAP option should be manually disabled.

Here are examples of when oDates can be used:

● If the user is selecting a particular event and is not aware of the date. oDate can be used to display the actual event
name the user can select and based on the event selected, the corresponding date can be determined using the
Syntax described in the next section
● If the platform is powering let’s say a Food Truck concept. The Truck is at different office locations on different days
of the week and the user would prefer to pick the office location when selecting the date
● oTimes are typically used when the caterer would like to specify a range of time instead of a specific time for the
user

The system can have only 1 oDates and oTimes custom field for a restaurant. Selecting the oDate and oTimes would
set the system date and time accordingly. It is this system date and time that is transmitted with the order to the
restaurant or caterer.

3. SYNTAX FOR SETTING ODATES AND OTIMES


The following is an example of the syntax in setting up oTimes and oDates.

3.1 OTIME SYNTAX AND DISPLAY


otimes (starttime, label: "Time:", name: "starttime", values: [

7:00 AM => "7:00 AM - 7:30 AM"

7:15 AM => "7:15 AM - 7:45 AM"

7:30 AM => "7:30 AM - 8:00 AM"

7:45 AM => "7:45 AM - 8:15 AM"])

starttime is the name of the oTimes field. When integrating with Caterease, this is mapped to the Event Start Time
field in the Caterease system. "Time" is the label that is displayed in the UI for the user as shown below:
It will be a drop-down under the calendar, this can be a time or range of time. This can only be used for scheduled
orders.

Note:

7:00AM IS THE SYSTEM TIME AND WHAT YOU WILL SEE AS THE DUE TIME IN THE CS APP

7:00 AM - 7:30 AM IS WHAT THE USER WILL SEE IN THE UI

Name will be used to transmit the field to restaurant in any other case (emails, etc)

3.2 ODATE SYNTAX


ODATES(EVTDATE, LABEL: "EVENT DATE", NAME: "EVTDATE", VALUES: [

7/11/2020 => "JULY 11TH - HEART"

7/12/2020 => "JULY 12TH - THE USED"

7/14/2020 => "JULY 14TH - SHINEDOWN"


7/20/2020 => "JULY 20TH - TRAIN"

7/21/2020 => "JULY 21ST - ALICE COOPER"])

evtdate is the name of the oDate field., "Event Date" is the label that is displayed in the UI

The oDate will be a drop-down instead of a calendar control. Once the date is past, the date will no longer be
displayed.

3.3 OTIMES & ODATES WORKING TOGETHER


OTIMES (starttime, LABEL: "DELIVERY TIME: ORDER WILL ARRIVE UP TO 30 MINUTES BEFORE YOUR SELECTION:", NAME: "starttime",
VALUES: [

12:00 PM => "12:00PM -12:30 PM"

4:00 PM => "4:00 PM- 4:30PM"

5:00 PM => "5:00 PM-5:30PM"])

ODATES(EVENTDATES, LABEL: "DATE", NAME: "DATE", VALUES: [

12/17/2020 => "GAME 1"

12/18/2020 => "GAME 2"


12/19/2020 => "GAME 3"

12/20/2020 => "GAME 4"])


4. HOW ODATES AND OTIMES DIFFER FROM REGULAR CUSTOM FIELDS
oDates and oTimes translate to System Date and System Time in Zuppler. You can only have a max of 1 custom field of
type oDate and oTimes. All other regular custom fields are sent as a note to the restaurant. The only integration where
additional custom fields have special meaning is when we integrate with Caterease where they can be mapped to
specific fields within Caterease POS. This is explained in the next section.

5. ADDITIONAL TIME CUSTOM FIELDS MAPPING TO CATEREASE


If the custom fields are not defined as oDate or oTime, then they are displayed when the user is checking out.

The code below is what we would add to the Extra Fields section of Settings in the CP. Once this code is added, these
custom fields will render in the checkout cart.

Syntax:
set(label: "Event Info", name: "Event Info")

choices(starttime, name: "starttime", label: "When does your event start?:", values: ["Choose One", "8:00 AM",
"8:30 AM", "9:00 AM", "9:30 AM", "10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM", "12:00 PM", "12:30 PM", "1:00
PM", "1:30 PM", "2:00 PM", "2:30 PM", "3:00 PM", "3:30 PM", "4:00 PM", "4:30 PM", "5:00 PM"],required)

choices(endtime, name: "endtime", label: "When does your event end?:", values: ["Choose One", "8:30 AM",
"9:00 AM", "9:30 AM", "10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM", "12:00 PM", "12:30 PM", "1:00 PM", "1:30
PM", "2:00 PM", "2:30 PM", "3:00 PM", "3:30 PM", "4:00 PM", "4:30 PM", "5:00 PM", "5:30 PM", "6:00 PM", "6:30 PM",
"7:00 PM"],required)
Endset
Please note that both Starttime and endtime fields will be mapped to the Event Start and Event End Time fields
within Caterease if the account is integrated with Caterease.

The following is how the regular custom fields are rendered in the UI:

You might also like