Skip to main content
new_return_order.liquid controls return creation. return_order.liquid controls the details of an existing return. Both support the standard template editor, drafts, publishing, translations and reset to the Firmhouse default. Customer Portal v2 uses the default return templates immediately. Customize and publish each template independently. Saving or previewing a draft does not change the live page; resetting a template restores its Firmhouse default. The template-based flow supports plan-based projects and dynamic projects with the dynamic returns feature enabled. Product eligibility, quantities, subscription authentication and return ownership are enforced on the server. The legacy return enablement switch does not control CPv2 Returns.

{% return_form %}

Used in: new_return_order.liquid Shows the product selection form, available quantities, return reason and validation errors. Keep this tag in the new return template so customers can submit their returns. The optional instructions argument supplies the message. Omitting it, passing nil, or passing an empty string shows no message. CPv2 does not read the legacy return-message settings. Instructions support sanitized HTML. The default template passes an empty translated message so you can manage its copy through template translations.

Return details layout

Used in: return_order.liquid The product list, prices, instructions, return-label download and cancellation link are ordinary Liquid markup in return_order.liquid. Edit their layout directly. Instructions use the sanitized t translation filter, with no legacy setting fallback. Set show_cancel_button = false at the top of the template to hide the cancellation link (default: true). This is a presentation option, not an authorization rule: hiding the link does not disable the existing cancellation endpoint. The legacy cancellation-display setting is not read by CPv2.
The page context includes return_order, initiated_on (the localized creation date), return_label_url and cancel_return_url. Action URLs are absent for previews and completed returns. Each entry in return_order.return_order_products exposes quantity, localized title, image_url, formatted total_amount and recurring_label. Escape these values when rendering them. The default template includes the return number and date.

{% return_entry %}

Used in: dashboard.liquid Shows the dashboard link for creating a return when the project’s return capability is available and eligible returnable quantity remains. The default product listing also shows links to in-progress returns below their products. Removing this tag hides the entry point; it does not change server authorization or availability. Add this tag to a customized dashboard to expose the same entry point:
Existing customized dashboards and published templates are not rewritten automatically. CPv2’s Returns settings section links to the templates. Legacy controls remain available while the old Self service center is live.