Magento erweitertes Exportprofil mit Herstellerfilter

Über Magentos ‚Dataflow‘ lässt sich eine Menge realisieren. Unter anderem natürlich der Im- und Export von Produktdaten um z.B. Preise zu pflegen. Leider sind die Standard-Filtermöglichkeiten nicht gerade berauschend. Will man z.B. alle Produkte eines Herstellers haben, so gibt es dazu bisher keine Möglichkeit. Ich zeige Ihnen hier wie das geht.


## Vorlage erstellen

Zunächst brauchen Sie eine Vorlage auf der Sie Ihr erweitertes Exportprofil aufbauen können. Ich habe dazu unter „System -> Import/Export -> Profile“ ein neues Profil erstellt, die Felder die mich interessieren ausgewählt und einen Filter nach „Name“ eingefügt:


    
    



    
    



    
        
        
        
        
        
        
    
    true



    
    true



    file
    var/export
    

## Ausführung erweiterter Profile reparieren bei Magento 1.4.x

Hier ist übrigens ein Bug in Magento, die Datei muß die Endung ‚xml‘ haben. Aber dazu später mehr. Um Magento das Filtern nach Herstellern beizubringen ist es zunächst notwendig die erweiterten Exportprofile überhaupt zum Laufen zu bringen. Hier fehlt ein Layouteintrag in Magento 1.4.2, und zwar in der Datei /app/design/adminhtml/default/default/layout/dataflow.xml, so daß beim Start eines erweiterten Profils nur Header und Footer der Adminoberfläche ohne Inhalt erscheinen. Wenn Sie dieses Problem haben, öffnen Sie einfach o.g. XML-Datei und fügen Sie vor dem schließenden </layout> diesen Block ein:


      
      
            
                
                
                
                
                
          
          
      
 

Nach dem Speichern sollte die Profilausführung dann klappen. Dieser Tip kommt aus dem [Magento Forum](http://www.magentocommerce.com/boards/viewthread/213906/P0/).

## Adapterklasse erweitern für Herstellerfilter

Die zulässigen Filterattribute für Produkte werden in der Datei app/code/core/Mage/Catalog/Model/Convert/Adapter/Product.php definiert. Kopieren Sie diese Datei in app/code/local/Mage/Catalog/Model/Convert/Adapter/Product.php um sie anzupassen ohne Core-Dateien zu verändern. Danach fügen Sie oben den Eintrag für Herstellerfilter hinzu (~ Zeile 94):

    public function load()
    {
        $attrFilterArray = array();
        $attrFilterArray ['name']           = 'like';
        $attrFilterArray ['sku']            = 'startsWith';
        $attrFilterArray ['type']           = 'eq';
        $attrFilterArray ['attribute_set']  = 'eq';
        $attrFilterArray ['visibility']     = 'eq';
        $attrFilterArray ['status']         = 'eq';
        $attrFilterArray ['price']          = 'fromTo';
        $attrFilterArray ['qty']            = 'fromTo';
        $attrFilterArray ['store_id']       = 'eq';
        $attrFilterArray ['manufacturer']   = 'eq';
[...]

Wie Sie sehen, ist einfach der Eintrag für „manufacturer“ hinzugekommen. Anschließend können wir das erweiterte Exportprofil erstellen und als Grundlage obigen XML-Code aus dem einfachen Profil nutzen. Neu ist lediglich der Filter nach Hersteller und der korrigierte Dateiname der Exportdatei:


    
    



    
    



    
        
        
        
        
        
        
    
    true



    
    true



    file
    var/export
    

Der passende Eintrag dazu findet sich ebenfalls im [Magento Forum](http://www.magentocommerce.com/boards/viewthread/214232/). Nicht ganz so einfach war das Herausfinden der ID des betreffenden Herstellers. Mit dieser Query (z.B. via [PHPMyAdmin](http://www.phpmyadmin.net/)) ist das aber kein Problem:

SELECT  eaov.option_id AS ID, eaov.value AS Hersteller
FROM    eav_attribute_label eaa, eav_attribute_option eao, eav_attribute_option_value eaov
WHERE   eaa.attribute_id = eao.attribute_id
AND     eao.option_id = eaov.option_id
AND     eaa.value = 'Hersteller'

Ich hoffe dieser Beitrag hilft dem ein oder anderen. Es hat mich mehrere Stunden gekostet alle Schnipsel zu finden und das Ganze zum Laufen zu bringen, wie das bei Magento leider häufiger der Fall ist.

Ein Kommentar

  1. Interessant wäre auch eine Lösung wie man Kategorien, welche bereits angelegt sind die Artikel entsprechend in diese Importieren kann … beim export habe ich zwar das Feld _category beim Import aber keine Möglichkeit dieses zu mappen ;(

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.