Orhan Bayram
Orhan Bayram

Reputation: 106

Shopware 6 API / Product Listing / How to add available color variants for each product on the response

API Request /store-api/product-listing/{categoryId}

I want each product in the API response to have available color variants. Because I want to show color variants on the product list page. But currently this data is not provided by the shopware 6 api.

I've tried to add this data by using associations but it didnt help.

Request Body

{
    "includes": {
    "product": ["id", "productNumber", "cover", "options"]
  },
    "associations": {
        "options": {
            "media": []
        }
    }
}

Upvotes: 1

Views: 726

Answers (1)

dneustadt
dneustadt

Reputation: 13201

The request body looks to be correct. If the product is a variant then it should have content for options.

To verify try the following request body:

{
  "limit": 1,
  "includes": {
    "product": ["id", "productNumber", "options"],
    "property_group_option": ["name", "group"],
    "property_group": ["name"]
  },
  "associations": {
    "options": {
      "associations": {
        "group": []
      }
    }
  },
  "filters": [
    {
      "type": "not", 
      "operator": "and",
      "queries": [
        {
          "type": "equals",
          "field": "parentId",
          "value": null
        }
      ]
    }
  ]
}

This should yield a single variant.

Response should look similar to this:

{
    "entity": "product",
    "total": 1,
    "aggregations": [],
    "page": 1,
    "limit": 1,
    "elements": [
        {
            "productNumber": "10042.1",
            "options": [
                {
                    "name": "linen",
                    "group": {
                        "name": "textile",
                        "apiAlias": "property_group"
                    },
                    "apiAlias": "property_group_option"
                },
                {
                    "name": "35",
                    "group": {
                        "name": "size",
                        "apiAlias": "property_group"
                    },
                    "apiAlias": "property_group_option"
                },
                {
                    "name": "chartreuse",
                    "group": {
                        "name": "shirt-color",
                        "apiAlias": "property_group"
                    },
                    "apiAlias": "property_group_option"
                }
            ],
            "id": "0002ea44c49c41ecb91c43e7e49e422d",
            "apiAlias": "product"
        }
    ],
    "states": [],
    "apiAlias": "dal_entity_search_result"
}

Upvotes: 2

Related Questions