Comment obtenir toutes les options pour toutes les vues de magasin pour un seul attribut?


13

J'essaie de récupérer toutes les options pour toutes les vues de magasin pour un seul attribut, par exemple color.

Pour l'attribut, colorj'ai créé deux options blueet white. J'ai essayé le code suivant qui est censé renvoyer toutes les étiquettes d'options pour toutes les vues de magasin, mais ne renvoie que l' adminétiquette d'option pour moi.

$option_arr = array();
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'color');
foreach ($attribute->getSource()->getAllOptions(false) as $option) {
  $option_arr[$option['value']] = $option['label'];
}
// $option_arr contains Array([4] => Blue, [3] => White)

Ce qui suit fonctionne bien pour obtenir tous les colortitres d' attribut pour chaque vue de magasin, mais ne fonctionne pas pour les options.

$product = Mage::getModel('catalog/product')->load();
$attribute_title = $product->getResource()->getAttribute('color');
// $attribute_title contains Array([1] => ~~~, [2] =>Color, [3] => Couleur, [4] => Còôlòôr)

Capture d'écran de mon attribut de couleur et de mes options.

Réponses:


16
    /**
     * @var $config  Mage_Eav_Model_Config
     * @var $options Mage_Eav_Model_Resource_Entity_Attribute_Option_Collection
     */
    $storeId   = 3;
    $config    = Mage::getModel('eav/config');
    $attribute = $config->getAttribute(Mage_Catalog_Model_Product::ENTITY, 'color');
    $values    = $attribute->setStoreId($storeId)->getSource()->getAllOptions();
    print_r($values);

    //here is another method
    $options = Mage::getResourceModel('eav/entity_attribute_option_collection');
    $values  = $options->setAttributeFilter($attribute->getId())->setStoreFilter($storeId)->toOptionArray();
    print_r($values);

Et comment l'enregistrer dans 1 magasin particulier?
snh_nl
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.