an der onepage kasse muss ich die rechnungsadresse vor der versandadresse nachbestellen. Tatsächlich sollte die Logik umgekehrt sein als jetzt. Wenn die Lieferadresse von der Rechnungsadresse abweicht, sollten Sie sie bearbeiten können. Jetzt können Sie die Rechnungsadresse bearbeiten, wenn sie von der Lieferadresse abweicht. außerdem sollte die Rechnungsadresse auf derselben "Seite" wie die Lieferadresse erscheinen. Derzeit Schritt 1 in den Magento Checkout-Schritten.
wie würde ich das machen Vielleicht gibt es ein Plugin dafür, aber ich konnte noch kein finden.
Ich habe einen Screenshot eines deutschen Shops angehängt, der das so macht:
Ich habe die HTML-Vorlagendatei für das Abrechnungsformular gefunden und es scheint, dass dies der Ort ist, an dem sie in der Datei checkout_index_index.xml endet:
<item name="billing-step" xsi:type="array">
<item name="component" xsi:type="string">uiComponent</item>
<item name="sortOrder" xsi:type="string">2</item>
<item name="children" xsi:type="array">
<item name="payment" xsi:type="array">
<item name="component" xsi:type="string">Magento_Checkout/js/view/payment</item>
<item name="config" xsi:type="array">
<item name="title" xsi:type="string" translate="true">Payment</item>
</item>
<item name="children" xsi:type="array">
<!-- ... -->
<!-- merge your payment methods here -->
<item name="afterMethods" xsi:type="array">
<item name="component" xsi:type="string">uiComponent</item>
<item name="displayArea" xsi:type="string">afterMethods</item>
<item name="children" xsi:type="array">
<!-- merge additional data after payment methods here -->
<!-- I think here the billing form ends up -->
</item>
</item>
</item>
</item>
</item>
</item>
Aber es ist nicht speziell hier platziert und ich kann anscheinend keinen anderen Ort finden, an dem es an diesen Ort injiziert wird.
Magento/Checkout/Block/Checkout/LayoutProcessor.php
.Magento\Checkout\Block\Checkout\LayoutProcessor
Position überschreiben und ändern, wie ich denke. Nicht sicherAntworten:
Wie Aaron betonte, wird das Formular hinzugefügt
Magento/Checkout/Block/Checkout/LayoutProcessor.php
. Mit diesen Informationen entwickelte ich ein Modul mit einem After-Plugin, das sich an diesen Prozessor anschließt:app/code/<vendor>/<module>/Model/Checkout/LayoutProcessorPlugin.php
app/code/<vendor>/<module>/etc/module.xml
app/code/<vendor>/<module>/etc/di.xml
app/code/<vendor>/<module>/registration.php
Dadurch wird das Formular für die Rechnungsadresse erfolgreich neu angeordnet (und hoffentlich werden einige Probleme für andere Personen vermieden). Das Javascript (?), Das den
billing address is the same as shipping address
Mechanismus handhabt, muss noch bearbeitet werden . Da dies immer noch der "Standard" Weg funktioniert.Zusätzliche Information:
Ich habe gesehen, dass im Backend, wenn Sie einen neuen Auftrag erstellen, das Layout genau so ist, wie es gewünscht wird. Das Rechnungsformular steht "vor" dem Versandformular und die Logik ist auch umgekehrt. Wenn ich die Zeit finde, denke ich, kann es nützlich sein, den Code dort anzusehen. Möglicherweise kann es auch im Frontend verwendet werden.
quelle
<vendor>\ReorderBillingForm\Block\Checkout;
?aroundProcess
. Ich habe meinen Beitrag aktualisiert.Notice: Undefined index: billing-address-form
in LayoutProcessorPlugin.php:20
Der Fehler
Undefined index: billing-address-form
inLayoutProcessorPlugin.php
tritt auf, wenn Sie die Kasse Eigenschaft haben , „Display Rechnungsadresse On “ auf „ Zahlungsmethode “ statt „ Payment Page “.Fix mit:
Ich hätte es vorgezogen, dies als Kommentar zu DarsVaedas Post hinzuzufügen (siehe oben), aber ich scheine nicht die Erlaubnis zu haben ...
quelle