Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 59 Next »

Business Problem

The RBIberia relates that recent analyses have highlighted a significant risk of fraud in home delivery orders that are paid for using physical payment methods (Cash, terminal at home, voucher physical).

To safeguard our operations and protect both our business and customers from fraudulent activities, it is essential to implement additional rules that restrict the use of physical payments under certain scenarios. In these scenarios, there are some rules that the user can control, so we need to create a way for the user to change these rules to one or many restaurants.
These rules are:

  • First order on Home Delivery: In the user order, the value the user can pay with physical payments will have a limitation, e.g. $30.00

  • Buy on Home Delivery: In the second or more user order, the value the user can pay with physical payments will have a limitation, e.g. $50.00;

  • Prevent Repeat Failures: In cases where the last order involved a physical payment method and was marked as a delivery failure, the next order from the same user will be restricted to only online payment methods.

    • Delivery failure reasons:

      • Wrong address

      • Customer was not there

      • Fake order

      • Problems with payment

In case some of these rules are active, the WL-app must hide the physical payments to the user.

UX Proposal - Payment Method Section

Decision

We will create a new screen on DOP and the user can choose and manipulate the “rules” to one or many restaurants. This information will be saved on Sanity and the WL-app will get these values when the restaurant is chosen, so the WL-app can verify if it allows or doesn’t the payment by physical method.

Store this information in restaurant on Sanity

  • Main local to store information about restaurant;

    • Added in restaurant the new type physicalPaymentMethodsLimitations

      • schemas/menu/documents/restaurant.tsx

      • schemas/menu/objects/physical-payment-limitations.tsx

  • The information in Sanity is only read-only. Only DOP can change it.

image-20240725-141539.png
  • The interface to receive this information is IDeliverOrderAmountLimit

  • This interface exists in many repositories:

    • intl-fulfillment-service

    • intl-whitelabel-graphql

    • intl-store-service

    • intl-packages

    • intl-whitelabel-app

    • intl-delivery-service

      image-20240726-175304.png

Manipulate this information on DOP (FZ-Portal)

To enhance the functionality of managing rules and purchase limits for home deliveries, a new page will be created containing all the relevant information. This page allows users to perform several important actions.

Firstly, it will be possible to establish specific access rules for this page, ensuring that only authorized users can view and modify the information. The access rules will be detailed in this reference.

Users will have the ability to decide which rules they want to apply to their transactions. Additionally, they will be able to adjust the limit values for purchases in home deliveries, providing greater flexibility and control over financial operations.

This functionality is not limited to end users. Franchisees will also be able to access and modify this information, ensuring that all organizational levels can effectively manage their own settings.

To assist users in using this new page and its functionalities, a detailed guide will be made available through in this link.

Finally, all information configured by users will be saved in Sanity, using the Sanity Client Library to connect DOP with Sanity. This will ensure that the data is stored securely and is accessible for future consultations and modifications.

dop.png
  • The mutation that controls updates in Sanity is located at workspaces/graphql/src/schema/mutations/updateRestaurantCashLimitation.ts.

  • The pages are controlled in workspaces/frontend/src/pages/payment-methods/index.ts.

WL-app controls the exhibition of physical payments

On Home Delivery, the WL-App gets the information about the restaurant, and in this data, there are the values about cash limitation:

image-20240725-174730.png
  • With cash limitation data, the WL-App can validate if some rule is active and if it needs to hide physical payments;

  • This control is by each user;

    • At the moment of payment, the WL-app retrieves information about the user's most recent delivery order using the getUserOrders function. This includes restaurant details and any applicable limitation rules. Based on this information, we need to implement logic that hides the physical payment option if any limitation is met.

      For example, if it is the user's first home delivery purchase, which we can determine if the getUserOrders query returns zero orders of this type, and the selected restaurant has a rule that the first purchase must not exceed $30.00 (as specified by the restaurant's information from Sanity), then the WL-app can check the current order value on this screen. If the order total cents exceeds the limit, the WL-app will hide the physical payment options.

      With all these details, the WL-app can effectively decide whether to display or hide the physical payment option.

image-20240529-170137.png

Consequences

  • Create new fields in Restaurant Document on Sanity to store Cash Limitation rules data;

  • Create a new screen on DOP (FZ-Portal) so that user can manipulate Cash Limitation rules and store them on Sanity;

    • Use the Sanity Client Lib to get and save information on Sanity, this library is already available on DOP

  • Create a new logic on WL-App in the payment page to control the exhibition according to the information and limitations that are got from Restaurant;

  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.