API Search Product Media resources

Bei der API in Shopware 6.7.1.0 muss ich eben feststellen, dass bei Call ‚/api/search/product-media/‘ das Feld ‘media’ komplett lerr ist. Laut aktueller Beschreibung für SW 6.7 auf

sollte das nicht der Fall sein? Ist das ein Bug in 6.7.1.0?

Der Aufruf sieht dabei wie folgt aus:

$productId = '019743aba7147390a5b3a9b208e7eabb';

...

{ 
 "filter": [ 
 { "type": "multi", "operator": "and", "queries": [ { "type": "equals", "field": "productId", "value": "' .$productId. '" } ] } 
 ] 
}

Zurück kommt dann nur:

...
[createdAt] => 2025-08-26T12:17:40.878+00:00
[updatedAt] => 
[productId] => 019743aba7147390a5b3a9b208e7eabb
[mediaId] => 0196ec54412d736a8aefb476007b1272
[position] => 0
[media] => 
[product] => 
[coverProducts] => 
[customFields] => 
[id] => 0198e65000d574dbb10a2f845cde71e0
[apiAlias] => product_media
...

Nachtrag: Das Problem ist wohl auch in SW 6.7.1.2 vorhanden. Eben ausprobiert, kein Inhalt bei Feld ‘media’. Oder gibt es beim Aufruf eine neue Syntax?

{
  "associations": {
    "media": {}
  }
}

Ich habe den Titel geändert, da es kein Bug ist, sondern du lediglich die assoiations nicht mit angefordert hast.

{
  "filter": [
    {
      "type": "multi",
      "operator": "and",
      "queries": [
        {
          "type": "equals",
          "field": "productId",
          "value": "' .$productId. '"
        }
      ]
    }
  ],
  "associations": {
    "media": {}
  }
}

Ok, hab schon hinbekommen. Aber steht diese Info irgendwo in der Doku? Da in SW 6.6 das nicht der Fall war.

In den allermeisten Fällen muss man associations manuell laden. Nur wenn ein autoload in den Entities festgelegt ist, dann wird die verbundene Entity automatisch geladen.

(new ManyToOneAssociationField('media', 'media_id', MediaDefinition::class, 'id'))->addFlags(new ApiAware())

Das ist komisch, denn Shopware bringt eine Fehlermeldung:

Uncaught PHP Exception Shopware\Core\Framework\DataAbstractionLayer\Exception\AssociationNotFoundException: 
"Can not find association by name media" at FrameworkException.php line 143 

Hast du einen Code-Block zum Fehler?

Die Fehlermeldung ist wieder weg. Hatte versenhtlich bei einem anderen API-Call ‘associations’ mit angeben, obwohl es hier wohl gar nicht rein gehört. Wäre toll, wenn das in der Doku etwas besser beschrieben würde. Zumal es wohl weitere Änderungen bei der API von SW 6.6 zu SW 6.7 gibt :frowning: Aber das Thema hier ist erledigt.

Das sind keine Änderungen der API. Das sind Änderungen der EntityDefinition, wo ein autoload entfernt wurde. Macht für dich kein Unterschied, ist technisch gesehen aber ein riesiger Unterschied.

Wenn du verknüpfte Daten benötigst, die nicht zum Entity gehören, dann schreib immer die Assoziation mit dazu, egal ob autoload oder nicht. Dann bist du bei Updates sicher.

Ah ok, soweit alles wieder zum laufen gebracht :slight_smile: