pada checkout di tempat saya harus memesan ulang alamat penagihan sebelum alamat pengiriman. sebenarnya logika harus sebaliknya dari sekarang. jika alamat pengiriman berbeda dari alamat penagihan, Anda harus dapat mengeditnya. sekarang Anda dapat mengedit alamat penagihan jika berbeda dari alamat pengiriman. juga alamat penagihan akan muncul pada "halaman" yang sama dengan alamat pengiriman. Saat ini langkah 1 dalam langkah checkout Magento.
bagaimana saya melakukan ini? mungkin ada plugin untuk ini tetapi saya belum bisa menemukannya.
Saya melampirkan tangkapan layar toko Jerman yang melakukannya seperti ini:
Saya menemukan file template .html untuk formulir penagihan dan sepertinya ini adalah tempat di mana ia berakhir di checkout_index_index.xml:
<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>
Tapi itu tidak secara khusus ditempatkan di sini dan aku tidak bisa menemukan tempat lain di mana ia disuntikkan ke tempat itu.
Magento/Checkout/Block/Checkout/LayoutProcessor.php
.Magento\Checkout\Block\Checkout\LayoutProcessor
& mengubah posisi seperti yang saya pikirkan. Tidak yakinJawaban:
Seperti yang ditunjukkan Harun formulir ditambahkan
Magento/Checkout/Block/Checkout/LayoutProcessor.php
. Dengan informasi ini saya mengembangkan modul dengan plugin setelah yang menghubungkan ke prosesor itu: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
Ini berhasil mengatur ulang formulir alamat penagihan (dan mudah-mudahan menghemat beberapa sakit kepala untuk orang lain). Tetapi masih ada pekerjaan yang diperlukan pada javascript (?) Yang menangani
billing address is the same as shipping address
mekanisme. Karena ini masih bekerja dengan cara "standar".Informasi tambahan:
Saya melihat bahwa di backend jika Anda membuat tata letak baru persis seperti yang diinginkan. Bentuk penagihan adalah "sebelum" bentuk pengiriman dan logikanya juga sebaliknya. Jika saya dapat menemukan waktu saya pikir mungkin bermanfaat untuk melihat kode di sana. Mungkin dimungkinkan untuk menggunakannya di frontend juga.
sumber
<vendor>\ReorderBillingForm\Block\Checkout;
?aroundProcess
. Saya memperbarui posting saya.Notice: Undefined index: billing-address-form
in LayoutProcessorPlugin.php:20
Kesalahan
Undefined index: billing-address-form
dalamLayoutProcessorPlugin.php
terjadi ketika Anda memiliki checkout properti "Alamat Tampilan Billing Pada " set ke " Cara Pembayaran " bukan " Pembayaran Halaman ".Perbaiki dengan:
Saya lebih suka menambahkan ini sebagai komentar untuk posting DarsVaedas (lihat di atas), tetapi saya sepertinya tidak memiliki izin ...
sumber