2012-06-21 4 views
2

J'ai un attribut personnalisé qui est un type multi-sélection et je veux lui assigner la valeur par programmation mais cela ne fonctionne pas comme l'attribut "champ de texte".Magento - Affecter une option à un attribut multisélect par programme

Pour l'instant, j'utilise le product.update dans l'API SOAP de Magento pour mettre à jour l'attribut supplémentaire.

J'ai essayé et cherché et essayé mais malheureusement ils n'ont pas semblé fonctionner. Je pense que cela devrait fonctionner normalement par défaut et nous avons besoin d'un hack?

Existe-t-il un document officiel de magento sur ce type de travail?

Répondre

4

Il est possible d'écrire un script de configuration pour ajouter de la valeur à l'attribut multiselect. Compte tenu de votre attribut est la couleur et que vous essayez d'ajouter de la valeur « Rouge », « Vert », « Blue » à l'attribut, puis vous ajoutez comme ceci

$oInstaller = new Mage_Eav_Model_Entity_Setup('core_setup'); 
$iAttribId = $oInstaller->getAttributeId('catalog_product', 'color'); 
$oInstaller->addAttributeOption(array(
     'attribute_id' => $iAttribId, 
     'value' => array(
      array(
       0 => 'Red', 
       1 => 'Blue', 
       2=> 'Green' 
      ) 
     ), 
    )); 

espère que cela fonctionne.

+0

Le problème est que les options d'attribut sont créées et que je veux les affecter au produit actuel. – nXqd

+1

Voulez-vous dire que vous avez créé un attribut multisélect avec certaines valeurs et que vous essayez de mettre à jour un produit particulier avec des valeurs du même attribut de manière non grammaticalement et non via la mise à jour Magento Admin-> Manage Products habituelle? – Swapna

+0

oui, c'est exactement ce que je voulais dire :) – nXqd

Questions connexes