Esstisch-Planer für Tischlereien: Raum, Personen, Form, Holz und Gestell ergeben Draufsicht, Seitenansicht, Empfehlung und Richtpreis (Sätze der Werkstatt als Props: woods, frames, hourlyRate, finishPricePerM2; showPrice=false blendet den Preis für Besucher aus). Die Anfrage geht an das Formular-Modul des Betriebs (formAction wie Contact02, dasselbe Modul reicht): Planung, Zuschnitt und Link zur Planung stehen im Feld message, optional phone. Braucht JavaScript; ohne Skript Startzustand und Nachrichtenformular. Eingabe-Beschriftungen fest deutsch. Zeichnung aus Tokens, nur Holztöne als Materialfarbe. Ein Planer je Seite und nicht zusammen mit Contact02 (?table= in der Adresse, beide reagieren auf ?gesendet=1). Composer bietet sie noch nicht an (kein Slot configurator, kein Eintrag in rubrics.json), siehe ops/CONFIGURATORS.md.
Alle Felder sind optional; ohne Angabe greift der Default. Ein LLM schickt nur, was abweicht.
| Feld | Typ | i18n |
|---|---|---|
| eyebrow | string | übersetzbar |
| title | string | übersetzbar |
| intro | string | übersetzbar |
| examplesLabel | string | übersetzbar |
| examples | { label, roomLength, roomWidth, persons, shape }[] | gemischt |
| woods | { name, pricePerM2, shade }[] | gemischt |
| frames | { type, name, price }[] | gemischt |
| hourlyRate | number | invariant |
| finishPricePerM2 | number | invariant |
| showPrice | boolean | invariant |
| priceNote | string | übersetzbar |
| formTitle | string | übersetzbar |
| formIntro | string | übersetzbar |
| formNameLabel | string | übersetzbar |
| formEmailLabel | string | übersetzbar |
| formPhoneLabel | string | übersetzbar |
| formNoteLabel | string | übersetzbar |
| privacyText | string | übersetzbar |
| privacyHref | string | invariant |
| privacyLinkLabel | string | übersetzbar |
| submitLabel | string | übersetzbar |
| formAction | string | übersetzbar |
| emailHref | string | invariant |
| successText | string | übersetzbar |
| errorText | string | übersetzbar |
{
"eyebrow": "Tisch nach Maß",
"title": "Ihr Esstisch, passend zum Raum.",
"intro": "Geben Sie Raum und Personenzahl ein. Der Planer schlägt Maß und Form vor, zeigt, ob hinter den Stühlen genug Platz bleibt, und nennt einen Richtpreis. Ihre Planung geht mit der Anfrage direkt an unsere Werkstatt.",
"examplesLabel": "Beispiel laden:",
"examples": [
{
"label": "Altbau-Esszimmer",
"roomLength": 4400,
"roomWidth": 3600,
"persons": 8,
"shape": "rect"
},
{
"label": "Wohnküche, rund",
"roomLength": 3400,
"roomWidth": 3000,
"persons": 4,
"shape": "round"
},
{
"label": "Große Tafel",
"roomLength": 6000,
"roomWidth": 4200,
"persons": 12,
"shape": "oval"
}
],
"woods": [
{
"name": "Eiche",
"pricePerM2": 210,
"shade": "medium"
},
{
"name": "Nussbaum",
"pricePerM2": 390,
"shade": "dark"
},
{
"name": "Esche",
"pricePerM2": 170,
"shade": "light"
}
],
"frames": [
{
"type": "skid",
"name": "Kufengestell Stahl",
"price": 380
},
{
"type": "x",
"name": "X-Gestell Stahl",
"price": 460
},
{
"type": "legs",
"name": "Vier Holzbeine mit Zarge",
"price": 420
},
{
"type": "pillar",
"name": "Säule mit Fußteller",
"price": 390
}
],
"hourlyRate": 68,
"finishPricePerM2": 18,
"showPrice": true,
"priceNote": "Richtwert inklusive 19 % MwSt., ohne Lieferung. Das verbindliche Angebot folgt nach dem Aufmaß.",
"formTitle": "Planung an die Werkstatt senden",
"formIntro": "Wir sehen Maße, Holz und Gestell Ihrer Planung und melden uns persönlich mit einem Angebot oder einem Termin zum Aufmaß.",
"formNameLabel": "Ihr Name",
"formEmailLabel": "Ihre E-Mail-Adresse",
"formPhoneLabel": "",
"formNoteLabel": "Ihre Nachricht an die Werkstatt",
"privacyText": "Ich stimme der Verarbeitung meiner Angaben zur Beantwortung meiner Anfrage zu.",
"privacyHref": "",
"privacyLinkLabel": "Datenschutzerklärung",
"submitLabel": "Planung senden",
"formAction": "",
"emailHref": "",
"successText": "Vielen Dank, Ihre Planung ist angekommen. Wir melden uns persönlich bei Ihnen.",
"errorText": "Die Planung konnte gerade nicht gesendet werden. Bitte versuchen Sie es erneut oder schreiben Sie uns direkt."
}