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.
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.
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-phoneest 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é deframeLoadedpour 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-timeetbw-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.


