Booking page 404 in Service VIN: it is opt-in
The storefront is opt-in: why /book/your-shop 404s, why the subdomain doesn't resolve, and why an embed shows nothing.
Troubleshooting7 in this section
The short answer
Why does my booking page show a 404?
The storefront is opt-in, so until it is switched on the public URL genuinely does not exist and returns a 404 rather than an empty page. The same cause explains a subdomain that will not resolve and an embed that renders nothing. Switch it on, then check the services you published.
Related feature
online booking for auto shops is the page about what this article sets up.
The public storefront at /book/your-slug is off until you switch it on — a disabled shop is a clean 404 on purpose, so half-configured pages never leak. Ninety percent of booking-page 404s are one of two things: the toggle in Settings → Online booking is still off, or the URL's slug doesn't match the one saved on that page.
From 404 to live, in order
- 1
Turn it on
In Settings → Online booking, press Turn on booking. The status badge flips to Live and the hosted link starts working immediately.
- 2
Check the slug in the URL
The storefront lives at
/book/<slug>(andbook.servicevin.com/<slug>) with the exact slug shown on the settings page. The slug is your business name, so renaming the business in Business profile changes the URL — old links (and old embed snippets) 404 afterwards. - 3
For embeds, re-copy the snippet
The settings page generates the current iframe snippet (
/book/<slug>?embed=1— bare mode, no site chrome) and the script embed (data-servicevin-shop; the olderdata-detailio-shopstill works). A blank embed is almost always a 404 hiding inside the iframe: booking off or a stale slug.
Good to know
The reserved demo slug always renders a sample storefront — handy to confirm the route itself works before blaming your shop's config.
Troubleshooting
/book/your-shop returns a 404.
Why: Online booking is off for the shop — the storefront is opt-in and a disabled shop 404s cleanly.
Fix: Settings → Online booking → Turn on booking. The badge should read Live.
Booking is on, but the link still 404s.
Why: The slug in the URL doesn't match the shop's saved slug — often after a rename.
Fix: Copy the hosted link straight from Settings → Online booking, and update any embed snippets and marketing links to the new slug.
The custom-domain indicator shows Pending or Misconfigured.
Why: The CNAME for your custom domain hasn't propagated yet, or it points somewhere other than the platform booking domain.
Fix: Add a CNAME from your domain to the booking domain shown on the settings page, then re-check — Pending usually just needs DNS time.
The embed on your website shows an empty box.
Why: The iframe is rendering a 404: booking switched off, a stale slug in the snippet, or a snippet missing ?embed=1.
Fix: Open the iframe URL directly in a browser tab to see the real error, then re-copy the current snippet from Settings → Online booking.
The page loads but lists no services to book.
Why: No active service is both marked "show online" and priced — a service with no base price and no per-vehicle tier prices is hidden from the storefront.
Fix: In Services, price each bookable service (base price or vehicle tiers) and check its show-online flag.
Common questions
Does the /book path keep working after I set up subdomains?
Yes. Subdomain routing is purely additive — the hosted /book/<slug> URL and any embeds keep working unchanged.
Why did my embed break after I renamed the shop's slug?
Embed snippets carry the slug. Renaming the slug moves the storefront, so every pasted snippet must be re-copied from Settings → Online booking.