Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

  • Offer Discount: This is the only offer that we are supporting on the checkout page today

  • Combo and Picker: Not supported today

    • Current limitation: we need to bring the necessary logic for the other types of Config Offer to the checkout page when applying a promo code through our new feature/field

    • We are analyzing this subject on a PoC:

      Jira Legacy
      serverSystem JIRAJira
      serverId255417eb-03fa-3e2f-a6ba-05d325fec50d
      keyIBFEC-1505

      • The PoC will be useful to prove if we'll be able to bring the necessary logic and detect if this can cause any problems to the checkout page or the offers page legacy logic

...

  • Get the promotional Combo/Picker from the incentives array (configured on the Config Offer document) by adjusting the graphql query to get the whole item

  • Transform the item and add it to the cart:

    • Use the transformMenuObjectToCartItemto convert the item configured on In-App Benefits

      • This method will be responsible for getting the price, modifiers, etc

      • This method needs to be properly filled out to get the correct data

      • Use ProductWizardUtils.ComputeSelectedOption to transform the itens correctly. This is important for Picker. The method will convert the Picker to a regular item

      • Use transformUserSelectionsComboToComboSlotSelections together with ProductWizardUtils.SetDefaultSelectionsto get the default values for a Combo item. As we are adding the offer Combo directly through the cart, we need to “select” the defaults for the user. This is important because we need the information in Recent Orders, etc.

    • Use the upsertCart from useOrderContext to add the promotional item to the cart

Problem with this solution: the Combo/Picker that comes from the Config Offer document will not have the vendorConfigs for the children items (sub-items) and without this information, when we add the item to the cart, we'll have only the main item, without the sub-items/modifiers.From what I understood, if an item doesn’t have the vendorConfig information, it will be considered invalid.

...

This work and proposals are described here: Tech Refinement - Edit Button

Assumptions and business rules

...

Q: Today, when we redeem a promo code offer that has the type Combo/Picker on the offers page and the user clicks to add the offer to the cart, the application will redirect the user to the menu item (combo/picker) for the selected offer. On the menu page, the user can customize the Combo/Picker if allowed. If the user adds a Config Offer that has this type (Combo/Picker) through the checkout page, he'll not be able to customize the item. What will we do here? Can we consider the default options for the Combo/Picker?

...

A: We should keep the default behavior if possible:

...

  • The user should not be redirected to the menu page when applying a promotional code directly through the checkout page (for Offer Combo/Picker)

  • Add the offer item with the defaults selections for the Combo/Picker

  • Show the “edit” button on the cart offer item. The edit button should send the user to the menu page for the edited item

  • The behavior must be closely to the legacy flow /offer page:

    • The item added to the cart should be exactly as we are adding it through the legacy flow (sub-items, price, etc)

    • The item should be correct at Recent Orders or email (like the legacy flow)

    • The offer item should not be available to add again to a new order after being used (blocked by the application by default).

...

FAQ

Golden rule: 90% of the behaviors will be equal to what we have on the /offers page. If we don’t know if something is a bug or not, we need to first check the behavior of the offer if we add it through the /offers page.

For Combo/Picker what's the difference from what we have on the /offers page?

A: All the behavior regarding price, item information, etc. will be the same. The only difference is the following:

  • We'll add the item directly into the cart without passing it through the menu page

  • We'll show the edit button when the item is added using the promo code field at the checkout page

Can we replace an offer at the checkout page?

A: Yes, the behavior will be the same that we have in the /offers page

Can we edit the Combo/Picker in the cart preview?

A: Yes. In some cases, after editing the item, the user will not be redirected to the checkout page again, but this is an expected behavior regarding how the cart preview works. Always compare the editing function using other items to be sure if there is a bug or not

After adding the offer to the cart, the price is wrong, or I'm receiving an error saying that the offer is not available at the selected restaurant or that the product added is invalid

A: 90% of the time, we'll have a problem with configurations:

  • Offer configuration (invalid PLU in Sanity)

  • PLU not configured or is not available for the selected restaurant

In this task,

Jira Legacy
serverSystem Jira
serverId255417eb-03fa-3e2f-a6ba-05d325fec50d
keyIBFEC-1706
I provided a tutorial on how we can discover if the PLU is configured or if it is available at the restaurant (using Menu Service API). Open the card to see more details.