Aller au contenu

Ce que vous pouvez intégrer dès aujourd’hui.

Un bouton à intégrer, documenté de bout en bout.

Deux lignes, et la première est un lien.

Copiez le vôtre, déjà rempli, depuis l’écran « Votre bouton » du tableau de bord.

<a href="{page}" data-bw-venue="{publicKey}" data-bw-launcher>Book a table</a>
<script src="{origin}/embed/v1/embed.js" async></script>

Placez autant de boutons que vous voulez sur une page : le script se charge une seule fois et les sert tous. Il pèse moins de 6 Ko compressé, n’enregistre aucun cookie, et laisse le bouton en simple lien tant qu’il n’est pas chargé, ou si quoi que ce soit échoue.

Ce que le bouton ouvre

Douze que vous écrivez, deux que le script écrit.

Le bouton lui-même

data-bw-venue
Obligatoire : un bouton sans lui est ignoré. Votre clé publique n’est pas un secret : elle ne lit que ce qu’un client peut déjà voir, si bien qu’une clé copiée ne peut rien faire de plus que placer un bouton qui fonctionne sur un autre site.
data-bw-launcher
Garde votre propre élément comme bouton, mis en forme par votre site, et laisse l’événement de réservation atteindre votre page. Sans lui, le script le remplace par son propre bouton.
data-bw-title
Le nom de la fenêtre pour les lecteurs d’écran, jamais affiché à l’écran. S’il est omis, c’est « Réserver une table », dans la langue du visiteur.
data-bw-locale
en, fr ou ar ; une variante régionale est ramenée à sa langue de base. S’il est omis, la fenêtre suit l’attribut lang de votre page, puis le navigateur du visiteur, puis l’anglais.
data-bw-theme
light, dark ou auto ; toute autre valeur est ignorée. Il règle le clair ou le sombre du cadre de la fenêtre, autour de vos couleurs.
data-bw-phone
Un numéro à afficher si le formulaire de réservation ne peut pas se charger. Sans lui, ce panneau de secours propose un lien, mais aucun moyen de vous appeler.

L’ouverture du formulaire

data-bw-party
Un nombre entier supérieur à zéro : la taille du groupe à l’ouverture du formulaire.
data-bw-date
YYYY-MM-DD, lu comme la journée de service du restaurant. Tout autre format est ignoré.
data-bw-time
Le créneau à ouvrir, s’il est encore libre, sous forme d’horodatage en millisecondes, et non d’une heure comme 19h30.
data-bw-require
Des clés de placement séparées par des virgules, que le client doit obtenir, un accès de plain-pied par exemple. Un horaire qui ne peut pas les respecter est retiré.
data-bw-prefer
La même liste, comme simple préférence. Elle ne retire jamais d’horaire, et elle vous parvient avec la réservation.
data-bw-layout
classic ou compact : laquelle des deux mises en page de réservation ouvrir. Un nom que nous ne connaissons pas revient à votre propre réglage.

Le seul attribut qui peut retirer tous les horaires.

Une clé de placement que vous n’avez jamais définie n’est satisfaite par aucune table : une faute de frappe dans data-bw-require donne l’image d’un restaurant complet.

Le script écrit lui-même data-bw-bound et data-bw-overlay ; ne les ajoutez jamais à la main.

Choisissez les sites qui peuvent ouvrir le formulaire.

Ouvert à tout site sécurisé pendant quatorze jours, puis seulement aux sites que vous avez autorisés.

Jours 1 à 14
Tout site sécurisé, plus localhost et 127.0.0.1 sur n’importe quel port. Chaque site qui l’intègre vous est proposé dans le tableau de bord, sur l’écran « Votre bouton », pour l’autoriser ou le retirer.
Après cette période
Seulement les sites que vous avez listés ou autorisés. S’il n’y en a aucun, il ne s’ouvre nulle part.
Verrouillé
Listez vos sites, chacun avec un schéma, un hôte et un port facultatif, comme http://localhost:3000, et passez le mode sur « Verrouillé » pour sauter cette période.
Refusé
Le navigateur bloque le cadre ; dix secondes plus tard, la fenêtre affiche un lien vers votre page de réservation, et votre numéro si data-bw-phone est renseigné.

Un seul événement atteint votre page.

Une référence de réservation pour vos statistiques, et rien qui dise qui a réservé.

document.addEventListener("bw:booking-confirmed", (e) => {
  // e.detail.bookingRef is the reference the guest was shown.
});

Demandez au script ce qu’il voit.

Lancez __bw.verify() dans la console, sur la page où vous l’avez installé.

launchers
Le nombre de boutons pris en charge. Zéro signifie que le bouton et le script ne sont pas sur la même page, ou que la clé manque.
hrefFallback
Indique si chaque bouton garde un lien derrière lui, pour le cas où le script échoue.
originAllowed
Vaut true une fois la fenêtre ouverte et son cadre ayant répondu, et null sinon. Il ne vaut jamais false ; lisez degraded à côté de frameLoaded pour distinguer un site refusé d’un formulaire jamais ouvert.
frameLoaded
Indique que le cadre a récupéré notre page, pas que le formulaire de réservation a fini de se charger.
degraded
Vaut true quand la fenêtre a cessé d’attendre son cadre et a affiché votre lien à la place.
build
La version du script qui a répondu.
?bw-verify=1
Sur votre propre URL, fait en sorte que ce même appel affiche aussi son rapport.
?bw-open=1
Sur votre propre URL, ouvre le premier bouton de la page, en lui transmettant bw-date, bw-time et bw-party.
__bw.open({ venue })
Ouvre la fenêtre pour votre clé et indique si le clic a été pris en compte. Sans clé, elle renvoie false.

Dites-nous ce que l’API doit faire.

Avec Pro, une fois disponible, elle permettra aux assistants de retenir une table libre pendant qu’un client se décide.

Le client confirmera chaque réservation d’un bouton, et un assistant ne réservera ni n’annulera jamais à sa place. Ce que nos propres applications appellent en interne n’est pas un contrat, et change sans préavis.