Dokumentation

ShopBite Plugin Konfiguration

Nach der Installation des ShopBite Plugins müssen Sie es konfigurieren, um die gastronomie-spezifischen Funktionen zu aktivieren und an Ihre Anforderungen anzupassen.

Grundkonfiguration

1. Plugin aktivieren

  1. Shopware Administration öffnen
  2. Erweiterungen > Meine Erweiterungen navigieren
  3. ShopBite Plugin finden
  4. Aktivieren klicken

2. Basis-Einstellungen

Navigieren Sie zu ShopBite > Einstellungen in der Administration:

Allgemeine Einstellungen

  • Plugin aktivieren: Hauptschalter für alle ShopBite-Funktionen
  • API-Zugang aktivieren: Ermöglicht der Storefront den Zugriff auf ShopBite-APIs
  • Debug-Modus: Aktiviert detaillierte Protokollierung (nur für Entwicklung)
  • Sales Channel-Auswahl: Wählen Sie die Vertriebskanäle, für die ShopBite aktiv sein soll

Storefront-Einstellungen

  • Storefront-URL: Die URL Ihrer ShopBite Storefront (z.B. https://Ihre-Storefront.de)
  • API-Zugangsschlüssel: Der Schlüssel für die Storefront-API-Kommunikation
  • CORS-Origin: Die erlaubten Domains für CORS (z.B. https://Ihre-Storefront.de)
  • API-Timeout: Maximale Wartezeit für API-Anfragen (Standard: 30 Sekunden)

Geschäftszeitenverwaltung

1. Geschäftszeiten einrichten

  1. ShopBite > Geschäftszeiten navigieren
  2. Neue Geschäftszeit hinzufügen klicken
  3. Folgende Felder konfigurieren:

Geschäftszeiten-Felder

FeldBeschreibungBeispiel
Sales ChannelVertriebskanal auswählen"Mein Restaurant"
WochentagTag der Woche (0=Sonntag, 1=Montag, etc.)1 (Montag)
ÖffnungszeitÖffnungszeit im Format HH:MM11:00
SchließzeitSchließzeit im Format HH:MM22:00
GeschlossenTag als geschlossen markieren

Beispielkonfiguration

Montag: 11:00 - 22:00
Dienstag: 11:00 - 22:00
Mittwoch: Geschlossen
Donnerstag: 11:00 - 23:00
Freitag: 11:00 - 00:00
Samstag: 12:00 - 00:00
Sonntag: 12:00 - 22:00

2. Sonderöffnungszeiten

Für besondere Anlässe oder saisonale Änderungen:

  1. ShopBite > Geschäftszeiten > Sonderöffnungszeiten navigieren
  2. Neue Sonderöffnungszeit hinzufügen klicken
  3. Folgende Felder konfigurieren:

Sonderöffnungszeiten-Felder

FeldBeschreibungBeispiel
Sales ChannelVertriebskanal auswählen"Mein Restaurant"
DatumDatum der Sonderöffnung24.12.2024
ÖffnungszeitSpezielle Öffnungszeit10:00
SchließzeitSpezielle Schließzeit14:00
BeschreibungOptional Beschreibung"Heiligabend - verkürzte Öffnungszeiten"

3. API-Abfrage

Die Geschäftszeiten können über die Store API abgerufen werden:

# API-Endpunkt
GET /store-api/shopbite/business-hour

# Beispielantwort
{
  "data": [
    {
      "dayOfWeek": 1,
      "openingTime": "11:00",
      "closingTime": "22:00",
      "salesChannelId": "019a36f224b0704fb6835914050392f4"
    },
    {
      "dayOfWeek": 2,
      "openingTime": "11:00",
      "closingTime": "22:00",
      "salesChannelId": "019a36f224b0704fb6835914050392f4"
    }
  ]
}

Feiertagsmanagement

1. Feiertage einrichten

  1. ShopBite > Feiertage navigieren
  2. Neuen Feiertag hinzufügen klicken
  3. Folgende Felder konfigurieren:

Feiertags-Felder

FeldBeschreibungBeispiel
NameName des Feiertags"Weihnachten"
StartdatumBeginn der Schließung24.12.2024 18:00
EnddatumEnde der Schließung26.12.2024 23:59
Sales ChannelVertriebskanal auswählen"Mein Restaurant"
Jährlich wiederholenFeiertag jährlich wiederholen
BeschreibungOptional Beschreibung"Weihnachtsferien"

Beispiel Feiertage

Neujahr: 01.01.2024 00:00 - 01.01.2024 23:59
Karfreitag: 29.03.2024 00:00 - 29.03.2024 23:59
Ostermontag: 01.04.2024 00:00 - 01.04.2024 23:59
Tag der Arbeit: 01.05.2024 00:00 - 01.05.2024 23:59
Weihnachten: 24.12.2024 18:00 - 26.12.2024 23:59

2. Wiederkehrende Feiertage

Für jährlich wiederkehrende Feiertage:

  1. Jährlich wiederholen aktivieren
  2. Monat und Tag auswählen
  3. Name eingeben (z.B. "Weihnachten")
  4. Zeitraum definieren (z.B. 24.12. - 26.12.)

3. API-Abfrage

Feiertage können über die Store API abgerufen werden:

# API-Endpunkt
GET /store-api/shopbite/holiday

# Beispielantwort
{
  "data": [
    {
      "id": "019a36f224b0704fb6835914050392f4",
      "start": "2024-12-24T18:00:00+01:00",
      "end": "2024-12-26T23:59:00+01:00",
      "salesChannelId": "019a36f224b0704fb6835914050392f4",
      "name": "Weihnachten",
      "description": "Weihnachtsferien"
    }
  ]
}

Checkout-Erweiterungen

1. Bestelltypen

ShopBite unterstützt verschiedene Bestelltypen:

  • Abholung: Kunden holen die Bestellung selbst ab
  • Lieferung: Bestellung wird geliefert
  • Vor Ort: Bestellung für den sofortigen Verzehr vor Ort

Konfigurieren Sie die verfügbaren Bestelltypen unter ShopBite > Checkout > Bestelltypen

2. Zeitfenster für Bestellungen

Legen Sie fest, wie weit im Voraus Bestellungen aufgegeben werden können:

  • Mindestvorlaufzeit: 15 Minuten (Standard)
  • Maximale Vorlaufzeit: 7 Tage (Standard)
  • Zeitfenster-Intervall: 15 Minuten (Standard)

3. Bon-Drucktypen

Das Plugin unterstützt verschiedene Bon-Drucktypen für Produkte:

  1. Custom Fields konfigurieren:
    • Navigieren Sie zu Einstellungen > Custom Fields
    • Wählen Sie ShopBite Produkt Set
    • Konfigurieren Sie Bon-Drucktyp für Produkte
  2. Drucktypen:
    • Standard: Normaler Bon-Druck
    • Küche: Küchenbon für Zubereitung
    • Bar: Barbon für Getränke
    • Kein Druck: Kein Bon-Druck erforderlich

4. Lieferzeitfaktoren

Konfigurieren Sie Lieferzeitfaktoren für Produkte:

  • Standard-Lieferzeit: 30 Minuten (konfigurierbar)
  • Produktspezifische Faktoren: Multiplikator für die Standardzeit
  • Beispiel: Pizza (Faktor 2) = 60 Minuten Lieferzeit

5. Lieferzeiten in Minuten

Die Shopware-eigenen Lieferzeiten (Einstellungen > Shop > Lieferzeiten) bieten als Einheit nur Stunden, Tage, Wochen, Monate und Jahre an. Das ShopBite Plugin ergänzt die Einheit Minute, damit Versandarten und Produkte realistische Lieferzeiten für die Gastronomie wie „30–45 Min." tragen können.

  1. Navigieren Sie zu Einstellungen > Shop > Lieferzeiten
  2. Klicken Sie auf Lieferzeit hinzufügen (oder öffnen Sie eine bestehende)
  3. Wählen Sie Minute als Einheit und tragen Sie Minimum und Maximum ein, z. B. 30 und 45
  4. Weisen Sie die Lieferzeit einer Versandart (Einstellungen > Shop > Versand) oder einzelnen Produkten (Produkt > Lieferbarkeit) zu

Die Einheit wird unverändert über die Store API ausgeliefert (deliveryTime.unit = "minute"), sodass die Storefront sie wie konfiguriert anzeigen kann.

Hinweise zur Warenkorbberechnung

Shopware berechnet das voraussichtliche Lieferdatum des Warenkorbs tagesgenau. Für diese Berechnung werden minutenbasierte Lieferzeiten intern auf die nächste volle Stunde aufgerundet (z. B. 45 Min. → 1 Stunde, 90 Min. → 2 Stunden). Die konfigurierten Werte an der Lieferzeit, an den Produkten und in der Store API bleiben davon unberührt.

API-Konfiguration

1. API-Zugang einrichten

  1. Einstellungen > System > Integrationen navigieren
  2. Integration hinzufügen klicken
  3. Folgende Einstellungen konfigurieren:

API-Integrationseinstellungen

FeldWertBeschreibung
NameShopBite StorefrontName der Integration
BeschreibungAPI-Zugang für ShopBiteBeschreibung
Berechtigungenorder:read, order:write, product:readErforderliche API-Berechtigungen
ZugangstypAdmin-IntegrationVollständiger API-Zugriff

2. Webhooks einrichten

Für Echtzeit-Updates:

  1. Einstellungen > System > Webhooks navigieren
  2. Webhook hinzufügen klicken
  3. Folgende Webhooks konfigurieren:

Empfohlene Webhooks

EreignisURLBeschreibung
order.state.changedhttps://Ihre-Storefront.de/api/webhooks/order-statusBestellstatus-Änderungen
order.createdhttps://Ihre-Storefront.de/api/webhooks/order-createdNeue Bestellungen
product.changedhttps://Ihre-Storefront.de/api/webhooks/product-changedProduktänderungen

3. CORS-Konfiguration

Konfigurieren Sie CORS für die Storefront:

# In .env oder Konfiguration
SHOPWARE_CORS_ALLOW_ORIGIN="https://Ihre-Storefront.de"
SHOPWARE_CORS_ALLOW_METHODS="GET, POST, PUT, DELETE, OPTIONS"
SHOPWARE_CORS_ALLOW_HEADERS="Authorization, Content-Type, sw-access-key"

Erweiterte Einstellungen

1. Leistungsoptimierung

  • Cache-TTL: 3600 Sekunden (Standard)
  • API-Rate-Limiting: 100 Anfragen pro Minute (Standard)
  • Datenbank-Index-Optimierung: Aktiviert (empfohlen)

2. Protokollierung

  • Protokollstufe: Info (Standard), Debug (für Entwicklung)
  • Protokollrotation: Täglich (Standard)
  • Maximale Protokollgröße: 100MB (Standard)

3. Datenbank-Optimierung

-- Indizes für ShopBite-Tabellen
ALTER TABLE `shopbite_business_hour` ADD INDEX `idx_sales_channel` (`sales_channel_id`);
ALTER TABLE `shopbite_holiday` ADD INDEX `idx_sales_channel` (`sales_channel_id`);

-- Optimierung für häufige Abfragen
ALTER TABLE `shopbite_business_hour` ADD INDEX `idx_day_of_week` (`day_of_week`);
ALTER TABLE `shopbite_holiday` ADD INDEX `idx_date_range` (`start`, `end`);

Problembehandlung

Häufige Probleme

Problem: API-Verbindung fehlgeschlagen

Symptome:

  • "Connection refused" Fehler
  • API-Endpunkte nicht erreichbar

Lösungen:

# API-Zugangsdaten prüfen
bin/console integration:list

# CORS-Einstellungen prüfen
bin/console config:get Shopware.Core.SystemConfig.corsAllowOrigin

# Firewall-Einstellungen prüfen
sudo ufw status

Problem: Geschäftszeiten werden nicht angezeigt

Symptome:

  • API liefert leere Ergebnisse
  • Geschäftszeiten nicht sichtbar

Lösungen:

# Cache leeren
bin/console cache:clear

# Datenbank prüfen
mysql -u shopware -p shopware -e "SELECT * FROM shopbite_business_hour;"

# Sales Channel-ID prüfen
bin/console sales-channel:list

Problem: Feiertage werden nicht berücksichtigt

Symptome:

  • Bestellungen an Feiertagen möglich
  • Feiertage nicht in API sichtbar

Lösungen:

# Feiertagsdaten prüfen
mysql -u shopware -p shopware -e "SELECT * FROM shopbite_holiday;"

# Zeitformat prüfen
bin/console database:check-timezone

# API-Abfrage testen
curl -X GET "https://Ihre-Domain.de/store-api/shopbite/holiday" -H "Authorization: Bearer IhrToken"

Problem: Checkout-Erweiterungen funktionieren nicht

Symptome:

  • Bon-Drucktypen werden ignoriert
  • Lieferzeitberechnung falsch

Lösungen:

# Custom Fields prüfen
bin/console custom-field:set:list

# Plugin-Cache leeren
bin/console plugin:refresh ShopBite

# Checkout-Prozessor prüfen
bin/console debug:container --tag=shopware.checkout.cart.processor

Nächste Schritte