coverId wird beim anlegen des Produktes per REST-API nur parziell umgesetzt

 hallo, per rest-api wird das produkt korrekt angelegt, die coverId wird nur parziell umgesetzt. payload (auszug): { "id": "bdff2530a7fb49519378c5f06f321682", "coverId": "727d8eefa41c44e190021730893f2ec2", "media": [{ "id": "bdff2530a7fb49519378c5f06f321682", "mediaId": "727d8eefa41c44e190021730893f2ec2", "position": 1 }] }

 

im admin-bereich wird das bild korrekt angezeigt und als “Cover” gekennzeichnet, wurde aber dem Cover nicht zugewiesen:

im frontend wird das bild im listing nicht angezeigt, auf der detailseite erscheint das bild korrekt.

 

aufgrund eines bestehenden fehlers in der doku von shopware 6, wird das bild nicht richtig zugewiesen:

payload (auszug):
{
    „id“: „bdff2530a7fb49519378c5f06f321682“,
    „coverId“: „cdfb2479a7fb49519378c5f06f321682“,
    „media“: [
        {
            „id“: „cdfb2479a7fb49519378c5f06f321682“,
            „mediaId“: „727d8eefa41c44e190021730893f2ec2“,
            „position“: 1
        }
    ]
}

die mediaId ist die falsche - die id des dem produkt zugeordneten bildes muss hier verwendet werden.

2 Likes

Ich denke, ich bin gerade an dem gleichen Problem. Und folgendes habe ich dazu herausgefunden:

  • Es gibt Medias
  • Es gibt Products
  • Diese haben offenbar eine n:m-Beziehung zueinander
  • → Es gibt also eine Zwischentabelle und demnach ein Zwischenobjekt Product_Media
  • Die coverId bei Product ist keine Media-ID, sondern eine Product_Media-ID
  • Man muss also ein Product_Media-Objekt erstellen, um die Media mit Products zu verknüpfen
  • Dieses Product_Media-Objekt hat 3 Pflichtfelder: productId, mediaId, createdAt
  • Wurde dieses Zwischenobjekt erstellt, kann man dessen product_mediaId in dem Product bei coverId hinterlegen

Ich hoffe meine Erkenntnisse können bei diesem Problem weiterhelfen.