Analysis - Completa tu menu using new Upsell solution

Table of Contents


Document Status

REVIEWED AND APPROVED

Document Owner(s)

@Augusto Romao, Vinicius

Reviewers

@Raphael Ferreira Gomes
@Munteanu, Alexandru-Ioan (Deactivated)
@Yildirim, Semih

Context and epic

Epic: https://rbictg.atlassian.net/browse/TRX-1894

Business problem to be solved

Currently, the new upsell modal is shown for all item types (Item, Combo, Picker, etc.)

Iberia aims to enhance the upsell rate and user experience by gaining more control over the new upsell modal trigger behavior. They plan to display the modal only for selected item types, such as Combo or Picker.

We'll also keep the same behavior for the first journey rule:

  • Show the modal only once per journey. For example:

    • The user adds a type Item to the cart -> The modal will not be shown

    • The user now adds a second item that is type Combo -> The modal will be shown

    • If the user decides to add another type Combo/Picker -> We'll not show the modal because the user already saw it on this first journey (in the same cart)

Proposal

File to be changed: src/state/order/index.js

Function that is responsible to trigger the logic today: openUpsellModal

The main logic

The code below exemplify how things will be. Of course, this is just an example and will not represent the final solution.

carbon.svg
Base proposal and idea
new-trigger-behavior-poc.webm
Demonstration

Video explanation:

  • Upsell modal will only be shown for Pickers/Combos (if the new logic is enabled at Sanity)

  • When I’ve created a new journey, cleaning the cart and adding a Coca-Cola, the modal did not show as expected because Coca-Cola is a type Item

 

Sanity to hold the new trigger behavior configuration

  • Add a new section in Feature Menu to configure the modal trigger behavior

  • For Whitelabel-App connection: We’ll need to at least develop a new hook to get the desired value configured in the new Sanity section. This hook will encapsulate the query and will be used inside src/state/order/index.js. The rest of the implementation will follow the same idea shown at section.

  • This is a flexible solution. Can be extended or changed with a friendly user UI

 

Extra analysis details

The following details are not required to understand the proposed idea. I just took some notes for the future.

Important Feature flags (intl-guest-app)

upsell-modal: If ON will enable/disable the feature for the whole WL App (need to be ON),

enable-checkout-upsell-items-2: need to be ON to show upsell items at the checkout page

mobileCartUpsellLocation: Can be configured to select the position of the Upsell section:

  • abovePaymentDetails

  • aboveYourCart

chefRecommendationEngine2: It needs to be configured to use recommendations from Sanity. This will show the menu feature upsell with the new UI. Another option is

 

Another option to also show the menu feature upsell with the new UI is to configure the deprecate-chef to be false AND the user is not signed in AND the enable-move-signup-after-cart flag is ON. For our case and my analysis, we’ll be safe using only the chefRecommendationEngine2 configured to use Sanity.

 

How the new upsell current solution looks like (visually speaking)

Upsell Modal

Following our initial business requirements this modal will be shown after we add a Combo/Picker into the cart.

Checkout upsell section