Magento changeant le type d'attribut dans le backend
est-il possible de changer le type d'un attribut après qu'il a été créé.
Je veux changer de type de certaines attribut Multi liste de sélection. Type d'attribut est actuellement 'Dropdown'.
En fait, Quand j'créer les attributs, il n'y avait pas besoin de multi select lorsque je l'ai créé à l'origine, mais, maintenant, le client veut changer de "sélection multiple".
Merci de m'aider, je ne peux pas créer de nouveaux attributs en supprimant les anciennes, comme, il ya certaines données, et certaines partie de la conception est codée en dur et dépend de certaines valeurs d'attribut.
source d'informationauteur Ravish
Vous devez vous connecter pour publier un commentaire.
Oui c'est possible par programmation grâce à la méthode
Mage_Eav_Model_Entity_Setup::updateAttribute($entityTypeId, $id, $field, $value=null, $sortOrder=null)
Il n'est pas possible avec la Gestion des attributs dans le Backend de Magento, car elle a pour conséquence avec les données existantes. Dans votre cas, la modification de sélectionner à multiselect devrait être ok, mais faire une sauvegarde de base de données et de tester si votre produit s'affiche correctement.
De la programmation, la meilleure façon est de le faire à partir d'une mise à jour du script d'installation. Je ne sais pas votre module, mais voici quelques informations pour le faire.
Une mise à jour du script d'installation est lancé lorsque vous fournissez un nouveau numéro de version de votre module et vous fournir un script de configuration avec l'ancien et le nouveau numéro de version, comme un nom de fichier.
1) Voici l'en-tête d'un config.xml module de changement de fournir une version supérieure. Par exemple, la nouvelle version est
2) vous devez avoir dans le config.xml fichier, entre les balises
<global>...</global>
le code suivant, veuillez s'adapter à votre situation:3) Ensuite, vous devez créer un script d'installation dans votre dossier du module avec l'ancien et le nouveau numéro de version app/code/local/mycompany/mymodule/sql/mymodule_setup/mysql4-upgrade-1.0.0-1.0.1.php
(mysql4-upgrade-old.version.number-new.version.number.php)
4) Et dans ce nouveau script définir un code comme celui-ci, veuillez s'adapter à votre situation:
5) Actualiser votre Magento page et finit par vider votre cache
4.Je pense que la mise à jour utilise des champs de base de données, j'.e entrée doit frontend_input.
Vous pouvez essayer
Mage_Eav_Model_Entity_Setup::updateAttribute
méthode.D'abord, vous devez mettre à jour l'attribut type d'entrée à sélection multiple à l'aide de l'mentionnés ci-dessous de code:
Maintenant, copier les valeurs d'attribut de l'ancien tableau à la nouvelle:
Enfin, supprimer les anciennes valeurs, sinon ils seront en conflit avec la nouvelle configuration (les anciennes valeurs de la charge, mais Magento va enregistrer les nouvelles valeurs à l'varchar table):