Product interface implementations

Magento provides multiple product types, and most of these product types have specialized attributes that are not defined in the ProductInterface.

Product type Implements Has product-specific attributes?
BundleProduct ProductInterface, PhysicalProductInterface, CustomizableProductInterface, RoutableInterface Yes
ConfigurableProduct ProductInterface, PhysicalProductInterface, CustomizableProductInterface, RoutableInterface Yes
DownloadableProduct ProductInterface, CustomizableProductInterface, RoutableInterface Yes
GiftCardProduct ProductInterface, PhysicalProductInterface, CustomizableProductInterface, RoutableInterface Yes
GroupedProduct ProductInterface, PhysicalProductInterface, CustomizableProductInterface, RoutableInterface Yes
SimpleProduct ProductInterface, PhysicalProductInterface, CustomizableProductInterface, RoutableInterface No
VirtualProduct ProductInterface, CustomizableProductInterface, RoutableInterface No

Query for product-specific attributes

To return attributes that are specific to a product type, append a structure similar to the following to the end of the Products output object:

1
2
3
4
5
6
7
... on <ProductType> {
  items{
    <ProductType-attribute1>
    <ProductType-attribute2>
    ...
    }
  }

For example, to return GroupedProduct attributes, construct your query like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
  products(filter:
    {sku: {eq: "24-WG085_Group"}}
  )
  {
    items {
      uid
      name
      sku
      __typename
      ... on GroupedProduct {
        items{
          qty
          position
          product{
            sku
            name
            __typename
            url_key
          }
        }
      }
    }
  }
}
Response
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
{
  "data": {
    "products": {
      "items": [
        {
          "uid": "NDU=",
          "name": "Set of Sprite Yoga Straps",
          "sku": "24-WG085_Group",
          "__typename": "GroupedProduct",
          "items": [
            {
              "qty": 0,
              "position": 0,
              "product": {
                "sku": "24-WG085",
                "name": "Sprite Yoga Strap 6 foot",
                "__typename": "SimpleProduct",
                "url_key": "sprite-yoga-strap-6-foot"
              }
            },
            {
              "qty": 0,
              "position": 1,
              "product": {
                "sku": "24-WG086",
                "name": "Sprite Yoga Strap 8 foot",
                "__typename": "SimpleProduct",
                "url_key": "sprite-yoga-strap-8-foot"
              }
            },
            {
              "qty": 0,
              "position": 2,
              "product": {
                "sku": "24-WG087",
                "name": "Sprite Yoga Strap 10 foot",
                "__typename": "SimpleProduct",
                "url_key": "sprite-yoga-strap-10-foot"
              }
            }
          ]
        }
      ]
    }
  }
}