Gruppe via API abfragen

Hallo zusammen,

ich komme nicht darauf, wie siche die Gruppen eines Produkts (Größe, Farbe, Material, Zielgruppe etc.) über die API abfragen lassen. Vielleicht weiß einer weiter :slight_smile:

Gruß

 

Hi bAckermann,

das sollte eigentlich so gehen:
api/v1/product?associations[options]

Gruß

Krispin

Hi Krispin,

dank für deine Antwort. Ich bekomme zwar die Eigenschaften des Produkts mit der jeweiligen Gruppen-Id, allerdings nicht die Gruppe an sich mit den entsprechendem Gruppennamen.

Gruß

Hi bAckermann,

unter dem Key “included” solltest du eigentlich auch die dazugehörigen Property-Option-Groups haben.

Gruß

Krispin

Hi Krispin,

nochmals Danke für deine Rückmeldung. Leider ist der Key “included” bei mir nicht vorhanden. Weder im Produkt, noch unter options, properties etc. Ich verwende die Version Early Access 1.1. Ist das vielleicht erst in einer späteren Version möglich?

Gruß

Hi bAckermann,

das kann sein …
Ich schaue mir das nachher mal in der EA1.1-Version an.

Gruß

Krispin

Hi Krispin,

hast du nochmal Zeit gehabt, dir die EA1.1-Version anzuschauen?

Ich habe in der zwischenzeit mal die aktuelle Version von GitHub auf einem Docker Container laufen lassen, allerdings bin ich auch hier nicht fündig geworden :frowning:

Gruß

Guten Morgen bAckermann,

meine Response sieht so aus:

{
    "data": [
        {
            "id": "ade42f1863034c2fb31ba05bfaee955e",
            "type": "product",
            "attributes": {
                "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425",
                "parentId": "f289c1dae18749d48cd247bb42a31d2a",
                "parentVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425",
                "childCount": null,
                "blacklistIds": null,
                "whitelistIds": null,
                "active": true,
                "stock": 0,
                "availableStock": 0,
                "available": true,
                "variantRestrictions": null,
                "displayInListing": false,
                "configuratorGroupConfig": null,
                "manufacturerId": null,
                "productManufacturerVersionId": null,
                "unitId": null,
                "taxId": "ae6f85755b6c480a9c0c2f8fefe03c81",
                "coverId": null,
                "productMediaVersionId": null,
                "price": null,
                "manufacturerNumber": null,
                "ean": null,
                "productNumber": "SW10002.1",
                "isCloseout": null,
                "purchaseSteps": null,
                "maxPurchase": null,
                "minPurchase": null,
                "purchaseUnit": null,
                "referenceUnit": null,
                "shippingFree": null,
                "purchasePrice": null,
                "markAsTopseller": null,
                "weight": null,
                "width": null,
                "height": null,
                "length": null,
                "releaseDate": null,
                "categoryTree": null,
                "propertyIds": null,
                "optionIds": [
                    "6605100244984716a2239d2483e2d0b4"
                ],
                "tagIds": null,
                "listingPrices": [],
                "deliveryTimeId": null,
                "restockTime": null,
                "additionalText": null,
                "name": null,
                "keywords": null,
                "description": null,
                "metaTitle": null,
                "packUnit": null,
                "customFields": null,
                "createdAt": "2019-10-09T06:57:43+00:00",
                "updatedAt": null,
                "translated": {
                    "additionalText": null,
                    "name": null,
                    "keywords": null,
                    "description": null,
                    "metaTitle": null,
                    "packUnit": null,
                    "customFields": []
                }
            },
            ...
        }
    ],
    "included": [
        {
            "id": "ae6f85755b6c480a9c0c2f8fefe03c81",
            "type": "tax",
            "attributes": {
                "taxRate": 7,
                "name": "7%",
                "customFields": null,
                "createdAt": "2019-10-09T06:48:14+00:00",
                "updatedAt": null
            },
            ...
        },
        {
            "id": "6605100244984716a2239d2483e2d0b4",
            "type": "property_group_option",
            "attributes": {
                "groupId": "6dc9e9ca066e43f3bd828d029dfe18a2",
                "name": "red",
                "position": 1,
                "colorHexCode": null,
                "mediaId": null,
                "customFields": null,
                "createdAt": "2019-10-09T06:57:33+00:00",
                "updatedAt": null,
                "translated": {
                    "name": "red",
                    "position": 1,
                    "customFields": []
                }
            },
            ...
        },
        {
            "id": "ade42f1863034c2fb31ba05bfaee955e",
            "type": "extension",
            "attributes": {
                "canonicalUrl": null
            },
            ...
        },
        {
            "id": "862fd829bee14e12916512621c81c504",
            "type": "property_group_option",
            "attributes": {
                "groupId": "6dc9e9ca066e43f3bd828d029dfe18a2",
                "name": "blue",
                "position": 1,
                "colorHexCode": null,
                "mediaId": null,
                "customFields": null,
                "createdAt": "2019-10-09T06:57:33+00:00",
                "updatedAt": null,
                "translated": {
                    "name": "blue",
                    "position": 1,
                    "customFields": []
                }
            },
            ...
        },
        {
            "id": "bf71a1a6272740c6ad92d8dbe1005ad9",
            "type": "extension",
            "attributes": {
                "canonicalUrl": null
            },
            ...
        },
        {
            "id": "f289c1dae18749d48cd247bb42a31d2a",
            "type": "extension",
            "attributes": {
                "canonicalUrl": null
            },
            ...
        }
    ],
    ...
}

Und in dem Key „included“ sind die Relations, unter anderem die Options:

"included": [
...
        {
            "id": "6605100244984716a2239d2483e2d0b4",
            "type": "property_group_option",
            "attributes": {
                "groupId": "6dc9e9ca066e43f3bd828d029dfe18a2",
                "name": "red",
                "position": 1,
                "colorHexCode": null,
                "mediaId": null,
                "customFields": null,
                "createdAt": "2019-10-09T06:57:33+00:00",
                "updatedAt": null,
                "translated": {
                    "name": "red",
                    "position": 1,
                    "customFields": []
                }
            },
....

Gruß

Krispin

Hi Krispin,

ich bin´s nochmal…

Der Key ist bei mir, zumindest in der EA1.1 nicht vorhanden, ist aber egal, da das ja unter “options” reingeladen wird. Dort wird mir auch die Attribute wie “red”, “blue” etc. angezeigt, allerdings suche ich den Gruppenname, sprich “color” etc. Das wird mir nirgends angezeigt.

Gruß

Hi bAckermann,

da haben wir wohl aneinander vorbei gesprochen, sorry.
Glaube, das dies leider nicht per API geht, direkte Verbindungen wie options ist kein Problem, aber verschachtelte Entitäten funktioniert meines Wissens nach nicht.

Gruß

Krispin

Hi bAckermann,

Der Unterschied das die Responses von Krispin unterschiedlich aussehen liegt wahrscheinlich daran, dass Krispin die API im JSON:API standard nutzt und du wahrscheinlich die „einfache“ JSON codierte Response bekommst. Setzt du den „Accept“-Header bei deinem Request auf „application/json“?

Aber nichts destotrotz kannst du acu über die API verschachtelte Entites mitladen. Im GET Request über den URL Parameter sieht das ein bisschen komisch aus: 
 

?associations[options][associations][group][]

 

2 Likes

Hi Jonas,

tausend Dank für den Parameter!!  Thumb-Up Thumb-Up

Der Accept-Header war tatsächlich nicht gesetzt. Aber auch nach dem setzten, war die Response die selbe. Muss zusätzlich noch was im Backend eingestellt werden?

Edit: Wie würde der Aufruf über den Body aussehen?

Gruß