Installation des Order Printers
Diese Anleitung führt Sie durch die Installation und Einrichtung des ShopBite Order Printers.
Voraussetzungen prüfen
Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass alle Voraussetzungen erfüllt sind:
Server-Voraussetzungen
# PHP-Version prüfen
php -v
# Sollte PHP 8.2 oder höher anzeigen
# Composer installieren (falls nicht vorhanden)
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
# SQLite-Erweiterung prüfen
php -m | grep sqlite
Drucker-Voraussetzungen
- CUPS installieren (für lokale Drucker):
# Auf Ubuntu/Debian sudo apt-get update sudo apt-get install cups # CUPS-Dienst starten sudo systemctl start cups sudo systemctl enable cups - Drucker einrichten:
# Drucker hinzufügen (Beispiel für Epson TM-T20) lpadmin -p TM-T20 -E -v usb://Epson/TM-T20 -m drv:///sample.drv/generic.ppd # Standarddrucker setzen lpoptions -d TM-T20
Installation
1. Repository klonen
git clone https://github.com/shopbite/order-printer.git
cd order-printer
2. Abhängigkeiten installieren
composer install --no-dev --optimize-autoloader
Für Entwicklungszwecke:
composer install
3. Umgebung konfigurieren
Kopieren Sie die Beispiel-Umgebungsdatei:
cp .env .env.local
4. Datenbank einrichten
# Datenbank erstellen
bin/console doctrine:database:create
# Schema aktualisieren
bin/console doctrine:schema:update --force
Shopware 6 Integration
API-Zugang einrichten
- Shopware Administration öffnen
- Einstellungen > System > Integrationen
- Neue Integration hinzufügen
- Berechtigungen setzen:
order:read- Bestellungen lesenorder:update- Bestellstatus aktualisierencustomer:read- Kundendaten lesen
Integration konfigurieren
Bearbeiten Sie die .env.local-Datei:
# Shopware API-Zugang
SHOPWARE_HOST=https://ihre-shopware-domain.de
SHOPWARE_CLIENT_ID=ihre_client_id
SHOPWARE_CLIENT_SECRET=ihre_client_secret
# Druckereinstellungen
PRINTER_NAME=TM-T20
# Datenverzeichnis
DATA_DIR="/data/receipts/"
Drucker einrichten
CUPS-Konfiguration
- Drucker hinzufügen:
sudo lpadmin -p IhrDruckerName -E -v usb://Hersteller/Model -m drv:///sample.drv/generic.ppd - Standarddrucker setzen:
lpoptions -d IhrDruckerName - Testseite drucken:
lp -d IhrDruckerName /etc/cups/ppd/IhrDruckerName.ppd
Netzwerkdrucker einrichten
Für Netzwerkdrucker verwenden Sie die IP-Adresse:
sudo lpadmin -p NetzwerkDrucker -E -v socket://192.168.1.100:9100 -m drv:///sample.drv/generic.ppd
Dienst starten
Entwicklungsmodus
# Scheduler starten (prüft alle 10 Sekunden auf neue Bestellungen)
bun run scheduler
# Worker starten (verarbeitet Druckaufträge)
bun run worker
Produktionsmodus
Für den Produktionsbetrieb empfehlen wir die Verwendung von Supervisor:
- Supervisor-Konfiguration erstellen (
/etc/supervisor/conf.d/order-printer.conf):
[program:order-printer-scheduler]
command=/pfad/zum/project/bin/console messenger:consume scheduler_default
user=www-data
autostart=true
autorestart=true
stderr_logfile=/var/log/order-printer-scheduler.err.log
stdout_logfile=/var/log/order-printer-scheduler.out.log
[program:order-printer-worker]
command=/pfad/zum/project/bin/console messenger:consume async
user=www-data
autostart=true
autorestart=true
stderr_logfile=/var/log/order-printer-worker.err.log
stdout_logfile=/var/log/order-printer-worker.out.log
- Supervisor aktualisieren:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all
Erste Schritte
Testbestellung erstellen
- In Shopware eine Testbestellung erstellen
- Bestellstatus auf "Offen" setzen
- Drucker beobachten - Der Bon sollte automatisch gedruckt werden
Logs überprüfen
# Scheduler-Logs
tail -f /var/log/order-printer-scheduler.out.log
# Worker-Logs
tail -f /var/log/order-printer-worker.out.log
Häufige Installationsprobleme
Problem: Drucker wird nicht erkannt
- Lösung: CUPS neu starten:
sudo systemctl restart cups - Lösung: Druckerberechtigungen prüfen:
lpstat -t
Problem: Verbindung zur Shopware API fehlgeschlagen
- Lösung: API-Zugangsdaten in
.env.localprüfen - Lösung: Firewall-Einstellungen überprüfen
- Lösung: Shopware-Logs auf API-Fehler prüfen
Problem: Datenbankfehler
- Lösung: SQLite-Berechtigungen prüfen:
chmod 666 data/queue_*.db - Lösung: Datenbank neu erstellen:
rm data/queue_*.db && bin/console doctrine:database:create