# ResReturn (/resreturn)

<ProductBanner product="resreturn" />

## One return, three points of view [#one-return-three-points-of-view]

<Cards>
  <Card icon={<RotateCcw />} title="Customer portal">
    Branded, self-service, no account needed. The shopper finds the order, selects the lines to return, picks a reason and gets cargo instructions. Available at your own slug URL, or served inside your Shopify domain so they never leave the store.
  </Card>
  <Card icon={<Settings2 />} title="Merchant panel">
    The return queue, request detail and one-click refund / exchange / store credit / restock. Reasons, per-reason rules and eligibility windows are configured per merchant — not hard-coded by us.
  </Card>
  <Card icon={<ShieldCheck />} title="Admin console">
    Cross-tenant operations for our team: onboarding, integration health, and diagnosing a merchant’s return flow without asking them to reproduce it.
  </Card>
</Cards>

## What a return can turn into [#what-a-return-can-turn-into]

Every outcome is written back to the storefront platform, so your commerce system stays the source of truth — ResReturn does not become a second ledger you have to reconcile.

<Cards>
  <Card icon={<Wallet />} title="Refund">
    Full or partial, per line item, back to the original payment method through the platform’s own refund API.
  </Card>
  <Card icon={<Repeat />} title="Exchange">
    Swap for another size or variant — the case sizing data is built to prevent in the first place.
  </Card>
  <Card icon={<Coins />} title="Store credit">
    Store credit with an optional merchant bonus, issued in the form the platform supports — Shopify store credit, Ticimax store points, or a readable coupon code the shopper can actually type.
  </Card>
  <Card icon={<PackageCheck />} title="Restock">
    Returning a unit to sellable stock is an explicit, logged decision; where the store grants the inventory permission the movement is written back to the platform.
  </Card>
</Cards>

## Return windows that hold up [#return-windows-that-hold-up]

### Anchored to delivery, not to the order [#anchored-to-delivery-not-to-the-order]

The deadline a shopper sees is computed from the **delivery** date reported by the storefront platform. If no delivery anchor exists yet, no deadline is shown — a countdown started from the order date is not the period the law describes.

The statutory withdrawal period is stored separately from the merchant’s own return policy window, so a shop with a shorter policy cannot accidentally shorten a right the shopper has regardless.

### Shipping and cargo [#shipping-and-cargo]

Return shipping instructions are generated per merchant and per method, in six languages, and repeated in the portal, the email and the assistant so the shopper cannot end up with three different answers.

Carrier return codes are supported for drop-off flows, and tracking state is surfaced in both the portal and the merchant panel.

## AI return assistant [#ai-return-assistant]

Answers from order state, not from a guess.

<Callout title="The constraint that makes it trustworthy">
  Shoppers ask in plain language: _can I still return this_, _where is my refund_, _where do I drop the parcel_. Every factual answer is produced by a deterministic engine reading the actual order record and the merchant’s configuration.

  The language model only interprets free text and phrases the reply. When the engine has no answer, the assistant says so and hands over — it does not improvise. It is a per-merchant feature flag and stays off until a merchant switches it on.
</Callout>

What it can answer today:

- Return eligibility and the exact deadline for this order
- Status of an existing return request
- Refund method and expected timing
- Cargo drop-off instructions, in the shopper’s language
- Parcel tracking state
- What this merchant’s policy allows for this reason

## Fit-first returns [#fit-first-returns]

Most returns platforms treat a return as a logistics event. We treat it as feedback. When ResReturn and YourSizer run on the same store, the reason a garment came back is joined to the recommendation that preceded it.

<Cards>
  <Card title="Reason → chart">
    “Too small” concentrated on one SKU is a size-chart problem, not a customer problem. It shows up as a chart-health flag.
  </Card>
  <Card title="Reason → production">
    Fit returns clustered on one production run tell you the run was cut differently, while you can still act on it.
  </Card>
  <Card title="Reason → merchandising">
    Returns for “not as pictured” are an imagery problem — the other end of the loop, and where NoShot comes in.
  </Card>
</Cards>

## Where it runs [#where-it-runs]

ResReturn is live on Shopify, Ticimax and ikas; T-Soft is in early access. The Shopify app is in App Store review — until it is listed, stores are set up through a demo or early-access link.

<Cards>
  <Card icon={<Truck />} title="Platform coverage" href="/platform/coverage" />
  <Card icon={<Bot />} title="Integration details" href="/resreturn/integration" />
</Cards>
