Comment la mise à jour de Magento 1.9.2.1 affecte le deuxième prénom
Tout d'abord, la solution
J'ai eu le même problème lors de la mise à jour vers Magento CE 1.9.2.1 à partir de Magento CE 1.9.2.0 . La mise à jour a provoqué l'affichage du deuxième prénom, mais lorsque j'ai vérifié l'administrateur, System > Configuration > Customers > Customer Configuration > Name and Address Options
le paramètre "Afficher le deuxième prénom (initial)" affichait déjà "Non" - ce que je voulais. J'ai changé le paramètre en "Oui", puis de nouveau en "Non" avant de cliquer sur "Enregistrer la configuration", et cela a immédiatement supprimé le deuxième prénom / initiale de la caisse lorsque j'ai actualisé la page.
La base de données
Dans mon cas, je travaille sur la mise à jour d'une boutique de Magento 1.8.x à Magento 1.9.x. C'est dans mon environnement de développement que j'ai mis à jour de 1.9.2.0 à 1.9.2.1. Afin de mettre à jour le site en direct lorsque nous lancerons la mise à niveau de 1.8.x vers 1.9.x, nous devrons mettre à jour de nombreux paramètres d'administration, ce que nous prévoyons de faire directement dans la base de données avec une requête. Dans la base de données, vous pouvez voir comment Magento modifie le paramètre du deuxième prénom.
Le paramètre Admin affiché peut être trompeur
La table `core_config_data` gère le paramètre d'administration pour" Afficher le deuxième prénom (initial) avec l'enregistrement où `core_config_data`.`path`='customer/address/middlename_show'
.
Cet enregistrement contient le paramètre dans le champ `value` (0 =" Non ", 1 =" Oui "). Ce champ n'est pas modifié lorsque le deuxième prénom apparaît lors de la mise à niveau vers Magento CE 1.9.2.1 . Si vous enregistrez une modification de "Afficher le deuxième prénom (initial)" dans les paramètres d'administration après que Magento a apporté des modifications lors de la mise à jour vers 1.9.2.1, il modifiera la valeur `core_config_data` ici.
La mise à jour vers 1.9.2.1 n'a pas modifié l'enregistrement sur `core_config_data`, et donc ce qui est affiché dans les paramètres d'administration. Mais, la mise à jour modifie un enregistrement différent d'une table différente.
La visibilité réelle du deuxième prénom se trouve dans `customer_eav_attribute`
Dans mes nombreuses instances de développement de Magento, la table `eav_attribute` a 2" middle_code "` attribute_code` (s), le `attribute_id` (s) étant 6 et 21 . La table `customer_eav_attribute` définit la visibilité de l'attribut avec un champ` is_visible`.
- Dans mon environnement live 1.8.x, `attribute_id` (s) 6 et 21 avaient
`is_visible` = 0
.
- Après avoir mis à jour le dev vers Magento CE 1.9.2.1 à partir de Magento CE 1.9.2.0 , il est devenu
`is_visible` = 1
.
- Après avoir basculé et enregistré l'administrateur "Afficher le deuxième prénom (initial)" sur "Non",
`is_visible`=0
encore une fois et le champ Deuxième prénom / Initial a disparu de la caisse.
Sommaire
La mise à jour de Magento CE 1.9.2.1 a inversé le paramètre du deuxième prénom dans le tableau `customer_eav_attribute` sans affecter ce qui est affiché dans l'administration Magento sous le paramètre" Afficher le deuxième prénom (initial) ". Vous pouvez le corriger de la manière dont le paramètre est normalement ajusté dans l’admin, sans effectuer d’ajustements étendus du modèle, en basculant le paramètre «Afficher le deuxième prénom (initial)».
Note latérale
Si, pour une raison quelconque, vous devez transférer ce paramètre d'administration sur plusieurs copies d'un magasin ou dans un lot de mises à jour administratives, comme lors de la mise à niveau d'un magasin pour correspondre à un environnement de développement ... Vous pouvez utiliser l'instruction SQL suivante pour ce paramètre ( à condition que vous sachiez que "middle name" est `attribute_id` 6 et 21 dans votre magasin. Ceci est standard pour Magento, mais pour être sûr, vérifiez d'abord votre table` eav_attribute`.).
UPDATE customer_eav_attribute SET is_visible = 0 WHERE attribute_id IN (6, 21);