Tất cả các hướng dẫn chỉ bao gồm thêm một trường, nhưng việc lưu giá trị của tệp này được bỏ qua #mindblown. Tôi không biết tại sao, đó là phần quan trọng nhất của việc thêm bất kỳ trường hoặc biểu mẫu nào.
Tôi đã cố làm theo tài liệu Magento , nhưng ... nó thật tệ.
Đối với mục đích thử nghiệm, tôi cố gắng thêm các trường khác vào địa chỉ giao hàng, chỉ cần bỏ qua phạm vi tùy chỉnh, bộ dữ liệu tùy chỉnh, nhà cung cấp dữ liệu tùy chỉnh và các công cụ không có giấy tờ khác, có vẻ quá kỳ lạ đối với tôi.
Tôi không biết ý nghĩa của hình thức đó là "tĩnh" hay "động". Đối với tôi, tất cả các hình thức thanh toán đều được xây dựng linh hoạt trên các mẫu KnockoutJS, nhưng ... khi tôi thử cách "tĩnh", tôi có thể thêm đầu vào ở đây (vì vậy nó có phải là dạng tĩnh hay không?).
Đầu tiên tôi cố gắng gỡ lỗi tại sao các thiết bị quan sát Knockout chỉ bỏ qua các trường của tôi trong quá trình phân tích và gửi dữ liệu. Tôi thấy rằng các trường của tôi có name
tham số trống , nhưng tôi không thể quản lý cách khắc phục vấn đề này. IMO nên được chuyển đến trình kết xuất thành phần UI thông qua inputName
tham số, giống như bất kỳ tùy chọn nào khác disabled
, placeholder
v.v. (các tham số khác hoạt động tốt, tôi đã kiểm tra cấu hình được tạo từ XML của mình để kiểm tra khởi tạo mô-đun và có vẻ tốt cho tôi)
Thứ hai, tôi đã cố gắng sử dụng cách "động" với việc tạo plugin với LayoutProcessor
và truyền chính xác cùng một dữ liệu ... và bây giờ tôi có các trường có name
s, nhưng gửi vẫn không hoạt động.
Sau khi đào sâu vào JS tôi thấy rằng việc chuẩn bị yêu cầu này được duy trì trong module-checkout/view/frontend/web/js/model/shipping-save-processor/default.js
tệp, điều này phụ thuộc vào module-checkout/view/frontend/web/js/model/quote.js
nơi mà các quan sát Knockout được xác định / tạo.
Bằng cách nào đó module-checkout/view/frontend/web/js/model/address-converter.js
cập nhật các quan sát này và phụ thuộc vào module-checkout/view/frontend/web/js/model/new-customer-address.js
, nơi cuối cùng tôi đã tìm thấy một số tùy chọn cấu hình thú vị - danh sách tất cả các trường địa chỉ.
Khi tôi thêm các trường của mình vào đây, các tập lệnh bắt đầu phân tích cú pháp và gửi chúng, OFC tôi nhận được 500, b / c phụ trợ không nhận ra chúng ... (đừng hỏi, tôi không phải là nhà phát triển phụ trợ)
Vì vậy, đây là câu hỏi của tôi:
- Đó là một cách đúng đắn để xử lý loại tùy chỉnh này? (b / c có vẻ kỳ lạ đối với tôi)
- Làm cách nào để gửi giá trị của các trường không liên quan đến địa chỉ mới? Tôi không thấy cấu hình tương tự ở bất cứ đâu. Trong trường hợp của tôi, tôi muốn gửi bình luận đơn hàng (textarea) và yêu cầu hóa đơn (hộp kiểm). Cả hai không nên được lưu dưới dạng địa chỉ, vì một số người dùng có thể muốn lưu địa chỉ này để sử dụng trong tương lai.
- Có tài liệu nào về các hình thức "tĩnh" và "động" hoặc một số ví dụ / so sánh không? Nó đáng để suy nghĩ về nó theo cách này?
Câu hỏi hiện sinh bổ sung:
- Tại sao điều này là không phù hợp? Tại sao tôi phải xác định hàng tấn tham số trong các tệp XML / PHP, trong khi Magento hoàn toàn chỉ có thể hiển thị đầu vào và sau đó tôi phải tự xử lý mọi thứ?