# Produkt-Bilder aus der API abrufen

**URL:** <https://forum.shopware.com/t/produkt-bilder-aus-der-api-abrufen/99277>\
**Category:** Programmierung\
**Created:** [10. April 2023 um 15:11 UTC](https://forum.shopware.com/t/produkt-bilder-aus-der-api-abrufen/99277 "2023-04-10T15:11:19Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![rotknecht](https://avatars.discourse-cdn.com/v4/letter/r/b5ac83/32.png) [@rotknecht](https://forum.shopware.com/u/rotknecht)\
**Post date:** [10. April 2023 um 15:11 UTC](https://forum.shopware.com/t/produkt-bilder-aus-der-api-abrufen/99277/1 "2023-04-10T15:11:19Z")

</div>

Hallo,

irgendwie finde ich die Beschreibung in der API nicht…

Wie kann ich zu einem Bestimmten Produkt alle zugeordneten Bilder (IDs etc.) abrufen?

---

<div class="post-metadata">

**Author:** ![chapter2](https://avatars.discourse-cdn.com/v4/letter/c/f4b2a3/32.png) [@chapter2](https://forum.shopware.com/u/chapter2)\
**Post date:** [11. April 2023 um 15:17 UTC](https://forum.shopware.com/t/produkt-bilder-aus-der-api-abrufen/99277/2 "2023-04-11T15:17:32Z")

</div>

Die API ist schon ein guter Einstiegspunkt. Die Struktur der Abfragen ist konsistent. Die meisten Relationen werden in den Entities nicht automatisch mitgeladen. Für Produkte mit Bildern geht zum Beispiel:

```auto
$apiBody = [
    'filter' => [
        ['type' => 'equals', 'field' => 'product.productNumber', 'value' => SEARCH_PRODUCT_NUMBER]
    ],
    'includes' => [
        'product' => [
            'id', 'parentId', 'active', 'name', 'description', 'stock',
            'price', 'productNumber', 'taxId', 'coverId', 'media', ...$otherProductFields
        ],
        'product_media' => ['id', 'position', 'productId', 'mediaId', 'media', ...$otherProductMediaFields],
        'media' => ['id', 'fileName', ...$otherMediaFields],
    ],
    'associations' => [
        'media' => ['total-count-mode' => 1],
    ],
];

```

Das ganze schickt man dann an `api/search/product`

---

<div class="post-metadata">

**Author:** ![rotknecht](https://avatars.discourse-cdn.com/v4/letter/r/b5ac83/32.png) [@rotknecht](https://forum.shopware.com/u/rotknecht)\
**Post date:** [11. April 2023 um 16:04 UTC](https://forum.shopware.com/t/produkt-bilder-aus-der-api-abrufen/99277/3 "2023-04-11T16:04:05Z")

</div>

Danke sehr. 🙂

Weisst Du noch, wie ich an die Varianten komme?  
Bzw. an die Cross-Sellings?

---

<div class="post-metadata">

**Author:** ![chapter2](https://avatars.discourse-cdn.com/v4/letter/c/f4b2a3/32.png) [@chapter2](https://forum.shopware.com/u/chapter2)\
**Post date:** [12. April 2023 um 14:51 UTC](https://forum.shopware.com/t/produkt-bilder-aus-der-api-abrufen/99277/4 "2023-04-12T14:51:41Z")

</div>

Ich umreiße es dieses mal. Erweitere die Includes bei product um `children` und füge die passende association hinzu (wie die wohl heißen mag … )

Für den Sonderfall `product` ist die Variante ebenfalls wieder ein `product`. Diese würde aber nicht unter included erscheinen. Die Varianten wären ein schlecht sortierter Teil der Api-Antwort im `data`-Block. Die Verarbeitung umständlicher als unter `included`.

Erweitere den Filter Filter und die Varianten stehen unter included zur Verfügung:

```auto
$filter[] = ['type' => 'equals', 'field' => 'product.parentId', 'value' => null];

```

Cross-Sellings - anderer Name, gleiches Spiel 😉
