Presenting OrderNext Screens

Food, Merch, and Experiences

Currently, push and present navigation to various order flows is supported.

For ease of use, convenience methods have been provided to navigate to all revenue center types within the OrderNext platform.

These are provided as UINavigationController extension methods, and can be utilized as seen below:

Presenting Food and Beverage

import VNWebSDK

// Show all revenue centers with tabbed navigation to select between product types
navigationController?.pushRVCS()
navigationController?.presentRVCS(completion: nil)

// Show all available Food and Beverage menus
navigationController?.pushFnB()
navigationController?.pushFnBMenu(menu: nil)
navigationController?.presentFnB(completion: nil)
navigationController?.presentFnBMenu(menu: nil, completion: nil)

// Show all available Merchandise menus
navigationController?.pushMerchandise()
navigationController?.pushMerchandiseMenu(menu: nil)
navigationController?.presentMerchandise(completion: nil)
navigationController?.presentMerchandiseMenu(menu: nil, completion: nil)

// Show all avaialble Experience menus
navigationController?.pushExperiences()
navigationController?.pushExperienceMenu(menu: nil, event: nil)
navigationController?.presentExperiences()
navigationController?.presentExperienceMenu(menu: nil, event: nil, completion: nil)

To present and filter Food and Beverage menus of a specific ServiceType

Filtering Food and Beverage Service Types

Currently, push and present navigation to Food and Beverage screens with a specific ServiceType is supported.

import VNWebSDK

// Show all available Food and Beverage menus that offer delivery
navigationController?.pushFnB(serviceType: .delivery)
navigationController?.presentFnB(serviceType: .delivery, completion: nil)

// Show all available Food and Beverage menus that offer pickup
navigationController?.pushFnB(serviceType: .pickup)
navigationController?.presentFnB(serviceType: .pickup, completion: nil)

Advanced Food and Merchandise Filtering

import VNWebSDK

// Show all revenue centers that have no wait times, that have a delivery menu, that near locations Section 100 OR Section 101, and that have Beer and Yummy category items in their menu.
navigationController?.pushRVCS(
  noWaitTimes: true,
  serviceType: .delivery,
  locations: ["Section 100", "Section 101"],
  categories: ["Beer", "Yummy"]
)

navigationController?.pushFnB(
  noWaitTimes: true,
  serviceType: .delivery,
  locations: ["Section 100", "Section 101"],
  categories: ["Beer", "Yummy"]
)

navigationController?.pushMerchandise(
  noWaitTimes: true,
  serviceType: .delivery,
  locations: ["Section 100", "Section 101"],
  categories: ["Beer", "Yummy"]
)

Presenting Specific Menus with Options

Currently, push and present navigation to specific Menus is supported.

To navigate to a specific menu, you must be able to provide a stand UUID and menu UUID.

Presenting a specific Experience also supports passing in an Event UUID to auto populate which Event the experience should be purchased under.

import VNWebSDK

// Show a specific Food and Beverage menu
navigationController?.pushFnBMenu(menu: "55559869-3e16-4acd-87e5-a35f7e49a8de")
navigationController?.presentFnBMenu(menu: "55559869-3e16-4acd-87e5-a35f7e49a8de", completion: nil)

// Show a specific Merchandise Menu
navigationController?.pushMerchandiseMenu(menu: "a5f8e571-fe8a-44c7-a694-b9dbaab05737")
navigationController?.presentMerchandiseMenu(menu: "a5f8e571-fe8a-44c7-a694-b9dbaab05737", completion: nil)

// Show a specific Food and Beverage Menu Item
navigationController?.pushFoodMenuItem(menu: "cde84c5d-6b0a-4d1b-a446-6c910076f8bd", item: "0131cd38-0bc9-46ff-bf46-c46dc68be9a1")
navigationController?.presentFoodMenuItem(menu: "cde84c5d-6b0a-4d1b-a446-6c910076f8bd", item: "0131cd38-0bc9-46ff-bf46-c46dc68be9a1", completion: nil)

// Show a specific Merchandise Menu Item
navigationController?.pushMerchandiseMenuItem(menu: "a5f8e571-fe8a-44c7-a694-b9dbaab05737", item: "796f81a3-2409-4b5d-8c5b-78687624b400")
navigationController?.presentMerchandiseMenuItem(menu: "a5f8e571-fe8a-44c7-a694-b9dbaab05737", item: "796f81a3-2409-4b5d-8c5b-78687624b400", completion: nil)


// Show a specific Experience Menu without an Event pre-populated
navigationController?.pushExperienceMenu(menu: "399f78b7-5576-48e2-abd8-99d390c042ee", event: nil)
navigationController?.presentExperienceMenu(menu: "399f78b7-5576-48e2-abd8-99d390c042ee", event: nil, completion: nil)

// Show a specific Experience Menu with an Event pre-populated
navigationController?.pushExperienceMenu(menu: "399f78b7-5576-48e2-abd8-99d390c042ee", event: "c7b19487-f24b-433e-aaf9-29f150893b22")
navigationController?.presentExperienceMenu(menu: "399f78b7-5576-48e2-abd8-99d390c042ee", event: "c7b19487-f24b-433e-aaf9-29f150893b22", completion: nil)

// Show a Detailed view of a specific Experience without an Event pre-populated:
navigationController?.pushExperienceDetails(
  menu: "399f78b7-5576-48e2-abd8-99d390c042ee",
  item: "185bcd46-467c-4513-9ff6-56e598c76be1",
  event: nil,
  variant: nil
)
navigationController?.presentExperienceDetails(menu: "399f78b7-5576-48e2-abd8-99d390c042ee",
  item: "185bcd46-467c-4513-9ff6-56e598c76be1",
  event: nil,
  variant: nil,
  completion: nil
)

// Show a Deatiled view of a specific Experience with an Event pre-populated
navigationController?.pushExperienceDetails(
  menu: "399f78b7-5576-48e2-abd8-99d390c042ee",
  item: "185bcd46-467c-4513-9ff6-56e598c76be1",
  event: "c7b19487-f24b-433e-aaf9-29f150893b22",
  variant: "variant-uuid"
)
navigationController?.presentExperienceDetails(
  menu: "399f78b7-5576-48e2-abd8-99d390c042ee",
  item: "185bcd46-467c-4513-9ff6-56e598c76be1",
  event: "c7b19487-f24b-433e-aaf9-29f150893b22",
  variant: "variant-uuid",
  completion: nil
)

Presenting Wallet and Virtual Currency screens

Currently, push and present navigation to the Wallet and Virtual Currency screens is supported.

The current iteration of the Wallet screen serves multiple purposes, and can further direct the user to other registered User and Loyalty based screens such as:

  • Shop - Landing screen for shopping via revenue centers
  • Orders - View history of orders placed
  • Scan & Pay - Rich checkout features for Scanning a QR Code or displaying the user’s Loyalty QR Code
  • Send Virtual Currency - Virtual Currency transfer
  • Virtual Currency Activity
  • Benefits & Rewards - Loyalty awards available to the user as well as progress towards rewards
  • My Info - User settings
  • Payments
import VNWebSDK

// Show wallet screen for further navigation to additional feature screens as outlined above
navigationController?.pushWallet()
navigationController?.presentWallet(completion: nil)

// Show the Loyalty user's Virtual Currency Activity
navigationController?.pushVirtualCurrencyActivity()
navigationController?.presentVirtualCurrencyActivity(completion: nil)

// The below methods are available in version 2.0.4 and above

// Show the Loyalty user's Virtual Currency Transfer page
navigationController?.pushSendVirtualCurrency()
navigationController?.presentSendVirtualCurrency(completion: nil)

// Show Benefits and Rewards for purchases and Virtual Currency
navigationController?.pushBenefitsAndRewards()
navigationController?.presentBenefitsAndRewards(completion: nil)

// Show the user's Information page
navigationController?.pushMyInfo()
navigationController?.presentMyInfo(completion: nil)

// Show the user's Payment Methods page
navigationController?.pushPayments()
navigationController?.presentPayments(completion: nil)

// Show the user's Badge modal
navigationController?.pushBadge()
navigationController?.presentBadge(completion: nil)

// Show the Scan and Pay QR Code and Barcode scanner
navigationController?.pushScanner()
navigationController?.presentScanner(completion: nil)

// Show the loyalty QR Code
navigationController?.pushQrCode()
navigationController?.presentQrCode(completion: nil)

// Show Load Ticket
navigationController?.pushLoadTicket()
navigationController?.presentLoadTicket(completion: nil)

Presenting Order information

Currently, push and present navigation to the Order History and Order Receipt screens is supported.

import VNWebSDK

// Show the user's Order History
navigationController?.pushOrderHistory()
navigationController?.preseentOrderHistory(completion: nil)

// Show a specific receipt from the user's Order History
navigationController?.pushOrderReceipt(receipt: "5cdd721d-5950-45b7-abdc-b4b5e74675d2")
navigatoinController?.presentOrderReceipt(receipt: "5cdd721d-5950-45b7-abdc-b4b5e74675d2", completion: nil)

Updated: