[Solution] Show order phone number in admin tool
Document Status | REVIEWED |
---|---|
Closing date |
|
Document Owner(s) | @Macedo Ferreira, Samuel |
Reviewers | @Goncalves, Felipe @Augusto Romao, Vinicius @Capovilla, Evandro @Raphael Ferreira Gomes @Ouyang, En |
Epic Link | |
Figma Link |
Potential Solutions
Assumptions
Admin Tool does not provide the phone number information provided by the customer during the ordering process.
Customer is not required to register a phone number in their profile.
In some regions the phone number may always be empty.
Customers may provide different numbers for each order.
If the Profile phone number is not provided it will be shown three dashes or points according to the brand design.
Proposed Solution
Get the user's phone number from the customer data and order phone number from the order data.
Show Phone Number - Workflow
The workflow is basically an order flow where the FetchOrder query is fetched, then the phone number is read from Dynamo DB and then it is returned to the Admin Tool to be displayed on screen.
For more references:
Pros:
Quick implementation.
Proposal
Update FetchOrder query
Add phoneNumber to dropoff and customer
export const FetchOrder = gql`
query Order($rbiOrderId: String!) {
Order(rbiOrderId: $rbiOrderId) {
id: rbiOrderId
__typename
...
customer {
...
phoneNumber
}
delivery {
...
dropoff {
...
phoneNumber
}
...
}
}
${CartEntryFragment}
`;
Update Dropoff interface
Add
phoneNumber
to the Dropoff inservices/graphql/src/schemas/orders.ts
and runyarn types
.
Add phone number info to the table
Add new translations
loyaltyCartDetails.customerPhoneNumber
: Profile phone number.orderDetails.phoneNumber
: Order phone number.
Configuration
No feature flags are needed as this solution does not impact any existing processes and does not significantly change the support tool UI.
Delivery Plan
Update query and interface
Add new fields table
Add new Lokalise translations
QA Plan
Scenario | Condition | Result |
---|---|---|
Profile Phone Number and Order Both Phone Numbers populated | The user has filled profile phone number on sign-up/ editing his account and filled phone number during the delivery order process. | Both Profile Phone Number and Order Phone Number should have values different or equal values |
Order Phone Number populated. | The user did not fill out his profile phone number when signing up or editing his account, but he/she did fill out the phone number during the delivery order process. | Only the Order Phone Number should have a value and the Profile Phone Number should show empty line validation |
Profile Phone Number populated | The user has filled out his profile phone number when signing up or editing his account, but he/she has not filled out the phone number because it is a non-delivery order. | Only Profile Phone Number should have a value and Order Phone Number should show empty line validation |
No Phone Number populated | The user did not fill out his profile phone number when signing up or editing his account, and he did not do so because it was a non-delivery order. | Both Profile Phone Number and Order Phone Number should show empty line validation |
Non-delivery: can be a pickup, dine in, drive thru or any other that is not a delivery type.