Importer un plan de salle en collant du JSON
Le format JSON du plan de salle de Réservations de restaurant : les salles, les tables, les regroupements et leur dessin, en un seul document collé.
Le plan de salle d’un établissement peut s’écrire en un seul document JSON à coller dans Magpie. Sur Plan de salle, un administrateur de l’équipe choisit Importer du JSON…, et Magpie ajoute chaque salle, chaque table et chaque regroupement du document à l’établissement affiché sur la page. Le document peut aussi dire où se trouve chaque table sur le dessin de sa salle, quelle taille fait la pièce, et où sont les murs, le bar, les portes et le pupitre d’accueil.
Un import ne fait qu’ajouter. Une salle dont l’établissement a déjà le nom reçoit les nouvelles tables et les nouveaux éléments fixes ; une table ou un regroupement n’est jamais modifié ni supprimé. Une table dont l’établissement a déjà le nom, tables archivées comprises, est refusée. Un import ne place ni ne déplace jamais une table que l’établissement a déjà : faites-les glisser sur le dessin de leur salle, sur Plan de salle.
Utilisez Copiez l’invite dans la fenêtre d’import pour copier ces instructions pour un assistant que vous utilisez. L’assistant vous posera des questions sur vos salles, vos tables et les tables que vous rapprochez, vous demandera des photos ou un croquis de chaque salle, puis écrira le document. Magpie n’écrit aucun texte lui-même.
L’import se fait en entier ou pas du tout. Magpie vérifiera tout le document avant d’enregistrer quoi que ce soit, et désignera une erreur par sa place dans le document, par exemple "sections[0].tables[3].maxParty" must be between 1 and 99. Un champ qui ne fait pas partie du format est refusé.
Le document
{
"units": "cm",
"sections": [
{
"name": "Main room",
"room": { "width": 1200, "height": 800 },
"tables": [
{ "name": "1", "minParty": 1, "maxParty": 2, "x": 150, "y": 150 },
{ "name": "2", "minParty": 1, "maxParty": 2, "x": 350, "y": 150 },
{ "name": "3", "minParty": 2, "maxParty": 4, "shape": "round", "x": 550, "y": 200 },
{ "name": "4", "minParty": 2, "maxParty": 4, "x": 750, "y": 200 },
{ "name": "5", "minParty": 4, "maxParty": 6, "shape": "rectangle", "x": 1000, "y": 200, "width": 150, "height": 90 },
{ "name": "Bar", "minParty": 1, "maxParty": 4, "shape": "bar", "x": 950, "y": 660 }
],
"fixtures": [
{ "kind": "wall", "x": 600, "y": 8, "width": 1200, "height": 15 },
{ "kind": "half_wall", "x": 600, "y": 400, "width": 400, "height": 15 },
{ "kind": "bar", "x": 950, "y": 600, "width": 300, "height": 60, "text": "Bar" },
{ "kind": "door", "x": 150, "y": 792, "width": 90, "height": 15, "text": "Entrance" },
{ "kind": "host_stand", "x": 300, "y": 720 },
{ "kind": "label", "x": 600, "y": 60, "text": "Kitchen pass" }
]
},
{
"name": "Terrace",
"onlineBookable": false,
"tables": [
{ "name": "T1", "minParty": 2, "maxParty": 6, "shape": "rectangle" }
]
}
],
"combinations": [
{ "tables": ["1", "2"], "minParty": 3, "maxParty": 4 },
{ "name": "Big table", "tables": ["3", "4"], "maxParty": 8 }
]
}
Les champs
Le document est un objet avec sections, une liste de 1 à 30 salles, si besoin combinations, une liste de 100 regroupements au plus, et si besoin units.
units:cmouin(pouces), l’unité de chaque longueur et de chaque position du document. Il vautcms’il est omis. Une longueur peut aussi s’écrire en texte avec son unité, par exemple"90 cm","36 in"ou"3 ft 6 in".
Une salle a :
name: le nom de la salle, jusqu’à 80 caractères, par exemple « Salle principale » ou « Terrasse ».onlineBookable:falsequand les clients ne peuvent pas réserver ses tables en ligne. Il vauttrues’il est omis.tables: ses tables, dans l’ordre où le carnet les affiche. Le document entier contient 200 tables au plus.room: facultatif, la largeurwidthet la profondeurheightde la pièce, chacune de 1 m à 100 m. S’il est omis, la pièce est dessinée aussi grande que ses tables et ses éléments fixes l’exigent, et au moins de 12 m sur 8 m.fixtures: facultatif, jusqu’à 60 éléments fixes, ce qui figure sur le dessin et n’est pas une table.
Une table a :
name: son nom ou son numéro, jusqu’à 40 caractères. Deux tables d’un même établissement ne peuvent pas porter le même nom.minPartyetmaxParty: le plus petit et le plus grand nombre de personnes qu’elle accueille, de 1 à 99. Ils valent 1 et 2 s’ils sont omis.shape:square,round,rectangle,boothoubar(une rangée de places au bar). Il vautsquares’il est omis.onlineBookable:falsequand les clients ne peuvent pas la réserver en ligne.xety: facultatifs, l’endroit de la pièce où se trouve le centre de la table. Indiquez les deux ou aucun. Une table sans eux est dessinée dans une grille sur le dessin de sa salle, marquée comme pas encore placée.widthetheight: facultatifs, la taille de la table, chaque côté de 20 cm à 20 m. S’ils sont omis, la table est dessinée à la taille habituelle pour sa forme et ses places, par exemple 75 cm pour une table carrée de deux et 90 cm pour une table ronde de quatre. Un seul côté indiqué pour une table ronde ou carrée vaut pour les deux.rotation: facultatif, en degrés entiers dans le sens des aiguilles d’une montre. Il vaut 0 s’il est omis.
Un élément fixe a :
kind:wall(mur),half_wall(muret),bar,door(porte),host_stand(pupitre d’accueil),window(fenêtre),pillar(pilier),stairs(escalier),plant(plante) oulabel(étiquette).xety: l’endroit de la pièce où se trouve son centre.widthetheight: facultatifs, chaque côté de 5 cm à 20 m. S’ils sont omis, chaque type a sa propre taille, par exemple 300 sur 15 cm pour un mur et 90 sur 15 cm pour une porte.rotation: facultatif, en degrés entiers dans le sens des aiguilles d’une montre.text: jusqu’à 80 caractères, affiché sur le dessin. Une étiquette (label) en a besoin ; unbar, unedooret unhost_standpeuvent en avoir un ; les autres types n’en ont pas.
Un regroupement réunit des tables pour les groupes plus nombreux :
tables: les noms de 2 à 12 tables de la même salle, de ce document ou déjà présentes dans l’établissement.name: facultatif, par exemple « Grande table », jusqu’à 80 caractères. S’il est omis, Magpie le nomme d’après ses tables (« 1+2 »).minPartyetmaxParty: facultatifs. S’ils sont omis, il accueille du plus grandminPartyde ses tables jusqu’à la somme des places de ses tables.onlineBookable:falsequand les clients ne peuvent pas le réserver en ligne.
Les positions sur le dessin
Chaque salle est dessinée comme un rectangle vu d’en haut. x se mesure depuis le bord gauche de la pièce vers la droite et y depuis son bord supérieur vers le bas, dans l’unité du document. Une position va de 0 à 100 m.
Deux tables d’une même salle dont les contours se chevauchent sont refusées, en nommant les deux, par exemple "sections[0].tables[3]" overlaps "sections[0].tables[1]". Les chaises ne comptent pas. Une table peut chevaucher un élément fixe, pour que les places au bar soient au bar.
Les positions n’ont pas besoin d’être exactes. Après l’import, les tables et les éléments fixes se déplacent et se redimensionnent sur le dessin, sur Plan de salle.
Écrire un plan à partir de photos
Un assistant qui écrit ce document à partir de photos ou d’un croquis des salles procède ainsi :
- Demander des photos ou un croquis de chaque salle et sa taille approximative, l’emplacement de l’entrée et du pupitre d’accueil, et la façon dont le restaurant numérote ses tables.
- Décrire chaque salle comme un rectangle vu d’en haut, l’entrée en bas.
- Donner à chaque table un centre dans ce rectangle. Quand la personne n’a donné aucune taille, utiliser des tailles courantes : 75 cm pour une table carrée de deux, 90 cm pour une table de quatre, 120 cm pour une table ronde de six. Laisser au moins 90 cm entre les tables pour le passage.
- Ajouter les murs, le bar, les portes et le pupitre d’accueil comme éléments fixes.
Si un import est refusé pour une raison que cette page n’explique pas, Contacter l’assistance.
Demander à l’assistance Magpie
Envoyez à l’équipe Magpie une question sur tout ce que cet article n’explique pas.