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
- Shopware Administration öffnen
- Erweiterungen > Store navigieren
- Nach "ShopBite" suchen
- Installieren klicken
- 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
- Shopware Administration öffnen
- Erweiterungen > Meine Erweiterungen navigieren
- ShopBite Plugin finden und auf Konfigurieren klicken
- 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:
| Berechtigung | Wofür |
|---|---|
order:read, state_machine_state:read | POST /api/search/order (offene Bestellungen) |
order_delivery:read, order_line_item:read, order_address:read, shipping_method:read | POST /api/search/order-delivery (Bon-Inhalt) |
order:update | POST /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:
| Rolle | Darf |
|---|---|
ShopBite Management | Speisekarte (Gerichte, Preise, Varianten, Extras, Abschnitte, SEO), Öffnungszeiten, Bestellungen aller Filialen |
ShopBite Personal | Bestellungen 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 Beispielbackoffice.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
- Einstellungen > Vertriebskanäle navigieren
- Neuen Sales Channel erstellen
- ShopBite-spezifische Einstellungen konfigurieren
- 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
- Plugin Konfiguration - Plugin einrichten und konfigurieren
- Geschäftszeiten Management - Öffnungszeiten konfigurieren
- Feiertagsmanagement - Schließtage einrichten
- Shopware Dokumentation - Offizielle Shopware-Dokumentation