Dokumentation

ShopBite Plugin Installation

Dieses Kapitel führt Sie durch die Installation des ShopBite Plugins in Ihrem Shopware 6-System.

Voraussetzungen

  • Shopware 6.7.0 oder höher (installiert und funktionierend)
  • PHP 8.4 oder höher
  • Composer 2.0 oder höher
  • Datenbankzugriff mit ausreichenden Berechtigungen

Installationsmethoden

1. Installation über Composer (empfohlen)

# Plugin über Composer installieren
composer require shopbite-de/shopware-plugin

# Plugin aktivieren
bin/console plugin:install --activate ShopBite

# Cache leeren
bin/console cache:clear

2. Installation über Shopware Plugin Store

  1. Shopware Administration öffnen
  2. Erweiterungen > Store navigieren
  3. Nach "ShopBite" suchen
  4. Installieren klicken
  5. Aktivieren klicken

3. Manuelle Installation

# Plugin herunterladen
wget https://github.com/shopbite-de/shopware-plugin/releases/latest/download/shopbite-plugin.zip
unzip shopbite-plugin.zip -d custom/plugins/ShopBite

# Plugin installieren und aktivieren
bin/console plugin:refresh
bin/console plugin:install --activate ShopBite

# Datenbank-Migrationen ausführen
bin/console database:migrate --all ShopBite

# Cache leeren
bin/console cache:clear

Installationsprozess im Detail

Schritt 1: Plugin herunterladen

# Composer-Methode (empfohlen)
composer require shopbite-de/shopware-plugin

# Manuelle Methode
wget https://github.com/shopbite-de/shopware-plugin/releases/latest/download/shopbite-plugin.zip
unzip shopbite-plugin.zip -d custom/plugins/ShopBite

Schritt 2: Plugin registrieren

# Plugin-List aktualisieren
bin/console plugin:refresh

# Plugin installieren
bin/console plugin:install ShopBite

Schritt 3: Plugin aktivieren

# Plugin aktivieren
bin/console plugin:activate ShopBite

# Status prüfen
bin/console plugin:list | grep ShopBite

Schritt 4: Datenbank-Migrationen ausführen

# Migrationen ausführen
bin/console database:migrate --all ShopBite

# Migrationen prüfen
bin/console database:migrate:status

Schritt 5: Cache und Assets

# Cache leeren
bin/console cache:clear

# Theme-Cache aktualisieren
bin/console theme:compile

# Administration-Cache aktualisieren
bin/console administration:build

Schritt 6: Berechtigungen prüfen

# Verzeichnisberechtigungen setzen
sudo chown -R www-data:www-data custom/plugins/ShopBite
sudo chmod -R 755 custom/plugins/ShopBite

# Cache-Berechtigungen
sudo chmod -R 777 var/cache

Post-Installation

Administrationsoberfläche

  1. Shopware Administration öffnen
  2. Erweiterungen > Meine Erweiterungen navigieren
  3. ShopBite Plugin finden und auf Konfigurieren klicken
  4. Grundkonfiguration durchführen

API-Zugang einrichten

# API-Integration erstellen
bin/console integration:create:admin --name="ShopBite Storefront" --description="API-Zugang für ShopBite Storefront"

# Berechtigungen setzen
bin/console acl:role:create --name="ShopBite API Role" --description="API-Rolle für ShopBite"
bin/console acl:role:assign --name="ShopBite API Role" --resource="order:read,order:write,product:read"

Rolle für den Bondrucker

Bei der Installation und bei jedem Update legt das Plugin die ACL-Rolle order-printer mit genau den Berechtigungen an, die der Bondrucker braucht, und keinen weiteren:

BerechtigungWofür
order:read, state_machine_state:readPOST /api/search/order (offene Bestellungen)
order_delivery:read, order_line_item:read, order_address:read, shipping_method:readPOST /api/search/order-delivery (Bon-Inhalt)
order:updatePOST /api/_action/order/{id}/state/process (auf In Bearbeitung setzen)

Eine zweite Installation oder ein Update ändert nichts; ändert eine Plugin-Version die Liste, wird die Rolle angepasst. Entfernt wird die Rolle nur bei der Deinstallation ohne „Benutzerdaten behalten“, weil Integrationen auf sie verweisen.

Bondrucker anbinden: Einstellungen > System > Integrationen > Integration hinzufügen, Rolle order-printer auswählen, Zugangs-ID und Sicherheitsschlüssel kopieren (der Schlüssel wird nur einmal angezeigt).

Zugänge für das Backoffice

Das ShopBite Backoffice ist die einfache Verwaltung für das Personal eines Restaurants. Jede Person meldet sich dort mit einem eigenen Shopware-Benutzer an. Bei der Installation und bei jedem Update legt das Plugin dafür zwei ACL-Rollen an:

RolleDarf
ShopBite ManagementSpeisekarte (Gerichte, Preise, Varianten, Extras, Abschnitte, SEO), Öffnungszeiten, Bestellungen aller Filialen
ShopBite PersonalBestellungen von heute, Fertig/Stornieren, Online-Bestellungen pausieren, Lieferzeit, nur für die eigene Filiale

Die Rollen nicht von Hand ändern, ein Update setzt sie zurück. Zugänge legen Sie auf der Kommandozeile an (das Backoffice selbst darf keine Benutzer anlegen):

# Inhaber, sieht alle Filialen
bin/console shopbite:staff:create inhaber --role=management --name="Anna Rossi"

# Personal einer Filiale (Sales-Channel-ID aus bin/console sales-channel:list)
bin/console shopbite:staff:create theke --role=personal --branch=<salesChannelId> --generate-password

bin/console shopbite:staff:list
bin/console shopbite:staff:update theke --branch=<andereSalesChannelId>   # Filiale wechseln
bin/console shopbite:staff:update theke --generate-password               # neues Passwort
bin/console shopbite:staff:update theke --deactivate                      # Zugang sperren

Ohne --generate-password fragt der Befehl das Passwort verdeckt ab; ein erzeugtes Passwort wird genau einmal angezeigt. Personal braucht mindestens eine Filiale (--branch, mehrfach möglich), sonst lässt das Backoffice es nicht hinein. Management ohne Filiale sieht alle Filialen. Die Filialen stehen im Benutzer-Zusatzfeld shopbite_sales_channel_ids.

Anmeldung mit Fingerabdruck im Backoffice

Im Backoffice kann sich jede Person nach einmaligem Einrichten unter „Mein Zugang“ mit Fingerabdruck oder Face ID anmelden (Passkey). Dafür in der Plugin-Konfiguration, Karte Backoffice: Anmeldung mit Fingerabdruck, eintragen:

  • Relying-Party-ID: der Hostname des Backoffice ohne https://, zum Beispiel backoffice.pizzeria-lafattoria.de
  • Erlaubte Origins: die vollständige Adresse, zum Beispiel https://backoffice.pizzeria-lafattoria.de

Ohne beide Einträge ist die Anmeldung mit Fingerabdruck ausgeschaltet. Ein gesperrter Benutzer kommt auch per Fingerabdruck nicht mehr hinein, und ein Passkey gilt nur für diese eine Adresse.

Allergene und Zusatzstoffe

Bei Online-Bestellungen müssen Allergene und kennzeichnungspflichtige Zusatzstoffe vor der Bestellung erkennbar sein. Das Plugin legt dafür bei Installation und Update zwei Eigenschaftsgruppen an:

  • Allergene: die 14 Allergene nach LMIV, glutenhaltiges Getreide und Schalenfrüchte namentlich (Weizen, Haselnüsse, ...), mit den Kürzeln A bis R
  • Zusatzstoffe: zum Beispiel „mit Farbstoff“, „koffeinhaltig“, mit den Nummern 1 bis 12

Das Kürzel steht im Zusatzfeld shopbite_code der Option. Am Gericht zeigt das Zusatzfeld „Allergene und Zusatzstoffe geprüft“ (shopbite_allergens_checked), dass die Angaben vollständig sind, auch wenn keine Option gewählt ist. Gepflegt wird beides am einfachsten im Backoffice. Gibt es eine der Gruppen schon, übernimmt das Plugin sie, statt sie doppelt anzulegen.

Sales Channel konfigurieren

  1. Einstellungen > Vertriebskanäle navigieren
  2. Neuen Sales Channel erstellen
  3. ShopBite-spezifische Einstellungen konfigurieren
  4. API-Zugang zuweisen

Installationsprüfung

Plugin-Status prüfen

# Plugin-Status anzeigen
bin/console plugin:list | grep ShopBite

# Plugin-Details anzeigen
bin/console plugin:info ShopBite

Datenbank prüfen

# Tabellen prüfen
mysql -u shopware -p shopware -e "SHOW TABLES LIKE 'shopbite_%';"

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

API-Endpunkte testen

# API-Test (ersetzen Sie die URL und den Token)
curl -X GET "https://Ihre-Shopware-Domain.de/store-api/shopbite/business-hour" \
  -H "Authorization: Bearer IhrAPIToken" \
  -H "sw-access-key: IhrAccessKey"

Häufige Installationsprobleme

Problem: Plugin wird nicht in der Administration angezeigt

Symptome:

  • Plugin ist installiert, aber nicht sichtbar
  • Fehler: "Plugin not found"

Lösungen:

# Cache leeren
bin/console cache:clear

# Plugin-List aktualisieren
bin/console plugin:refresh

# Berechtigungen prüfen
sudo chown -R www-data:www-data custom/plugins/ShopBite

Problem: Datenbank-Migrationen fehlgeschlagen

Symptome:

  • Fehler: "Migration failed"
  • Tabellen werden nicht erstellt

Lösungen:

# Migrationen manuell ausführen
bin/console database:migrate --all ShopBite --force

# Datenbank-Berechtigungen prüfen
mysql -u root -p
GRANT ALL PRIVILEGES ON shopware.* TO 'shopware'@'localhost';
FLUSH PRIVILEGES;

Problem: API-Endpunkte nicht erreichbar

Symptome:

  • 404 Fehler bei API-Aufrufen
  • Endpunkte nicht verfügbar

Lösungen:

# Routen-Cache leeren
bin/console router:cache:warmup

# Plugin neu aktivieren
bin/console plugin:deactivate ShopBite
bin/console plugin:activate ShopBite

# API-Berechtigungen prüfen
bin/console acl:role:list

Problem: Composer-Installation fehlgeschlagen

Symptome:

  • Fehler: "Could not find package shopbite-de/shopware-plugin"
  • Composer-Installation bricht ab

Lösungen:

# Composer-Cache leeren
composer clear-cache

# Packagist aktualisieren
composer update

# Manuelle Installation
wget https://github.com/shopbite-de/shopware-plugin/releases/latest/download/shopbite-plugin.zip

Deinstallation

Plugin deaktivieren

# Plugin deaktivieren
bin/console plugin:deactivate ShopBite

Plugin deinstallieren

# Plugin deinstallieren
bin/console plugin:uninstall ShopBite

# Daten bereinigen (optional)
bin/console plugin:uninstall ShopBite --keep-user-data=false

Manuelle Bereinigung

# Plugin-Verzeichnis entfernen
rm -rf custom/plugins/ShopBite

# Cache leeren
bin/console cache:clear

# Datenbank bereinigen (optional)
mysql -u shopware -p shopware -e "DROP TABLE IF EXISTS shopbite_business_hour, shopbite_holiday, shopbite_wishlist_item;"

Nächste Schritte