thelittlebug hat geschrieben:Mich würden da ja auch einige Details brennend interessieren
Hallo Herby!
Also hier ein paar Punkte, die man beachten sollte oder die einem später das Leben leichter machen.
Internationalisierung
Schon von Anfang an daran denken, dass nur ein kleiner Teil der Welt "deutsch" spricht. Für Python empfiehlt sich das Modul "gettext".
Mehrwertsteuer
Es gibt viele Länder, in denen nicht nur ein MwSt-Satz für einen Artikel verwendet werden muss. Es gibt sogar Länder, die mehrere Steuern auf einen Artikel drauf schlagen und diese Steuern müssen auf den Rechnungen explizit aufgeschlagen werden. Also muss nicht nur der MwSt-Satz pro Rechnungszeile, sondern auch noch eine andere Steuer angezeigt werden.
Netto nicht Brutto
Die Artikelpreise sollten in der Datenbank immer "Netto" gespeichert werden. Niemals "Brutto". Warum? Weil ein Artikel je nach Verwendung mit verschiedenen MwSt-Sätzen belegt werden kann. Wenn man den Brutto-Preis in der Datenbank speichert, dann hat man Probleme.
Zahlmittel
Es gibt nicht nur Bargeld oder Kreditkarte. Es gibt "Gutscheine mit Geldwert", "Gutscheine mit Warenwert" z.B. im Wert eines T-Shirts (in verschiedenen Größen), ...
Man sollte also Zahlmittel nicht "fest" ins Programm einbauen, sondern diese dynamisch aus der Datenbank laden.
Fremdwährung
Man muss bei der Verwendung von Fremdwährung den Kurs zum Zeitpunkt der Verwendung mitspeichern. Kurse ändern sich ständig.
Touchscreen oder doch nicht?
Eine Kassen-Arbeitsstation muss entweder mit der Tastatur oder mit Hilfe eines Touchscreens bedient werden können. Es ist nicht ideal, wenn ein Tagesabschluss nur mit Tastatur bedient werden kann, wenn der Kassencomputer nur mit Touchscreen augestattet ist.
Es ist aber ebenfalls nicht ideal, wenn man zum Bedienen der Kassenoberfläche eine Maus braucht.
Alle Dinge, die zum Bonieren wichtig sind, müssen also einmal nur mit Tastatur und einmal nur mit der Maus/Touchscreen bedienbar sein.
Authentifizierung und Rechtevergabe
Was bei einem einfachen Kassensystem, das nie mit anderen Arbeitsstationen oder Servern zusammenarbeiten wird, kein Problem ist, ist im Falle einer Vernetzung doppelt wichtig.
Man muss sicher stellen, dass ein Mitarbeiter nicht, unabsichtlich oder böswillig, einem anderen Mitarbeiter Artikel hinzufügen oder stornieren kann.
Man muss sicher stellen, dass die Mitarbeiter einer Filiale keine Daten von anderen Filialen abfragen können.
Man muss sicher stellen, dass nur privilegierte Mitarbeiter Einstellungen ändern können.
Man muss sicher stellen, dass nur privilegierte Mitarbeiter einen Bon stornieren dürfen. Das kann z.B. der Store-Leiter sein.
Idealerweise überlässt man die Authentifizierung dem Datenbanksystem. Es ist nicht ideal, wenn man diese selber in die Hand nimmt. Das habe ich persönlich erst zu spät gemerkt.
Mitarbeiterauthentifizierung auf verschiedene Arten ermöglichen: Keine Authentifizierung, einfache Auswahl eines Namens, Auswahl eines Namens und Eingabe eines Passwortes, Mitarbeiterkarte, Kellner-Steckschlüssel, ...
Jede Aktivität muss mitgeloggt werden
Ein Löschen einer Datenzeile gibt es nicht. Es gibt nur Stornos. (Detailstornos, Bonstornos,...)
Reporting
- Renner oder Penner
- Wer storniert sehr oft?
- Umsätze
- ...
Berichte müssen ausgedruckt werden können und sollten auch irgendwie abgespeichert werden können. (z.B. als PDF)
Bondruck
Lass den Kunden kontrollieren. Kein Verkauf ohne ausgedruckten Bon. So kann vermieden werden, dass nur zum Schein etwas in die Kassa eingegeben wird, aber nie zur Verrechnung kommt. Gemeinsam mit einer Übersicht über die Bonstornos und die Detailstornos, wird dadurch ein Bescheißen durch Mitarbeiter erschwert.
Laufende Nummern
Laufende Nummern für Bons müssen irgendwann mal wieder auf 0 gestellt werden. Entweder monatlich, jährlich, oder manuell.
Frei definierbare Felder
Jeder Kaufmann hat andere Informationen, die er/sie zu einem Artikel hinzuschreiben möchte.
Branchenunterschiede
Es gibt Branchen, die für einen Artikel, der sich nur durch Farbe oder Größe unterscheidet, nur einen einzigen Barcode vergeben. Das ist zwar blöd, muss aber auch irgendwie gehandelt werden.
Bei Schuhen oder bei Kleidung z.B. muss man in diesem Fall nach dem Einscannen des Barcodes, nach Farbe oder Größe fragen. Bei unterschiedlichien Farben bleibt der Preis meist gleich. Aber bei unterschiedlichen Größen ändert sich dadurch auch der Preis einer Ware.
Rabatte und Kundenkarten
Kunden können Rabatte bekommen. Diese sollten automatisch vom Programm aktiviert werden. Es gibt Mengenrabatte, Naturalrabatte, "Nimm 3 zahl 2"-Rabatte, usw.
Es genügt nicht, nur einen einzelnen Artikel beim Eingeben zu analysieren. Man muss immer auch alle anderen Bondetails durchsuchen um die exakte Menge für die Rabatte herauszufinden.
Ein Artikel kann von mehreren Rabatten betroffen sein. (Feiertagsrabatt, Ausverkaufsrabatt, einfacher Mengenrabatt, spezieller Kundenrabat, usw) Es muss immer der für den Kunden günstigste Rabatt heran gezogen werden. Rabatte dürfen nicht aufsummiert werden.
Man muss auch darauf achten, dass es verschieden hohe Rabatte gibt. Nicht nur einen Rabatt vorsehen. Mehrere Rabattarten in der Datenbank speichern lassen. Vergebene Rabattart mit dem Bon oder mit dem Bondetail mitspeichern.
Rabatte auf den ganzen Bon (Pauschalrabatte) müssen sich proportional mindernd auf die MwSt-Beträge auswirken.
Es darf also nicht sein, dass ich etwas um 10 Euro verkaufe, aber für 100 Euro Steurn zahle.
Rückgabe von Artikeln
Die Rückgabe von Artikeln muss geregelt werden. Warum hat der Kunde den Artikel zurück gegeben? Bekommt er dafür einen Gutschein? Wird ihm das Geld zurück erstattet?
Einfache Oberfläche für Rückgaben erstellen. Mit einer Buchung eines Artikels mit Minusmenge geben sich größere Händler nicht zufrieden.
Es gibt noch viele Dinge, die man beachten muss, aber jetzt muss ich mich um meine Arbeit kümmern.
lg
Gerold