Sonntag, 3. März 2013

Ein Versuch: Abwicklung mit Fakturama

Was ist Fakturama

Fakturama ist ein Open Source Programm zur Verwaltung und Erstellung von Bestellungen, Rechnungen, Lieferscheinen, Mahnungen etc. Das Program wurde im wesentlichen von Gerd Bartelt entwickelt und verwendet Eclipse als Framework. Dadurch ist Fakturama sowohl unter Windows als auch unter Mac OS und Linux lauffähig.


Sämtliche Daten werden in einer Datenbank gespeichert. Derzeit wird nur HyperSQL als Datenbank unterstützt. Daher ist in der aktuellen Version kein Multiuser-Betrieb möglich. Die Datenbankfiles liegen in einem getrennten Verzeichnis, so dass eine Datensicherung ohne großen Aufwand möglich ist.

Durch die Verwendung von OpenOffice als Reporting Engine und die konsequente Verwendung von Platzhaltern und Templates kann die Druckausgabe ohne große Kenntnisse schnell und gleichzeitig flexible angepasst werden. Alle Druckausgaben werden im OpenOffice-Format und als PDF-Dateien in verschiedenen, nach Dokumentenarten getrennten, Verzeichnissen gespeichert.

Das Programm erwies sich in der gesamten Enrtwicklungszeit der Schnittstelle als sehr stabil. Abstürze kamen nicht vor, allenfalls wenn der Arbeitsspeicher knapp wurde, konnte keine Verbindung zu OpenOffice hergestellt werden. Der Programmablauf ist flüssig, man muss an keiner Stelle auf die Reaktion des Programms warten.

Schnittstelle

Fakturama bietet die Möglichkeit Fremddaten sowohl als CSV (Comma Separated Values) als auch als XM-Strukur zu importieren. Da mit dem strukturierterem XML-Format prinzipiell Fehler leichter erkannt werden können, wurde die Schnittstelle als XML-Export implementiert.

Grundstruktur

Die Grundstruktur eines Exports besteht aus den Blöcken products und orders. Beide Blöcken können unabhängig voneinander übertragen werden.

<?xml version="1.0" encoding="UTF-8"?><webshopexport version="1.0" >
<webshopexport version="1.0">
<webshop shop="OXID eShop" url="http://www.shop.com/connector"></webshop>
   <products>
      <product>
      ...
      </product>
   </products>
   <orders>
      <order>
      ...
      </order>
   </orders>
</webshopexport>

Die Anzahl der Bestellungen, die pro Export bzw. Import übertragen werden können, scheint nicht beschränkt zu sein, allerdings wird eine Anzahl größer als 1000 Objekte pro Import nicht empfohlen.

Jede Bestellung wird vollständig mit allen erforderlichen Daten, inklusive den Kontakt- und Adress-Daten des Bestellers, der Versandart sowie der Zahlungsart in der XML-Struktur übertragen:

<order>
   <contact>
      ...
   </contact>
   <item>
      ...
   </item>
   <item>
      ...
   </item>
   <shipping>
      ...
   </shipping>
   <payment>
      ...
   </payment>
</order>

Der Block item kann dabei so oft, wie es aufgrund der Bestellung erforderlich wiederholt werden. Die Blöcke contact, shipping und payment dürfen natürlich nur einmal je Bestellung vorkommen.

Aktueller Status

Um die Möglichkeiten der Schnittstelle und Fakturama als als Faktura-Lösung prinzipiell zu testen, wurde in Phase 1 nur der Export der Bestellungen umgesetzt und auf den Export des Artikelstamms verzichtet.

Bestelldaten

Die wichtigsten Daten zur Bestellung, wie die Bestellnummer, Datum und Uhrzeit können problemlos in Fakturama importiert werden. Der Status der Bestellung (zulässig sind die Keywords pending, processing, shipped und completed) wird leider beim Import ignoriert.

Adressdaten

Alle für die weitere Bearbeitung relevanten Kundendaten, inklusive zweier getrennter Adressen für Rechnung und Versand können übermittelt werden. Sind Liefer- und Rechnungsadresse unterschiedlich, wird dies in Fakturama durch ein kleines Warnschildchen angezeigt.

Bestellte Artikel

Für jeden Artikel der Bestellung wird ein separater Block übertragen, der alle Daten des jeweiligen Artikels enthält. Daher ist der Export des Artikelstamms für die Übertragung von Bestellungen nicht notwendig.

Versandkosten und Versandarten

Die in OXID verwendeten Versandarten und die damit verbundenen Kosten können übertragen werden.

Zahlungsarten

Ebenso kann die vom Kunden gewählte Zahlungsart übertragen werden.

Rabatte

Fakturama unterstützt nur eine prozentuale Rabattierung pro Artikel. Somit können die im OXID eShop möglichen Gesamtrabattierungen je Bestellung weder als prozentualer noch als absoluter Wert übertragen werden. Die fällige Korrektur kann man allenfalls im Rechnungsdokument manuell korrigieren. Dabei muss aber bedacht werden, dass eine erneute Erstellung der Rechnung zum Überschreiben der Korrektur führen kann.

Immerhin erkennt Fakturama im Fall einer Rabattierung die Differenz zwischen Gesamtrechnungsbetrag und den Einzelbeträgen und warnt den Anwender bei Import in Form einer MessageBox.

Import-Parameter

Zurück zur Import-Schnittstelle: Um die Anzahl der zu exportierenden Bestellungen gezielt steuern zu können, wurden im Connector zwei URL-Parameter implementiert, die eine Limitierung des Export nach Datum oder nach Anzahl der Bestellungen ermöglichen.

Beschränkung auf Export aller Bestellungen im Jahr 2013:
http://www.myshop.com/ox2fakturama/xmlexport.php?year=2013


Beschränkung auf Export der letzten 100 Bestellungen:
http://www.myshop.com/ox2fakturama/xmlexport.php?limit=100

Offene Punkte

Wo Licht ist, ist auch immer Schatten. Nach den recht positivem und schnellen Projektfortschritt, war die Erkenntnis, dass das Produkt derzeit nicht mehr vom Autor weiterentwickelt wird, ein ziemlicher Tiefschlag. Der Autor hat im Forum verlauten lassen ("Mitstreiter gesucht"), dass er an dem Projekt nicht mehr arbeitet, die aktuellste Version von Fakturama wurde am 30. Dezember 2011 fertiggestellt.

Wie bei Import zuvor schon kurz beschrieben, sind folgende, fehlende Funktionen aufgefallen
  • Kein Rabatt für die gesamte Bestellung möglich
  • Kein absoluter Rabatt (z.B. 5,- € Abzug vom Gesamtbetrag)
  • Keine Übertragung von Gutscheinen direkt möglich, allenfalls als Artikel mit negativem Preis
  • Keine Übertragung/Aktualisierung des Bestellstatus

Zusammenfassung

Fakturama ist sehr übersichtlich aufgebaut und regelrecht selbsterklärend. Das Konzept OpenOffice für das Drucken zu verwenden macht die Lösung sehr flexibel.

Die fehlende Möglichkeit eine gängige Datenbank, wie etwa MySQL, zu verwenden, mag noch tragbar sein.

Es fehlen nicht mehr sehr viele Funktionen, diese sind vermutlich auch nicht allzu aufwändig, aber diese fehlende Funktionalität insbesondere beim Import von Bestellungen, verhindern wahrscheinlich in vielen Fällen den praktischen Einsatz.

Keine Kommentare:

Kommentar veröffentlichen