Ändern Sie die Position der Rechnungsadresse in Magento 2


7

Ich möchte die Standardposition der Rechnungsadresse ändern, die unter den Zahlungsinformationen steht. Ich benötige sie vor der Versandadresse (wie Magento 1).

Hat jemand eine Idee, um es zu erreichen, bitte helfen Sie?


1
Müssen eigene Anpassung schreiben. Wir machen das auch.
Seeni

Es gibt keine einfache Lösung, um dies zu erreichen. Sie müssen eine benutzerdefinierte Erweiterung schreiben, mit der Sie die Checkout-Schritte anpassen können.
Klict



Hinweis: Undefinierter Index: Rechnungsadressformular in LayoutProcessorPlugin.php: 20 bei Verwendung der im obigen Thread angegebenen Erweiterung.
Vishal

Antworten:


1

Wir müssen die applyBillingAddressFunktion in vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.jsZeile 231 ändern :

Und kommentieren Sie diesen Teil aus:

/*                if (shippingAddress &&
                    shippingAddress.canUseForBilling() &&
                    (shippingAddress.isDefaultShipping() || !quote.isVirtual())
                ) {
                    selectBillingAddress(quote.shippingAddress());
                }  
*/
And commend out code around line 34:

/*
           if (!quote.billingAddress()) {
               selectBillingAddressAction(quote.shippingAddress());
           }  
*/

Wir können die Javascript-Kerndateien selbst jedoch nicht ändern (Best Practices für Magento 2!).

Stattdessen erstellen wir ein einfaches Magento 2-Modul und erstellen eine Datei app/code/Vendor/Module/view/frontend/requirejs-config.jsmit folgendem Inhalt:

var config = {
map: {
'*': {
'Magento_Checkout/js/model/checkout-data-resolver':
     'Vendor_Module/js/checkout-data-resolver'
,'Magento_Checkout/js/model/shipping-save-processor/default':
     'Vendor_Module/js/shipping-save-processor/default'
 }
}};

Dann kopieren vendor/magento/module-checkout/view/frontend/web/js/model/checkout-data-resolver.jszu app/code/Vendor/Module/view/frontend/web/js/checkout-data-resolver.jsund kommentieren Sie inapp/code/Vendor/Module/view/frontend/web/js/checkout-data-resolver.js around line 231:

applyBillingAddress: function () {var Versandadresse;

if (quote.billingAddress()) {
    selectBillingAddress(quote.billingAddress());

    return;
}  
shippingAddress = quote.shippingAddress();

/*if (shippingAddress &&
    shippingAddress.canUseForBilling() &&
    (shippingAddress.isDefaultShipping() || !quote.isVirtual())
) {
    selectBillingAddress(quote.shippingAddress());
}*/

Und kopieren Sie vendor/magento/module-checkout/view/frontend/web/js/model/shipping-save-processor/default.jsnach app/code/Vendor/Module/view/frontend/web/js/shipping-save-processor/default.jsund inapp/code/Vendor/Module/view/frontend/web/js/shipping-save-processor/default.js comment out code around line 34:

'use strict';

return {
    saveShippingInformation: function () {
        var payload;

        /*if (!quote.billingAddress()) {
            selectBillingAddressAction(quote.shippingAddress());
        }*/

        payload = {
            addressInformation: {
                shipping_address: quote.shippingAddress(),
                billing_address: quote.billingAddress(),

Nach diesem Löschordner pub/static/frontendregenerieren Sie Ihren statischen Inhalt:

php bin/magento setup:static-content:deploy

Leeren Sie den Magento-Cache und Sie sollten fertig sein.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.