Semua tutorial hanya mencakup penambahan bidang, tetapi nilai penyimpanan dari arsip ini dilewati #mindblown. Saya tidak tahu mengapa, itu bagian paling penting dari menambahkan bidang atau formulir apa pun.
Saya mencoba mengikuti dokumen Magento , tapi ... itu menyebalkan.
Untuk tujuan pengujian saya mencoba menambahkan bidang lain ke alamat pengiriman, hanya untuk mengabaikan ruang lingkup kustom, set data kustom, penyedia data kustom dan hal-hal tidak berdokumen lainnya, yang terlihat terlalu aneh bagi saya.
Saya tidak tahu apa artinya bentuk itu "statis" atau "dinamis". Bagi saya semua formulir checkout dibuat secara dinamis di atas templat KnockoutJS, tapi ... ketika saya mencoba cara "statis", saya dapat menambahkan input di sini (jadi ini bentuk statis atau tidak?).
Pertama saya mencoba untuk men-debug mengapa Knockout yang dapat diamati mengabaikan bidang saya selama parsing dan mengirim data. Saya menemukan bahwa bidang saya memiliki name
parameter kosong , tetapi saya tidak bisa mengelola cara untuk memperbaiki masalah ini. IMO harus diteruskan ke renderer komponen UI melalui inputName
parameter, sama seperti opsi lain seperti disabled
, placeholder
dll. (Parameter lain berfungsi dengan baik, saya memeriksa konfigurasi yang dihasilkan dari XML saya untuk inisialisasi modul modul dan terlihat bagus untuk saya)
Kedua saya mencoba menggunakan cara "dinamis" dengan membuat plugin dengan LayoutProcessor
dan mengirimkan data yang persis sama ... dan sekarang saya memiliki bidang dengan name
s, tetapi mengirim masih tidak berfungsi sama sekali.
Setelah menggali ke dalam JS saya menemukan bahwa mempersiapkan permintaan ini disimpan dalam module-checkout/view/frontend/web/js/model/shipping-save-processor/default.js
file, yang tergantung pada di module-checkout/view/frontend/web/js/model/quote.js
mana Knockout diamati dapat didefinisikan / dibuat.
Entah bagaimana module-checkout/view/frontend/web/js/model/address-converter.js
memperbarui ini dapat diamati dan tergantung module-checkout/view/frontend/web/js/model/new-customer-address.js
, di mana saya akhirnya menemukan beberapa opsi konfigurasi yang menarik - daftar semua bidang alamat.
Ketika saya menambahkan bidang saya di sini, skrip mulai parsing dan mengirimkannya, OFC saya mendapatkan 500, b / c backend tidak mengenalinya ... (jangan tanya, saya bukan pengembang backend)
Jadi inilah pertanyaan saya:
- Ini cara yang tepat untuk menangani jenis penyesuaian ini? (b / c terlihat aneh bagi saya)
- Bagaimana cara mengirim nilai bidang yang tidak terkait dengan alamat baru? Saya tidak melihat konfigurasi serupa di mana pun. Dalam kasus saya, saya ingin mengirim komentar pesanan (textarea) dan permintaan faktur (kotak centang). Keduanya tidak boleh disimpan sebagai alamat, karena beberapa pengguna mungkin ingin menyimpan alamat ini untuk digunakan di masa mendatang.
- Apakah ada dokumentasi tentang formulir "statis" dan "dinamis" atau beberapa contoh / perbandingan? Layak untuk dipikirkan seperti ini?
Pertanyaan eksistensial tambahan:
- Mengapa ini sangat tidak konsisten? Mengapa saya harus mendefinisikan banyak parameter dalam file XML / PHP, sementara Magento sama sekali hanya dapat membuat input dan kemudian saya harus menangani semuanya sendiri?