Funktioner
Alt din café og restaurant har brug for
Fra QR-kodegenerering til realtidsordresporing, AI-drevet indhold til flersprogede menuer — Thmenu er den komplette digitale løsning til din voksende virksomhed.
- 01
En QR-menu til hvert bord
Hvert bord får sin egen QR-kode, der åbner din menu i browseren — gæsterne behøver hverken app eller konto.
- 02
31 sprog
Menuen åbnes på sproget på gæstens telefon, når det er et af de 31 understøttede sprog. Retternes navne og beskrivelser oversættes automatisk i baggrunden, og du kan rette enhver oversættelse.
- 03
Bestilling fra bordet
Gæsterne bestiller fra deres bord, og ordren vises live i dit dashboard med et lydsignal og en push-notifikation til dit personale.
- 04
Menuanalyse
Se, hvor ofte hver ret er blevet åbnet, lagt i kurven og bestilt, dine ordrer og din omsætning dag for dag samt et heatmap over dine travleste timer.
- 05
Detaljer om retter med AI
Skriv navnet på en ret, så foreslår AI en beskrivelse, ingredienser og allergener, som du tjekker, før du gemmer. Derefter kan hele menuen oversættes til alle de sprog, du tilbyder.
- 06
Dine farver og dit layout
Vælg dine egne farver eller en forudindstillet palet, og vis menuen som gitter, liste eller kompakt liste med den kortstil, du foretrækker.
- 07
Indbygget sikkerhed
Ordrer kontrolleres for brug af Tor eller VPN, tegn på en forfalsket placering og pludselige stigninger, og risikable ordrer markeres for dit personale. Der er en grænse for, hvor ofte der kan bestilles, og en gentaget afsendelse opretter ikke endnu en ordre.
- 08
Kampagner og rabatkoder
Vis kampagnebannere på din menu i en bestemt periode eller i et ugentligt tidsrum som happy hour, og tilbyd rabatkoder med start- og slutdato.
- 09
På hjemmeskærmen
Gæsterne kan føje din menu til deres hjemmeskærm på iOS og Android. En menu, der er åbnet på telefonen inden for det seneste døgn, kan stadig læses uden forbindelse, og ordrer afgivet offline sendes, når forbindelsen er tilbage.
- 10
Global hastighed — Cloudflare CDN
Leveres fra Cloudflares globale netværk, altså fra en node tæt på din gæst. Den faktiske hastighed afhænger af deres forbindelse.
- 11
Gæstebedømmelser
Når regningen lukkes ved et bord, kan gæsterne bedømme deres besøg, og hver bedømmelse vises i dit dashboard.
- 12
Digitalt tjener- og regningsopkald
Gæsterne kan tilkalde en tjener eller bede om regningen fra deres bord, og dit personale ser og lukker hvert kald i panelet.
- 13
Personaleroller
Forudindstillede roller til tjenere, kasserere, køkkenpersonale og ledere, hver med sine egne rettigheder. Personalet logger ind med en PIN-kode på køkkenskærmen og i personalets smartwatch-app, og vigtige ændringer bliver logget.
- 14
Manuel ordreindtastning
Indtast bord-, takeaway- og telefonordrer fra dit dashboard; efter hver ordre åbnes en kvittering, der kan udskrives.
- 15
Tilgængelighedssupport
Indbyggede skriftstørrelseskontroller og højkontrasttilstand i hver menu. Kunder med synsnedsættelse kan tilpasse visningen til deres behov — ingen ekstra konfiguration krævet.
- 16
Papirfrit
Skift en pris eller en ret, når du vil, og menuen opdateres; de trykte QR-koder forbliver de samme, så der er intet at genoptrykke.
- 17
Betaling på din måde
Gæsterne betaler med kort fra deres egen telefon via Stripe, med Apple Pay og Google Pay på understøttede enheder, i lande hvor Stripe er tilgængelig.
- 18
Selvbetjeningskiosk
Gør en tablet til en selvbetjeningsmenu i fuld skærm ved din disk: gæsterne kigger menuen igennem og afgiver takeaway-ordrer, og skærmen nulstilles mellem kunderne.
- 19
Loyalitetspoint
Medlemmer optjener point på hver ordre og rykker op i niveauer, hvor de optjener hurtigere, og du kan se og justere hvert medlems saldo fra dit dashboard.
- 20
Reservationer og venteliste
Tag imod bookinger — gæster, der oplyser en e-mailadresse, får en bekræftelse og opdateringer på e-mail — og før en venteliste for gæster uden reservation i dit dashboard.
Fuld liste
Alle funktioner225
Thmenus komplette ende-til-ende-funktioner — hver kategori, intet skjult.
Installérbar app (PWA)4
- Installation på startskærmen (iOS og Android) — Admin-dashboardet og gæstemenuen installeres som en app direkte fra browseren — ingen app-butik, ingen download.
- Virker offline — En menu, der allerede er åbnet, virker fortsat uden forbindelse.
- Push-notifikationer — Nye ordrer, tjenerkald og regningsanmodninger kommer som push-notifikationer i den installerede app.
- Selvstændig fuldskærmstilstand — Når den er installeret, kører den uden browserens værktøjslinjer, ligesom en native app.
Notifikationer & Push10
- Web Push (VAPID, RFC 8291) — ES256 VAPID-signeret Web Push til admin-browsere og kunder (ordre-klar); urgency:high, ~10-min TTL
- Ordre modtaget → ejer — Udløses ved vellykket kundeordre-POST ("ny ordre fra bord N, i alt $X") på tværs af native + web
- Ordre klar → ejer — Udløses når en ordre skifter til 'klar'; samler automatisk opdateringer for samme ordre
- Ordre klar → kunde (Web Push) — VAPID-push på kundesiden når deres ordre bliver klar; tilvalg på ordredetaljesiden
- Ordre annulleret → ejer — Udløses når en kunde annullerer inden for 90-sekunders-vinduet
- Tjenerkald → ejer/personale — Kundens "Kald tjener" udløser en push pr. bord til smartwatch + personaletelefon + admin-web med haptisk sprog
- Regningsanmodning → ejer/personale — Kundens "Få regning" udløser en push pr. bord til smartwatch, telefon og web
- Forudsigelse af lagerudsolgt → ejer — AI-forudsagt udsolgt-varsel 3 dage frem, én gang/dag/restaurant ved tillid ≥ 50 %
- Reservation oprettet → ejer — Push pr. restaurant til ejerens smartwatch/telefon/web ved en ny booking
- Realtids-SSE-notifikationer → admin-web — 5-sekunders D1-polling sender antal ventende ordrer, tjenerkald, regningsanmodninger og klare ordrer til admin
Bestilling, KDS & Køkken23
- QR-menu (kerne-kundemenu) — Offentlig digital menu via QR eller direkte URL med kategorier, produkter og billeder
- Ordrekurv & kassegang — Indkøbskurv til valg af produkter med modifikatorer og antal før betaling
- Kundebestilling (5-trins livscyklus) — Afgiv → afventer → bekræftet → tilberedes → klar → serveret med realtids-statusopdateringer; serversidekanonisk
- Ordremodifikatorer & tilpasning — Modifikatorgrupper pr. produkt (størrelse, fyld, ekstra) med prisforskelle pr. valg gemt som et JSON-snapshot
- Produktnoter (særlige instruktioner) — Fritekstnoter pr. vare ("ingen løg") vist på KDS-kvitteringen
- ETA / ordre-nedtælling — Kundesynlig 25-min tilberedningstimer fra 'tilberedes' til 'klar' (target_ready_at), 30s-polling, grøn puls ved
- Justering af drikkepenge (efter betaling) — Kunden tilføjer/ændrer drikkepenge efter afgivelse, serverbegrænset af tip_max_percent (standard 50 %)
- Ordreannullering (90s-vindue) — Kunden annullerer afventende ordrer inden for 90s med atomisk race-tjek, tilbageførsel af optjent loyalitet og shadowban
- Ordrerefusioner (kumulativ sporing) — Admin delvise/fulde refusioner sporet kumulativt i refunded_amount_cents med OCC race-beskyttelse (409)
- Multivaluta & momsspecifikation — Ordretotal med momsspecifikations-JSON pr. sats, momsinkluderet vs. ekskluderet, valutasnapshot
- Ordredeling (Web Share API) — Kunden deler live ordrestatus til andre telefoner via OS'ets native delingsark eller udklipsholder
- KDS (Kitchen Display System) — Realtids SSE/poll-ordrekø med statusovergange (afventer → bekræftet → tilberedes → klar → serveret)
- KDS-stationer & PIN-login — Flere KDS-stationer pr. restaurant, hver med en 4-6-cifret PIN og kategorifiltrering pr. station
- KDS ordre-status-workflow (OCC) — Atomiske køkkenovergange med `AND status=<prev>` race-tjek og valgfrie knapetiketter pr. status
- Ordreliste & detaljer — Alle ordrer grupperet efter status; bor ned i varer/totaler/kunde; manuelle delvise refusioner, justering af drikkepenge
- Ordreoprettelse (manuel POS) — Personale opretter ordrer bord → kategori → produkt → antal → bekræft; idempotensnøgle-baseret POST; håndterer telefon/kontant
- Barregninger (sessionsbaseret regningssporing) — Vedvarende regning pr. kunde på tværs af flere ordrer med løbende saldo og sporing pr. vare
- ESC/POS termoprinter-understøttelse — Rå ESC/POS byte-builder (32/42/48/56 tegns bredde) med CP857 tyrkisk kodning til kvitteringer
- Termoprinter-bro (Web Serial/USB/Bluetooth) — Browser-transportlag til ESC/POS-kommunikation via Web Serial, USB og Bluetooth
- Brugerflade til printeropsætning & -parring — Find, par og test printere med valg af model/bredde/kodning
- Køkkenkvitterings-billet — Specialiseret ESC/POS-køkkenudskrift: restaurant, bord, varer, antal, noter, modifikatorer, forløbet tid
- Kundekvittering / regningsbillet — Kundevendt termokvittering: restaurant, bord, varer, enhedspris, total, betalingsmetode, tidsstempel
- Auto-86 ved udsolgt — Atomisk lagernedskrivning ved ordreafgivelse afpublicerer produkter ved lager ≤ 0 og sender en ejeradvarsel
Kiosk2
- Kiosktilstand (selvbetjening) — Fuldskærmskiosk på enhver tablet: en tryk-for-at-starte-skærm, den levende menu og kurv og nulstilling efter 60 sekunders inaktivitet; bestillinger afgives som afhentningsordrer
- Registrering af kioskenheder — Registrér og administrér kioskenheder fra udvikler-/integrationsfladen
Betalinger2
- Stripe Checkout & Payment Intents — Kunde-checkout-sessioner + payment intents til agentordrer; SCA/3D-Secure, metadata-attribution, refusion
- Stripe Connect — Restaurantudbetalinger & kommissionsfordelinger (restauranten beholder subtotalandelen, platformskommission); webhook-drevet
AI-suite29
- AI-produktbeskrivelsesgenerator — LLaMA 3.1 8B genererer en menubeskrivelse på 2 sætninger ud fra navn/kategori/pris med saneret input
- AI-produktdetaljer auto-udfyld — Udfylder ernæring (kcal/fedt/kulhydrater/protein/salt), ingredienser og EU-14-allergen-whitelist med en 7-dages KV
- AI-menugenerator (massevis) — Komplet menustruktur (kategorier, produkter, beskrivelser, foreslåede priser, allergener, portioner) med én prompt
- AI-menuoprydning — Opdager dublerede/inaktive produkter, inkonsekvent navngivning, stavefejl og lavtydende produkter som kandidater til udrensning
- AI-prisforslag — Analyserer 30-dages enhedssalg/omsætning mod anonymiserede kategorimedianer på tværs af restauranter; returnerer foreslåede
- AI-opskriftsforslag — Foreslår sæson-/tematiske opskrifter ud fra tilgængelige ingredienser, køkken og kosttrends med allergen-tags
- AI-generator af dagens ret — Genererer daglige/ugentlige specialiteter + marketingtekst ud fra ingredienser, sæson og trends, med foreslåede
- AI-vagtplanoptimering — Foreslår vagtmønstre for personale ud fra historisk volumen, spidsbelastningstimer, reservationer, tilgængelighed og lønomkostninger
- AI-menuoversættelse — Kontekstbevidst oversættelse af mad/drikke for navne + beskrivelser til 31 sprog, bevarer HTML-markup
- AI-generator af anmeldelsessvar — Udarbejder udkast til ejersvar på gæsteanmeldelser i en valgbar tone, herunder en undskyldende tone; ejeren redigerer og sender
- AI-bio-generator — Genererer en 200-ords SEO-optimeret restaurant-bio ud fra køkken, beliggenhed, specialiteter og grundlæggelseshistorie
- AI-indsigter (daglig/ugentlig/månedlig) — Cron-genererede narrative rapporter (3-5 afsnit) der sammenligner år-til-år/uge-til-uge omsætning/AOV/topprodukter/funnels med 3-5
- AI-menuchat (kundevendt) — Naturligt-sprog-menusøgning ("vegetarisk pasta?", "hvad er glutenfrit?") returnerer 3-5 matchede produkter med
- AI-produktanbefalinger — Kurv-bevidste 3-5 produktforslag ud fra menukontekst + kurvindhold + ekskluderingsliste, forankret til primær
- AI smart mersalg — 2-4 komplementære varer (parringer, tilbehør, desserter, drikkevarer, forretter) klassificeret efter upsell_type ud fra
- AI-stemmebestilling (tale-til-kurv) — Web Speech API → LLaMA parser hensigt → matcher produkter → returnerer kurvvarer med tvetydighedsflag; lokaliseret
- AI vin-/drikkeparring — Parringsforslag til bestilte retter efter smagsprofil, køkken og vinkort, med prisniveau og
- AI-retforslag (kundeformular) — Kunder indsender retidéer (navn, beskrivelse, køkken-hint); admin triagerer efter status
- AI-indholdsoprydning (masse-moderering) — Batch-gennemgang af kundefeedback for bandeord/spam med masse-sletning + flag
- Sentimentanalyse (feedback/anmeldelser) — Cron klassificerer gæstefeedback som positiv/neutral/negativ/kritisk med temaer
- MCP: start_order_session — Udsteder agent_session_id + customer_confirm_url (30-min TTL); tjekker restaurantens agent_enabled-flag
- MCP: place_order — Indsætter atomisk ordre + varer, validerer produkter, snapshotter valuta, nedskriver lager, auto-86 ved nul;
- MCP: cancel_order — Annullerer atomisk med ejerskabs- + sessions-TTL-tjek, OCC race-beskyttelse og tilbageførsel af optjent loyalitet
- MCP: get_order_status — Poller status + ETA + varer; 30s-cache; scope orders:read
- MCP: request_bill — Indsætter en bill_request, udløser admin-push, kan forudfylde total til delt-regning-brugerflade
- MCP: waiter_call — Indsætter et waiter_call, udløser admin- + smartwatch-push med vibrationssprog; valgfri note
- MCP: get_restaurant_menu — Offentligt menuskema (ingen scope) returnerer kategorier + produkter + priser + allergener
- MCP: check_loyalty — Returnerer loyalitetssaldo + niveau + tærskel til næste niveau; scope loyalty:read
- MCP: apply_promo — Reserverer/indløser atomisk en kamparabat, tjekker max-uses + grænse pr. kunde; scope orders:write
Marketing & Loyalitet22
- E-mailkampagner — HTML-e-mailudsendelser til abonnentlister med statussporing (kladde/i kø/sender/sendt/mislykkedes) og levering
- E-mailskabeloner — Genanvendelige brandede HTML-skabeloner med brugerdefineret afsendernavn og svar-til
- E-mailabonnenter — Abonnentliste med status (tilmeldt/afmeldt/bounced/klaget), kildesporing og pr. abonnent
- E-mail drip-sekvenser — Trigger-baserede flertrins-livscyklus-e-mails (tilmelding/første_ordre/fødselsdag/reservation_fuldført, Dag-1/7/30
- E-mail nyhedsbrev-tilmelding + afmelding — E-mailopfangning ved kassen med admin-konfigureret liste og afmelding med ét klik
- Kampagnebanner-kampagner — Fremhævede menubannere med brugerdefinerede farver, badge-tekst, billeder, datovinduer og sorteringsrækkefølge
- Meddelelser (in-menu-bannere) — Fastgjorte in-menu-bannere ("Happy Hour 17-19") med brugerdefineret farve/ikon/tekst og planlagte datointervaller /
- Kampagnekoder — Admin-oprettede koder med procent-/fast rabat, minimumsordrebeløb, brugslofter, indløsning pr. kunde
- Kundeanvendelse af kampagnekode — Anvendelse ved kassen med serverside-validering, håndhævelse af brugsloft, tjek af forbrugsgulv og pr. IP
- Loyalitetsprogram (optjen + indløs) — Point pr. ordre med indløsning til rabatter/belønninger; atomiske saldotjek-beskyttelser, belønnings-lagerstyring
- Loyalitetstilmelding — Kundekonto-oprettelse via e-mail/telefon med niveaubaserede optjeningssatser og besøgshistorik
- Loyalitetsniveauer — Bronze/Sølv/Guld/Platin-klassifikation efter forbrugs-/besøgstærskler med niveauspecifikke optjeningssatser og indløsning
- Automatisering af loyalitetsniveauer — Daglig cron forfremmer automatisk niveauer ud fra kumulativt 90-dages forbrug; tildeler bonusboosts og loyalitetsrabatter
- Udløb af loyalitetspoint — 12-måneders udløb med daglig 11:00 UTC-oprydning, der skriver modposteringer, nedskriver saldo og notificerer
- Loyalitet admin-justering — Manuel point-delta (positiv/negativ) med valgfrie admin-noter til revisionssporet
- Loyalitetsmedlemsliste — Admin-visning af alle medlemmer: e-mail/telefon/navn, pointsaldo, livstidspoint/-forbrug, besøgsantal, sidste besøg
- Loyalitets-wallet-statistik — Kunde-wallet, der viser livstidspoint, saldo, niveau, optjent-denne-periode og indløselig belønningsbeholdning
- Marketing-AI (indhold + segmentering) — AI-generering af opslag på sociale medier, e-mailskabeloner og kampagnetekst plus kundesegmentering/kampagne
- Auto-spotlight — Mandags-cron forfremmer automatisk varer med lavt lager til fremhævet status for at reducere spild og rydde lager
- Dagens ret — AI-foreslåede eller manuelle tidsbegrænsede specialiteter med et "Dagens ret"-badge og auto-rotation
- Produkt fremhævet-flag — Manuelt flag til at fremhæve/promovere menupunkter, visuelt fremhævet på kundemenuen
- Produkt-likes / ønskeliste — Kunden bogmærker yndlingsretter via localStorage med opslag på tværs af restauranter via en e-mailprofil;
Reservationer / Venteliste10
- Reservationer + bookingkalender — Kundebooking af dato/tidsinterval med selskabsstørrelse, gæstenavn/-e-mail/-telefon og noter; admin dagsvis kalender
- Reservation admin-kø — Statusovergange (afventer → bekræftet → sat ved bord/ikke-mødt/fuldført) med sorterbare kommende/historik-visninger
- Reservationsannullering (kunde) — Annuller via bekræftelseskode-link med atomisk race-tjek (status='afventer')
- Reservationsbekræftelseskode — Unik kode pr. reservation til reference, statustjek og annullering
- Reservations-iCalendar-eksport — Kunde-.ics-eksport med reservationsdetaljer til kalenderimport
- Sporing af reservations-no-show — Admin markerer ikke-mødt til politikhåndhævelse
- Loft for reservations-selskabsstørrelse — Maksimal selskabsstørrelse pr. restaurant håndhævet ved booking (standard 50)
- Dedup-indeks for aktive tidsintervaller — Partielt UNIQUE-indeks håndhæver én afventende/bekræftet reservation pr. (restaurant, bord, tidsvindue)
- Bordsessioner (QR-tilslutning, 1-times TTL) — Flere kunder scanner samme bord-QR for at danne en session (session_token, join_code, host_device_id); vært
- Ventelistehåndtering — Selvbetjent kø-tilslutning (selskabsstørrelse, telefon, noter) med admin-statusovergange (venter → notificeret →
Analyse & BI11
- Analysedashboard — Realtids-KPI-kort (24t-omsætning, ordreantal, AOV, fuldførelsesrate), 30-dages omsætningstrend, time-heatmap
- Ordreanalyse — Ordrevolumen, omsætning, AOV, fordeling på betalingsmetoder, refusionssporing, kumulativ refusionsledger, annullering
- Menu ABC-analyse (Pareto) — Klassificerer produkter A (top ~80 % omsætning) / B / C ud fra 30-dages historik med kumulativ omsætningsandel, rang
- Menu-helbredsscore — Opsætningsvalidator: billede til stede, beskrivelsesfuldstændighed, allergendækning, priskonsistens, fremhævet
- Ordre-heatmap — Tid-på-dagen × ugedag ordrevolumen-visualisering til at identificere spidsbelastninger og stille perioder
- AI-kundeindsigter — Daglig narrativ (dag-til-dag/uge-til-uge metrikker, kunder i risiko, top-loyalitetsmedlem, 3 handlings-CTA'er) + ugentlig deep-dive
- Omsætningsmål / KPI-mål — Admin-fastsatte daglige/ugentlige/månedlige omsætnings-/ordre-/kundemål med fremdriftsvisualisering og afvigelsesanalyse
- Heatmap over populære tider (offentligt API) — Offentligt endpoint, der eksponerer restaurantens popularitet pr. time til kundens beslutningstagning
- Z-report (afstemning ved dagsafslutning) — Kontant- & kortbeløb ved vagtafslutning med afvigelsesdetektion, refusionsoversigt, ventende varer, drikkepengekolonne og
- Momsrapporteksport — Månedlig/kvartalsvis resultatopgørelse: omsætning, opkrævet moms, refusioner, skattepligtig nettoindkomst; downloadbar CSV til revisorer
- COGS-sporing — Vareforbrug på produktniveau med automatisk marginberegning og månedlig resultatrapportering; opskrifter linker
Personale & Drift14
- Personalehåndtering (roller + tilladelser) — Roller ejer/admin/leder/køkken/tjener/kasserer/KDS med granulære tilladelsesfiltre (view_orders
- Personale-PIN-autentificering — 4-6-cifret PIN-login til KDS-/gulvpersonale med PBKDF2 200k-iter hashing, 16-byte salt pr. legitimationsoplysning, atomisk D1
- Stempelur (stempl ind/ud) — PIN-baseret stempl-ind/-ud med vagtvarighed, pauser, lønomkostningsberegning, automatisk overtidsflag og KDS-token
- Vagtplanlægning — Tilbagevendende/engangs vagtkalender med personaletildeling, dato-interval-planlægning, tidszone pr. restaurant
- Vagtoverdragelser — Strukturerede vagt-til-vagt-noter (åbne ordrer, problemer, hændelser, lagernoter) med bekræftelse og
- Drikkepenge-puljer / servicegebyr — Daglig drikkepenge-aggregering med fordelingsregler pr. medarbejder, rolle-/vagtbaserede andele, manuel override
- Personale-revisionslogs — 24-måneders rullende opbevaring af personalehandlinger (logins, PIN-/adgangskodeændringer, tilladelsesændringer, refusioner
- Indbakke (samlet advarselsfeed) — 5-sekunders poll af tjenerkald, regningsanmodninger, lavt lager, anmeldelser, reservationer, allergenhændelser og vagt
- Tjenerkald (klokkesystem) — Kundens "Kald tjener"-knap opretter en waiter_calls-post og sender til personaleure + admin-web;
- Kvittering af tjenerkald — Personale ser/prioriterer/kvitterer kald fra dashboard eller smartwatch med sporing af svartid
- Regningsanmodning (adisyon) — Kundens "Få regning" opretter en bill_requests-post med en lukke-tilstandsmaskine; regningsfrysning blokerer nye
- Kvittering af regningsanmodning — Personale bekræfter modtagelse og fuldførelse fra dashboard eller smartwatch
- Aktivitetsfeed — Realtidsfeed over alle handlinger (ordre oprettet, refusion, personale-login, menuredigering), søgbar og filtrerbar
- Åbningstider + ferietilstand — Driftstimer pr. ugedag (med pauser), der deaktiverer bestilling uden for åbningstid, plus en ferietilstand-kontakt
Menu, Lager & Prissætning15
- Menueditor (produkter/kategorier/modifikatorer) — Komplet menu-CRUD: opret/rediger/slet varer, masse-genopfyldning via CSV, allergen-tagging, momssats-override, AI-ernæring
- Menukategorier (hierarkiske) — Produktgrupperinger (forretter/hovedretter/desserter/drikkevarer) med træk-omarrangering og valgfri forælder-indlejring
- Produkthåndtering (CRUD) — Komplet produktlivscyklus: navn, beskrivelse, pris, billede, tilgængelighed, tilberedningstid, allergener, ingredienser
- Produkt-opskriftseditor + COGS — Opskriftsingrediensliste med COGS pr. enhed og margin-%-beregning
- Produkt masse-import/-eksport
- Produkt masse-prisopdatering — Anvend procentvis op-/nedslag på flere produkter med forhåndsvisning før commit
- Produkt-genopfyldningssporing — Log manuelle genopfyldninger med antal og tidsstempel til lagerafstemning
- Produktgalleri (flere billeder) — Upload flere produktfotos (vinkler, ingredienser, tilberedningsbilleder) med en galleri-viewer; på-enheds
- Ernæringsinfo (AI + manuel) — Kalorier, makroer, allergener udfyldt af AI eller manuelt, med momssatser pr. vare
- Allergensporing + kundeadvarsler — EU-14-allergenliste på produkter; kundens allergiinput viser kurvadvarsler; hændelseslog
- Lagerstyring — Lagersporing pr. produkt med auto-86 ved ≤ 0, ejernotifikationer og tilgængelighedsstatus
- Lagerbevægelsesledger — Detaljeret log over alle lagerjusteringer (afstemning, opfyldelse, spild, fordærv, overførsler) med årsagskoder
- Prædiktiv lageranalyse & genbestilling — AI 14-dages udsolgt-prognose (forbrugsrate + tillid) varsler når dage-til-udsolgt < 3 med
- COGS natlig opdatering — 02:30 UTC genberegning af produkt-COGS ud fra opskrifter, opdager marginfald > 10 % og viser admin-advarsler
- Momsindstillinger & -satser — Flersats-momskonfiguration med overrides pr. produkt og restaurant-standard, momsinkluderet vs. tillagt-kontakt
Kundeoplevelse / PWA / i18n14
- PWA (installérbar, offline-first) — Installérbar kundemenu + admin-dashboard med Service Worker offline-understøttelse, network-first mutationer
- Baggrundssynk (offline-kø) — Ordrer/feedback sat i kø offline og afspillet af Service Worker ved genforbindelse, med en offline-indikator og
- Lokalisering (31 sprog + RTL) — TR/EN/DE/FR/ES/IT/PT/RU/AR/HE/FA/ZH/JA/KO/NL/PL/RO/EL og flere, med arabisk/hebraisk RTL-spejling
- Live valutaomregning — Live valutaskifter (EUR/USD/GBP/SAR/AED) — turister ser priser i deres egen valuta
- Mørk tilstand — System-tema-detektion + manuel kontakt gemt i localStorage
- Tilgængelighed (WCAG 2.1 AA) — Aria-labels, semantisk HTML, tastaturnavigation, focus-visible og 44×44 touch-mål
- Menutema-editor — Farvevælger, fontvalg, logo/forside og layoutkontakt (gitter vs. liste) anvendt på tværs af menuen og web
- Galleri / restaurantbilleder — Upload interiør-/retgalleri-fotos med billedtekster til menu-headeren og landingssiden
- Håndtering af sociale links — Konfigurerbare Instagram/TikTok/Facebook/LinkedIn-links i menu-footeren med safeHref-validering
- Visning af Wi-Fi-info — Gæste-Wi-Fi-SSID + adgangskode vist i menu-footeren
- Feedback / NPS (efter ordre) — 5★ + kategori + 280-tegns besked efter servering, med dedup én gang pr. ordre, entity-encoding og pr. IP
- Feedback admin-dashboard — Al feedback med sentiment-chips, dato-interval- og kildefiltrering og kritisk-advarsels-push
- Triagering af retforslag — Kundeindsendte retidéer sat i kø til admin-triagering med status og admin-noter
- Kunde Web Push-abonnementer — Notifikationer om ordre-klar/-annulleret med deep-link tilbage til ordredetaljen; abonnementspersistens med
Kunde-CRM4
- Kundeliste / CRM — Dashboard, der samler loyalitetsmedlemmer + reservationer + feedback til en søgbar kontaktliste med detaljer
- CRM-kontaktinfo (dedup) — Samlet e-mail-/telefon-kontaktlagring dedupliceret på tværs af ordrer, reservationer, loyalitet og feedback
- CRM win-back-kandidater — Flager kunder uden besøg i 60+ dage som churn-risiko til genengagement
- CRM-tagging — Vilkårlige tags (VIP/stamkunde/engangs) til segmentering
Automatisering5
- Daglig drifts-digest-e-mail — Tilvalgsbaseret daglig e-mail pr. restaurant-tidszone: omsætning, ordrer, drikkepenge, topprodukter, feedback-opsummering, nye
- Lavt-lager daglig digest-e-mail — Resend HTML-e-mail, der lister produkter med stock_qty ≤ tærskel; 09:00 UTC, idempotens-beskyttet
- Ingrediens-genbestillingsadvarsler — Daglig e-mail over produkter, der skal genbestilles, med mængder baseret på forbrugshastighed og leverandørlinks; 09:30 UTC
- Backup (ugentlig) + verifikation (daglig) — Søndag 02:00 UTC AES-256-GCM snapshot af alle D1-databaser til R2 (PII-tabeller springes over), med en daglig 05:00 UTC
- GDPR/KVKK sletningsbehandling — Daglig 14:00 UTC hard-delete af konti efter 30-dages frist-periode via en erase-tables-tilladelsesliste med
Affiliate-program30
- Affiliate-program (Fase 1-3) — Henvisningssystem: tilmelding, kommissionssporing, udbetalinger, 1099, anomalidetektion på tværs af web-affiliate +
- Affiliate-tilmelding (OTP + Turnstile) — E-mail/adgangskode-tilmelding med anti-bot Turnstile, 24t rate-grænse pr. IP (3/dag) via daglig-saltet hash, og
- OTP-autentificering — Worker-styret kortlivet OTP (5-min TTL, scope-bundet: payout_request/balance_check/kyc_approve) via cookie eller
- Affiliate-dashboard (KPI-kort) — Saldi for total optjent / afventende / tilgængelig / udbetalt, kommissionssats, niveau + henvisningskode (kopiér), aktiv
- Indtjeningshistorik & -opdeling — Månedligt indtjenings-søjlediagram, anonymiseret liste over henviste restauranter og indtjening filtreret efter status/datointerval
- Udbetalingsanmodnings-flow — OTP-beskyttet anmodning (min $50), der validerer 15-dages cooldown OG månedligt loft (standard 2/md) atomisk, opfanger en
- Wise-udbetalingsafregning — Super-admin-godkendelse opretter et Wise-tilbud/-modtager/-overførsel; webhooks sporer afventende →
- Pengebevægelsesjournal (revisionsledger) — Uforanderlig ledger over hver saldoændring (commission_released, payout_requested/settled, dormancy_forfeit
- Udbetalingsinfo-KYC (krypteret) — Land, US-person-flag, skatteformular, Wise-modtager-e-mail, juridisk adresse, modtagernavn krypteret i hvile
- KYC-dokumentupload — Upload af W-9/W-8BEN/skatte-cert/ID/IBAN-bevis (5MB, JPEG/PNG/HEIC/PDF), base64 + pgcrypto-krypteret; iOS/Android
- Udbetalingskanaler (Wise/SEPA/ACH/SWIFT) — Fire udbetalingskanaler med IBAN + SWIFT/BIC + ACH-routing + skatte-ID-opfangning
- 1099-NEC tærskeladvarsel (IRS $600) — Daglig 13:00 UTC scanning, der flager US-affiliates ≥ $600 år-til-dato til 1099-NEC-udstedelse, idempotent pr. (affiliate
- 1099-arkiverings-tilstandsmaskine — Sporer 1099-livscyklus (udstedt/arkiveret/sendt_til_irs) med super-admin-fuldførelse og revisionse-mailkopi
- Anomalidetektion (heuristisk scoring) — Scanner 6 signaltyper (kupon-uden-klik, dublet-IP-tilmelding, hurtig refusion, selvkøb, samme-IP peer-klynge
- Anomali auto-suspendering (kritisk) — Tilvalgsbaseret daglig auto-suspendering af affiliates med uløste kritiske anomalier (alvorlighed ≥ 80)
- Inaktivitetsappel — Suspenderet affiliate indgiver en appel; super-admin gennemgår; RPC nulstiller 12-måneders-uret ved godkendelse; 60-dages
- S2S-postback-webhook (HMAC) — Signeret POST til affiliatens URL ved kommission oprettet/refunderet/frigivet med X-thMenu-Signature, 5s
- Postback-secret-rotation (dual-sign) — 7-dages overlap-signering med både nuværende + forrige secrets (X-thMenu-Signature + -Previous), derefter cron sætter til NULL
- Postback-genforsøg + dead-letter-kø — Timebaseret genforsøg (5× eksp backoff) med uopnåelige endpoints flaget dead_letter til ops-inspektion
- Kupon dagligt antal (spam-filter) — Dagligt kupon-claim-loft pr. affiliate (standard 100/dag) via atomisk UPSERT…WHERE used<cap for at forhindre oversalg;
- Kupon-kliksporing — Registrerer delinger i affiliate_clicks (affiliate_id, coupon_code, timestamp, ip_hash), der fodrer konverteringen
- Kupon-statistik / -analyse — Klik vs. konverteringer pr. kupon (90-dages aktive kunder), klik-til-konverteringsrate, attribueret omsætning og
- Journaltidslinje (native + web) — Pagineret nyeste-først pengebevægelsesrækker med operations-bevidst tone og lokaliseret tekst
- Refusions-clawback (pro-rata) — Ved fakturarefusion clawbacker (refusion/oprindelig × kommission), annullerer fremtidige drip-skiver først; saldo
- Chargeback-clawback (tvist tabt) — Fuld clawback ved charge.dispute.closed outcome=lost (kun lukkede tvister), journalført separat fra refusioner
- Udbetalings-/clawback-tilbageførsel (Wise-refusion) — Ved Wise-overførselsrefusion/-chargeback/-annullering re-krediterer reverse_affiliate_payout RPC ledgeren
- Affiliate-marketingaktiver (R2-proxy) — Brandede bannere, e-mailskabeloner, QR-koder og en salgs-playbook + indvendingshåndteringsguide gemt i R2
- Marketing-playbook (onboarding-guide) — Fakta om programmet, den obligatoriske regel om oplysning af provision og en sektion i dashboardet til færdige materialer, efterhånden som de udgives
- Affiliate-udbetalingskalender (projektion) — Forudser forventet indtjening pr. måned ud fra drip-planen + afventende holds (statisk projektion)
- Affiliate-autentificering (mobil) — Magic-link-OTP + adgangskode-login med auto-udfyld, glemt-adgangskode-nulstilling og Turnstile-tilmelding
Integrationer / API9
- Offentlige API-nøgler & REST API — Operatørgenererede API-nøgler til tredjepartsintegrationer, rate-begrænset (60 req/min), med læse-/skrive-scopes
- Webhook-abonnementer & -dispatcher — Operatørdefinerede webhooks til kundehændelser (ordrer, feedback, anmeldelser) med HMAC-SHA256-signering
- OAuth-klient-autentificering (RFC 7009/6749) — OAuth-apps tilbagekalder deres egne tokens; client-credentials-validering (basic auth + body); refresh-token-rotation
- Brugerdefineret domæne + CNAME-verifikation (menuen kan endnu ikke vises fra det) — Tilføj et brugerdefineret domæne (menu.minrestaurant.dk), og verificer dets CNAME-post; menuen kan endnu ikke vises fra det
- QR-kodegenerering + PDF-eksport — Generér printbare menu-/bord-/værelses-QR-koder som individuelle eller batch-PDF'er med branding-overlay og SRI
- E-mailtjeneste (Resend) — Operatør- & kunde-transaktions-e-mails (digests, advarsler, udbetalingsstatus, adgangskodenulstilling, fakturering, OTP
- Google-anmeldelseslink og Maps-import — Restaurantens link til Google-anmeldelser til videresendelse af anmeldelser og import af et Google Maps-link, der udfylder virksomhedens navn og koordinater
- OpenAPI-specifikation — Auto-genereret, søgbart REST API-skema på /openapi.json
- llms.txt (AI-instruktionsfil) — Maskinlæsbar platformsoversigt (produkt, funktioner, prissætning, auth) til LLM-/AI-søgemaskiner
Sikkerhed & Compliance19
- E-mail/adgangskode + magic-link-auth — Ejer-login med e-mail/adgangskode eller adgangskodeløst magic link
- Supabase Auth — JWT-baseret auth for operatører, affiliates og super-admins med magic-link-gendannelse, adgangskodenulstilling og RLS
- JWT bearer-token-autentificering — HMAC-SHA256-signerede JWT'er til API-adgang og Cloudflare worker-middleware
- Supabase RLS (row-level security) — Operatører ser kun deres restauranter, affiliates kun deres kommissioner/udbetalinger, kunder kun deres egne
- TOTP 2FA (super-admin) — RFC 6238 authenticator-app 2FA påkrævet for super-admin-login
- CSRF double-submit-cookie-beskyttelse — Tilstandsændrende endpoints kræver en X-CSRF-Token-header verificeret mod en sikker cookie
- Content Security Policy (nonce + strict-dynamic) — script-src 'self' 'nonce-…' 'strict-dynamic' for at forhindre inline-script-injektion
- Rate-begrænsning (Next.js route handler) — Daglig-saltet SHA-256 IP-hash sliding windows pr. isolate på 14 menu-endpoints
- Shadowban-detektion — Opdager gentagne annulleringer og mistænkelige IP-mønstre, blokerer ordrer i stilhed uden en fejl
- Falsk-GPS-detektion — Flager umulige lokationsskift mellem ordretidsstempler
- URL-skema-validator (safeHref) — Whitelister http(s)/mailto/tel for at forhindre lagret XSS via social_links, logo_url, cover_url og anmeldelseslinks
- PIN-/adgangskode-hash-hærdning — PBKDF2 200k iterationer, 16-byte salt pr. legitimationsoplysning, transparent legacy-re-hash ved næste login
- PIN-lockout-tæller (D1-baseret) — Atomisk UPSERT i pin_failures med et 30-min roterende vindue
- GDPR Data Subject Rights (DSR) — 30-dages sletningsvindue fra anmodning, JSON-dataeksport og 90-dages ordre-anonymiserings-frist; persondata
- KVKK-compliance (Tyrkiet) — GDPR-ækvivalent 30-dages sletning, DSR og samtykkelogs med flerjurisdiktionel cron-logik
- Kontosletnings-workflow — Ejer-anmodet sletning med 30-dages frist-periode og kaskaderende PII-sletning via en tilladelsesliste
- Samtykkelog (cookie-banner) — Sporer tilvalg/fravalg for analyse/e-mail bevaret pr. session
- Allergen- & sikkerhedshændelsessporing — Personale logger rapporter om allergen-krydskontakt/-skade/-overtrædelse med fotos/tidsstempel/lokation; 12md PII NULL /
- Politikker (privatliv/vilkår/husregler) — Tilpasselig privatlivspolitik, vilkår og interne politikker vist i menu-footeren
Admin2
- Indstillinger / restaurantkonfiguration — Metadata, valuta, tidszone, drikkepengeindstillinger og driftsflag
- Admin-notifikationsindbakke — Centraliseret indbakke til ordrer, refusioner, personaleadvarsler og admin-beskeder med markér-læst-tilstand
GÆSTENS VEJ
Fra scanning til betaling — alt fra gæstens telefon
Ingen app at installere, intet udstyr at købe. Gæsten scanner koden, og disse seks trin virker af sig selv.
Gæstens sprog automatisk
Menuen åbner på gæstens telefonsprog — 31 sprog, uden at nogen skal vælge.
Gæstens lands valuta
Priser vises i gæstens valuta ved siden af den lokale — ingen lommeregner nødvendig.
Bestilling fra bordet
Gæsten lægger i kurven og sender ordren — den lander direkte på køkkenskærmen.
Tilkald tjener
Én knap ved bordet sender personalet en besked med bordnummeret — ingen håndsoprækning, ingen venten på øjenkontakt.
Bed om regningen
Gæsten beder om regningen fra sin telefon, og anmodningen når personalet med bord og aktuelt beløb.
Betaling ved bordet
Gæsten betaler med kort fra sin telefon i udbyderens sikre formular. Standard er “betal først”: ordren går ikke til køkkenet før betalingen.
Skal mine kunder downloade en app?
Nej. Kunder scanner blot QR-koden med deres telefonkamera. Menuen åbner øjeblikkeligt i browseren — ingen app-download, ingen konto, ingen registrering krævet.
Hvor mange sprog understøtter Thmenu?
Thmenu understøtter 31 sprog inklusive arabisk (RTL), japansk, kinesisk, koreansk og alle større europæiske sprog. Besøgendes enhedssprog registreres automatisk.
Er Thmenu virkelig gratis?
Ja. Der er ingen planer, intet abonnement og ingen funktion låst bag en opgradering. Thmenus eneste indtægt er et platformsgebyr på 1 % af de betalinger, gæster foretager til dig online via Thmenu; kontanter og din egen kortterminal koster ingenting.
Kan jeg bruge mit eget domæne?
Ikke endnu. I administrationspanelet kan du tilføje dit domæne og tjekke dets DNS, men menuen kan endnu ikke vises fra dit eget domæne. Din menu har sit eget link på menu.thmenu.com, og det er det, dine QR-koder åbner.
Hvordan fungerer realtidsbestilling?
Kunderne lægger varer i kurven og afgiver en bestilling fra bordet. Bestillingen vises med det samme i dit admin-dashboard, hvor du opdaterer statustrinene.
Er mine data sikre?
Thmenu er bygget på Cloudflares globale sikkerhedsinfrastruktur og krypterer data under overførsel (TLS) og ved lagring. Vores platform er designet til at opfylde kravene i GDPR, KVKK og CCPA/CPRA — se vores sider om overholdelse, privatliv og vilkår for den fulde redegørelse.
Kan jeg importere min eksisterende menu?
Ja. AI-menuimporten tager dit menukort på tre måder: indsæt teksten, fotografér det trykte kort eller upload et regneark. Den foreslår kategorier, varer og priser, og intet gemmes før du har gennemgået og godkendt forslaget.
Virker menuen uden internet?
Ja. Thmenu bruger Progressive Web App (PWA)-teknologi. Den cachelagrede menu på kundens enhed kan ses uden internetforbindelse. Bestilling kræver en forbindelse.
Skal jeg have en Stripe-konto?
Kun hvis du vil have, at gæster kan betale dig online via Thmenu. Du forbinder en Stripe-konto fra panelet, og udbetalinger går til din bank via Stripe. Menuen, bestilling og reservationer virker uden den.
Er Thmenu tilgængeligt uden for Tyrkiet?
Ja. Thmenu kører på Cloudflares globale netværk, så dit menukort leveres fra en node tæt på hver gæst. Vi understøtter 31 sprog, herunder arabisk, japansk, koreansk, kinesisk og alle større europæiske sprog.
Hvad hvis min restaurant allerede bruger Menulux eller Adisyo?
Thmenu kan køre ved siden af din eksisterende POS: POS'en håndterer betalinger, og Thmenu håndterer QR-menuen og gæstens bestillingsoplevelse. Thmenu forbinder sig ikke til POS'en — de to systemer kører side om side.
Har jeg brug for særligt hardware?
Nej. Thmenu kører i enhver browser — på telefoner, tablets eller bærbare computere. Til en køkkenskærm virker enhver tablet, du allerede har; vi sælger, anbefaler eller kræver ikke bestemt hardware. Udskrivning er valgfri og virker med ESC/POS-bonprintere tilsluttet via USB, seriel forbindelse eller Bluetooth fra Chrome eller Edge.
Klar til at komme i gang?
Digitaliser din menu i dag.
2-minutters opsætning, intet kreditkort krævet.