Lastgrenzen
Wie gut arbeitet OrderSprinter unter Last?
OrderSprinter wird häufig auf großen Feuerwehrfesten mit mehreren Tausend Teilnehmern in Österreich eingesetzt, so dass es prinzipiell für diesen Einsatzzweck geeignet ist. In Deutchland ist jedoch die Signierung aller umsatzrelevanten Vorgänge über eine TSE vorgeschrieben. Messungen haben ergeben, dass eine Signierung etwa eine halbe Sekunde dauern kann, d.h. pro Bestell- und Kassiervorgang wird ist das ein Prozess, der nicht parallelisiert werden kann und dadurch andere Aktionen ausbremsen kann. Wenn zu erwarten ist, dass es beim beabsichtigen Einsatzort zu mehr als einer Bestell- oder Abrechnungsaktionen pro Sekunde kommen kann, ist OrderSprinter aktuell nicht zu empfehlen. Mehr Informationen dazu finden sich in der PDF-Dokumentation.Corona
Reduzierung der Umsatzsteuer
Die Corona-Krise hat die Gastronomie, Hotelerie und den Einzelhandel schlimm getroffen. Die Politik hat darauf reagiert, indem sie unter anderem für den Verkauf bestimmter Artikel reduzierte Steuersätze erlaubt. Die DEHOGA hat hier beschrieben, wie die Steuersätze anzuwenden sind: https://www.dehoga-bayern.de/coronavirus/wiederhochfahren/mehrwertsteuersenkung. Im OrderSpeinter lassen sich die anzuwendenden Steuersätze pro Produkt angeben. Wie hilft OrderSprinter dem Corona-gebeutelten Gastwirten? Eine Möglichkeit ist die Nutzung der Gastbestellkomponente, mit der die Gäste von ihrem Platz über ihr eigenes Smartphone Speisen und Getränke bestellen können. So wird ein Kontakt zwischen Kellner und Gast auf das Servieren und Kassieren reduziert.Kassensicherungsverordnung und TSE
Kann OrderSprinter auch nach dem 30.9.2020 verwendet werden?
Siehe hierzu die eigene Unterseite KassenSichV.
Ist eine Epson-TSE im Drucker bereits nutzbar?
Meiner Meinung nach sind die Werbeaussagen von Epson zu Druckern mit integrierter TSE missverständlich, weil sie einigen Kunden den Eindruck vermitteln, dass Drucker mit eingebauter TSE mit jeder POS-Software ohne weitere Anpassungen laufen würden. Die Drucker von Epson mit eingebauter oder einsteckbarer TSE bieten sich vor allem für Kassensysteme an, bei denen der zentrale Server in der Cloud ist, die TSE aber zwingendermaßen lokal sein muss. Wenn man also nur mit Tablets/Smartphones boniert, aber alles in der Cloud verarbeitet wird, so würde ja vor Ort ein Rechner fehlen, in dem man die TSE einstecken könnte. Nun ist es aber so, dass aufgrund der Bonausgabepflicht immer ein Drucker lokal vorhanden sein muss - und Epson hat die Drucker so erweitert, dass man da nun auch eine TSE unterbringen kann. Das Bundle aus Drucker und TSE bedeutet nicht, dass da ein Automatismus nach jedem Ausdruck existiert, der die Kassensoftware entlastet. Das ginge schon alleine aus dem Grund nicht, weil viel häufiger TSE-Signaturen erstellt werden müssen, als üblicherweise Druckjobs generiert werden. Beispielsweise arbeiten nicht alle Gastwirte mit Arbeitsbons und trotzdem muss jede Bestellung (und deren mögliche Stornierung) über die TSE signiert werden. Die TSE im Drucker muss aber wie jede andere TSE von der Kassensoftware angesprochen werden und die Rückgabewerte (Signatur, Transaktionsnummer usw.) müssen natürlich auch wieder im Datenbestand der Kassensoftware gespeichert werden. Zur Kommunikation mit der TSE bietet Epson verschiedene Protokolle, Treiber und SDKs an. Leider hat jeder Hersteller eigene Protokolle, Treiber (und leider auch Lizenzen), so dass man für jeden TSE-Anbieter die Anbindung individuell programmieren muss. Ich versuche mich an einem generischen Konzept, welches die Anfragen an die TSE in einem einheitlichen Konzept entgegennimmt und die Anfragen anschließend spezifisch an die jeweilige TSE weiterleitet. Aber trotzdem steckt auch in diesem Ansatz eine Menge Arbeit, so dass ich mich erst mal auf eine TSE fokussiert habe. Ich habe mit der Swissbit-TSE angefangen, weil es am einfachsten war, an eine Entwickler-TSE dieses Anbieters zu kommen. Mittlerweile besitze ich auch eine TSE von Epson, aber die versuche ich dann zu unterstützen, wenn die Anbindung der Swissbit-TSE abgeschlossen ist.Welche Daten möchte der Prüfer sehen?
Zunächst einmal kann man davon ausgehen, dass ein prüfer etwas bestellt und prüft, ob bei der Bezahlung auch ein Kassenbon gedruckt wurde. Diesen Kassenbon wird er sich genauer anschauen und prüfen, ob die TSE-Information entweder in Textform oder als QR-Code enthalten ist und alle relevanten Informationen enthalten sind. Mit einer Prüfsoftware wird er vermutlich testen, ob die Daten konsistent sind (z.B. Signaturüberprüfung). Womöglich vergleicht er den Bon auch mit anderen Bons (Signaturzähler usw.). Hat er ein gutes Gefühl, wird er vielleicht nicht weiterbohren. Hat er schlechte Laune, wird er wahrscheinlich im nächsten Schritt einen DSFinv-k Export anfordern. Der ist über die Administrationsansicht > Abrechnung und Datenexport > Datenexport > DSFinv-k Export (zip) downloadbar. Wer wissen möchte, welche Daten an den Prüfer gehen, kann sich auch die html-Version anschauen. Einige Felder in der html-Ansicht sind zusätzlich, weil sie dem besseren Verständnis dienen. Diese Felder sind farblich markiert. Ist der Prüfer immer noch nicht glücklich, kann er einen tar-Export von der TSE anfordern. In diesem Fall muss man innerhalb der Administrationsansicht unter Konfiguration den TSE-Abschnitt aufklappen. Dort kann man als TSE-Operation "Tar-Export lokal" auswählen und über die Schaltfläche "->" starten. Der Export wird in das lokale tmp-Verzeichnis des Rechners geschrieben, auf dem der TSEConnector läuft.Support
Wie kann ich Kontakt zum Entwickler aufnehmen?
Der Programmierer freut sich immer über Rückmeldungen!!! Welche Funktionen fehlen? Gibt es Probleme? Wurden Fehler entdeckt?
Feedback kann an s.pichel@ordersprinter.de gemailt werden. Auch die Webapplikation enthält ein Feedback-Modul, über das jeder Benutzer Kontakt zum Programmierer aufnehmen kann.
Gibt es einen 24/7-Support?
Ich biete OrderSprinter nur als Software zum freien Download an, aber einen kommerziellen Rund-um-die-Uhr-Support kann ich nicht leisten. Trotzdem versuche ich jede Frage zu beantworten und technische Probleme in neuen Programmversionen zu lösen. Mittlerweile gibt es verschiedene Anbieter, die einen kommerziellen Support für OrderSprinter anbieten. Eine kleine Liste habe ich aug dieser Seite bereitgestellt: Kommerzielle Service-Anbieter
java -jar javaprinter.jar -cups -configfile={das config File} -cupsprinter=Epson80Das Config-File hat die gleiche Syntax wie das Config-File, welches dem Javaprinter im normale Download beiliegt. Allerdings werden über den Aufrufparameter -mode=cups die Einstellungen in der Konfigurationsdatei ignoriert, die sich auf die Identifikation des Druckers über USB beziehen. Wird das Argument cupsprinter nicht angegeben, benutzt der Javaprinter den Drucker, der als Standard eingerichtet wurde. Soll ein anderer Drucker verwendet werden, so kann dieser über -cupsprinter={printername} gesetzt werden.
Lassen sich mobile Gürteldrucker benutzen?
Wenn es sich um WLAN-Gürteldrucker handelt, ist der Einsatz im Zusammenspiel mit dem OrderSprinter-Printserver möglich. Ein Test mit dem Toshiba B-EP4 war erfolgreich.Was tun, wenn das Logo auf dem Bon kaum erkennbar ist?
Thermo-Bondrucker können in der Regel nur entweder schwarz oder weiß drucken, Grautöne sind nicht möglich. Daher findet eine Umwandlung des Logo-Bildchens in schwarz-weiß statt. Ein interner Schwellwert bestimmt, welche Farbpixel noch weiß sein sollen und welche als schwarz zu interpretieren sind. Wenn das Bild also nicht richtig auf dem Ausdruck erscheint, sollte dessen Kontrast verstärkt werden.
Außerdem kann es sein, dass das Logo-Bild zu klein auf dem Kassenbon erscheint, dann kann man die Skalierung vergrößern. Beim Java-Printer muss in der config.json der Wert für logoscale angepasst werden.
Das Logo wurde neu geladen, aber auf den Ausdrucken ist das alte Logo zu sehen
Starten Sie den Printserver neu, damit er das neue Logo vom Webserver übernehmen kann. Aus Geschwindigkeitsgründen lädt sowohl der Windows- als auch für der Java-Printserver das Logobildchen nur beim Start.Verzögert der Druck des Logos den Bondruck?
Das sollte eigentlich nicht der Fall sein. Siehe Video vom Druck (über den Javaprinter am angeschlossenen Raspberry Pi) - zum Abspielen Bild anklicken:
Es ist mir im Forum berichtet worden, dass der Ausdruck des Logos bei einem Anwender länger dauert als der Druck des restlichen Bons. Das kann ich mir nicht recht erklären. Zwar muss das Bild vom normalen Bildformat in ein zum ESC/POS-Standard passenden Format umgerechnet werden, aber der Rechenprozess sollte vernachlässigbar sein, so dass ich von einer druckerspezifischen Eigenart des Geräts vom Anwender ausgehe.
Javaprinter beendet sich direkt nach dem Start mit einer Exception
Der Javaprinter benötigt Java mindestens in der Version 1.8. Ansonsten ist die Ausführung nicht möglich. Stürzt der Javaprinter erst ab, sobald ein Druckjob zu verarbeiten ist, so liegt vermutlich eine sehr alte (mindestens 2 Jahre) Javaprinter-Version vor, die nicht mehr kompatibel zur OrderSprinter-Version ist, die auf dem Webserver läuft.Kann der Javaprinter auch WLAN-Drucker ansteuern?
Ja, indem man die CUPS-Schnittstelle verwendet. Es sei angemerkt, dass aus Erfahrung WLAN-Drucker nicht für den Ausdruck von Arbeitsbons geeignet sind. Bricht die Verbindung während eines angefangenen Drucks ab (kann bei WLAN öfter am Tag passieren), wird der Druck erneut gestartet. In der Konsequenz produziert die Küche möglicherweise zuviel.
Alternativ kann man auch entfernte Drucker drahtlos nutzen, wenn man den indirekten Weg wählt, indem man den Drucker von einem WLAN-fähigen Computer ansteuern lässt, der wiederum die Verbindung zum Webserver aufbaut. Der Computer kann ein preiswerter Raspi Mini-PC sein, auf dem der dort laufende Javaprinter quasi die Brücke zwischen OrderSprinter-Webserver und Drucker schlägt.Funktionen
Gibt es einen grafischen Tischplan?
Ja, das ist ab Version 1.0.24 möglich! Der Administrator muss die Tischpläne in der Administrationsansicht eingeben. Das Verfahren sieht vor, dass Bilder oder Fotos der Gasträume hinterlegt werden und die Tische darauf markiert werden.
Warum verwendet OrderSprinter intern digitale Signaturen oder Hashes?
Jeder Gastronom muss Vorgaben der GoBS und GdPdU erfüllen (siehe Wikipedia und BMF-Schreiben). Die in den GoBS festgelegten wesentlichen Merkmale revisionssicherer Archivsysteme sind, dass die Informationen wieder auffindbar, nachvollziehbar, unveränderbar und verfälschungssicher archiviert sind. Die Sicherstellung der Unveränderbarkeit ist technisch jedoch kaum umsetzbar und wird auch in den GoBS nur sehr unscharf formuliert ("Die Unveränderbarkeit der Daten, Datensätze, elektronischen Dokumente und elektronischen Unterlagen (...) kann sowohl hardwaremäßig (z. B. unveränderbare und fälschungssichere Datenträger) als auch softwaremäßig (z. B. Sicherungen, Sperren, Festschreibung, Löschmerker, automatische Protokollierung, Historisierungen, Versionierungen) als auch organisatorisch (z. B. mittels Zugriffsberechtigungskonzepten) gewährleistet werden.").
Aber die Manipulationsmöglichkeit kann durch programmtechnische Maßnahmen sehr erschwert werden:- Zugriff über die Applikation: Alle Änderungen, die über die OrderSprinter-Applikation vorgenommen werden, werden protokolliert und versioniert. OrderSprinter verhindert die Manipulation und/oder Löschung von Abrechnungen auf der Applikationsebene.
- Digitale Signaturen ab Version 1.0.6 bzw. Checks über Hashes ab Version 1.5.14: Wie die meisten anderen Kassensysteme nutzt natürlich auch OrderSprinter eine Datenbank für die Speicherung der Daten. Im Falle von OrderSprinter ist dies eine MySQL-Datenbank. Auf eine solche Datenbank kann man natürlich auch direkt zugreifen und die Daten ändern. Um Manipulationen jedoch zu verhindern, nutzt OrderSprinter digitale Signaturen bzw. Hashes, mit denen die Korrektheit der Datenbank geprüft werden kann. Wird über einen Direktzugriff der umsatzrelevante Inhalt der Datenbank verändert, so merkt OrderSprinter dies anhand der digitalen Signaturen bzw. dem nicht mehr passenden Hashwert und verweigert den Datenexport manipulierter Daten mit einem Hinweis auf die Inkonsistenz der Daten.
Wer demnach in betrügerischer Absicht die Daten in der Datenbank modifizieren möchte, muss zur Umgehung der Prüfung mit digitalen Signaturen / Hashwerten neben dem Zugriff auf die Datenbank auch Programmierkenntnisse in PHP und tiefe Einblicke in die programmtechnische Struktur von OrderSprinter haben. Diese Aussage gilt ähnlich auch für die Kassensoftware der anderen Anbiter.
Siehe zum Thema GdPdU und GoBS auch die entsprechende Unterseite.
Gibt es OrderSprinter auch als App?
Nein, denn der Vorteil einer App gegenüber einer Webapplikation ist im Gastronomiebereich begrenzt. Er besteht hauptsächlich darin, dass auch kurzfristig ohne Verbindung zum Webserver weiter gearbeitet werden kann. Aber eine App müsste für jedes Betriebssystem (iPhone, Android, Windows Phone) individuell entwickelt werden. Der Aufwand für die Programmierung dieser Webapplikation, die mit allen gängigen Internetbrowsern bedienbar ist, ist bereits sehr groß. OrderSprinter ist ein Freizeit-Projekt, daher gibt es keine Motivation für die zusätzliche Programmierung von Apps. Wenn man auf Android-Geräten beim Aufruf der Anneldeseite von OrderSprinter über die Browserfuntion "Zum Startbildschirm hinzufügen" anklickt, wird ein Icon auf dem Startbildschirm platziert. Wenn man über dieses Icon zum OrderSprinter kommt, verhält sich die Webapplikation wie eine App, d.h. der Anwender sieht keine Navigationselemente mehr.Warum gibt es keine Zwischenrechnung
Ausgedruckte Zwischenrechnungen werden in zu vielen Fällen zum Zwecke der Steuervermeidung verwendet. OrderSprinter soll erst gar nicht in diesem Kontext auftauchen. In OrderSprinter lässt sich mit einem Klick auf den eingeblendeten Kassenbon in der Kassenansicht der Kassenbon auf die gesamte Bildschirmseite vergrößern (ein neuer Klick verkleinert es wieder), so dass man dem Gast noch vor der Abrechnung den Rechnungsbetrag auf dem Display zeigen kann. Ebenso sieht man die Gesamtsumme einer Bestellung bereits in der Bestellansicht. Es gibt nach meiner Ansicht keinen legalen echten Grund, Zwischenrechnungen auf einem Bon auszustellen. Mit dem Auslaufen der Nichtbeanstandungsregelung der Kassensicherungsverordnung nehme ich an, dass sich auch das Thema Zwischenrechnungen erledigt hat.Kann man Produkte mit zusätzlichen Optionen konfigurieren?
Seit der Version 1.0.13 ist dies möglich. Die Extras müssen in der Produktansicht zunächst festgelegt werden (jeweils Name. Preis und die maximal mögliche Anzahl) und anschließend den einzelnen Produkten zugewiesen werden. Damit stehen sie während des Bestellvorgangs automatisch bei Anwahl eines Produktes mit zugewiesenen Extras zur Auswahl. Die Zuweisung kann auch in der Speisekarte innerhalb der mit Admin-Rechten aufgerufenen Administrationsansicht erfolgen. Zur Syntax verweise ich auf die integrierte Beispielspeisekarte.Gutscheine
Gutscheine
Bei Gutscheinen muss man zwischen Einzweckgutscheinen und Mehrzweckgutscheinen unterscheiden. Nach meinem Verständnis der Rechtslage werden in Deutschland Einzweckgutscheine beim Verkauf mit der normalen Umsatzsteuer berechnet, während bei Mehrzweckgutscheinen keine Leistung erbracht wird, sondern quasi nur ein Umtausch in eine andere Währung stattfindet. Was bedeutet dies für die Nutzung in OrderSprinter:
Einzweckgutscheine: Es ist das Anlegen eines Produktes mit der Einheit Einzweckgutscheine Kauf erforderlich, am besten in einer Kategorie, deren Produkte bei der Bestellung nicht Küche und Bar bzw. Bereitschaft durchlaufen. Nutzt man den Arbeitsbon-Ablauf, bedeutet die Einstellung, dass der Gutschein nicht auf Arbeitsbons gedruckt wird (sie müssen schließlich nicht zubereitet werden). Ebenso muss man ein korrelierendes Produkt mit der Einheit "Einzweckgutschein Einlösung" anlegen.
Mehrzweckgutscheine: Die Verwendung von Mehrzweckgutscheinen ist etwas aufwändiger. Bis 30.9.2020 kann so gearbeitet werden, dass man Produkte definiert, bei denen die Besteuerung erst bei der Einlösung stattfindet. Ab dem 1.10.2020 benötigt es eines Softwareupdates, damit auch Mehrzweckgutscheine im Rahmen des DSFinv-k Exports korrekt behandelt werden.
Hinweis: Ich bin kein Steuerrechtler, sondern gebe die Informationen so weiter, wie ich sie verstanden habe. Für Korrekturhinweise bin ich jederzeit dankbar. Auf alle Fälle gilt, dass jeder Anwender sich selbst informieren sollte und prüfen muss, ob die Funktionalität im OrderSprinter für eine ordentliche Behandlung von Gutscheinen ausreicht.
Nutzung in Österreich
Nutzung in Österreich
Was bedeutet die RKSV für österreichische Gastronomen?
Seit 1.4.2017 müssen alle Kassen über eine technische Sicherheitseinrichtung zum Schutz vor Manipulationen verfügen. Diese Sicherheitseinrichtung hat zum Ziel, dass alle Barumsätze verkettet werden. Dazu wird eine elektronische Signatur verwendet. Die Einzelheiten zur Spezifikation kann man der RKSV entnehmen.
Mittlerweile gibt es kommerzielle Cloud-Anbieter, die die technische Sicherheitseinrichtung als Cloud-Dienst anbieten. Seit Version 2.8.1 lässt sich OrderSprinter dazu an Fiskaly Sign-AT anbinden.
Fehler oder nicht?
Völlig kaputte Benutzeroberfläche Wird nach einem Update auf 2.1.2 oder neuer (bzw. nach der Installation) nur eine ziemlich wirre Benutzeroberfläche dargestellt, konnten vermutlich nicht alle Elemente, die für die Darstellung benötigt werden, geladen werden. Ab 2.1.2 wurden .htaccess-Dateien in die Web-Unterverzeichnisse eingebaut, um das Listing von Verzeichnissen zu verhindern. Je nach Konfiguratioon des Webservers kann es jedoch sein, dass diese .htaccess-Dateien nicht erlaubt sind. Eine Lösung ist es dann, alle .htaccess-Dateien aus den Webunterverzeichnissen zu löschen.
Beim Installieren auf einem Raspberry Pi bekomme ich einen Internal Server Error
Dieser Fehler sollte nur bei leistungsschwachen Raspberry Pis der ersten Generation passieren. Im Logfile /var/log/apache2/error.log werden Sie wahrscheinlich folgende Meldung sehen:[PHP Fatal error: Maximum execution time of 30 seconds exceeded in /var/www/.../install/installer.php on line 385, referer: http://raspberrypi/lebeauvoisin/install.htmlDie Installation ist ein zeitintensiver Prozess und erfordert in der PHP-Apache-Konfiguration einen größeren Wert als 30 Sekunden. Sie können diesen Wert in der php.ini (meist in /etc/php5/apache2/php.ini) auf einen größeren Wert einstellen (bzw. einige Webhoster bieten eine eigene Konbfigurationsschnittstelle für PHP an). 300 ist ein guter Wert:
max_execution_time = 300Anschließend muss der Apache-Webserver neugestartet werden (apache2ctl restart)
Nach 24 Minuten Inaktivität ist man ausgeloggt.
In der Standardeinstellung vom Apache-Webserver wird die Session nach 24 Minuten beendet, wenn keine Aktion darüber stattgefunden hat. Beim nächsten Mal muss man sich erneut einloggen. Sie können diesen Wert in der php.ini (meist in /etc/php5/apache2/php.ini) auf einen größeren Wert einstellen (bzw. einige Webhoster bieten eine eigene Konfigurationsschnittstelle für PHP an).session.gc_maxlifetime = 3600
OrderSprinter bleibt hängen
Einige Aktionen (Erstellung Tageserfassung etc.) triggern den Versand einer Email, wenn in der Konfiguration SMTP-Settings hinterlegt wurden. Sind diese jedoch falsch, so dass der SMTP-Host beispielsweise nicht erreicht werden kann, so steht OrderSprinter solange, bis ein Timeout für den Verbindungsaufbau zuschlägt. Eine andere Ursache für ein sehr träges Verhalten der Oberfläche kann darin liegen, dass eine Verbindung zu einer Gastbestellkomponente konfiguriert wurde, die derzeit nicht erreichbar ist.Das Logo wird nicht angezeigt, obwohl es angeblich erfolgreich hochgeladen wurde
Zum Handling von Bildern greift OrderSprinter auf die GD-Bibliothek zu. Soll also das Bild in der Administrationsansicht unter Konfiguration dargestellt werden, so ist das Vorhandensein dieser Bibliothek Vorraussetzung. Diese Bibliothek ist normalerweise bei kommerziellen Webhosting-Angeboten bereits installiert. Auf dem heimischen Rechner ist dies nicht immer der Fall. Bei OpenSuse heißt das zu installierende Paket php5-gd. Unter Ubuntu heißt der Befehl sudo apt-get install php5-gd. Anschließend ist der Webserver neu zu starten, damit die Änderungen auch wirksamm werden.Größe des Webserver-Logfiles
Die Webserver-Logfiles können sehr groß werden, wenn man nicht aufpasst. OrderSprinter fragt z.B. regelmäßig die anstehenden Druckaufträge sowie gewisse Zustände wie beispielsweise den Druckerstatus beim Webserver an, so dass das Access-Logfile auf dem Webserver auch dann anwächst, wenn man das System gar nicht aktiv benutzt. Es gibt aber je nach eingesetztem Webserver verschiedene Möglichkeiten, die Menge und Größe der Logfiles zu begrenzen. Entweder setzt man das Loglevel passend, räumt regelmäßig ältere Logfiles auf, nutzt die im Webserver eingebauten Logfile-Management-Funktionen, oder oder oder...
Beim Apache heißt das Zauberwort z.B. Logrotate. Da es bereits so viel Informationen darüber im Netz gibt, verweise ich dazu auf eine gepflegte Google-Suche.
Der Email-Versand schlägt stets fehl, wie ist die korrekte Konfiguration?
In der Tat ist die Meldung im Fehlerfall nicht sehr hilfreich (wenn mal viel Zeit da ist, werde ich das verbessern). Häufig wird ein Fehler bei der Konfiguration des Felder Email-Absender gemacht, hier gehört nicht der Name, sondern die Email-Adresse hinein, von der gesendet werden soll. Eine funktionierende Konfiguration für eine GMX-Adresse kann z.B. so aussehen:Email-Absender: meine-beispiel-email@gmx.de
Email für schlechte Bewertungen: meine-beispiel-email_2@gmx.de
Email für Kundenkontaktwunsch: meine-beispiel-email_2@gmx.de
Standard-Email-Empfänger: meine-beispiel-email_2@gmx.de
SMTP-Host: mail.gmx.net
SMTP-Authentifizierung: Ja
SMTP-Benutzername: meine-beispiel-email@gmx.de
SMTP-Password: ThisIsSecret
SMTP-Protokoll: TLS
SMTP-Port: 587
Email für schlechte Bewertungen, Email für Kundenkontaktwunsch und Standard-Email-Empfänger sind die Zieladressen, während Email-Absender die Absendeadresse darstellt. An die in Standard-Email-Empfänger hinterlegte Adresse wird z.B. eine Zusammenfassung einer Tageserfassung nach dessen Erstellung geschickt.
Große Bestellungen Wenn es vorkommen kann, dass Bestellungen von mehr als 100 Produkten gleichzeitig aufgegeben werden sollen, muss üblicherweise die Konfiguration des Webservers angepasst werden. In der php.ini muss in der Datei php.ini die Variable max_input_vars aktiviert (durch Wegnahme des Semikolons am Zeilenbeginn) und der voreingetragene Wert erhöht werden (10000 ist ein guter Wert). Änderungen in der Konfigurationsdatei werden erst nach einem Neustart des Webservers aktiv.
Probleme selbst beheben
Passwörter zurücksetzen Immer wieder erreichen mich Hilferufe, wie man denn nun ein vergessenes Passwort zurücksetzen könne. Daher nun eine kleine Anleitung:- In der Datei config.php im Unterverzeichnis php finden sie die Zugangsparameter für die Datenbank. Bitte notieren.
- Nun muss man ein SQL-Kommando in der Datenbank absetzen. Dazu muss man allerdings erst einmal einen Zugang zur Datenbank bekommen. Wer xampp einsetzt, der klickt im Xampp Control Center auf den Shell Button und tippt
mysql -u {user} -p {Password} use {database}
wobei die Variablen in den geschweiften Klammern durch die Werte aus der config.php zu ersetzen sind. Wer stattdessen phpmyadmin zur Verwaltung der Datenbank benutzt, kann sich über die Weboberfläche von pypmyadmin in die Datenbank einloggen. - Folgendes SQL-Kommando ausführen:
UPDATE {prefix}user SET userpassword=MD5('123') WHERE username='{Benutzername}';
Auch hier ist die {prefix}-Variable durch den entsprechenden Wert aus der config.php zu ersetzen und {Benutzername} ist der Name der Person, deren Passwort geöndert werden soll. Anschließend hat der Benutzer das Passwort 123.
Versionsupdate von 1.x auf 2.x
Bargeldbestand in Tageserfassung nach Versionsupdate
In den Versionen 1.x hatte ich die Tageserfassung so behandelt, dass bei der Erstellung des Kassenabschlusses der seit dem letzten Abschluss erzielte Umsatz ausgegeben wurde (klassischer Z-Bon). Die Kassensicherungsverordnung schreibt nun vor, dass man aufzeichnen muss, wann und zu welchem Zweck man Bargeld in die Kasse eingelegt oder aus ihr entnommen hat. Wenn man also vor oder nach dem Kassenabschluss die Einnahmen oder ein Teil der Einnahmen aus der Kasse nimmt und zur Bank trägt, muss das aufgezeichnet und durch die TSE signiert werden. Wenn das schon so genau registriert werden muss, so habe ich mir überlegt, dass ich auch die Angaben im Tagesabschluss um die Angabe des noch in der Kasse vorhandenen Bargeldbestandes erweitern kann. Es ist also eine zusätzliche Angabe in der Version 2.x, die in den Versionen 1.x nicht enthalten war. Wenn man also in der Vergangenheit abends immer das Geld aus Kasse genommen hat und dies nicht als Bargeldentnahme in der Kassenansicht eingetragen hat, so sieht man nach dem Update von 1.x auf 2.x plötzlich einen großen Bargeldbestand.Druckserver In der Vergangenheut habe ich stets versucht, das man nach einem Versionsupdate des Kernsystems den Druckserver nur updaten musste, wenn man neue Funktionen nutzen wollte. Mit dem Versionssprung von 1 auf 2 habe ich das Druckkonzept jedoch so komplett umgekrempelt, dass ein Versonsupdate des Druckservers unumgänglich ist. Durch den Umbau wird es allerdings zukünftig noch seltener notwendig werden, den Druckserver zu updaten. Auch die Syntax für die Vorlagen hat sich geändert und es gibt keinen Automatismus, die Anpassungen der Vorlagen in die Version 2.x zu übernehmen.
Stefan Pichel, Juli 2021