Shopify returns and exchange form

Add a returns and exchange form to your Shopify store with no app. Paste it into a Liquid section, collect the order number and reason, and requests land in your inbox to review and reply. No returns app subscription.

How to build it

  1. Create a form in your Formpaste dashboard and copy its access key.
  2. Paste the markup above into a Liquid section or a Custom Liquid block on your returns page.
  3. Replace YOUR_ACCESS_KEY_HERE with your access key, then save and publish.

Shopify gotchas

Shopify's theme forms are fixed to a few templates, and most custom forms push you to a paid app. A Formpaste form is a plain HTML form you paste into a Liquid section, template, or a Custom Liquid block - so you get the exact fields you need with no app subscription.

Paste it into Liquid

Add the form markup to a section or template in your theme, or drop it into a Custom Liquid block from the theme editor. It is plain HTML, so Liquid renders it as-is.

No app subscription

Custom-form apps charge monthly and add scripts to your storefront. A form that posts to Formpaste is inert markup - nothing to install, nothing to slow the page, no recurring fee.

You can prefill from Liquid

Because the markup lives in a Liquid template, you can inject product or customer values with Liquid tags - for example, prefill the product name on a back-in-stock form.

Keep the access_key input

The hidden access_key input must stay in the markup. It identifies your form to Formpaste.

What to get right

This is RMA intake, not a returns portal

The form collects the return request so you can review it and reply with next steps. It does not issue a label or a refund on its own.

A reason select makes triage easy

A dropdown of common reasons lets you sort and route returns without reading every message. Keep an Other option plus a details field for the rest.

Set expectations on the policy

Tell people your returns window and condition rules near the form, so a request arrives with the right expectations. Reply-to is the customer.

How it works

Three simple steps for form submissions to land in your email inbox.
Create your form, set your form's action URL to Formpaste's endpoint, and add your access key.

1

Create your form

Sign up, verify your email, and create an access key in your dashboard.

2

Copy the code

Paste the snippet above into your project. Pick CSS or Tailwind to match your site.

<form action="https://api.formpaste.com/submit" method="POST" class="mx-auto flex w-full max-w-md flex-col gap-4 rounded-xl border border-gray-200 bg-white p-6 shadow-sm dark:border-gray-800 dark:bg-gray-950">
  <input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Name
    <input type="text" name="name" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Email
    <input type="email" name="email" placeholder="you@example.com" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Order number
    <input type="text" name="order" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100" />
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Reason
    <select name="reason" required class="rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100">
      <option>Wrong size</option>
      <option>Damaged</option>
      <option>Not as described</option>
      <option>Changed my mind</option>
      <option>Other</option>
    </select>
  </label>
  <label class="flex flex-col gap-1.5 text-sm font-medium text-gray-900 dark:text-gray-100">Details
    <textarea name="details" class="min-h-28 rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-900 shadow-sm outline-none focus-visible:ring-2 focus-visible:ring-gray-900 dark:border-gray-700 dark:bg-gray-900 dark:text-gray-100 dark:focus-visible:ring-gray-100"></textarea>
  </label>
  <button type="submit" class="w-full rounded-md bg-gray-900 px-4 py-2 text-sm font-medium text-white shadow-sm transition-colors hover:bg-gray-800 disabled:opacity-60 dark:bg-white dark:text-gray-900 dark:hover:bg-gray-200">Request return</button>
</form>
3

Add your access key

Replace the placeholder with your access key to start receiving submissions.

<input type="hidden" name="access_key" value="YOUR_ACCESS_KEY_HERE">

Shopify returns and exchange form FAQ

Paste a form. Get submissions.

Instantly without setting up any backend, servers or databases. 250 submissions/mo free - no credit card.

Other Shopify forms