Store API - Einschränkung mittels includes funktioniert nicht richtig?

Hallo,

ich möchte per Store API Artikeldetails abfragen, mache das wie folgt.
POST an http://localhost/store-api/v3/product/1f6a07106658462bb34e023d171e8759

{
    "includes": {
        "product": ["id", "translated.name", "translated.description"]
    }
}

Die Antwort sieht dann auch ok aus.
 

{
    "apiAlias": "product_detail",
    "product": {
        "translated": {
            "name": "Erdbeer-Schokotraum",
            "description": "Himmlisch lecker....wenn unser Erdbeertraum vom Schokotraum geküsst wird....entsteht etwas ganz Einzigartiges - unser Erdbeer-Schokotraum. Aber Vorsicht - Suchtgefahr ;0)"
        },
        "id": "1f6a07106658462bb34e023d171e8759",
        "apiAlias": "product"
    },
    "configurator": []
}

Ich möchte nun zusätzliche Attribute wie die URL vom Cover oder den Namen der Lieferbarkeit mit ausgegeben haben.
Dementsprechend habe ich meinen Request angepasst in “product”: [“id”, “translated.name”, “translated.description”, “cover.media.url”, “deliveryTime.translated.name”]

Allerdings erhalte ich dann nicht nur die gewünschten Attribute, sondern alle unterhalb von “cover” und “deliveryTime”.
Wieso? Bei “translated” funktioniert es ja auch so.

Mache ich hier was falsch, oder handelt es sich um einen Fehler in der Auswertung der includes?

Gruß
sturzi

cover und deliveryTime sind eigene Entitäten. Du musst deren apiAlias verwenden und dann die Felder einschränken.  Quasi:

{
  "includes": {
    "product": ["id", "translated.name", "translated.description"],
    "product_media": ["media"],
    "media": ["url"]
  }
}

 

1 „Gefällt mir“

Ok, verstanden. Funktioniert aber nicht.
Ich habe meine includes entsprechend angepasst.
 

{
    "includes": {
        "product": ["id", "translated.name", "translated.description"],
        "product_media": ["media"],
        "media": ["url"],
        "delivery_time": ["translated.name"]
    }
}

Bekomme aber in der Antwort das Gleiche wie zuvor auch.
 

{
    "apiAlias": "product_detail",
    "product": {
        "translated": {
            "name": "Erdbeer-Schokotraum",
            "description": "Himmlisch lecker....wenn unser Erdbeertraum vom Schokotraum geküsst wird....entsteht etwas ganz Einzigartiges - unser Erdbeer-Schokotraum. Aber Vorsicht - Suchtgefahr ;0)"
        },
        "id": "1f6a07106658462bb34e023d171e8759",
        "apiAlias": "product"
    },
    "configurator": []
}

Fehlt da noch was?
In den Daten zum Artikel sind die Werte aber vorhanden.

Ok, selbst herausgefunden. :slight_smile:
 

{
    "includes": {
        "product": ["id", "translated.name", "translated.description", "calculatedPrice.totalPrice", "deliveryTime.translated.name", "cover.media.url"],
        "product_media": ["media"],
        "media": ["url"],
        "delivery_time": ["translated.name"],
        "calculated_price": ["totalPrice"]
    }
}