Diese Anleitung führt Sie durch die Installation und Einrichtung des ShopBite Order Printers.
Bevor Sie mit der Installation beginnen, stellen Sie sicher, dass alle Voraussetzungen erfüllt sind:
# 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
# Auf Ubuntu/Debian
sudo apt-get update
sudo apt-get install cups
# CUPS-Dienst starten
sudo systemctl start cups
sudo systemctl enable cups
# 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
git clone https://github.com/shopbite/order-printer.git
cd order-printer
composer install --no-dev --optimize-autoloader
Für Entwicklungszwecke:
composer install
Kopieren Sie die Beispiel-Umgebungsdatei:
cp .env .env.local
# Datenbank erstellen
bin/console doctrine:database:create
# Schema aktualisieren
bin/console doctrine:schema:update --force
order:read - Bestellungen lesenorder:update - Bestellstatus aktualisierencustomer:read - Kundendaten lesenBearbeiten 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/"
sudo lpadmin -p IhrDruckerName -E -v usb://Hersteller/Model -m drv:///sample.drv/generic.ppd
lpoptions -d IhrDruckerName
lp -d IhrDruckerName /etc/cups/ppd/IhrDruckerName.ppd
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
# Scheduler starten (prüft alle 10 Sekunden auf neue Bestellungen)
bun run scheduler
# Worker starten (verarbeitet Druckaufträge)
bun run worker
Für den Produktionsbetrieb empfehlen wir die Verwendung von Supervisor:
/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
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start all
# Scheduler-Logs
tail -f /var/log/order-printer-scheduler.out.log
# Worker-Logs
tail -f /var/log/order-printer-worker.out.log
Problem: Drucker wird nicht erkannt
sudo systemctl restart cupslpstat -tProblem: Verbindung zur Shopware API fehlgeschlagen
.env.local prüfenProblem: Datenbankfehler
chmod 666 data/queue_*.dbrm data/queue_*.db && bin/console doctrine:database:create