Documentation

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

  1. Shopware Administration öffnen
  2. Einstellungen > System > Integrationen
  3. Neue Integration hinzufügen
  4. Berechtigungen setzen:
    • order:read - Bestellungen lesen
    • order:update - Bestellstatus aktualisieren
    • customer: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

  1. Drucker hinzufügen:
    sudo lpadmin -p IhrDruckerName -E -v usb://Hersteller/Model -m drv:///sample.drv/generic.ppd
    
  2. Standarddrucker setzen:
    lpoptions -d IhrDruckerName
    
  3. 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:

  1. 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
  1. Supervisor aktualisieren:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all

Erste Schritte

Testbestellung erstellen

  1. In Shopware eine Testbestellung erstellen
  2. Bestellstatus auf "Offen" setzen
  3. 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.local prü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

Nächste Schritte