Setzen Sie den Standardwert für alle Produkte auf ein benutzerdefiniertes Attribut

7

Ich habe das custom attribute (test)für Produkte als Textfeld mit default value('test')aus dem Admin-Bereich erstellt

Und dieses Attribut dem Standardattributsatz zugewiesen.

Jetzt kann ich das neue benutzerdefinierte Attribut auf der Produktbearbeitungsseite sehen.

Wenn ich versuche, mit der Produktkollektion zu filtern

Mage::getModel('catalog/product')->getCollection()
       ->addAttributeToSelect('*')
       ->addAttributeToFilter('test', array('like' => 'test'))->getData();

Es gibt das leere Array zurück.

Meine Frage ist :

Gibt es eine Möglichkeit, den Standardwert über das Installationsskript auf Attribute festzulegen?

Warum ist der Standardwert nicht auf dieses Attribut festgelegt?

Gibt es eine Möglichkeit, die Standardwerte für alle Produkte hinzuzufügen? Ich habe mehr als 10.000 Produkte in meinem Geschäft.

Hinweis :

Ich möchte nicht die gesamte Produktkollektion laden und für jedes Produkt einen Wert festlegen.

saravanavelu
quelle

Antworten:

11

Sie könnten so etwas versuchen. Ich glaube, dass die folgende Methode ziemlich effizient ist.

$attrData = array(
    'attribute_code_here'=> 'Default Value Here',
);
$storeId = 0;
$productIds = Mage::getModel('catalog/product')->getCollection()->getAllIds();
Mage::getModel("catalog/product_action")->updateAttributes(
    $productIds, 
    $attrData, 
    $storeId
);
NathanielR
quelle
@ Marius Ich bin ein großer Fan. Danke für die positive Bewertung :)
NathanielR
Gibt es eine Möglichkeit, diesen Wert im Installationsskript oder in der Datei config.xml festzulegen?
Saravanavelu
@Marius Ich baue eine neue Erweiterung. Also werde ich dieses Attribut über das Installationsskript erstellen. Ist es möglich, diesen Standardwert im Installationsprogramm scritp festzulegen?
Saravanavelu
@saravanavelu Sie können sich Datenskripte ansehen oder Ihr Attribut über das Installationsprogramm erstellen und dann das Snippet als eigenständiges Skript ausführen
NathanielR
Müssen Sie während der Installation des Moduls die Attribute aktualisieren? Ist dies ohne eigenständiges Skript möglich?
Saravanavelu