Features Overview

Features are a section in Sanity where we host the information for different sections of the app that do not encompass the creation of menu or restaurant info

We currently have multiple features that can be added through a Launch Darkly flag and text and functionality can be added with Sanity.

  • Feature Home Page: This feature will host all the sections that the home page will have for authenticated and unauthenticated users in the different platforms.

    • For this feature to work you need:

      • In each section add certain components that include:

        • Referenced Main Hero: This will be the picture that will show in the home page as the background

        • Referenced Marketing Tile Group: This will be referencing to a certain set of marketing tiles that you will have to create in the components page. Find guide of how to create them in

        • Referenced Offers Section

        • Referenced trending: This will be to display the trending section

        • Referenced Braze Content Cards: This will be to display a specific content card in the home page. You will need to create them in braze first and create the component in the component folder

        • Referenced Alert: This will be to display an alert in the home page

        • Referenced App Download: To display the component for app download information in the homepage

        • Referenced Fans Favs: This will be used to display fan favourites section to show a previous of your favourite items, combos etc…

        • Referenced Our Services: If you would like to note what kind of services you offer ( Pick Up, Drive Thru, Delivery, Catering)

        • Referenced Scan for Rewards: This will be to display a box letting the user know to click there to get a scan to redeem rewards

        • Referenced Roll Up The Rim: This is specific for Tim Hortons CA campaign and is to provide an easy access to it.

        • Referenced Recent Items: This would be to display in the home page the recent items you have ordered in your previous orders

  • Feature Catering Page:

    • For this feature to work you need:

      • Referenced Main Hero: This will be the picture that will show in the home page as the background

  • Feature Offers: This feature is for the offers page and it will host all the information you might need for offers pages to display the way you would like.

    • For this feature to work you need:

      • Offers Browsing Panel:

        • End of offers message: This will be what the user will see at the end of the offer list

        • End of offers image: This will be what the user will see at the end of the offer list

        • Empty State message: This will be what the user will see if at any point they run out of offers

        • Empty State image: This will be what the user will see if at any point they run out of offers

        • Offers Select Restaurant CTA: This will be in the case in your market you would like to trigger the user to select a restaurant before viewing offers.

      • Default background image: Image you would like to see in the background of your offers page

      • Sorted offers: This will entail all the offers you would like to appear in the offers list for the user. If you do not add an offer here it wont appear in the app/web.

  • Feature Footer: We have the ability to set the footer for the web so you can decide what the user can navigate through without the need of code changes.

    • For this feature to work you need:

  • Row : What are they used for

    • to specify a visual row

    • top-level rows will have implicit spacing and separation on the frontend. If it turns out we need to support the ability to explicitly specify spacing and/or separation, we can come back and add a new widget

    • rows can contain only columns to help with predictability in rendering

  • Column: What are they used for

    • to specify a visual column

    • columns can contain literally everything else except rows or columns

 

  • Bold Horizontal Link List Widget

    • to specify a list of links that should bolded and laid out horizontally

    • as seen in PLK

 

  • Brand Logo Widget

    • to specify the brand logo

    • as seen in PLK

 

  • Copyright and Language Selector

    • to specify the copyright text and language selector

    • as seen in TH

  • Column Header Widget

    • to specify a header in a column

    • is just a localeString for now, but we can come back and make this more flexible if we need to

    • may end up removing this since we have specialized types for list of links

 

  • Highlighted Vertical Link List Widget

    • to specify a column of links that should have a header, subheader, and highlighted link

    • as seen in TH

 

  • Horizontal Link List Widget

    • to specify a list of links that should be laid out horizontally

 

  • Horizontal Text With Link Widget

    • to specify text that should be followed by a link

    • as seen in PLK

  • Link Widget

    • used to specify a link

    • can be external or internal

  • Social Icons

    • to specify the placement, image and link of the social icons

 

  • Social Icons With Header Widget

    • to specify a header with the social icons

    • as seen in TH

  • Text Widget

    • to specify strings of text

    • is just a localeString for now, but we can come back and make this more flexible if we need to

  • Vertical Link List Widget

    • to specify links that should be laid out vertically

    • as seen in TH or BK without the header

 

  • Vertical Link List With Header Widget

    • to specify a list of links with a header that should be laid out vertically

    • as seen in BK

  • Wordmark and Social Icons

    • to specify where the wordmark and social icons row should go

 

  • Feature Navigation: We have the ability to set the navigation for the web and phone in sanity so you can decide what the user can navigate through without the need of code changes.

    • Navigation Desktop: Here you will be able to add as many as you would like, however we do not recommend more than 4-5 because you will like it to be seen in different size screens adequately.

      • For it to work you need to:

        • Set LD flag enableSanityWebNavigation to true

        • In Sanity you will need to add for each set of navigation the text you would like the user to see and where it should be directed to when you click on it i.e: Restaurants → /store-locator

    • Navigation Mobile: Here you will have to add 5 as a requirement for the navigation tab in the app.

      • For it to work you need to:

        • Set LD flag enableSanityControlledMobileNav to true

        • In Sanity you will need to add for each set of navigation the text you would like the user to see and where it should be directed to when you click on it i.e: Restaurants → /store-locator

  • Feature Layout: This feature contains a but of different pieces of the layout

    • Hero Image: This will be the default hero image you would like

    • Loading Section: This will be all the assets in the loading section when you are leading to the checkout section

    • Geolocation Section: Any images to display geolocation services

    • Gift Card Section: Any assets in regards to gift cards

    • Wallets: Images for the wallet section if your app has one

  • Feature Account ( Need to change name to Comm Preferences): This feature is to give the user the opportunity to edit their communication preferences in a very easy way.

    • For it to work you need to:

      • Set LD flag enableCommunicationPreferences to true

      • Reach out to CTG team to start work in the codebase to enable this to work

      • Set up in sanity the different options you would like the user to be able to set preferences too:

        • Rewards

          • Push Key: rewardsPush -> It needs to be this one

          • Email Key : rewardsEmail -> It needs to be this one

          • Name and Description will be what the user will see

        • Marketing

          • Push Key: marketingPush -> It needs to be this one

          • Email Key : marketingEmail -> It needs to be this one

          • Name and Description will be what the user will see

        • Order Status & Tipping

          • Key: orderStatus -> It needs to be this one

          • Name and Description will be what the user will see

        • Language

          • Key: language -> It needs to be this one

          • Name and Description will be what the user will see

          • Enum Strings: What languages you would like the user to see

  • Feature Account Delete Page: We currently have build the functionality for users to request to delete their account.

    • For it to work you need to:

      • Set LD flag enableAccountDeletePage to true

      • In Sanity you will need to add the text for the delete account page and for the error state.

  • Feature Account Request Info: We currently have build the functionality for users to request their information

    • For it to work you need to:

      • Set LD flag enableRequestMyInformation to true

      • In Sanity you will need to add the text for the request my info page and for the error state.

  • Feature Account Form: This will contain editable information for the account info form

    • Postal Code Disclaimer: This will appear in sign up form and account form

  • Feature Geolocation Modal: We currently we have the option to customize the modal to ask for geolocation.

  • Feature Menu: This contains all the necessary information we need to configure the site with the correct menu configuration.

    • Default Menu → Menu it will show in the app front end. This is useful when you have more than one menu created

    • Catering Menu → Menu that will show in the app catering section in the front end.

    • Upsell Items at checkout in restaurant: When ordering is enabled, we have a feature to upsell at checkout some items for the user. This please is where you will add which items you would like the user to see in the upsell at checkout

    • Upsell Items at checkout in delivery: Same as the above but for the delivery user flow.

    • Upsell Items at checkout in catering: Same as the above but for the catering user flow.

    • Day-parts: This encompasses all the different day-parts each region has. Currently each item hosts a day-part and the same with offers. This configuration is how the code will know when to show certain elements depending on their day-part.

    • Menu Hero Image: Image you would like for the menu page in the background

    • Menu Text: Text you would like the menu page to have

  • Feature Static Menu: We developed a feature to set a static menu for whenever the user does not have a store selected they can view the menu.

    • For this feature to work you need:

      • Set LD flag enableStaticMenu to true

      • Set section, pickers, combos and items you would like to show as show in static menu

      • Set in the feature static menu the message for unavailable items

  • Feature Kiosk:

  • Feature Quiz: Ask Jamie?

  • Feature Disclaimer: This section contains all disclaimers that are necessary for the app.

    • Super Upsell Disclaimer: This is a general disclaimer that can be used for anything. We have only used it for upsells in the past. It appears in the ordering menu

    • Calorie Disclaimer: This will be the calorie disclaimer required. It currently appears in the nutrition explorer and in the ordering menu.

    • Sodium Disclaimer: This will be the sodium disclaimer required in the US. It currently appears in the nutrition explorer and in the ordering menu.

    • Price Disclaimer: This one currently appears in the footer of PLK uniquely.

    • Images Disclaimer: This one currently appears in the footer of PLK uniquely.

    • Phone Number Disclaimer: This one appears in the sign up form

    • Country Disclaimer: This one appears in the sign up form

    • Offers Disclaimer: This will be the general offer disclaimer that all offers will have. If an offer needs a different disclaimer you can add it in the More Info section of that specific offer.

    • Communication Preferences Disclaimer Block: This will appear in the communication preferences center in the account form

  • Feature Mobile App Configuration: This is used to host all the mobile app configuration

    • App Version: Current app version in Google Play Store and App Store