Wo werden die Bilder gespeichert?
Im aktuellen
Connector werden die Bilder als Upload einer Zipdatei an den Connector übertragen. Diese Datei wird automatisch entpackt. Die Bilder landen im CACHE_DIR. Das ist, falls es nicht durch den Config-Parameter "cache_dir" überschrieben wird, der Ordner "var/
cache/" im ConnectorDir. Dieser Cache-Ordner wird allerdings bei Bedarf erzeugt und am Ende des Request gelöscht oder geleert und ist deswegem i.d.R. nicht sichtbar bzw. einfach nicht vorhanden oder erscheint immer leer.
Wo werden die Daten verarbeitet?
Gesendet wrd außerdem eine image.push-Action. In meinem Connector verarbeite ich die im ImageController.
Wie unterscheiden sich Produktbilder und Kategoriebilder?
In den übertragenen Daten steckt ein Feld "relationType". Darin steht für Produktbilder der Wert "product" und für Kategoriebilder der Wert "category". Daraus ergibt sich, ob das AbstractDataModel, das der push-Methode des ImageController (in meinem Fall) im Parameter $model übergeben wird ein ProductImage oder ein CategoryImage ist. (Weitere Möglichkeiten können dem Kommentar oben in der Klasse Jtl\Connector\Core\Model\AbstractImage entnommen werden.) Ich importiere also z.B. Produktbilder,
if ($model instanceof ProductImage)
oder Kategoriebilder
if ($model instanceof CategorytImage)
.
Welches Produkt/welche Kategorie?
Die Identity des zugehörigen Produktes bzw. der zugehörigen Kategorie finde ich mit
$model->getForeignKey()
.
Welche Bilddatei?
Der volle Dateipfad der Bilddatei wird mit
$model->getFileName()
abgefragt.
Weitere Metadaten zum Bild?
Weitere Felder bzw. Getter können im AbstractImage (Jtl\Connector\Core\Model\AbstractImage) gefunden werden. ProductImage und CategoryImage erben alles von AbstractImage und enthalten keine eigenen Eigenschaften oder Methoden.
Der Rest kommt auf den Shop an,
Jetzt habe wir alles, was wir brauchen. Jetzt haben wir die Bilddatei, die Metadaten zum Bild sowie die Beziehung zu Kategorie oder Produkt. Diese Daten müssen jetzt nur noch nach den Regeln und Methoden des jeweiligen Shopsystems an den
Shop übergeben werden.