1-customer_addressにeav属性を追加します
$attributesInfo = [
'reference' => [
'label' => 'Reference',
'type' => 'varchar',
'input' => 'text',
'position' => 100,
'visible' => true,
'required' => false,
],
];
foreach ($attributesInfo as $attributeCode => $attributeParams) {
$customerSetup->addAttribute('customer_address', $attributeCode, $attributeParams);
}
2-モジュールに拡張属性を追加しました
<extension_attributes for="Magento\Quote\Api\Data\AddressInterface">
<attribute code="reference" type="string"/>
</extension_attributes>
requirejs-config.jsで、JavaScriptファイルをオーバーライドして参照フィールドを追加します
var config = {
"map": {
"*": {
"Magento_Checkout/js/model/shipping-save-processor/default" : "Agr_Checkout/js/shipping-save-processor-default-override",
"Magento_Customer/js/model/customer/address" : "Agr_Checkout/js/model/customer/address",
"Magento_Checkout/js/model/address-converter" : "Agr_Checkout/js/model/address-converter",
"Magento_Checkout/js/model/new-customer-address" : "Agr_Checkout/js/model/new-customer-address"
}
}
3-参照フィールドがアドレスで送信していることを確認します
4-配送情報を送信すると([次へ]をクリック)このエラーが表示されます:"プロパティ"参照 "には、クラス" Magento \ Quote \ Api \ Data \ AddressInterface "に対応するセッターがありません。
すでに以下を実行しています。-magentoキャッシュを消去してフラッシュします-setup:upgradeを実行します-setup:di:compileを実行します
私が間違っているのは何ですか?
以下の答えは機能しましたか?
—
スティービーG
address_idを使用してupdate de referenceのスクリプトを実行し、ハードSQL挿入によって解決しました。間違っていることはわかっていますが、少し急ぎました。後でテストし、フィードバックを提供します。
—
-allamgr
私はあなたが非難されることはないと思います...明らかに、あなたはエンタープライズでcustom_attributesを追加することができるだけであり、これまでのところ「簡単にカスタマイズ可能なチェックアウト」方法を発見していません。
—
LM_Fielding
更新はありますか?
—
Magento2デベロッパー
@allamgr私はまた、新しい顧客アドレス属性で同じ問題に直面しています、あなたはこの解決策を得ましたか?これについてのあなたの考えを教えてください。prnt.sc/iovkp2
—
ナガラジュK