Shopify app case study

Turning complex returns into collaborative workflows

I designed and built CasePilot Returns, an embedded Shopify application that combines customer self-service, configurable return rules, workflow automation, and team-based case management.

  • Full-stack development
  • Shopify APIs
  • React
  • Gadget
Explore the case study
The CasePilot Returns dashboard showing return cases, rules, and workflow status inside Shopify admin

The problem

Routine returns can be automated. Exceptions still need an owner.

Shopify supports standard return requests, exchanges and refunds. There is also evidence that despite automation from notorious returns apps, the nature of ecommerce returns still leaves manual work, and that work can span multiple systems and teams, requiring ownership, judgment and coordination.

Shopify itself notes that returns can belong to several teams at once, including customer experience, operations, warehouse, finance and fraud.

Shopify, A Retailer's Guide to Returns Management Software, 2026
  • 11.4%

    of return value was flagged as high risk across more than 4,000 Shopify merchants.

    Source: Loop, 2026

  • Multiple teams

    can participate in one return: customer experience, ecommerce, operations, logistics, warehouse, finance and fraud.

    Source: Shopify, 2026

  • Manual decisions remain

    Shopify displays return fees, but merchants must manually deduct applicable fees when issuing a refund.

    Source: Shopify Help Center

Loop's dataset covers 23.4 million returns submitted to more than 4,000 Shopify merchants between November 2024 and October 2025.

Where the workflow breaks

What happens when a return doesn't fit the rules?

The return itself is visible. Responsibility for moving the exception forward is not always as clear.

35 hours/week

spent manually managing returns

Shopify merchant Marc Nolan described handling returns through phone, email, text, social channels and spreadsheets, without centralized tracking or analytics.

After introducing a centralized return workflow, the company reported reducing the work from approximately 35 hours to one hour.

Source: AfterShip merchant case study

Named merchant case study; measurement period was not disclosed by the publisher.

The opportunity was not to replace Shopify's standard return functionality. It was to create a collaborative case-management layer for the requests that require human review.

How I approached the solution

The product

A shared workspace for returns that need attention

CasePilot brings return context, team ownership, and tasks together to help merchants move complex returns toward resolution.

01 / Manage the work behind the return

  • Return context

    All data and files pertaining to a return in one place to be viewed by everyone.

  • Clear responsibility

    A team assigned to handle the case based on merchant settings

  • Actionable tasks

    The next steps needed to resolve the return anomaly, based on business workflows.

02 / Customer portal

Guide customers through their request

Customers select their items, explain the issue, and request a resolution through a guided return journey.

03 / Return policies

Configure the standard return journey

Merchants define return windows, product eligibility, resolution options, and restocking fees.

The technical build

Behind the workflow. Inside the build.

I built CasePilot across the customer portal, embedded merchant app, and backend, connecting return policies and case management with Shopify store data.

  • React · Interface
  • Polaris · Components
  • Gadget · Backend
  • Shopify APIs · Store data
  • Next.js · Proxy

One system, two workspaces

Conceptual architecture

Customer

Returns portal

Order lookup · Return request

Return requests

Merchant

Embedded app | Case console

React + Shopify Polaris + Next.js

Case & policy actions

Gadget backend

Application data & business logic

  • Return policies
  • Cases & tasks
  • Team assignment
Shopify API integration

Shopify

Orders · Customers · Products

  1. 01 /

    Shopify integration

    Connect the return workflow to store records, giving each request the order, customer, and product context it needs.

  2. 02 /

    Configurable policies

    Translate merchant settings into return rules: eligibility windows, product restrictions, resolution options, and fees.

  3. 03 /

    Case workflows

    Bring the request, its ownership, and the work required to resolve it together through cases, teams, and tasks defined by the merchant.

Data & relationships

A case connects the moving parts.

The return provides context. The case brings together responsibility, status, and the tasks needed to move the request forward.

Simplified relationship model

Return request

linked to ↓

Case

assigned to ↓

related work ↓

Team
Tasks

Inside the logic

Turning policy into a decision.

A focused code excerpt makes the implementation tangible. Here, a return-window check demonstrates how a merchant setting can influence request eligibility.

Return-window check Illustrative pseudocode
// Apply the configured return window
const elapsedDays = daysBetween(
  eligibilityStart,
  requestedAt
);

if (elapsedDays > policy.windowDays) {
  return {
    eligible: false,
    reason: "Outside return window"
  };
}

Key decisions

Why I built it this way

Three choices that shaped CasePilot’s workflows, merchant controls, and Shopify experience.

  1. Give each return a clear owner

    Returns that need follow-up benefit from a shared case, with an assignee, status, and tasks.

    The choice

    Organise returns around a case workflow.

    Trade-off: more workflow structure for the merchant to manage.

    Ownership, status, and next steps in one place.
  2. Make return policies configurable

    Merchants need controls that reflect how their store handles returns.

    The choice

    Expose return windows, eligibility, and resolution options in a rule editor.

    Trade-off: flexibility adds configuration complexity.

    Merchant controls with clear, focused inputs.
  3. Keep the workspace inside Shopify

    Return management can sit alongside the merchant’s existing store operations.

    The choice

    Build an embedded app with Shopify Polaris.

    Trade-off: the experience must fit Shopify’s platform constraints.

    A familiar home for the merchant workflow.

About the developer

Hi, I’m Marc. I build Shopify apps and workflows.

I’m a full-stack developer with experience building business applications and integrations.

I designed and built CasePilot Returns, from the customer portal and embedded Shopify app to the backend workflows that connect them.

I’m looking to bring that experience to a Shopify agency or ecommerce team.

  • Based in northern Italy
  • Open to remote opportunities