Magentoの最新バージョンにアップグレードしてから、チェックアウトページに顧客のミドルネーム/イニシャルを求める新しいエントリが表示されていることに気付きました。
チェックアウトページからエントリ「ミドルネーム/イニシャル」を削除するにはどうすればよいですか?
Magentoの最新バージョンにアップグレードしてから、チェックアウトページに顧客のミドルネーム/イニシャルを求める新しいエントリが表示されていることに気付きました。
チェックアウトページからエントリ「ミドルネーム/イニシャル」を削除するにはどうすればよいですか?
回答:
Magento CE 1.9.2.0からMagento CE 1.9.2.1にアップデートするときに同じ問題が発生しました。更新によりミドルネームが表示されましたが、管理者を確認したときにSystem > Configuration > Customers > Customer Configuration > Name and Address Options
、「ミドルネームを表示(初期)」設定にすでに「いいえ」が表示されていました。[構成を保存]をクリックする前に、設定を[はい]に変更してから[いいえ]に変更しました。これにより、ページを更新したときに、すぐにミドルネーム/初期がCheckoutから削除されました。
私の場合、Magento 1.8.xからMagento 1.9.xへのストアの更新に取り組んでいます。1.9.2.0から1.9.2.1に更新したのは開発環境です。1.8.xから1.9.xへのアップグレードを開始したときにライブサイトを最新の状態にするには、多くの管理設定を更新する必要があります。これは、クエリを使用してデータベースで直接実行する予定です。データベースで、Magentoがミドルネーム設定をどのように変更するかを確認できます。
テーブル `core_config_data`は、" whereミドルネーム(初期)を表示するレコードの管理設定を処理し`core_config_data`.`path`='customer/address/middlename_show'
ます。
このレコードは、 `value`フィールドの設定を保持します(0 =" No "、1 =" Yes ")。Magento CE 1.9.2.1にアップグレードしてミドルネームが表示されても、このフィールドは変更されません。Magentoが1.9.2.1への更新中に変更を行った後、管理設定の「ミドルネームの表示(初期)」への変更を保存すると、ここで `core_config_data`の値が変更されます。
1.9.2.1への更新では、 `core_config_data`のレコードは変更されなかったため、管理設定に表示される内容は変更されませんでした。ただし、更新により、別のテーブルの別のレコードが変更されます。
Magentoの多くの開発インスタンスでは、テーブル `eav_attribute`には2つの"ミドルネーム "` attribute_code`(s)があり、 `attribute_id`(s)は6と21です。`customer_eav_attribute`のテーブルには、フィールド` is_visible`を持つ属性の可視性を設定します。
`is_visible` = 0
。 `is_visible` = 1
。`is_visible`=0
と、チェックアウトからミドルネーム/初期フィールドが消えました。MagentoのCE 1.9.2.1アップデートは「ショーミドルネーム(イニシャル)」の設定の下でMagentoの管理者に表示される内容に影響することなく`customer_eav_attribute`テーブルにミドルネームの設定を裏返し。「ミドルネーム(初期)を表示」設定を切り替えることにより、広範囲にわたるテンプレート調整を行わずに、管理者が設定を通常調整する方法で修正できます。
何らかの理由で、この管理設定をストアの複数のコピー間で転送する必要がある場合、または開発環境に一致するようにストアをアップグレードする場合など、管理更新のバッチで転送する必要がある場合... この設定に次のSQLステートメントを使用できます(ストアの「ミドルネーム」が「attribute_id」6および21であることがわかっている場合。これはMagentoの標準ですが、安全のために、最初に「eav_attribute」テーブルを再確認してください。
UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);
システム構成オプションには、顧客EAV属性(テーブル:)で同じ変更を行うメソッドをMage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer
持つバックエンドモデル()があり_afterSave
ますcustomer_eav_attribute
。
システム設定オプションの値とEAV属性is_visible
値は必ずしも同期しているとは限りません(Magentoのアップグレード、または設定オプションがプログラムで変更された場合、またはその他の理由)。
スイッチを数回ひっくり返すと、それが修正されます。または、あなたが私のようなもので、すべてにインストール/アップグレードスクリプトを使用している場合は、次のことができます。
Mage::getModel('core/config')
->saveConfig('customer/address/middlename_show', 0);
try {
$attribute = Mage::getSingleton('eav/config')
->getAttribute('customer', 'middlename')
->setIsVisible(0)
->save();
$attribute = Mage::getSingleton('eav/config')
->getAttribute('customer_address', 'middlename')
->setIsVisible(0)
->save();
} catch (Exception $e) {
Mage::logException($e);
throw $e;
}
$attribute = Mage::getSingleton('eav/config') ->getAttribute('customer_address', 'middlename') ->setIsVisible(0) ->save();
最も簡単な方法:
Magento ver。1.9.2.1
System > Configuration > Customers > Customer configuration > Name and Address Options
Show Middle Name (initial)
= No
削除{{depend middlename}}{{var middlename}}
@sr_magentoのようなことは彼の答えに提案し、実際に削除されませんShow Middle Name (initial)
チェックアウトページ自体からフィールドを。管理者エリア、PDF、電子メールテンプレートなど、顧客の住所情報がレンダリング/印刷されるエリアからのみ削除します。
電子メールテンプレートからフィールドを削除する必要はありません。これはやり過ぎですShow Middle Name(initial)
。将来有効にする場合は、これらのエントリをメールテンプレートに再度追加する必要があります。
Magentoダウンローダーを使用してMagento CE 1.9.2.0からMagento CE 1.9.2.1にアップデートした後、このグリッチにも気付きました。更新は下の設定を調整するようですShow Middle Name (initial)
System > Configuration > Customers > Customer Configuration > Name and Address Options
「いいえ」に「はい」。異なるサーバー上の複数の店舗で私に起こりました。
これを元に戻すには、単に「いいえ」に戻して設定を保存します。このShow Middle Name (initial)
フィールドは、チェックアウトページに表示されなくなります。