Hi, ich bin neu hier im Forum, aber nutze Fakturama schon eine ganze Weile.
Aber folgende Frage stelle ich mir ebenfalls schon eine ganze Weile:
Ich selbst betreibe ein einfaches selbst zusammengebautes Bestellformular wo Bestellung und Kundendaten bei mir ankommen.
Die Bestellung und den Kunden erstelle ich dann in Fakturama jedoch immer noch manuell.
Könnte ich mir einen vereinfachten WebShop Connector bauen um daraus neue Kunden und die Bestellung automatisch in Faturama anzulegen?
Oder was genauso gut wäre: Kann man das Ganze über die Kommandozeile skripten?
Ich habe dazu leider noch nichts gefunden, das wäre jedoch eine große Arbeitserleichterung.
Bestimmt auch für den ein oder anderen hier.
Programmieren ob PHP, Batch o.ä. stellt dabei für mich nicht das Problem dar.
Vielen Dank schonmal!
Felix
Hallo Felix,
über die Kommandozeile geht das nicht. Aber der Weg über den Webshop-Connectore funktioniert. Du mußt Dir im Prinzip nur eine XML-Datei zusammenschrauben, die die nötigen Daten enthält. WIe die auszusehen hat siehst Du, wenn Du die Sachen aus dem Beispielshop holst. Da wird eine Logdatei im Arbeitsverzeichnis geschrieben, die kannst Du Dir mal ansehen. Für den Import gibst Du im Webshop-COnnector dann einfach den Pfad zu Deiner XML-Datei an (als URL in der Form "file://" usw.)
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Danke Ralf!
Das klingt doch sehr gut.
Sollte der voreingestellte Shop
"fakturama.sebulli.com/shop/admin/fakturama_connector_DE.php"
der Beispielshop sein, dann funktioniert dieser (gerade) offenbar nicht.
Gibt es noch einen anderen Beispielshop?
Edit: Ja gibt es natürlich. Eine frische Installation zeigts an, Fakturama hat den alten Link (siehe oben) lediglich aus den Legacy Versionen mitgeschleppt.
PS: Wenn ich es am laufen habe, erläutere ich anschließend hier meine Lösung.
Falls andere ebenfalls so eine Lösung suchen.
Viele Grüße,
Felix
Moin, der Beispielshop liegt unter http://shop.fakturama.info/admin/fakturama2_connector_DE.php.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
So, soweit habe ich es zum laufen gebracht.
Nach ein paar Tagen in meinem Arbeitsverzeichnis mit neuen Kunden und Rechnungen, die ich für andere Produkte teilweise weiterhin manuell erstelle, kommt eine Fehlermeldung (siehe Anhang) und seitdem geht meine Webshopintegration nicht mehr.
In einem frischen Arbeitsverzeichnis geht es nach wie vor problemlos. Die XML scheint also ok zu sein.
Ich vermute eine Überlagerung der IDs oder ähnliches, da komme ich nicht weiter...
Folgende Fehlermeldung erscheint:
Message: More than one result was returned from Query.getSingleResult()
Trace: org.eclipse.persistence.internal.jpa.QueryImpl.throwNonUniqueResultException(QueryImpl.java:987)
Moin,
kannst Du mir bitte mal die komplette Fehlermeldung (per PN) schicken? Irgendwo sind doppelte Einträge vorhanden, wo sie nicht hingehören.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Ich habe es jetzt mit einer frischen Datenbank getestet, wo es zunächst problemlos funktioniert. Nach einer undefinierten Zeit und neuen Bestellungen gibt es auch in der neuen Datenbank wieder die oben genannte Fehlermeldung.
Es scheint so, als gäbe es eine Art Abgleich mit einem Zeitstempel oder eine mir nicht ersichtliche ID.
Der Import von Kunden funktioniert, allerdings auch nur bis zur daran hängenden Bestellung die wie beschrieben einen Fehler verursacht.
Also gibt es nur einen Kunden je Webshop-Import...
Mittlerweile habe ich den Fehler gefunden:
Da ich Kleingewerbetreibend bin, habe ich die MwSt. bei 0% und das scheint beim Webshop-Import zu Fehlern zu führen. Bei 19% funktioniert es.
Bitte überprüfen!
hab mal einen Bug-Eintrag erstellt.
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
Habe gesehen, dass mit der Version 2.1.0 an Bug behoben wurde.
Bislang fahre ich ganz gut mit dem Workaround die 19% nachträglich abzuziehen:
item id="2" quantity="1" gross="23.80" vatpercent="19.00"
So stehen nach ein paar Klicks die 20 Euro da.
Habe es jetzt natürlich zum Test mal wie folgt umgestellt:
item id="2" quantity="1" gross="20.00" vatpercent="0.00"
Dann bekomme ich aber auch in Version 2.1.0 noch folgende Meldung im Log:
!SESSION 2020-05-13 14:57:42.207 -----------------------------------------------
eclipse.buildId=2.1.0.
java.version=1.8.0_241
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=de_DE
Command-line arguments: -os win32 -ws win32 -arch x86_64
!ENTRY com.sebulli.fakturama.common 4 0 2020-05-13 15:02:02.189
!MESSAGE c.s.f.w.WebShopImportManager.execute:196|Fehler beim Öffnen von:
https://domain/db/fakturama.php
Message: More than one result was returned from Query.getSingleResult()
Trace: org.eclipse.persistence.internal.jpa.QueryImpl.throwNonUniqueResultException(QueryImpl.java:989)
com.sebulli.fakturama.webshopimport.type.Webshopexport@17919da
Vielleicht hilft es weiter.
Viele Grüße,
Felix
Dann muß ich wahrscheinlich nochmal ran. Ich dachte, ich hätte alle Stellen gefunden 🙁
Message: More than one result was returned from Query.getSingleResult()
Irgendwie sind hier Einträge in der Datenbank doppelt (evtl. die Steuersätze?)
Viele Grüße
Ralf.
Wichtige Infos zum Posten im Forum.
Fehler gefunden?
@rheydenr
Ja es gibt bei mir hin und wieder doppelte Steuersätze. Das werden mit der Zeit auch mehr glaube ich. Die doppelten Einträge lösche ich dann hin und wieder manuell. Gut möglich, dass der Webshop-Import die Steuersätze neu erzeugt. Das habe ich noch nicht genau beobachtet.
Ich importiere allerdings wie gesagt immer nur die Einträge mit 19%
Wenn ich sonst noch irgendwie helfen kann, mache ich das gerne!
Viele Grüße,
Felix
@fxg Ich hätte zwei Fragen dazu:
- In welcher Sprache hast du die Anbindung geschrieben?
- Reicht es aus, die XML-Datei zu erzeugen bzw. zu überschreiben und dann Fakturama (neu) zu starten? Oder muss man noch irgendwas machen?
Das läuft in PHP auf einem einfachen Apache Webserver, welcher eine Anbindung zu den eigentlichen Daten hat und dann, wie du schon beschrieben hast, dynamisch eine XML-Datei erzeugt und diese wird beim Import eingelesen. Welche Programmiersprache du da nutzt ist allerdings zweitrangig.