Question

Comment puis-je convertir un type d'attribut de produit de texte à sélectionner dans la Magento backend. Y at-il une fonctionnalité ou nous devons écrire du code personnalisé dans construit pour cela?

J'ai déjà des valeurs d'attributs assignés pour de nombreux produits, donc ne veulent pas perdre que cette conversion.

Merci

Était-ce utile?

La solution

Vous auriez d'abord besoin d'avoir un script qui stocke toutes les valeurs par produit dans un fichier CSV par exemple

[...]
$collection = Mage::getModel('catalog/product')
                        ->getCollection()
                        ->addAttributeToSelect('sku')
                        ->addAttributeToSelect('your-attribute');

foreach ($collection as $product) {
    echo "{$product->getId()};{$product->getData('your-attribute')}\n";
}
[...]

exécution du présent php /path/to/script.php > values.csv de ligne de commande va créer un fichier CSV avec les valeurs de ID et d'attribut.

Maintenant, l'étape suivante serait de supprimer l'ancien attribut et de créer une nouvelle avec les valeurs de texte que les options déroulantes.

Ensuite, nous devons importer ces valeurs récupérer à nouveau l'option ID de la valeur qui devrait maintenant être l'étiquette admin

[...]

$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'your-attribute'); 

$attribute_source = Mage::getModel('eav/entity_attribute_source_abstract');
$attribute_source->setAttribute($attribute);

if (($handle = fopen("your-csv-file.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
        list($_id, $_value) = $data;

        $product = Mage::getModel('catalog/product')->load($_id);
        $product->setData('your-attribute', $attribute_source->getOptionId($_value));

        try {
            $product->save();
        } catch(Exception $e) {
            echo "{$_id}: {$e}";
        }
    }
    fclose($handle);
}

[...]

Ce code est non testé donc s'il vous plaît ne pas utiliser dans un environnement de production. Faites-moi savoir si cela a fonctionné pour vous.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top