ich habe gerade das Problem entdeckt, dass eine selbsterstellte und manuell hochgeladene Rechnung nicht im Kundenkonto auftaucht.
Option unter Dokumente → Rechnungen → Dokument in „Mein Konto“ Bereich anzeigen ist aktiviert.
Bei einer in Shopware erstellten Rechnung tritt dieses Problem nicht auf.
Hey @FFWDcc,
bei uns ist das Verhalten auch genauso. Bei uns werden die Rechnungen vom Wawi hochgeladen, aber angezeigt im Kundenkonto wird nichts.
Egal ob ich eine eigene Rechnung hochlade oder diese über Shopware erstelle, keine wird angezeigt. Ich weiß nicht, ob es eine Einstellung gibt, bei der Shopware automatisch eine Rechnung erstellt, vll funktioniert diese dann.
Rechnungen von extern werden jedenfalls im Kundenkonto in unserem System auch nicht angezeigt.
ist zwar schon ein älteres Thema, aber das Problem wurde seitens Shopware so lange ignoriert, bis der Bug-Report automatisch geschlossen wurde.
Wir sind bei der aktuellen Umstellung zu SW6 auch hierüber gestolpert, konnten das Problem allerdings lösen.
In der Datenbank gibt es innerhalb der Tabelle document das Feld config, hier fehlt bei euren manuell über die Api hochgeladenen Dokumenten sicherlich folgender Eintrag: „displayInCustomerAccount“: true
Weshalb es diesen Eintrag überhaupt gibt, ist mir ein Rätsel.
Im Backend lässt sich immerhin nur für den Typ Rechnung selbst die Sichtbarkeit einstellen…
Normalerweise müsste die Api dann anhand der documentTypeId auflösen, ob das Dokument angezeigt wird oder nicht - dem ist aber nicht so.
Das Problem wäre auch gelöst, würde die Api beim Upload auf Basis dieser Backendeinstellung den Eintrag in config einfach selbst vornehmen, so ergibt sich lediglich ein Backend, welches nicht zu Api und Frontend-Verhalten passt.
Für bereits bestehende Einträge könnt Ihr versuchen, per Datenbankbefehl mittels JSON_SET den Eintrag für eure Dokumente nachträglich zu setzen.
Hoffe das hilft, sollte nochmal jemand über dieses Problem stolpern.
Da wir dies zukünftig auch gebrauchen werden (wollen zukünftig per API die Rechnungen als PDF an den Bestellungen hochladen), habe ich gleich mal bei Shopware nachgefragt. Das Verhalten tritt in der Version 6.6.6.0 nicht mehr auf.
Da wir noch die Shopware-Version 6.5.8.6 verwenden habe ich gleich auch hier nochmal nachgefragt: auch hier konnte Shopware den Fehler nicht reproduzieren.
Ich kann dies nicht mehr weitergeben an Shopware. Das müsstest ihr dann ggf. machen. Wir übertragen noch keine externen Dokumente, daher kann ich das nicht nachstellen und somit auch Shopware keine logs oder Fehlermeldungen oder sonst was näheres zukommen lassen.
Folgender Use-Case:
Wir erzeugen Rechnungen im ERP System und das ERP System verschickt die Rechnungen per Mail auch dem Kunden. Auf der Rechnung (darum gehts primär bei uns erstmal) sind Informationen enthalten, die es auch nicht möglich machen, dass diese Shopware generiert, da in Shopware nicht alle Informationen gespeichert sind.
Also: Bestellung kommt in ERP rein > Bestellung wird bearbeitet/kommissioniert > ERP generiert Rechnung > ERP versendet Rechnung an Kunden > (Zukunft) ERP sendet Rechnung zusätzlich an Shopware > wenn nun Shopware erneut die Rechnung (per API hochgeladene) an den Kunden senden würde nur damit der Kunde diese im Kundenkonto anzeigt, wäre der Kunde maximal verwirrt, da Kunde die Rechnung 2 mal digital erhält.
Es kann sinnvoll sein so wie es jetzt ist: erst Dokumente anzeigen, wenn diese Shopware an den Kunden gesendet hat. In unserem use-case allerdings nicht.
Was wäre hier eine elegante Lösung? Für mich: einstellbar ob die Dokumente ohne Versenden zum Kunden bereits angezeigt werden oder erst mit Versenden zum Kunden angezeigt werden.
Nach langem Debugging kommt für mich das hier raus:
Das Dokument hat ein CustomField (displayInCustomerAccount) mit dem die Anzeige gesteuert wird. Das Feld muss auf „true“ stehen, damit das funktioniert.
Der aufmerksame Entwickler macht dann so was: „displayInCustomerAccount“ => true und ist damit dann reingefallen, weil es halt „displayInCustomerAccount“ => „true“ sein muss, also der String „true“.
Wäre vielleicht geschickter gewesen den Wert als „show“ oder „hide“ zu definieren, war wohl ein $Junior = "true" dran