OPTIMIZING EMV REFUND PROCESSES FOR BATCH TRANSACTIONS

Design an intuitive workflow and user interface to streamline refunds for batch-processed transactions—single transactions linked to multiple sales orders—handled through EMV devices.


OVERVIEW

As our company introduced batch processing for transactions via EMV devices—card terminals integrated with ERP or CRM systems—I was tasked with designing an intuitive workflow and user interface to facilitate refunds for these complex transactions, each linked to multiple sales orders.

PROBLEM

Users struggled to refund individual sales orders from batch-processed EMV transactions via the Order module. Initially, only full transaction refunds were supported, and listing all associated orders in the confirmation modal reduced readability. This complex workflow highlighted the need for a more intuitive refund process.

ACTION

Adjusting the flow

Mapping the existing refund process revealed that users couldn't refund individual sales orders within a batch-processed EMV transaction, misaligning with their needs. I proposed enabling partial refunds by allowing users to enter specific sales order amounts. To enhance clarity, I recommended displaying linked sales orders in a separate modal and redirecting users to the Transaction screen to process the parent transaction refund.

Revised flow
Revised flow
Mockup showing partial refund.
Enabling partial refund by pre-filling sales order amount.
Modal showing linked sales orders.
Displaying linked sales orders in a separate modal.
Mockup showing the transaction history screen with the parent transansaction filtered in the table.
Redirecting users to the Transaction screen to process the parent transaction refund.

Initial Design Attempt: Encountering Pushback

In the Salesforce team meeting, my proposed design was well-received. However, the team highlighted a technical limitation: the system couldn't associate a partial refund amount with a specific sales order within a batch-processed EMV transaction. They also suggested enabling full transaction refunds directly from the Order module to reduce user clicks, challenging the initial approach of redirecting users to the Transaction screen.

Adjusting the flow and design

Collaborating with developers revealed that enabling users to specify a particular sales order for refund could allow individual refunds within batch-processed EMV transactions. To facilitate this, I introduced a checkbox in the Order module, serving as a trigger for the system to process the refund for the selected sales order.

Revised flow
Specify a particular sales order for refund allows refunding the full or partial amount of the sales order; otherwise, allow full transaction refund.
Modal showing a checkbox to refund this particular sales order.
Checkbox to specify a particular sales order for refund in the Order module.
Modal showing the Refund Amount field.
Selecting `Refund Only This Sales Order` reveals the Refund Amount input field.
Mockup showing the warning modal.
Warning message when entered amount exceeds Refund Amount

RESULTS

Refund Individual Sales Order from Order Module

I introduced a checkbox in the Order module, serving as a trigger for the system to process the refund for the selected sales order.

Final modal enabling individual sales order refund.

Parent Transaction Refund from Order Module

To enhance convenience, I enabled full parent transaction refunds directly from the Order module. Additionally, I added a hyperlink to redirect users to the Transaction screen, allowing them to process partial refunds as needed.

Modal showing a checkbox to refund this particular sales order.
Modal showing the Transaction History sceen to pay partial pament of the parent transaction.

Associated Sales Order Displayed Separate Modal

To enhance visibility and scannability, I introduced a hyperlink that opens a separate modal displaying linked sales orders. This approach keeps the main interface uncluttered while providing users with quick access to related information.

Invoice data.

RETROSPECTIVE

Initially, technical constraints seemed to limit user flow improvements. However, by questioning these limitations and engaging in discussions with developers, product owners, and QA teams, I gained a deeper understanding of the challenges, allowing us to identify solutions that enhanced the user experience.