Magento 2 – Ändern der Reihenfolge der Felder im Checkout

Ein Problem, welches wir mit deutschen Online-Shops immer wieder haben, wenn wir Magento einrichten, ist unter anderem die falsche Reihenfolge der Adressfelder im Kassenbereich.

Selbstverständlich kann man die Felder auch in der Reihenfolge StadtPostleitzahl lassen, das führt jedoch immer wieder dazu, dass Kunden die Felder in der ihnen bekannten Reihenfolge befüllen und man so dann beim erstellen von (automatischen) Versandetiketten Probleme bekommt.

Also tauschen wir die Felder wie immer in die gewünschte Reihenfolge. In Magento 1 war dies sehr einfach zu erledigen, da man nur die richtige PHTML raussuchen musste und die Felder in die korrekte Reihenfolge gebracht hat. in Magento 2 geht es ein wenig anders und zwar indem wir die Datei checkout_index_index.xml erstellen und im Ordner app/design/frontend/[Theme]/[Bezeichnung]/Magento_Checkout/layout/ ablegen.

Diese Datei enthält dann folgenden Inhalt:

<?xml version="1.0"?>

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
      <referenceBlock name="checkout.root">
          <arguments>
              <argument name="jsLayout" xsi:type="array">
                  <item name="components" xsi:type="array">
                      <item name="checkout" xsi:type="array">
                          <item name="children" xsi:type="array">
                              <item name="steps" xsi:type="array">
                                  <item name="children" xsi:type="array">
                                      <item name="shipping-step" xsi:type="array">
                                          <item name="children" xsi:type="array">
                                              <item name="shippingAddress" xsi:type="array">
                                                  <item name="children" xsi:type="array">
                                                      <!-- The name of the form the field belongs to -->
                                                      <item name="shipping-address-fieldset" xsi:type="array">
                                                          <item name="children" xsi:type="array">
                                                              <item name="city" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">600</item>
                                                              </item>
                                                              <item name="region_id" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">800</item>
                                                              </item>
                                                              <item name="street" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">4</item>
                                                              </item>
                                                              <item name="postcode" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">500</item>
                                                              </item>
                                                              <item name="country_id" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">700</item>
                                                              </item>
                                                              <item name="lastname" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">2</item>
                                                              </item>
                                                              <item name="firstname" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">1</item>
                                                              </item>
                                                              <item name="company" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">3</item>
                                                              </item>
                                                              <item name="telephone" xsi:type="array">
                                                                  <item name="sortOrder" xsi:type="string">900</item>
                                                              </item>
                                                          </item>
                                                      </item>
                                                  </item>
                                              </item>
                                          </item>
                                      </item>
                                  </item>
                              </item>
                          </item>
                      </item>
                  </item>
              </argument>
          </arguments>
      </referenceBlock>
    </body>
</page>

Nachdem die Datei erstellt und hochgeladen ist, am besten noch folgenden SSH-Befehl ausführen:

php bin/magento cache:clean

Anschließend sind die Felder dann in der richtigen Reihenfolge.

Auffällig ist eine Sache: “street” wird nicht korrekt erkannt. Vergibt man die Reihenfolge normal von 1-8 wird die Adress- / Straßenzeile(n) immer am Ende, hinter allen anderen Adressfeldern auftauchen. Vergibt man aber allen Feldern, die hinter der Straße erscheinen sollen eine Zahl größer / gleich 100 und den Feldern, die vor der Straße auftauchen sollen eine Zahl kleiner / gleich 50, ist die Reihenfolge korrekt. Den eigenen Eintrag für street oben in der xml kann man sich auch klemmen.

Verwendet in Magento CE 2.4.2

Published by Covos

Seit 2009 arbeite ich nun intensiv mit Magento. Begonnen habe ich mit der Erstellung und dem Betrieb von B2C-Shops. Ausgeweitet wurde dies durch meine Tätigkeit im Logistik-Sektor. Hieraus entstanden erste spezialisierte B2E-Systeme. Heute arbeite ich tag-täglich mit spannenden B2C-, B2B- und B2E-Projekten und berichte in diesem Blog über Herausforderungen und gebe Insider-Tipps.

Leave a Reply

Your email address will not be published. Required fields are marked *