In allen Tutorials wird nur das Hinzufügen von Feldern behandelt. Das Speichern des Werts dieser Dateien wird jedoch übersprungen. Ich weiß nicht warum, es ist der wichtigste Teil beim Hinzufügen von Feldern oder Formularen.
Ich habe versucht, Magento-Dokumenten zu folgen , aber ... es ist scheiße.
Zu Testzwecken versuche ich, der Lieferadresse weitere Felder hinzuzufügen, nur um benutzerdefinierte Bereiche, benutzerdefinierte Datensätze, benutzerdefinierte Datenanbieter und andere undokumentierte Dinge zu ignorieren, was für mich zu seltsam aussieht.
Ich habe keine Ahnung, was bedeutet, dass diese Form "statisch" oder "dynamisch" ist. Für mich werden alle Checkout-Formulare dynamisch über KnockoutJS-Vorlagen erstellt, aber ... wenn ich es auf "statische" Weise versuche, kann ich hier Eingaben hinzufügen (also handelt es sich um ein statisches Formular oder nicht?).
Zuerst versuche ich zu debuggen, warum Knockout-Observables meine Felder beim Parsen und Senden von Daten einfach ignorieren. Ich habe festgestellt, dass meine Felder leere name
Parameter enthalten, kann dieses Problem jedoch nicht beheben. IMO sollte es UI - Komponente Renderer über geben werden inputName
Parameter, wie alle anderen Optionen wie disabled
, placeholder
usw. (andere Parameter funktioniert gut, ich überprüft Konfiguration erzeugt von meinem XML zur Kasse Modulinitialisierung und sieht gut aus für mich)
Zweitens habe ich versucht, "dynamisch" zu arbeiten, indem ich Plugins mit LayoutProcessor
denselben Daten erstellte und diese weitergab ... und jetzt habe ich Felder mit name
s, aber das Senden funktioniert überhaupt nicht.
Nachdem ich mich in JS vertieft hatte, stellte ich fest, dass die Vorbereitung dieser Anfrage in einer module-checkout/view/frontend/web/js/model/shipping-save-processor/default.js
Datei gespeichert ist, die davon abhängt, module-checkout/view/frontend/web/js/model/quote.js
wo Knockout-Observables definiert / erstellt werden.
Irgendwie module-checkout/view/frontend/web/js/model/address-converter.js
aktualisieren diese Observables und hängen davon ab module-checkout/view/frontend/web/js/model/new-customer-address.js
, wo ich endlich einige interessante Konfigurationsmöglichkeiten gefunden habe - Liste aller Adressfelder.
Wenn ich meine Felder hier hinzufüge, fangen die Skripte an, sie zu analysieren und zu senden. OFC, ich erhalte 500, das b / c-Backend erkennt sie nicht ... (nicht fragen, ich bin kein Backend-Entwickler)
Hier kommen meine Fragen:
- Es ist eine richtige Art, mit dieser Art von Anpassung umzugehen? (B / C sieht komisch aus für mich)
- Wie werden Werte von Feldern gesendet, die sich nicht auf neue Adressen beziehen? Ich habe nirgendwo eine ähnliche Konfiguration gesehen. In meinem Fall möchte ich einen Bestellkommentar (Textbereich) und eine Rechnungsanfrage (Kontrollkästchen) senden. Beides sollte nicht als Adresse gespeichert werden, b / c einige Benutzer möchten diese Adresse möglicherweise für die zukünftige Verwendung speichern.
- Gibt es eine Dokumentation über "statische" und "dynamische" Formulare oder einige Beispiele / Vergleiche? Lohnt es sich so darüber nachzudenken?
Zusätzliche existenzielle Frage:
- Warum ist das so inkonsistent? Warum muss ich Unmengen von Parametern in XML / PHP-Dateien definieren, während Magento überhaupt nur eine Eingabe rendern kann und ich dann alles selbst handhaben muss?