Skip to main content

Installation guide

CU

2 min · Easy

Install BackToMe on Custom-built shop.

Follow the path for Custom-built shop, paste your tag and then check its detection. Simply paste one line into your shop’s <head> tag.

Installation

Before copying the tag.

Check the required access, then use the location shown for your platform.

Prerequisites

  • Edit access to your shop’s source code (FTP, Git, or a built-in editor)
  • A shared layout file (header.html, base.html, _document.tsx, etc.) or a templating system that automatically injects the <head> tag on every page
  • If you have a CSP (Content Security Policy), the permissions to run scripts from https://backtome.fr

Location in Custom-built shop

Before the closing </head> of the HTML served on every page where purchases can be made

  1. 01Identify the layout file shared by every page (static HTML: footer.html is not the right one, it is a main layout such as base.html)
  2. 02Locate the </head> tag
  3. 03Paste the tag just before this tag
  4. 04For a SPA site (React, Vue, Svelte, Angular), use the framework’s native <head> injection mechanism, see the pitfalls below
  5. 05Deploy and check in a private tab that the tag appears in the HTML source

Copy your BackToMe tag

Replace YOUR_ID with the shop identifier shown in your account.

Save and publish

The change must be published on the version your customers actually see.

Tag to copy into the <head>

<script async src="https://backtome.fr/widget.js" data-site="YOUR_ID"></script>

Over time

What removes the button from a custom-built shop

An update or theme change can remove a script that worked until then.

  • A deployment that rebuilds the template without the tag.
  • A content security policy tightened during a security pass.
  • A front-end rewrite, or a move to server-side rendering that does not re-inject the tag.

BackToMe tracks the last signal received

The dashboard shows the tag’s last detection. If the button disappears, you have a precise starting point for checking the shop.

Verification

Check the published shop.

Do not stop at the editor’s confirmation. Open the public site and check what is actually loaded.

Expected result

The status changes to Detected in BackToMe and the button appears on the public shop.

  1. 01Open a private window.
  2. 02Load a public page of the shop.
  3. 03Check the button position and label.
  4. 04Open the form without submitting a real request.

After the click

Every request joins a verifiable case.

BackToMe records the request, sends the acknowledgement and keeps the information needed for tracking. The certificate states exactly what can be checked.

Understand the certificate

Troubleshooting

The most common blockers.

Every answer can be closed and used from the keyboard.
SPA sites: inject via the framework, not in index.html
On a React (Next.js, CRA), Vue (Nuxt) or Svelte (SvelteKit) project: do not edit the final served index.html, but use the framework’s mechanism. Next.js: layout.tsx or _document.tsx. Nuxt: nuxt.config.ts (head.script). SvelteKit: app.html. Otherwise the script is correctly present on the first load but can be lost during client-side navigation.
Overly restrictive CSP
If your shop has a strict Content-Security-Policy header (often the case on business sites), make sure the following directives allow backtome.fr: script-src 'self' https://backtome.fr ; connect-src 'self' https://backtome.fr https://*.supabase.co. Without this, the browser blocks the button silently.
Shops with a build step
If your shop is built (Hugo, Jekyll, Astro, Eleventy, etc.), add the tag in the layout template or via a global variable, then rebuild and redeploy. Editing the HTML directly in the dist/ folder will not survive the next build.
WordPress without WooCommerce (memberships, courses, donations)
Do you sell subscriptions via MemberPress, courses via LearnDash or Tutor LMS, donations via Give, or any monetisation plugin other than WooCommerce? The withdrawal-button obligation applies just the same as soon as there is a sale to a consumer in the EU. The installation mechanism is identical to the WooCommerce guide: use a header-management plugin (WPCode, Insert Headers and Footers) and paste the tag into the Header area. No dependency on WooCommerce is needed, the button is universal.
Paid newsletters (Substack, Ghost, Beehiiv, ConvertKit Commerce)
Substack and some paid-newsletter platforms do not allow free injection of JavaScript into the <head> of public pages (the HTML is locked). In that case, BackToMe cannot be installed directly on the platform. Options: (1) add a link to a withdrawal page hosted elsewhere (a custom-built shop or a subdomain you control), (2) send the withdrawal by email in line with the EU obligation, mentioning this route in your terms and conditions. Ghost and Beehiiv allow custom injection via their settings, so the tag works on them.
Standalone pages (Carrd, Linktree, simple page builders)
Carrd Pro, some free page builders and bio-link platforms (Linktree, Beacons) do not give access to the <head>. If your commercial activity runs only through these pages, you must host a compliant withdrawal page elsewhere and link to it from your links. For Carrd Pro specifically, custom code injection is available and the button works.
The button does not appear after publishing
Open the Custom-built shop shop in a private window. Then check the published theme, tag identifier and its position in the head.
The status remains Not detected
The tag reports when a public page loads it. Visit the published shop in a private window, then refresh the status in BackToMe.
The form does not open
Test without browser extensions. Also check the CSP policy and any tool that blocks third-party scripts.
Can I give the installation to my developer?
Yes. Send them the tag and this guide. They do not need access to your account to add the line to the site.

Official Custom-built shop documentation

Still stuck? Contact us with the shop URL and a screenshot.

A custom build needs one line.