SystemConfigService::get Rückgabe saleschanel abhängig

Verständnisfrage:

Warum gibt die Methode SystemConfigService::get nicht direkt den richtigen Wert für den aktuellen SalesChannel zurück?
Könnte so sein: wenn der 2. Parameter = null, dann checkt man ob es nen SalesChannelContext gibt und wenn ja dann gibt den richtigen Wert dafür zurück und wenn nicht den default Wert. Und wenn der 2. Parameter übergeben wurde dann gibt man den Wert für diesen SaleChannel zurück.

Das wäre aus meiner Sicht einfacher und nicht so Fehler anfällig für Plugin Entwickler.

Grund:
Im Backend kann mann immer unterschiedliche Werte pro SalesChannel eintragen.
Daher muss man eigentlich immer die SalesChennelId beim Aufruf von SystemConfigService::get mitgeben.

Und in der Doku bits nich mal nen hinweiß auf den 2. Parameter.

Gib es da nen Grund warum man das so macht, wie es ist?

Gruß Silvio

Hallo @silvio123,

nur Mal eine Frage, hast du dir die get-Methode im Code angeschaut, was da als zweiter Parameter erwartet wird und was die Funktion allgemein macht?

Als zweiten Parameter wird die SalesChannelId erwartet. Wird die angegeben, so wird der Config-Wert des entsprechenden SalesChannel bezogen werden.

Die Shopware Dokumentation hilft ja einem weiter. Auch ist es nicht möglich jedes Detail zu dokumentieren oder mit Beispielen darzustellen, daher sollte man vor allem als Entwickler auch auf den Code schauen, welche Möglichkeiten da einem zur Verfügung gestellt werden.

vg

1 Like

Hi @abdullah ,

ich hab mir das angeschaut, und mir ist auch klar das ich den SalesChannel übergeben muss.

Ich frage mich nur warum man das nicht direkt so gebaut hat, das der aktuell SalesChannel einfach genommen wird wenn man nix übergibt.
Das würde doch Fehlern vorbeugen?
Und auch den Code sparen, mit dem man sich z.B. in nem Subscriber oder Service den SalesChannel extra holen muss.

Was ist denn der aktuelle SalesChannel? Gerade auch im CLI-Kontext.

Ich würde sagen, dass das eher zu Fehlern führen würde, als diese vorzubeugen.

Im CLI oder im Backend da gibt es keinen SalesChannel.
Wenn es keinen SalesChannel gib, dann wird der Default Wert zurück gegeben.