2
Magento 2-如何将自定义字段添加到结帐并发送
所有教程都只涉及添加字段,但是该文件的保存值被跳过#mindblown。我不知道为什么,这是添加任何字段或表单的最重要部分。 我尝试关注Magento文档,但是...太糟了。 出于测试目的,我尝试将其他字段添加到收货地址,只是忽略自定义范围,自定义数据集,自定义数据提供程序和其他未记录的内容,这对我来说太奇怪了。 我不知道这种形式是“静态”还是“动态”。对我来说,所有结帐表单都是在KnockoutJS模板之上动态构建的,但是...当我尝试“静态”方式时,我可以在此处添加输入(所以它是静态表单还是不是静态表单?)。 首先,我尝试调试为什么Knockout可观察对象在解析和发送数据时只会忽略我的字段。我发现我的字段的name参数为空,但是我无法解决此问题。IMO应该通过inputName参数将其传递给UI组件渲染器,与其他任何选项(例如disabled,placeholder等等)相同(其他参数工作正常,我检查了从XML生成的配置,以检出模块初始化,对我来说很不错) 其次,我尝试使用“动态”方式来创建插件LayoutProcessor并传递完全相同的数据……现在我具有names 字段,但是发送仍然根本不起作用。 深入研究JS之后,我发现准备此请求的内容保存在module-checkout/view/frontend/web/js/model/shipping-save-processor/default.js文件中,具体取决于在module-checkout/view/frontend/web/js/model/quote.js哪里定义/创建了可观察的观察项。 我终于以某种方式module-checkout/view/frontend/web/js/model/address-converter.js更新了这个可观察变量,并依赖于module-checkout/view/frontend/web/js/model/new-customer-address.js,在那里我终于找到了一些有趣的配置选项-所有地址字段的列表。 当我在此处添加字段时,脚本开始解析并发送它们,OFC得到500,b / c后端无法识别它们……(不要问,我不是后端开发人员) 所以这是我的问题: 这是处理这种类型的自定义的正确方法吗?(b / c对我来说很奇怪) 如何发送与新地址无关的字段的值?我在任何地方都没有看到类似的配置。就我而言,我想发送订单注释(文本区域)和发票请求(复选框)。两者都不应该另存为地址,有些用户可能想要保存此地址以备将来使用。 是否有关于“静态”和“动态”表格的文档或一些示例/比较?值得这样思考吗? 附加的存在性问题: 为什么如此不一致?为什么我必须在XML / PHP文件中定义大量参数,而Magento根本只能呈现输入,然后我必须自己处理所有事情?