Versions Compared

Key

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

...

...

...

...

...

...

Table of Contents

Front-end

Say we have the following order:

...

  • PriceOrder

    • Calls partner to get price related info including fees.

    • Persists fees into the database

  • GetOrder

    • Retrieves order related info from the database, including fees

Backend discovery

  • priceOrder

    • intl-whitelabel-app → priceOrder

    • intl-whitelabel-graphql → priceOrder

    • intl-fullfilment-service → priceOrder

      • updateDeliveryEntry

        • intl-delivery-service

        • getFeeAndDiscountByBrand ( using intl-packages delivery lib or intl-delivery-service?)

...

  • SNS: dev-plk-delivery-quote-outcome

    • SQS: aws-rbi-dev-plk-apply-delivery-service-quote

      • Lambda: sls-rbi-dev-plk-orders-delivery-service-apply-quote ( intl-orders-service)

        • Which get the message and updates the current order in the database (dynamodb)

...

BE Proposal

...

  • Enhance this lambda function (dev-plk-delivery-on-apply-quote) to not overwrite discount and service fees with zeroes. It should keep the value from launchdarkly.

  • Configure launchdarkly to fit business needs enabling FE to show fees and discounts properly.

    • discount <> 0

    • serviceFee <> 0

    • fee <> 0

Configured webhooks*:

...

FE impacts

When discount, fee and service fee come to FE, intl-whitelabel-app can be changed to display FREE fees as according to UX (figma). The design screens should be adapted to consider them accordingly. In such case, depending on the launchdarkly config ( fee tier), we may have a different value for fee, service and discount. In principle, to minimize BE impacts, we may continue using a single field for discount. It’s up to the FE display "FREE” for the related use-cases. E.g:

  • discount == fee + servicefee

    • FREE fee

    • FREE service fee

  • discount == fee, but discount < fee+servicefee

    • FREE fee

    • X.XX service fee

  • discount < fee

    • X.XX fee

    • X.XX service fee

  • Other configurations may not be supported

...

Feature control

As usual the activation of this feature should be done using LD feature flag in both FE and BE. Later it can leverage a new sanity config (toogle) under guest checkout

...

Architecture

...

Configured webhooks*:

Expand
titleIntegration for store 1111 (zaragoza) - exists dev DELIVERY_QUOTE_CREATE and fallback(DELIVERY_QUOTE)
Code Block
{
  "integrationId": "a6e48415-ff02-44e9-bba3-ae9918e0cac1",
  "partnerId": "2acdd610-fad8-4acc-a030-eee340041a8c",
  "secret": "$3cr3t",
  "stores": [
    {
      "country": "ES",
      "storeId": "005484"
    },
    {
      "country": "ES",
      "storeId": "1111"
    },
    {
      "country": "ES",
      "storeId": "13769"
    },
    {
      "country": "ES",
      "storeId": "2222"
    },
    {
      "country": "ES",
      "storeId": "60000"
    }
  ],
  "webhooks": [
    {
      "type": "DELIVERY_CREATE",
      "url": "https://euw3-dev-plk-partners-delivery.rbictg.com/api/v1/ES/PLK/orders"
    },
    {
      "type": "DELIVERY_QUOTE_APPLY",
      "url": "https://euw3-dev-plk-partners-delivery.rbictg.com/api/v1/ES/PLK/quotes/apply"
    },
    {
      "type": "DELIVERY_QUOTE_CREATE",
      "url": "https://euw3-dev-plk-partners-delivery.rbictg.com/api/v1/ES/PLK/quotes"
    },
    {
      "type": "MENU_PRICES_AVAILABILITY_UPDATE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/menu/menu/version?mock_secret=$3cr3t"
    },
    {
      "type": "ORDER_COMMIT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/orders/commit?mock_secret=$3cr3t"
    },
    {
      "type": "ORDER_FIRE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/orders/fire?mock_secret=$3cr3t"
    },
    {
      "type": "ORDER_PRICE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/orders/price?mock_secret=$3cr3t"
    },
    {
      "type": "STORE_SUPPORT_TICKET_EVENT",
      "url": "https://euw3-dev-plk-partners-delivery.rbictg.com/api/v1/ES/PLK/complaints"
    }
  ]
}
Expand
titleIntegration for store 3385 (fuenlenbrada) - exists mocked DELIVERY_QUOTE - returning hard coded fee value
Code Block
{
  "integrationId": "e5ef1f71-caa0-4ba8-888f-4d937b64f50f",
  "partnerId": "7425a4c0-f5bb-4f10-9bf0-6918b319525a",
  "secret": "4b26e43f0d7c7a51fbc6581d33549921",
  "stores": [
    {
      "country": "ES",
      "storeId": "3385"
    }
  ],
  "webhooks": [
    {
      "type": "DELIVERY_CREATE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/delivery/create?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "DELIVERY_EVENT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/delivery/events?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "DELIVERY_QUOTE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/delivery/quote?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "GENERAL_SUPPORT_TICKET_EVENT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/tickets/events?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "MENU_EVENT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/menu/events?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "MENU_PRICES_AVAILABILITY_UPDATE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/menu/updated?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "MENU_UPDATED",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/menu/updated?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "ORDER_COMMIT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/orders/commit?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "ORDER_EVENT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/orders/events?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "ORDER_FIRE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/orders/fire?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "ORDER_PRICE",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/orders/price?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "STORE_HEARTBEAT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/stores/status?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "STORE_SUPPORT_TICKET_EVENT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/tickets/events?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    },
    {
      "type": "TICKET_EVENT",
      "url": "https://euw3-dev-plk-mock-partners-integrations.rbictg.com/tickets/events?mock_secret=4b26e43f0d7c7a51fbc6581d33549921"
    }
  ]
}

In partners service, create quote flow calls both in delivery : quote_create and quote_apply

Architecture

...

Problems detected in DEV:

  • Added 9 sauces of 2.00 in the cart

  • After resulting in 18, it multiplied by 9 again:

Image Removed

Button + reached limit of 5, and kept varying between 4 and 5 in upsell cart modal

...

Threshold issue:

During the initial analysis, we were informed that fees would not come to FE when threshold is reached, however the behavior looks the same of when threshold is not reached.

...

create quote flow calls both in delivery : quote_create and quote_apply

...

During this discovery, strange behaviors were detected. They are detailed here