Zum Hauptinhalt springen
Version: 2025.11

Ablageverzeichnisse über ein Directory-Resolver bestimmen

Überblick

Das Bundle bietet die Möglichkeit, die Ablageverzeichnisse von Assets, JSON-Dateien und .done-Dateien über einen Service zu bestimmen.

Standard Resolver

Standardmäßig wird der DefaultDirectoryResolver genutzt, dieser gibt nur die Verzeichnisse aus der Konfiguration ohne weitere Unterornder weiter.

Eigenen Resolver erstellen

Hinweis

Resolver können durch ihren Identifier über folgende Collection-Klasse bezogen werden: Twocream\ShopwareConnectorBundle\Service\DirectoryResolver\DirectoryResolverCollector

Interface

Ein DirectoryResolver muss das Interface Twocream\ShopwareConnectorBundle\Service\DirectoryResolver\DirectoryResolverInterface implementieren.

Methoden

Der Resolver muss folgende Methoden implementieren:

DefinitionArgumenteBeschreibung
public static function getIdentifier(): stringKeine ArgumenteRückgabe eines eindeutigen Identifiers für den Resolver (Dies ist der Wert, der in der Konfiguration hinterlegt wird)
public function resolveJsonDirectory(?string $exportJob = null, ?array $targetConfiguration = null): string$exportJob: Die Job-ID des aktuellen Exports
$targetConfiguration: Die YAML-Konfiguration des Export-Targets als array
Gibt das Verzeichnis zurück, in dem die JSON-Dateien abgelegt werden sollen, dieser wird immer ab dem in der Konfiguration hinterlegten Export-Verzeichnis (export_directory) generiert
public function resolveDoneDirectories(?array $targetConfiguration = null): array$targetConfiguration: Die YAML-Konfiguration des Export-Targets als array
Gibt die Ablageverzeichnisse der .done-Dateien nach dem Export zurück
public function resolveAssetDirectory(Asset $asset, ?string $exportJob = null, ?array $targetConfiguration = null): string$asset: Das Asset
$exportJob: Die Job-ID des aktuellen Exports $targetConfiguration: Die YAML-Konfiguration des Export-Targets als array
Gibt das Verzeichnis zurück, in dem Assets ebgelegt werden sollen, dieser wird immer ab dem in der Konfiguration hinterlegten Asset-Verzeichnis (asset_directory) generiert

Registrierung

Neue Resolver sind in einer Service-Konfigurationsdatei zu registrieren. Hierbei ist der Service-Tag twocream.shopware_connector.directory_resolver zwingend zu verwenden.

services:
_defaults:
autowire: true
autoconfigure: true
public: false

twocream.shopware_connector.directory_resolver_example:
public: true
class: App\Service\DirectoryResolver\ExampleDirectoryResolver
tags: [ 'twocream.shopware_connector.directory_resolver' ]