Ein Beispiel einer individuellen Produktdaten Exports aus einem Magento 1.9.x Shop
Als Shopbetreiber kommt man irgendwann an einen Punkt, an dem man die im Shop angebotenen Produkte in Form einer Liste exportieren möchte. Die Listen können für Inventuren, Importe in andere Systeme (z.B. Kassen- oder Warenwirtschaftssysteme) oder auch als Datafeed für andere Webseiten (z.B. Suchmaschinen) eingesetzt werden.
Um einen solchen Datenexport bedarfsgerecht bereitzustellen, bietet Magento 1.x die Möglichkeit die gewünschte Dateistruktur mit Hilfe von Anweisungen im XML Format zu definieren.
Das Ganze wird über „Dataflow Profile“ realisiert. Diese sind zu finden unter:
System –> Import/Export –> Dataflow – Erweiterte Profile
Man erstellt einfach ein neues Profil und vergibt einen Namen. Die eigentliche „Magie“ passiert mit Hilfe der XML Definition im Abschnitt „Profilaktionen XML„.
Am folgende Beispiel versuche ich die wichtigsten Einstellungen zu erklären.
Bespiel XML
<action type="catalog/convert_adapter_product" method="load">
<var name="store"><![CDATA[0]]></var>
<var name="filter/status"><![CDATA[1]]></var>
</action>
<action type="catalog/convert_parser_product" method="unparse">
<var name="store"><![CDATA[0]]></var>
<var name="url_field"><![CDATA[0]]></var>
</action>
<action type="dataflow/convert_mapper_column" method="map">
<var name="map">
<map name="sku"><![CDATA[ShopSKU]]></map>
<map name="name"><![CDATA[title]]></map>
<map name="image"><![CDATA[imageUrl]]></map>
<map name="price"><![CDATA[price]]></map>
<map name="product_url"><![CDATA[link]]></map>
<map name="bottle"><![CDATA[volume]]></map>
<map name="short_description"><![CDATA[description]]></map>
<map name="categories"><![CDATA[categories]]></map>
<map name="country_of_manufacture"><![CDATA[country]]></map>
<map name="erzeuger"><![CDATA[producer]]></map>
</var>
<var name="_only_specified">true</var>
</action>
<action method="unparse" type="exportextension/modifier">
<var name="remove_line_breaks">true</var>
<var name="remove_html_tags">true</var>
<var name="add_absolute_url_to_field">link</var>
<var name="add_image_url_to_field">imageUrl</var>
</action>
<action type="dataflow/convert_parser_csv" method="unparse">
<var name="delimiter"><![CDATA[\t]]></var>
<var name="enclose"><![CDATA["]]></var>
<var name="fieldnames">true</var>
</action>
<action type="dataflow/convert_adapter_io" method="save">
<var name="type">file</var>
<var name="path">var/export/beispiel/de/</var>
<var name="filename"><![CDATA[beispiel.csv]]></var>
</action>
Die wichtigsten Parameter:
<map name=….:
Wie sich schon erahnen lässt, legt man mit dem „map“ Tag die Spalten fest.
<map name="sku"><![CDATA[ShopSKU]]></map>
--------------- ------------------ ------
1 2 3
1: Einleitender „map“ Tag. Im Attribut „name“ muss der Name des Artikelattributs des Produktes angegeben werden. Wichtig hierbei ist, dass der Wert „Attribut Code“ des Artikelattributs angegeben wird – nicht die Bezeichnung (Übersetzung).
2: Spaltenüberschrift. Die Notation „<![CDATA[ShopSKU]]>“ sorgt dafür, dass in der Exportdatei der Spaltenname „ShopSKU“ – also der Wert in den eckigen Klammern – gesetzt wird.
3: schliessender Map Tag
Modifier
remove_html_tags: ist der Wert auf „true“ gesetzt, werden alle HTML Tags in Berschreibungen bzw. Produktinformationen entfernt.
add_absolute_url_to_field: Standarmäßig werden Produkt URLs (Produktbild, Produkt URL) als relative Pfade angegeben.
Beispiel: /p/i/pichon_baron_6.jpg
Möchte man jedoch die komplette Adresse, so setzt man den Wert des modifiers „add_absolute_url_to_field“ auf den Spaltennamen für das entsprechende Feld (siehe eckige Klammern map Tag).
add_image_url_to_field: gleiches gilt für URL zu Produktbildern, allerdings ist hier der Modifier „add_image_url_to_field“ zu benutzen.
Convert Parser
delimiter: Mit dem Delimiter Attribut kann der Spaltentrenner definiert werden
Beispiel: <var name=“delimiter“><![CDATA[\t]]></var>
Der Werzt „\t“ in den eckigen Klammern gibt im gezeigten Beispiel an, dass der Trenner ein Tabulator ist. Für eine Komma getrennte CSV Datei, muss hier <![CDATA[,]]> verwendet werden.
enclose: Mit diesem Attribut kann man Festlegen, ob der Wert einer Zelle noch von einem bestimmten Zeichen umschlossen werden soll. Im Beispiel werden alle Inforationen in den Zellen von doppelten Anführungszeichen umschlossen.
fieldnames: Kann den Wert true oder false haben. Ist der Wert auf true gesetzt, dann werden in der ertsen Zeile der Exportdatei die Spaltennamen angezeigt.
Convert Adapter
Die wichtigsten Attribute hier sind path und filename. Die Parameter sind selbsterklärend. Wichtig zu wissen ist, dass der angegebene Pfad auch entsprechende Schreibrechte vorweisen muss.
Das Verzeichnis var/export sollte mindestens die Rechte 705 vorweisen.
Nach meiner Erfahrung werden beim Export automatisch die Unterverzeichnisse (aus dem Beispiel „beispiel/de“) angelegt, sofern sie nicht vorhanden sind.
Ich hoffe diese kleine Übersicht hilft Magento Einsteigern einen Datenexport nach den eigenen Anforderungen zu erstellen.