Magento: ajouter un nouvel attribut pour tous les produits
Je veux ajouter un nouvel attribut pour tous les produits. Je l'ai fait avec un script d'installation fosse
$installer = $this;
$installer->startSetup();
$this->addAttribute('catalog_product','test2',array(
'label' => 'test2',
'type' => 'varchar',
'visible' => true,
'required' => false,
'required' => 0
));
Mais comment puis-je ajouter des valeurs pour cet attribut par
$entityTypeId = $installer->getEntityTypeId('catalog_product');
$attributeSetId = $installer->getDefaultAttributeSetId($entityTypeId);
$attributeGroupId = $installer->getDefaultAttributeGroupId($entityTypeId, $attributeSetId);
$installer->addAttributeGroup($entityTypeId, 'Default', 'test2', 0);
$installer->endSetup();
OriginalL'auteur koenig | 2012-03-07
Vous devez vous connecter pour publier un commentaire.
C'est l'un des exemples de code que j'avais utilisé pour créer mon propre Produit Attribut:-
Il est utilisé avec les références de ces deux articles:-
Également, vous trouverez que j'ai utilisé la clé du tableau "
group
" parler de l'Attribut de Nom de Groupe, où ce nouvel Attribut personnalisé va résider. L'ironie est que la mention de cette clé, dans le code ci-dessus de l'échantillon, crée automatiquement cet Attribut dans chaque Attribut est trouvé dans ce Magento.De sorte que vous n'avez pas besoin d'appeler n'importe quelle méthode (comme "
addAttributeToSet()
") pour ajouter cet Attribut pour tous les Ensembles d'attributs.Espère que cela aide.
Merci pour cette remarque!
Il est préférable d'utiliser
Mage::getResourceModel('catalog/setup', 'core_setup')
au lieu denew Mage_Catalog_Model_Resource_Eav_Mysql4_Setup()
à l'égard de Magento système de l'usine (et donc à réécrire les possibilités).Et bien, merci pour votre suggestion! Mais je ne vais pas convenir à votre suggestion entièrement, parce que
Mage::getResourceModel('catalog/setup', 'core_setup')
est la classeMage_Catalog_Model_Resource_Setup
, alors que je veux avoir cette classeMage_Catalog_Model_Resource_Eav_Mysql4_Setup
. J'ai donc changé cette partie de l'extrait deMage::getResourceModel('catalog/eav_mysql4_setup', 'core_setup')
. Veuillez indiquer, si vous trouvez quelque chose de plus à partager.Quand j'utilise ce bout de code d'un script, j'ai trouvé que pas toutes les clés dans votre tableau peut être utilisé par le biais de la
addAttribute()
méthode, voirMage_Eav_Model_Entity_Setup
's_prepareValues()
méthode (used_for_promo_rules
,is_configurable
,visible_on_front
, etc. ne peut pas être dépassée).OriginalL'auteur Knowledge Craving
Exécuter ce script dans votre magento répertoire racine.(Changement de Configuration dont vous avez besoin)
Pour Enlever Le Produit De L'Attribut
OriginalL'auteur Ketan Borada
vous pouvez ajouter des attributs personnalisés pour le backend de magento, comme illustré.Si vous créez le produit de l'attribut en tant que module, il est facile de passer d'une base de données à l'autre.
veuillez consulter mon tutoriel pour explication étape par étape, et structure du fichier.
http://www.pearlbells.co.uk/adding-custom-product-attributes-in-magento/
OriginalL'auteur Liz Eipe C