# Användarguide för maca Restu Pro

**Version:** 1.14.6

### Om maca Restu Pro

maca Restu Pro är ett WordPress-plugin för restauranger och caféer. Du kan visa menyn på två sätt:

1. **PDF/bildmenyer** – kategorier med uppladdade PDF- eller bildfiler, schemaläggning och QR-kod (samma kärnfunktioner som gratisversionen på WordPress.org)
2. **Onlinemeny (Pro)** – registrera enskilda rätter med kategorier, pris, bild och allergener; gästbetyg, bordsbeställning och mer (kräver aktiv prenumeration)

**Författare:** Maca Development (web@maca.se)  
**Webbplats:** [https://maca.se](https://maca.se)

### Installation

1. **Avaktivera och ta bort** den gratisversionen *maca Restu* om den är installerad (kör inte båda samtidigt)
2. Ladda upp mappen `maca-restu-pro` till `/wp-content/plugins/`
3. Aktivera **maca Restu Pro** under **Plugins**
4. Pluginet skapar automatiskt nödvändiga databastabeller
5. Godkänn **Villkor och integritet** under **maca Restu → Villkor och integritet**
6. Följ **Kom igång**-guiden (steg för steg — du kan pausa när som helst; fortsätt under **maca Restu → Kom igång**)

**Viktigt:**

- **WordPress-adress** och **Webbplatsadress** under **Inställningar → Allmänt** bör använda `https://` vid SSL
- **Tidszon** under **Inställningar → Allmänt** styr schemaläggning (veckodag och klockslag) i PDF/bild-läge

### Kom igång (guide)

Efter godkända villkor startar **Kom igång**-guiden automatiskt vid ny installation. Den hjälper dig att:

1. Välja **PDF/bild** eller **onlinemeny (Pro)**
2. Fylla i **restauranguppgifter** (namn, adress, telefon, e-post m.m.)
3. Ange **öppettider** per veckodag (valfritt)
4. Skapa **menykategori** (PDF/bild eller onlinemeny)
5. Lägg till **första rätten** (endast onlinemeny med aktiv Pro-licens)
6. Välja **valfria Pro-funktioner** (bordsbeställning, bokning) — kan hoppas över
7. Se hur du **publicerar** menyn (shortcode, QR)

**Pausa när som helst:** klicka **Spara och fortsätt senare**. Guiden finns kvar under **maca Restu → Kom igång** tills du avslutat eller stängt den. Övriga admin-sidor blockeras inte.

**Stäng av guiden:** klicka **Stäng guiden** i guiden, eller avmarkera **Visa kom igång-guiden** under **Inställningar → Restaurang**. Aktivera igen med samma kryssruta.

### Prenumeration (Pro)

Pro-funktioner (onlinemeny, gästbetyg, bordsbeställning m.m.) kräver aktiv licens:

1. Gå till **maca Restu → Prenumeration**
2. Prenumerera via Stripe på [maca.se/restu-pro/](https://maca.se/restu-pro/) eller klistra in en licensnyckel (`ML-PRO-…`)
3. Demo/utveckling: begär en **ML-COMP-…**-nyckel från maca.se och aktivera under **Prenumeration** (valideras mot licensservern)

**Pris (juni 2026):** endast **årslicens** — **499 kr/år** t.o.m. **31 augusti 2026**, därefter **799 kr/år** från **1 september 2026**. Livstidslicens säljs inte för tillfället.

Gratisfunktioner (PDF/bild, schema, QR, shortcode) fungerar **utan** licens. **Backup** ingår i Pro-pluginet och kräver **ingen** prenumeration.

### Pro-funktioner (prenumeration)

| Funktion | Beskrivning |
|----------|-------------|
| **Onlinemeny** | Kategorier, rätter, allergener, dra-och-släpp-sortering |
| **Kategorifilter** | Filterknappar på webb och QR (valfritt) |
| **Klickbara bilder** | Lightbox när gäst trycker på rättbild |
| **Gästbetyg** | 1–5 stjärnor per rätt |
| **Order** | Orderlista, servitör-/köks-sidor, PIN |
| **Bordsbokning** | Gästbokning, öppettider-block, e-postflöde, **Salongsöversikt** i admin |
| **Orderstatus** | Gäst ser framsteg; tilläggsbeställning under besöket |
| **Gästbetalning** | Stripe Checkout, dricks, e-postbekräftelse (valfritt), betala vid order eller efter måltid |
| **Kampanjmenyer** | Schemalagda kampanjmenyer med valda rätter och valfritt exklusivt kampanjläge |
| **QR per bord** | Bordsnummer i QR-länken (`?bord=`) |
| **Menyfooter** | Allergi, moms (momssatser, momsregistreringsnummer), kontakt (webb, QR, utskrift) |
| **Skriv ut meny** | Pappersvänlig meny från databasen (**Rätter → Skriv ut meny**) |
| **Standardallergener** | 10 EU-allergener förinstallerade (svenska + engelska i databasen) |

Se **maca Restu → Prenumeration** för full lista.

### Välj menyläge

Gå till **maca Restu → Inställningar** och välj under **Menytyp**:

| Läge | Beskrivning |
|------|-------------|
| **Ladda upp PDF/bildmenyer** | Standard – kategorier, menyfiler, schema |
| **Registrera rätter i pluginet (Pro)** | Rättkategorier, allergener och rätter |

Admin-menyn anpassas efter valt läge. Du kan byta läge när som helst; sparad data behålls.

---

## PDF- och bildmenyer

*Gäller när **Menytyp** = Ladda upp PDF/bildmenyer.*

### Skapa kategorier

1. Gå till **maca Restu → Kategorier**
2. Klicka **Lägg till ny kategori**
3. Fyll i:
   - **Kategorinamn** – t.ex. Lunch, Middag, Drycker
   - **Tumnagelsbild** – valfritt (ca 100×50 px)
   - **Beskrivning** – valfritt
   - **Sorteringsordning** – lägre nummer visas först
4. Spara

### Lägg till menyfiler

1. Gå till **maca Restu → Menyer**
2. Klicka **Lägg till ny meny**
3. Fyll i:
   - **Kategori**, **Menytitel**, **Filtyp** (Bild/PDF)
   - **Ladda upp fil** eller **Fil-URL** från mediabiblioteket
   - **Startdatum / Slutdatum** (valfritt)
   - **Veckodagar** (tomt = alla dagar)
   - **Daglig starttid / sluttid** (tomt = hela dagen)
   - **Aktiv**
4. Spara

### Schemaläggning

Varje kategori kan ha **flera menyer**. Pluginet väljer **en** meny som gäller **just nu**:

1. Menyn är **aktiv**
2. Inom **start-/slutdatum** (om angivna)
3. Rätt **veckodag** (om valda)
4. Inom **klockslag** (om angivna)

Vid flera matchande menyer vinner den **senast skapade**.

#### Exempel: lunch och middag

- **Lunch vardagar:** Mån–fre, 11:00–14:00  
- **Middag:** Alla dagar, 17:00–22:00  

#### Nattmeny över midnatt

T.ex. **22:00–02:00** – gäller kvällen och tidiga morgonen.

#### Tomma fält

| Fält | Tomt betyder |
|------|----------------|
| Start-/slutdatum | Ingen datumsbegränsning |
| Veckodagar | Alla dagar |
| Start-/sluttid | Hela dagen |

### Menystatus i admin

- **Aktiv nu** – visas för gäster just nu  
- **Utanför tider** – aktiv men utanför schema  
- **Schemalagd** – startdatum i framtiden  
- **Utgången** – passerat slutdatum  
- **Inaktiv** – avstängd  

---

## Onlinemeny (Pro)

*Gäller när **Menytyp** = Registrera rätter i pluginet (Pro) och licens är aktiv.*

### Demoanvändare (valfritt)

För utbildning eller demo kan du skapa en användare med rollen **maca Restu demo** under **Användare → Lägg till**. Den användaren:

- ser bara **maca Restu** i wp-admin (inte Inlägg, Tillägg, Inställningar m.m.)
- kan redigera rätter, kategorier, kampanjer och övriga menyinställningar
- kan **inte** ändra secrets (betalningsnycklar, personal-PIN, Meta-appsecret, captcha-secret m.m.)
- kan **se** betalningar och import/export men **inte** spara, importera eller exportera
- har **inte** åtkomst till backup, licens/prenumeration eller juridiska accept-sidor

Vanliga **Administratörer** behåller full åtkomst.

### Kom igång – rekommenderad ordning

1. **Inställningar** – välj onlinemeny och ange **Prisvaluta** (t.ex. `kr`)
2. **Rättkategorier** – skapa t.ex. Förrätt, Middag, Dessert, Dryck (en meny – mat och dryck som kategorier)
3. **Allergener** – standardlistan finns redan; lägg till egna vid behov
4. **Rätter** – lägg till rätter, kryssa i allergener och välj **Momskod** (mat/alkohol)
5. **Inställningar → Restaurang** – restaurangnamn, kontakt, **serveringssätt** (äta på plats eller hämtmat), **momssatser** (aktuell + kommande med eget datum per kategori) och momsregistreringsnummer
6. **Inställningar → Onlinemeny & footer** – menyfooter och pris/moms-text (valfritt)

### Rättkategorier

1. **maca Restu → Rättkategorier**
2. **Lägg till ny rättkategori**
3. Fält:
   - **Namn** och **Sorteringsordning** (lägre = visas först på menyn)
   - **Aktiv** – visa/dölj hela kategorin
   - **Schema** – valfritt start/slutdatum, veckodagar och daglig tid:
     - **QR-meny** (`/qrmeny/`) följer **hela** schemat (datum, veckodag, tid)
     - **Webbmeny** och shortcode följer bara **start- och slutdatum** (veckodag och tid ignoreras)

Tips: skapa t.ex. separata kategorier för **Lunch** (mån–fre 11:00–14:00) och **Middag** (alla dagar 17:00–22:00) i stället för att schemalägga varje rätt.

### Allergener

Vid **första installation** skapas automatiskt **10 standardallergener** med svenska och engelska namn i databasen:

| Svenska | English |
|---------|---------|
| Gluten | Gluten |
| Mjölk | Milk |
| Ägg | Egg |
| Fisk | Fish |
| Skaldjur | Shellfish |
| Jordnötter | Peanuts |
| Nötter | Nuts |
| Soja | Soy |
| Selleri | Celery |
| Senap | Mustard |

Allergennamn på **gästmenyn** följer gästens valda språk (lokalt eller engelska). Se avsnittet **Språk på menyn** längre ner.

1. **maca Restu → Allergener**
2. Redigera befintliga eller **Lägg till nytt allergen**
3. Fält: **Namn (svenska)**, **Namn (engelska)** och **Sorteringsordning**
4. Kryssa i allergener per rätt under **Rätter**

Du kan när som helst lägga till egna allergener eller ändra standardtexter.

### Rätter

1. **maca Restu → Rätter → Lägg till ny rätt**
2. Fält:
   - **Kategori** – obligatorisk rättkategori
   - **Rubrik** – rättens namn
   - **Beskrivning** – förklarande text
   - **Allergener** – kryssa i alla som gäller (valfritt, flera val möjliga)
   - **Pris** – valfritt; valuta från inställningar (priser **inkl. moms**)
   - **Momskod** – *Mat / alkoholfritt* (följer serveringssättets momssats) eller *Alkohol* (alkoholmoms)
   - **Bild** – valfritt (mediabibliotek)
   - **Aktiv** – visa/dölj på menyn

### Sök i rättlistan

1. **maca Restu → Rätter**
2. Använd sökfältet **Sök rätter** ovanför tabellen
3. Filtrerar medan du skriver på titel, kategori, beskrivning, pris och rätt-ID

### Menyförhandsgranskning

1. **maca Restu → Menyförhandsgranskning** (under **Menyer** i PDF/bild-läge, under **Rätter** i onlinemeny-läge)
2. Välj datum och tid (eller **Använd aktuell tid**)
3. Jämför **QR-meny** (vänster) och **Webbmeny** (höger) sida vid sida
4. Tabellen **Kategorisynlighet vid denna tidpunkt** visar varför varje kategori syns eller döljs

**PDF/bild-menyer:** listor med kategorier och menytitel; QR använder fullt schema, webben visar kategorier inom datumintervall. I listan **Menyer** kan du **Duplicera** en meny (fil + schema) och öppna **Förhandsgranska** för schematest.

**Onlinemeny:** förhandsvisning av rätter och kampanjer; kampanjläge kan dölja vanliga kategorier.

### Sortera rätter

1. **maca Restu → Rätter → Sortera rätter**
2. Dra rätter upp eller ner **inom varje kategori** (≡-handtaget)
3. Ordningen sparas automatiskt – ingen manuell sorterings siffra behövs
4. Nya rätter hamnar sist i sin kategori

### Importera från PDF

*Kräver Pro-prenumeration och rättläge.*

1. **maca Restu → Importera från PDF** (eller **Rätter → Importera från PDF**)
2. Välj en befintlig meny-PDF eller ladda upp en ny fil
3. Klicka **Analysera PDF** – pluginet försöker läsa titel, beskrivning och pris
4. Granska och redigera raderna, avmarkera det du inte vill ha med
5. Kryssa i **Skapa rättkategorier som saknas** om PDF:en har nya kategorinamn
6. Klicka **Importera valda rätter**

Fungerar bäst med PDF:er som har markerbar text (exporterade från InDesign, Canva m.m.). Skannade bildmenyer stöds inte.

### Importera och exportera CSV

*Kräver Pro-prenumeration och rättläge.*

**Exportera**

1. **maca Restu → Import/export CSV** (eller **Rätter → Import/export CSV**)
2. Klicka **Ladda ner CSV** – alla rätter sparas i `maca-dishes-ÅÅÅÅ-MM-DD.csv` (UTF-8, kolumner avgränsas med **semikolon** så komma i texter fungerar i Excel)

**Importera**

1. Samma sida → ladda upp CSV med rubrikrad (semikolon som kolumnavgränsare)
2. Förhandsgranska, redigera vid behov, välj rader
3. Välj **Skapa rättkategorier som saknas** och/eller **Uppdatera befintliga rätter när id finns**
4. Klicka **Importera valda rader**

**Kolumner (engelska rubriker):** `id`, `category`, `title`, `title_en`, `description`, `description_en`, `price`, `price_takeaway`, `takeaway_active`, `vat_code`, `image_url`, `is_active`, `allergens` (semikolonseparerade namn, t.ex. `Gluten; Mjölk`), `sort_order`.

**Momskod (`vat_code`):** `food` eller `alcohol`, eller svenska etiketter *Mat / alkoholfritt* / *Alkohol*. Momskod visas i förhandsgranskningen innan import.

**Schema** (veckodag, tid) sätts på **rättkategorier** i admin — inte via CSV per rätt.

Svenska kolumnnamn fungerar också (`kategori`, `titel`, `pris`, `moms_kod`, `allergener` m.m.). Tom `id` = ny rätt; befintligt `id` uppdaterar rätten vid återimport om **Uppdatera befintliga rätter när id finns** är ikryssad. **Ladda upp en annan fil** rensar förhandsgranskningen.

### Skriv ut meny (papper)

1. **maca Restu → Rätter → Skriv ut meny**
2. En utskriftsvänlig sida öppnas med alla **aktiva** rätter grupperade per kategori (titlar, beskrivningar, priser, allergener)
3. Klicka **Skriv ut / Spara som PDF** i webbläsaren
4. **Menyfootern** (allergi, moms, kontakt m.m.) ingår längst ner om den är aktiverad under Inställningar

Uppdatera rätter i databasen – skriv ut på nytt när menyn ändrats.

### Restaurang, moms och serveringssätt

Under **Inställningar → Restaurang**:

| Fält | Beskrivning |
|------|-------------|
| **Restaurangnamn, adress, telefon, e-post, webbplats** | Kontaktuppgifter i menyfooter, utskrift och bokningsmail |
| **Momsregistreringsnummer** | t.ex. `SE123456789001` — visas i menyfooter och utskriftsmeny |
| **Serveringssätt** | *Äta på plats* eller *Hämtmat* — styr vilken **mat-moms** som gäller rätter med momskod *Mat / alkoholfritt* |
| **Momssatser** | Procent för äta på plats, hämtmat och alkohol (Sverige 2026: ofta 12 % / 6 % / 25 %) |

Momssatserna används i standardtexten för **Prisinformation** i menyfootern (om egen text inte anges) och i **beställningsbekräftelse via e-post** efter onlinebetalning.

### Menyfooter (rekommenderas)

Längst ner på onlinemenyn (webb, QR och utskrift) kan en **menyfooter** visas med juridisk och kontaktinformation.

Under **maca Restu → Inställningar** (onlinemeny-läge):

| Fält | Beskrivning |
|------|-------------|
| **Menyfooter** | Slå på/av (på som standard) |
| **Restaurangnamn** | Visas i kontaktblocket |
| **Adress** | Flera rader möjligt |
| **Telefon** | Klickbar `tel:`-länk på skärm, med telefonikon |
| **E-post** | Klickbar `mailto:`-länk på skärm, med e-postikon |
| **Webbplats** | Klickbar länk med jordglob-ikon; tom = WordPress webbadress |
| **Allergiinformation** | Standardtext eller egen |
| **Prisinformation** | t.ex. *Samtliga priser anges inklusive moms.* |
| **Alkoholservering** | Visar åldersgränsmeddelande |
| **Rubrik för utskriftsmeny** | Titel på pappersmenyn (standard: restaurangnamn eller *Vår meny*) |

**Standardtexter (svenska vid `sv_SE`):**

- *Har du allergier eller särskilda kostönskemål? Fråga gärna vår personal så hjälper vi dig.*
- *Samtliga priser anges inklusive moms.*
- *Legitimation kan komma att begäras vid köp av alkohol.* (om alkoholservering är aktiverad)

### Pro-inställningar (onlinemeny)

Under **maca Restu → Inställningar** (när onlinemeny är aktiv):

| Inställning | Beskrivning |
|-------------|-------------|
| **Prisvaluta** | t.ex. `kr`, `SEK` |
| **Kategorifilter** | Kompakta filterknappar på menyn och QR-sidan |
| **Onlinemeny-tema** | Ljust, mörkt, klassiskt, modernt, minimalistiskt eller premium (webb + QR) |
| **Språkväxlare** | Flaggor (lokalt / engelska) på menyn och QR – döljs om webbplatsen är engelskspråkig |
| **Tvåspråkiga menyer** | Visa båda språken samtidigt (t.ex. `Beef / Biff`) utan växlare |
| **Klickbara rättbilder** | Större bild vid tryck |
| **Gästbetyg** | 1–5 stjärnor per rätt |
| **Gästorderlista** | Låt gäster markera rätter med antal |
| **Leveransläge** | Endast gästskärm, servitörssida, kökssida eller båda |
| **Personal-PIN** | Krävs för servitör-/köks-sidor |
| **Orderstatus för gäst** | Visa framsteg efter inskickad order |
| **Exklusivt kampanjläge** | Om en aktiv kampanj finns visas endast kampanjrätter |

### Kampanjmenyer (Pro)

Använd **maca Restu → Kampanjmenyer** för perioder som t.ex. *Sommarmeny* eller *Quizkväll*.

1. Ange kampanjnamn (lokalt + engelska), aktiv/inaktiv och valfritt schema (start/slutdatum, veckodagar, start/sluttid).
2. Välj vilka rätter som ska ingå i kampanjen (du kan även koppla kampanj på respektive rätts redigeringssida).
3. Valfritt: aktivera **Exklusivt kampanjläge** i Inställningar för att visa endast aktiva kampanjrätter på webb och QR.

När exklusivt läge är aktivt visas rätterna fortfarande i sina vanliga rättkategorier och filterknapparna begränsas automatiskt till kategorier som finns i aktiva kampanjrätter.

Servitörssida och kökssida har egna URL:er (slug kan ändras i inställningarna).

**Kökssidan (KDS):** Mörk **Kanban-vy** för **laptop och iPad** med tre kolumner:

| Kolumn | Orderstatus | Åtgärder |
|--------|-------------|----------|
| **Nya order** | `new` | Acceptera |
| **Pågår** | `accepted`, `preparing` | Börja tillaga |
| **Klar** | `ready` | Klar om X min (ETA) |

Varje kort visar bord, rader, radnoteringar, ordernot, **tid sedan ordern kom** och ev. **Betald** om gästen betalat online. Sidopanel: klocka, snittid, antal order idag. Samma personal-PIN som tidigare.

**Servitörssidan:** Varje orderrad visar **à-pris** och **radsumma** (t.ex. 2×50 kr → 50 kr + 100 kr) när priser är aktiverade. Vid onlinebetalning visas **inte** *Markera betald* — använd **Gästen lämnat** när ordern är serverad och betald.

### Så visas rätterna för gäster

- Rättkategorier i sorteringsordning
- Varje rätt: **bild till vänster** (om angiven), **rubrik och beskrivning**, **pris med valuta till höger**
- **Allergener i kursiv stil** under beskrivningen, kommaseparerade (t.ex. *Gluten, Laktos*)
- Endast **aktiva** rätter i **aktiva** kategorier visas
- På **webbplatsen** och i shortcode följer kategorier **start- och slutdatum** (veckodag och daglig tid ignoreras)
- På **QR-menyn** gäller **fullt kategorischema** (datum, veckodag och tid); enskilda rätter kan fortfarande döljas med **Aktiv**

### Order (Pro)

1. Aktivera **Gästorderlista** under **Inställningar**
2. Gäster trycker **Lägg till** på rätter → **Visa order** → skicka
3. Välj **Leveransläge:**
   - **Endast gästskärm** – visa ordern för personalen på enheten
   - **Servitör / Kök / Båda** – order skickas till PIN-skyddade sidor för personal
4. Valfritt: **Orderstatus för gäst** – gästen ser när maten tas emot, tillagas, är klar och serverad
5. Gästen kan **beställa mer** under besöket (tillägg till pågående order om den inte börjat tillagas)

**Gästsession (localStorage):** Efter skickad order sparas en **gästtoken** i webbläsarens localStorage så gästen kan följa orderstatus på samma enhet. Token finns kvar tills ordern stängs eller raderas — det är **inte** en tidsbegränsad cookie. I **privat fönster** försvinner sessionen när fliken stängs.

**Guest QR (personal):** På **servitörssidan** och **köksvyn** (när orderstatus för gäster är på och ordern inte är stängd) finns knappen **Guest QR**. Personal visar QR-koden för gästen, som skannar den med mobilen. Länken öppnar QR-menyn med `?maca_order=` och **återställer orderstatus** på gästens enhet — användbart om localStorage rensats, webbläsaren bytts eller gästen öppnat menyn i privat läge. Visa QR-koden endast för gästen vid rätt bord.

**Byt bordsnummer (personal):** Om gästen beställt från fel bord (t.ex. Bord 4 men sitter vid Bord 3) kan personal ändra bordsnummer på orderkortet på servitörssidan och i köksvyn — välj nytt bord i listan (PIN krävs). Gäller öppna bordsbeställningar, inte takeaway, och blockeras efter full betalning. Gästens orderstatus uppdateras vid nästa poll; gästen kan fortfarande inte själv byta bord efter inskickad order.

**QR med bord:** Ange bordsnummer under **QR Codes** innan utskrift – gästen slipper skriva bordsnummer manuellt.

### Gästbetalning (Stripe & betala vid bordet)

Efter skickad order (eller när maten är serverad — enligt inställning) kan gäster betala:

| Alternativ | Beskrivning |
|------------|-------------|
| **Betala online** | Stripe Checkout (kort, Apple/Google Pay; ofta Swish via Stripe) |
| **Betala med servitör** | Gästen väljer detta; personal markerar **Betald** på servitörssidan |
| **E-postbekräftelse** | Valfritt: gästen kryssar i *Önskas beställningsbekräftelse på mejl* före onlinebetalning — spec och momsuppdelning skickas efter betalning (**lagras inte** i pluginets databas) |
| **Dela notan** | Valfritt: gästen delar totalsumman på flera personer och betalar sin andel online (Stripe). Formuläret behåller antal andelar och e-post medan orderstatus uppdateras |

**Kvitton:** E-postbekräftelsen är **inte** ett officiellt skattekvitto. Stripe tar betalningen; ert **kassasystem** utfärdar lagligt kvitto vid behov. Se [PAYMENTS-GUIDE-sv.md](PAYMENTS-GUIDE-sv.md).

**maca Restu → Betalningar** har huvudflikar:

| Flik | Innehåll |
|------|----------|
| **Betalningsflöde** | Betala vid bordet, när gästen kan betala, onlinebetalning, primär leverantör |
| **Dricks** | Aktivering, procent/fast belopp, förval |
| **Personalskärmar** | Var betalningsinfo visas (servitör, kök, båda) |
| **Stripe & Swish** | API-nycklar och webhook-URL:er |
| **Installationsguide** | Steg-för-steg i Stripe/Swish |

**Betalningshistorik** (egen undermeny): filter, sammanfattning, **Exportera CSV** (avstämning mot Stripe).

**Krav:** bordsbeställning med **priser** på rätter och gärna **orderstatus för gäst**.

> **Obs:** Pro-licensen till maca.se (Prenumeration) är **inte** samma som gästbetalning. Använd separata Stripe-nycklar under **Betalningar**.

**Utländska gäster:** Med **Stripe** kan turister ofta betala med **utländska betalkort**. **Swish** gäller i praktiken svenska Swish-användare.

Se **maca Restu → Villkor och integritet** samt [PAYMENTS-GUIDE-sv.md](PAYMENTS-GUIDE-sv.md).

---

## Bordsbokning (Pro)

*Bordsbokning (boka bord i förväg) skiljer sig från **bordsbeställning** (beställ mat vid bordet).*

1. Aktivera **Bordsbokning** under **Inställningar** (kräver Pro-prenumeration)
2. Ange **Bokningsknapp** och **Rubrik bokningsformulär** (lokal + engelska) under **Inställningar → Bordsbokning** – tom = standard (t.ex. *Boka bord* / *Book a table*)
3. Välj **Bordstilldelning**: **Standard** (gästen väljer bord) eller **Best-fit** (automatisk tilldelning)
4. Konfigurera under **maca Restu → Bordsbokningar**:
   - **Bokningar** – väntande förfrågningar, **väntlista**, bekräftade per datum, granska/avboka; **Redigera bokning** på detaljsidan (namn, telefon, e-post, datum, tid, antal gäster, anteckning)
   - **Salongsöversikt** – visuell översikt: alla bord vid vald tid (grönt = ledigt, rött = upptaget), tidslinje, dra bokning till ledigt bord
   - **Platsrutnät** – alla bokningsbara platser per tid (kolumner per bord/del)
   - **Lediga platser** – kapacitet och max lediga platser per dag
   - **Bord** – nummer, platser, delningsbara bord
   - **Händelselogg** – spårbarhet vid tvist med gäst: vem ändrade vad och när; filtrera på boknings-ID; bläddra äldre sidor (50–500 per sida)
   - **Inställningar bord** – bokningslängd, e-post för bordsbokning, **väntlista** (på/av), CAPTCHA, bordstilldelning, **personalåtkomst** (rollen *Hovmästare (bokning)*)
   - **Öppettider** och **undantag** – veckoschema och stängda/avvikande dagar (under flikar här, eller egen menypost för hovmästare)
5. Lägg på sidan:
   - `[maca_table_booking]` eller blocket **maca Bordsbokning**
   - `[maca_opening_hours]` eller blocket **maca Öppettider** (visar veckans öppettider)
6. Gästen fyller i formulär (namn, e-post, telefon, datum, tid, antal gäster) och skickar **förfrågan**
7. I **best-fit**-läge reserveras minsta lediga bord automatiskt; i **standard**-läget väljer gästen bord
8. Du bekräftar eller avbokar under **Bordsbokningar → Bokningar** – gästen får e-post vid mottagande, bekräftelse och avbokning
9. Gästen kan avboka via länk i bekräftelsemejlet (gäller även väntlista)

**Väntlista (gäst):** Om det inte finns ledigt bord vid vald tid — eller hela dagen är *fullbokad* men restaurangen har öppet — visas knappen **Gå med i väntlista**. Gästen anger datum, tid, namn, **e-post** och telefon (inget bord). Gäst och restaurang får e-post; det är **inte** en bekräftad bokning förrän personal bekräftar med bord.

**Admin – Bokningar:** Väntande förfrågningar visas överst. **Väntlista** har egen sektion. Bekräftade bokningar filtreras per datum. Knappen **Salongsöversikt** öppnar samma dag i salongsöversikten. På bokningsdetalj: formuläret **Redigera bokning** och länk **Visa händelselogg** för just den bokningen.

**Admin – Salongsöversikt:** Välj datum och tid (slider). Varje bord visas som kort med stolar i grönt (ledigt) eller rött (upptaget enligt bokningsslot-längden i inställningar). Dra bokningsrutan (gästnamn) till ett grönt bord för att flytta bokningen. **Visa bokningar för dagen** och **Visa bokning** på kortet länkar till listan respektive detalj. **Byt bord** finns också på bokningsdetaljen. Under **Lägg till bokning**: kryss **Spara som väntlista** för telefon/walk-in utan bord; valfritt **Skicka väntlista via e-post**.

**Admin – Väntlista:** Öppna en post → välj bord → **Bekräfta bokning** → status blir bekräftad och gästen får bekräftelsemail.

**Admin – Händelselogg:** Lista över alla loggade händelser. Ange **boknings-ID** för att bara se en bokning. Välj **per sida** och använd **Äldre** / **Sista** för att gå längre tillbaka i tiden.

**Personalåtkomst (hovmästare):** Skapa användare under **Användare → Lägg till** och tilldela rollen **Hovmästare (bokning)** (beskrivs under **Inställningar bord**). De loggar in i wp-admin och ser menyn **Bordsbokningar** med flikarna ovan utom **Inställningar bord**, samt **Öppettider och undantag** som egen undermeny.

**Admin – Övrigt:** Fliken **Lediga platser** laddas vid behov (AJAX) och visar kapacitet per dag. Genväg **Salongsöversikt** finns under **Översikt** (dashboard) och i snabbåtgärder.

**CAPTCHA:** Valfritt under **Inställningar** (reCAPTCHA eller Cloudflare Turnstile).

**Gutenberg:** Alla maca-block ligger under kategorin **maca Restu**: **maca Menylista**, **maca Bordsbokning**, **maca Öppettider**.

---

## QR-kod (gästmeny)

1. **maca Restu → QR Codes**
2. Konfigurera slug (standard `qrmeny`), titel, undertitel, logotyp, utskriftsformat
3. **Bordsnummer** (valfritt, onlinemeny + bordsbeställning) – t.ex. `4` för bord 4
4. Generera och skriv ut QR-koden (en QR per bord om du använder bordsnummer)

URL: `https://din-site.se/qrmeny/`

### PDF/bild-läge

- Gäster ser **kategoriknappar** för kategorier med aktiv meny **just nu** (enligt schema)
- Klick → PDF eller bild visas
- Stäng-knapp tillbaka till kategorival
- Ingen aktiv meny → *"Ingen meny tillgänglig just nu"*
- En kategori: `https://din-site.se/qrmeny/3/` (kategori-ID)

### Onlinemeny-läge (Pro)

- Gäster ser **hela rättlistan** direkt (grupperad per rättkategori)
- Samma layout som på webbplatsen (bild, rubrik, beskrivning, pris, allergener kursivt)
- **Menyfooter** längst ner (allergi, moms, kontakt med ikoner för telefon, e-post och webb m.m.)
- Kategori-val och schema används inte

---

## Informationsdisk (Pro)

*Kräver aktiv prenumeration.*

Informationsdisken samlar **nyheter** och **evenemang** på webbplatsen — på svenska och engelska.

1. **maca Restu → Informationsdisk** (menyposten ligger direkt efter **QR-koder**)
2. Aktivera modulen under fliken **Inställningar**
3. Skapa inlägg under **Nyheter** och **Evenemang**
4. Lägg ut på valfri sida med block eller shortcode:
   - `[maca_info_news]` — nyhetslista eller banner
   - `[maca_info_events]` — evenemang (list- eller månadsvy)
   - `[maca_info_calendar_subscribe]` — knappar för iCal-prenumeration
5. Publik kalenderfeed (endast evenemang): `https://din-site.se/maca-events.ics` — fungerar med Apple Calendar och andra appar (prenumerera via blocket eller `webcal://`-länk)
6. Valfritt — **Facebook & Instagram:**
   - Fliken **Inställningar** → **Setup guide: Facebook & Instagram** (steg-för-steg för Meta-app)
   - Fliken **Sociala medier** — App ID/Secret, OAuth, testinlägg och publiceringslogg
   - Kryssa i Facebook/Instagram under **Publicering** när du sparar nyhet/händelse (Instagram kräver bild)
   - Titel och **innehåll** skickas som caption; fyll i **Utdrag** om du vill ha kortare text på sociala medier
   - Redan publicerat? Kryssa i **Publicera igen till Facebook/Instagram** vid redigering

**Evenemang:** stöd för enstaka datum, daglig/veckovis/månatlig återkomst, serie-slutdatum, samt undantag per tillfälle (inställt datum/tid, avbokat). Social post skickas bara vid **första tillfället** i en återkommande serie.

**Backup:** nyheter, evenemang och social logg ingår i ZIP-export. Meta-tokens följer med vid restore på samma domän; vid flytt kan OAuth behöva köras om.

Du kan också aktivera modulen i guiden **Kom igång → Valfria Pro-funktioner**.

---

## Chatt (Pro)

*Kräver aktiv prenumeration.*

Chattboten svarar gäster utifrån **indexerat restauranginnehåll** på er webbplats — med **egen OpenAI API-nyckel** (BYOK). Den ersätter inte personal, live-bokningar eller allergikontroll.

1. **maca Restu → Chatt** (menyposten ligger direkt efter **Informationsdisk**)
2. Aktivera modulen och ange **OpenAI API-nyckel**
3. Bygg eller uppdatera **index** (meny/rätter, öppettider, kampanjer, nyheter/evenemang, bokningsregler, menyfooter, valfria WordPress-sidor)
4. Valfritt: anpassat **namn** och **avatar** för chatten
5. Publicering:
   - **Flytande widget** på alla sidor (standard), eller
   - Shortcode `[maca_site_chat]` eller Gutenberg-block **maca Chatt** på vald sida

**Svar:** chatten hämtar relevanta textbitar från indexet och skickar frågan till OpenAI (ert konto). Kostnad debiteras på ert OpenAI-konto.

**Bokningsknapp:** om gästen frågar om bord/bokning kan chatten visa en knapp som öppnar bokningsformuläret eller länkar till bokningssidan.

**Källlänkar:** under svaret kan upp till tre klickbara länkar visas (t.ex. menysida, evenemang/nyheter med ankare, valda WordPress-sidor).

**Test:** använd testchatten i admin innan du aktiverar för gäster.

**Integritet:** informera gäster om att frågor kan behandlas av OpenAI under ert konto — se integritetspolicyn.

Du kan också aktivera modulen i guiden **Kom igång → Valfria Pro-funktioner**.

---

## Säkerhetskopiering (Pro-plugin)

*Kräver **ingen** prenumeration – ingår i maca Restu Pro.*

1. **maca Restu → Säkerhetskopiering**
2. **Skapa och ladda ner backup** – ZIP med all plugin-data och uppladdade bilder
3. Valfritt: **Daglig automatisk backup**, klockslag och **antal dagar att behålla**
4. **Importera** – ladda upp en backup-ZIP för att återställa (ersätter befintlig plugin-data)

Användbart vid flytt mellan servrar eller som säkerhetskopia innan större ändringar.

---

## Språk på menyn

Webbplatsens språk sätts under **WordPress → Inställningar → Allmänt → Webbplatsens språk**. maca Restu använder det som **lokalt språk** på menyn.

### Språkväxlare (flaggor)

När webbplatsens språk **inte** är engelska kan gäster växla mellan lokalt språk och engelska via små flaggknappar på **webbmenyn** och **QR-sidan**.

- Aktiveras under **Inställningar → Meny & innehåll → Språkväxlare** (på som standard)
- Valet sparas i webbläsaren (cookie)

Språkväxlaren **visas inte** om webbplatsens språk är engelska, **Tvåspråkiga menyer** är aktiverat, eller växlaren är avstängd.

### Tvåspråkiga menyer

Under **Inställningar → Meny & innehåll** kan du aktivera **Tvåspråkiga menyer** – då visas både lokal och engelsk text samtidigt (t.ex. `Beef / Biff`) utan flaggväxlare.

### Admin – ett eller två språk

- **Webbplats på svenska/norska m.m.:** Fyll i både lokala fält och **Engelska**-fält under kategorier, rätter, allergener, menyfooter och bordsbokning
- **Webbplats på engelska:** Endast ett fält per text – engelska fälten döljs automatiskt

---

## Inställningar

**maca Restu → Inställningar**

Inställningarna är uppdelade i **flikar** längst upp på sidan:

| Flik | Innehåll |
|------|----------|
| **Restaurang** | Namn, adress, telefon, e-post, webbplats, momsregistreringsnummer, serveringssätt, momssatser |
| **Meny & språk** | Menytyp (PDF/bild eller rätter), språkväxlare, tvåspråkiga menyer |
| **Onlinemeny & footer** | Valuta, filter, bilder, betyg, menyfooter, utskriftsmeny (endast onlinemeny-läge) |
| **Order** | Gästorderlista, servitör/kök, PIN (endast onlinemeny-läge) |
| **Bordsbokning** | Aktivering, CAPTCHA, knapptexter, bordstilldelning |
| **PDF-menyer** | Visningsläge, knapplayout, serveringstid (endast PDF/bild-läge) |

Spara med **Spara inställningar** — alla flikar sparas i samma formulär.

| Inställning | Läge | Beskrivning |
|-------------|------|-------------|
| **Menytyp** | Alla | PDF/bild eller rätter (Pro) |
| **Prisvaluta** | Onlinemeny | t.ex. `kr`, `SEK`, `€` |
| **Kategorifilter** | Onlinemeny | Kompakta filterknappar på menyn och QR |
| **Språkväxlare** | Onlinemeny | Flaggor lokalt / engelska (döljs på engelskspråkig webbplats) |
| **Tvåspråkiga menyer** | Onlinemeny | Visa båda språken samtidigt |
| **Klickbara rättbilder** | Onlinemeny | Lightbox vid tryck |
| **Gästbetyg** | Onlinemeny | 1–5 stjärnor |
| **Gästorderlista** | Onlinemeny | Order |
| **Bordsbokning** | Pro | Gäster bokar bord via shortcode/block |
| **Bokningsknapp / formulärrubrik** | Pro | Knapptext och popup-rubrik per språk |
| **Bordstilldelning** | Pro | Standard (gäst väljer) eller best-fit (automatiskt) |
| **Menyfooter** | Onlinemeny | Allergi, moms, kontakt (telefon, e-post, webb), åldersgräns |
| **Menyrubrik** | PDF/bild | Visa titel ovanför fil |
| **Serveringstid på webbplatsen** | PDF/bild | Info när meny inte är live |
| **Menyvisningsläge** | PDF/bild | Inline, popup eller ny flik |
| **Knapplayout** | PDF/bild | Horisontell, vertikal, responsiv |
| **PDF-visningsläge** | PDF/bild | Helsida eller full bredd |

---

## Shortcode och block

Alla Gutenberg-block finns under kategorin **maca Restu**.

| Block | Shortcode | Beskrivning |
|-------|-----------|-------------|
| **maca Menylista** | `[maca_menu_list]` | Meny (PDF/bild eller onlinemeny) |
| **maca Bordsbokning** | `[maca_table_booking]` | Bokningsformulär (Pro) |
| **maca Öppettider** | `[maca_opening_hours]` | Veckoöppettider (ingen prenumeration) |
| **maca Chatt** | `[maca_site_chat]` | AI-chatt för gäster (Pro) |

### Elementor

Menyn fungerar i **Elementor** utan särskild widget: lägg till widgeten **Shortcode** och klistra in shortcode (t.ex. `[maca_menu_list]`). Samma shortcodes som i tabellen ovan gäller för bordsbokning och öppettider. **QR-menyn** (`/qrmeny/` eller din slug) är en egen URL och påverkas inte av Elementor.

### PDF/bild-läge

```
[maca_menu_list]
```
Kategoriknappar – klick visar meny (live eller senast publicerad med serveringstid).

```
[maca_menu_list buttons="false"]
```
Vertikal lista.

```
[maca_menu_list category="Lunch"]
```
En kategori (exakt namn från admin).

I Gutenberg-blocket **maca Menylista** (PDF/bild-läge) kan du välja **Alla kategorier** eller en specifik kategori direkt i blockinställningarna.

**Webbplats vs QR:** Webbplatsen visar publicerade menyer även utanför live-schema. QR visar bara det som gäller **just nu**.

### Onlinemeny-läge (Pro)

```
[maca_menu_list]
```
Visar **hela onlinemenyn** direkt – ingen kategori-klick krävs. Shortcode-attribut (`category`, `buttons`) ignoreras i onlinemeny-läge.

Blocket **maca Menylista** beter sig på samma sätt.

### Öppettider

```
[maca_opening_hours]
```
Visar veckans öppettider från **Inställningar → Öppettider** (ingen prenumeration). Attribut: `title`, `show_title`, `highlight_today`, `monday_first`.

### Bordsbokning (Pro)

```
[maca_table_booking]
```
Knapp som öppnar bokningsformulär. Konfigurera bord under **Bordsbokningar**; öppettider styr vilka tider som erbjuds.

Endast **tider med minst ett ledigt passande bord** visas för gästen i best-fit-läge. I **standard**-läget väljer gästen bord själv.

---

## Hur det fungerar (översikt)

**PDF/bild:** Kategorier → menyfiler → schema → shortcode/QR väljer rätt meny efter tid.

**Onlinemeny (Pro):** Rättkategorier → allergener (standard förfyllda) → rätter → sortera → menyfooter → shortcode/QR/utskrift.

**Mobil:** PDF renderas inbyggt; onlinemeny är responsiv (pris till höger om titeln på små skärmar).

---

## Filuppladdning (PDF/bild)

- Drag & drop, bläddra eller mediabibliotek  
- Format: JPG, JPEG, PNG, GIF, PDF (WebP i många fall)

---

## Felsökning

| Problem | Lösning |
|---------|---------|
| Kan inte välja onlinemeny | Aktivera Pro-licens under **Prenumeration** |
| Inga rätter på sidan | Kontrollera att rätter är **Aktiva** och att onlinemeny-läge är valt |
| Allergener syns inte | Kryssa i allergener på rätten; skapa allergener under **Allergener** |
| Fel ordning på rätter | Använd **Rätter → Sortera rätter** |
| Order skickas inte | Kontrollera leveransläge och att onlinemeny + gästorderlista är aktiva |
| Betalningar-menyn saknas | Onlinemeny + aktiv Pro-licens + **Gästorderlista** på |
| Stripe webhook fel | Kontrollera `whsec_` och URL under **Betalningar**; se installationsguiden |
| Måste godkänna villkor igen | Ny version (t.ex. 1.2) — öppna **Villkor och integritet** efter uppdatering |
| Bordsbokning syns inte | Aktivera **Bordsbokning** under Inställningar och Pro-licens |
| CAPTCHA-fel vid bokning | Kontrollera reCAPTCHA/Turnstile-nycklar under Inställningar |
| Inga lediga tider | Kontrollera öppettider, undantag och att bord finns under **Bordsbokningar** |
| QR visar bara orderknappar | Uppdatera till senaste version; ladda om sidan (cache) |
| QR visar inga knappar (PDF) | Ingen meny matchar schemat – kontrollera tid, veckodag, aktiv |
| PDF visas inte på mobil | Använd HTTPS; undvik `http://` i fil-URL:er |
| `/qrmeny/` ger 404 | Spara QR-inställningar eller **Inställningar → Permalänkar → Spara** |
| Fel meny visas (PDF) | Överlappande scheman – senast skapade vinner |

---

### Support

Maca Development: support@maca.se
