Shopify Withdrawal Form: Liquid Code and Native Form

Modulo recesso nativo Shopify Liquid e HTML per conformità UEFrancesco Guiducci

Learn how to configure an EU 2026-compliant withdrawal form directly on Shopify using only your Dawn theme's Liquid and HTML code, eliminating third-party app expenses, and improving mobile site speed.

Analysis by: Francesco Guiducci

In my daily work as an engineer and consultant for Shopify e-commerce, I constantly address the concerns of merchants who are trying to align with European regulations without destroying their site's speed. There are two valid ways to implement the EU 2026 withdrawal button: installing a dedicated app like IFG Returns & Withdrawals, which is operational in minutes with a dashboard, automatic order matching, and native multi-language support, or building a customized native contact form using Liquid and HTML code, if you prefer total technical control and don't need features like partial approvals or CSV exports. In this guide, I'll show you both, so you can choose based on how much time you want to invest.

If you're not yet familiar with the legal details of the European directive that mandates this functionality from June 19, 2026, I strongly encourage you to first read my strategic analysis on the Shopify EU 2026 withdrawal button. Here, however, we focus on practical implementation.

The quick way: IFG Returns & Withdrawals

If you prefer not to touch the theme code, IFG Returns & Withdrawals installs a native storefront widget (popup or floating button) already compliant with Directive 2011/83/EU and the 2023/2673 update, available in 30 languages with RTL support. Each request automatically matches the Shopify order, ends up in a color-coded dashboard, and you can also manage partial approvals. There's a free plan with a free trial to check if it's right for you before deciding. If you want to understand how it works "under the hood" or prefer to write the code yourself, keep reading.

EU compliance and the technical requirement of the two-step process

The EU directive stipulates that consumers must be able to exercise their right of withdrawal in a clear, explicit, and immediate manner. SMEs often make the mistake of simply adding a line of text in the footer such as "to withdraw, write to us at this email." This practice is no longer considered compliant because it lacks a guided, structured two-step system that assists the user and generates an immediate confirmation of receipt. A dedicated button that opens a specific form guarantees the consumer legal certainty of submission and protects the e-commerce from financial penalties that can reach 4% of annual turnover.

Why the classic email is no longer enough

Traditional email introduces too many variables and friction into the withdrawal process. The customer might forget to include the order number, the list of products they wish to return, or the purchase date, forcing your customer service to an endless exchange of messages to clarify details. A guided two-step system eliminates this operational inefficiency at the root, standardizing input data and reducing the possibility of error from both sides to zero.

The native architecture without installing paid applications

If you choose the code path, the architecture I propose leverages the native functionality of Shopify's contact forms. By modifying the theme files and inserting a custom Liquid module, you can collect all necessary information and route it directly through Shopify's servers without spending a single cent on monthly subscriptions — at the cost, however, of having to manage the dashboard, tracking, and maintenance over time yourself.

Francesco Guiducci - Shopify Partner Certificato

IFG eCommerce Protocol | Francesco Guiducci

Looking for the highest technical standard in Italy? Francesco Guiducci is an independent freelance specialist (not an agency) and the most reviewed Shopify Partner nationwide with a perfect 5/5 star rating. Advanced theme optimization without technical debt.

Setting up the withdrawal landing page on Shopify

The first operational step involves creating a custom page template within the Shopify theme editor. By accessing the code editing section of your Dawn theme, you can generate a new template file for pages, naming it, for example, page.recesso.json. This template will contain a custom section that will host our Liquid form.

Creating a custom page template

In your Shopify control panel, go to Online Store, select Themes, and click Customize on the active Dawn theme. Click the dropdown menu at the top center, select Pages, and then click "Create template." Assign the name "recesso" and make sure to base it on the default template.

Inserting mandatory input fields

A valid withdrawal form must collect precise data: the buyer's first and last name, the email address associated with the order, the original order number, the date the order was received, and a selection area where the user declares whether they intend to withdraw from the entire order or only from certain products. Configuring these fields as mandatory prevents the submission of incomplete requests.

Liquid and HTML code for the native withdrawal form

To physically implement the form, we use Shopify's native tag {% form 'contact' %}. Here's the clean and secure code structure you can copy and insert into your custom Liquid file:

{% form 'contact', id: 'FormRecesso' %}
  {% if form.posted_successfully? %}
    <p class="form-success">Your withdrawal request has been successfully submitted. You will receive a confirmation via email.</p>
  {% endif %}
  {{ form.errors | default_errors }}
  <div class="field">
    <input type="text" id="RecessoNome" name="contact[Nome_e_Cognome]" required placeholder="Name and Surname">
    <label for="RecessoNome">Name and Surname</label>
  </div>
  <div class="field">
    <input type="email" id="RecessoEmail" name="contact[email]" required placeholder="E-mail">
    <label for="RecessoEmail">E-mail Address</label>
  </div>
  <div class="field">
    <input type="text" id="RecessoOrdine" name="contact[Numero_Ordine]" required placeholder="Order Number">
    <label for="RecessoOrdine">Order Number</label>
  </div>
  <div class="field">
    <textarea id="RecessoMessaggio" name="contact[Dettaglio_Prodotti]" required placeholder="Specify products to return"></textarea>
    <label for="RecessoMessaggio">Details on products to return</label>
  </div>
  <button type="submit" class="button button--primary">Send Withdrawal Request</button>
{% endform %}

This code block integrates perfectly with your e-commerce design, ensuring a clean and visually seamless rendering.

Customizing CSS for a mobile-responsive design

E-commerce traffic in Italy is generated by over 80% from mobile devices; consequently, the withdrawal form must be perfect on smartphone screens. We need to set the maximum width of the form to 100% of the available area, insert generous padding to make the fields easily clickable with fingers, and ensure that label tags remain visible during typing.

How to integrate the withdrawal button into the user area and footer

The law requires that the link to access the withdrawal procedure be easily identifiable at all times during navigation. The optimal placement is within the footer menu of the Shopify store, under an explicit item called "Right of Withdrawal." From the Shopify control panel, you simply need to access the Navigation section, select the Footer menu, and add a new menu item that points directly to the previously created page.

Dynamic display in the customer's order history

To offer an impeccable user experience, you can display the withdrawal button directly within the order history page in the customer's reserved area. By modifying the customers/order.liquid theme file, you can insert a logical condition that checks if less than 14 days have passed since the order's purchase date — I'll explain the exact code in the guide dedicated to the withdrawal button in the customer area.

Managing post-submission flows and notifications

Once the customer clicks the submit button, Shopify processes the form and sends an email containing all the entered details. To make this flow more professional, you can configure an automatic reply rule in your email client or use Shopify Flow, available for free on all standard plans, to automatically send a transactional email confirming that the request has been received.

Data recording for inspection controls

In the event of checks by market surveillance authorities, the merchant must be able to demonstrate the exact date on which the consumer exercised their right of withdrawal. With the native Shopify form, the record remains in your inbox; with IFG Returns & Withdrawals, however, each request is automatically tracked in the dashboard, exportable as CSV or PDF in one click — useful precisely in these cases.

The performance and SEO benefits of an architecture without heavy apps

Mobile page loading speed is a critical factor for both conversions and ranking on traditional and AI-driven search engines (GEO). Generic applications installed from the App Store often inject heavy external scripts that block page rendering. Both native Liquid code and a lightweight widget like IFG Returns & Withdrawals avoid this problem, keeping the store fast, responsive, and optimized for mobile devices.

If you want to evaluate whether native code or a managed solution is more suitable for your store, it's the choice we analyze together in my Shopify strategic consulting.

FREQUENTLY ASKED QUESTIONS
To insert the withdrawal button without installing apps, you can create a custom contact form by editing your theme's Liquid code. This form will natively collect all the mandatory details required by the European directive and send an instant notification email to the store administrator, ensuring compliance and zero mobile slowdowns.
The form must include the order number, the purchase date, the consumer's personal details, the specific indication of the items for which the withdrawal is being exercised, and the sending date of the request. This two-step structure is mandatory by law starting from June 2026.
Absolutely yes. Since these are modifications to the Liquid and HTML source code of the Dawn theme or other standard themes, you can implement the entire withdrawal form on the Basic plan without having to upgrade to higher plans or Shopify Plus.
I highly recommend placing a clear link in your site's footer, next to the Privacy Policy, and a dynamic button accessible from the customer's account area in the order history, to make the withdrawal process quick and transparent.
Yes, eliminating external applications reduces third-party JavaScript requests and render-blocking stylesheets. This native approach protects Core Web Vitals, specifically Interaction to Next Paint (INP) and Largest Contentful Paint (LCP) on mobile devices.
Sources & Report References
Shopify Help Center - Customizing themes EUR-Lex - Directive (EU) 2023/2673

Leave a Comment

Please note, comments need to be approved before they are published.
Go now

Discover other articles

Schema astratto di un flusso di dati che connette un database e-commerce a un sistema contabile centralizzato su sfondo nero
13 August 2026
Francesco Guiducci
Shopify Electronic Invoicing: Flows and Tax Fields
Managing electronic invoicing in Italy on a standard Shopify store (Basic, Shopify, or Advanced plans) is one of the most...
Schema astratto di nodi di connessione sicuri e barriere digitali su sfondo scuro con gradienti viola e rosa.
10 August 2026
Francesco Guiducci
Configure Iubenda on Shopify: GDPR Technical Guide
Arranging your store's legal compliance is not just a matter of bureaucracy, but a pillar of web engineering that directly...
Interfaccia tecnica astratta di un crawler AI che scansiona una struttura di dati Shopify su sfondo nero con sfumature viola e rosa.
8 August 2026
Francesco Guiducci
IFG GEO Optimizer: The New Shopify App for the AI Era
The world of search engines has changed radically. In recent months, we have witnessed an epochal transition: users no longer...
Rappresentazione astratta e minimalista di flussi di dati e prismi ottici che riflettono un gradiente viola, rosa e corallo su sfondo nero assoluto
7 August 2026
Francesco Guiducci
GEO Shopify: The Strategic Guide to Being Found by AI
Until recently, search engine optimization relied exclusively on a proven formula: ranking on Google for specific keywords, driving traffic to...