Skip to main content

How to put the reserve button on your website

Two ways to send your customers to reserve:

Direct URL /r/:slugEmbed iframe /embed/r/:slug
Where they reserveOn the RestaPro pageInside your own website
DesignFull pageCompact to fit your layout
Trackingsource: web_pagesource: web_embed
UseShare link, QRWordPress, Wix, custom site

The embed keeps your visual theme and restaurant data.

Snippet ready to copy​

In the backoffice → Settings → Reservations → Embed you'll see the snippet with your slug already filled in. If you'd rather assemble it manually:

<iframe
src="https://www.restapro.es/embed/r/your-slug"
width="100%"
height="720"
style="border:0;"
loading="lazy"
allow="payment">
</iframe>

Replace your-slug with your restaurant's identifier.

Height recommendations​

  • Mobile (under 768px): height="900" or more.
  • Desktop: 720-800 is ideal.
  • Auto-responsive: wrap it in a container with min-height:
<div style="width:100%; min-height:720px;">
<iframe
src="https://www.restapro.es/embed/r/your-slug"
width="100%" height="100%"
style="border:0;" loading="lazy">
</iframe>
</div>

By platform​

WordPress​

Custom HTML block and paste the snippet. Available in the default editor without any plugin.

Wix​

Add → More → HTML Embed and paste the snippet. Adjust the block size by dragging.

Squarespace​

Insert → Custom block → Code and paste the snippet.

Custom site (HTML, React, Vue...)​

Paste the snippet wherever you want the form to appear:

<section class="booking">
<h2>Reserve a table</h2>
<iframe src="https://www.restapro.es/embed/r/your-slug"
width="100%" height="720" style="border:0;" loading="lazy">
</iframe>
</section>

The embed inherits your theme​

Logo, colors, typography, branding, language - everything syncs automatically from Settings → Restaurant. You don't have to touch anything in the iframe.

Tracking​

Each conversion from the iframe is tagged as web_embed (vs web_page for the direct URL). In /app/reservas you can filter by channel and compare conversion of each source.

Troubleshooting​

ProblemCauseFix
The iframe doesn't appearWrong slugCopy it from Settings → Reservations
It's clippedInsufficient heightBump to 900px on mobile
Theme doesn't showTheme not savedSave in Settings → Restaurant
Broken stylesHost CSS interferingUse style="border:0;" and keep it isolated

Iframe permissions​

The allow="payment" attribute means that in the future (when we get to event prepayment), Stripe Elements will work inside the iframe without issues. It isn't strictly necessary today, but it's good practice to leave it.

ESENCA