Attribute aus Oxid per marmcsvexporter in eine CSV

Hallo,

ich versuche mittels https://github.com/marmaladeDE/csvexporter auch Attribute in eine CSV zu bekommen. Der Rest klappt soweit. Upload auf einen SFTP muss ich noch testen, aber am Export der Attribute scheitere ich gerade. Kann jemand helfen?! Vielleicht mit einer Vorlage.

Danke

Steht das nicht in der Beschreibung? Ich denke, Du must nen Marker setzen
case ‘#irgendwas#’: , das Feld im Header als Spaltenname eintragen und über getAttribute(‘Titel_des_Attributes_Irgendwas’) den Wert (value) abrufen.

Hi rubbercut,

danke für die schnelle Reaktion.
Dachte auch so wie du. Vielleicht ist meine Umsetzung fehlerhaft.

Auszug:
protected $_entry = array(
‘header’ => ‘“Land”’,
‘fields’ => ‘#gpland#’,
‘separator’ => ‘|’
);

        case '#gpland#':
            return $this->getAttribute('Herkunftsland'); // Name in der DB

D.h. das Feld ist leer? Lass Dir einfach mit echo $query ; die Abfrage ausgeben und gib sie in phpMyAdmin o.ä. ein.

Ja, das Feld ist leer.
Wohin kommt echo $query ; ?

Unterhalb von $query = "SELECT oa.OXVALUE FROM oxobject2attribute oa, oxattribute at WHERE oa.OXATTRID = at.OXID AND oa.OXOBJECTID = '".$this->tempProduct['OXID']."' AND at.OXTITLE = '".$attrTitle."' LIMIT 1";
Also in eine Zeile ab 528

Hab die Abfrage manuell mit Daten gefüllt und über phpMyAdmin abgerufen.

        $query  = "SELECT oa.OXVALUE
                   FROM oxobject2attribute oa, oxattribute at
                   WHERE oa.OXATTRID = at.OXID AND
                   oa.OXOBJECTID = '".$this->tempProduct['OXID']."' AND
                   at.OXTITLE = '".$attrTitle."' LIMIT 1";

echo $query;

Drunter eingebaut. Bin mir nicht sicher wo die gefüllte Abfrage ausgegeben werden soll.

Mit einer 4-stelligen Oxid? (OXOBJECTID = OXID aus OXARTICLES)

Wenn Du das Script aufrufst, sollte der Query ausgegeben werden. Ansonsten ist vielleicht if (isset($this->_config['attributes'][$attr])) { nicht “gesetzt”…

Mein Fehler :wink: Bin schon recht müde.
Okay, mit der richtigen ID geht die Abfrage - sorry!

Ja, ist in der Tat nicht gesetzt.

Was muss da rein?
‘attributes’ =>

Ich kenne das Modul nicht. Die Suche ergibt, dass in protected $_config = array( ) aus Deiner Exporter-Datei der Wert rein muss

Also etwas wie 'deinwert' => true,

‘Herkunftsland’ => true,
‘attributes’ => true,
‘gpland’ => true,

Leider kein Erfolg.

Ich würde es so probieren: 'attributes' => array( 'Herkunftsland' => 1 )

Kannst noch mehr eintragen

TOP! Tausend Dank rubbercut!

Hier die Lösung:

Exporter.php

für protected $_config = array(

‘attributes’ => array( ‘Herkunftsland’ => ‘Herkunftsland’ ),

);

für

protected $_entry = array(
‘header’ => ‘“Land”’,
‘fields’ => ‘#gpland#’,
‘separator’ => ‘|’
);

für die marmCsvExporter.php

public function getDataByMarker($marker)
{
switch($marker)
{

case ‘#gpland#’:
return $this->getAttribute(‘Herkunftsland’);

}

Jo, als erledigt markieren und gut is :wink:

2 Likes