Ä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?

Vishal
quelle
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
1
Mögliches Duplikat, wie man die Rechnungsadresse vor der
Lieferadresse nachbestellt
magento.stackexchange.com/questions/167526/… überprüfen Sie dies
Manoj Deswal
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.

MehulKanjariya
quelle