This is a beta release of documentation for Magento 2.4, published for previewing soon-to-be-released functionality. Content in this version is subject to change. Links to the v2.4 code base may not properly resolve until the code is officially released.

Bundle product data types

The BundleProduct data type implements the following interfaces:

  • ProductInterface
  • PhysicalProductInterface
  • CustomizableProductInterface

Attributes that are specific to bundle products can be used when performing a products query.

BundleProduct object

The BundleProduct object contains the following attributes:

Attribute Type Description
dynamic_price Boolean Indicates whether the bundle product has a dynamic price
dynamic_sku Boolean Indicates whether the bundle product has a dynamic SKU
dynamic_weight Boolean Indicates whether the bundle product has a dynamically calculated weight
items [BundleItem] An array containing information about individual bundle items
price_view PriceViewEnum One of PRICE_RANGE or AS_LOW_AS
ship_bundle_items ShipBundleItemsEnum Indicates whether to ship bundle items TOGETHER or SEPARATELY

BundleItem object

The BundleItem object contains the following attributes:

Attribute Type Description
option_id Int An ID assigned to each type of item in a bundle product
options [BundleItemOption] An array of additional options for this bundle item
position Int The relative position of this item compared to the other bundle items
required Boolean Indicates whether the item must be included in the bundle
sku String The SKU of the bundle product
title String The display name of the item
type String The input type that the customer uses to select the item. Examples include radio button and checkbox.

BundleItemOption object

The BundleItemOption object contains the following attributes:

Attribute Type Description
can_change_quantity Boolean Indicates whether the customer can change the number of items for this option
id Int The ID assigned to the bundled item option
is_default Boolean Indicates whether this option is the default option
label String The text that identifies the bundled item option
position Int When a bundle item contains multiple options, the relative position of this option compared to the other options
price_type PriceTypeEnum One of FIXED, PERCENT, or DYNAMIC
price Float The price of the selected option
product ProductInterface Contains details about this product option
qty Float Deprecated. Use quantity instead
quantity Float Indicates the quantity of this specific bundle item

Sample Query

The following query returns information about bundle product 24-WG080, which is defined in the sample data.

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
{
  products(filter: {sku:
    {eq: "24-WG080"}
  })
   {
      items{
         sku
         __typename
         id
         name
          ... on BundleProduct {
          dynamic_sku
          dynamic_price
          dynamic_weight
          price_view
          ship_bundle_items
          items {
            option_id
            title
            required
            type
            position
            sku
            options {
              id
              quantity
              position
              is_default
              price
              price_type
              can_change_quantity
              label
              product {
                id
                name
                sku
                __typename
              }
            }
          }
        }
      }
   }
}
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
{
  "data": {
    "products": {
      "items": [
        {
          "sku": "24-WG080",
          "__typename": "bundle",
          "id": 46,
          "name": "Sprite Yoga Companion Kit",
          "dynamic_sku": true,
          "dynamic_price": true,
          "dynamic_weight": true,
          "price_view": "PRICE_RANGE",
          "ship_bundle_items": "TOGETHER",
          "items": [
            {
              "option_id": 1,
              "title": "Sprite Stasis Ball",
              "required": true,
              "type": "radio",
              "position": 1,
              "sku": "24-WG080",
              "options": [
                {
                  "id": 1,
                  "quantity": 1,
                  "position": 1,
                  "is_default": true,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Stasis Ball 55 cm",
                  "product": {
                    "id": 26,
                    "name": "Sprite Stasis Ball 55 cm",
                    "sku": "24-WG081-blue",
                    "__typename": "simple"
                  }
                },
                {
                  "id": 2,
                  "quantity": 1,
                  "position": 2,
                  "is_default": false,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Stasis Ball 65 cm",
                  "product": {
                    "id": 29,
                    "name": "Sprite Stasis Ball 65 cm",
                    "sku": "24-WG082-blue",
                    "__typename": "simple"
                  }
                },
                {
                  "id": 3,
                  "quantity": 1,
                  "position": 3,
                  "is_default": false,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Stasis Ball 75 cm",
                  "product": {
                    "id": 32,
                    "name": "Sprite Stasis Ball 75 cm",
                    "sku": "24-WG083-blue",
                    "__typename": "simple"
                  }
                }
              ]
            },
            {
              "option_id": 2,
              "title": "Sprite Foam Yoga Brick",
              "required": true,
              "type": "radio",
              "position": 2,
              "sku": "24-WG080",
              "options": [
                {
                  "id": 4,
                  "quantity": 1,
                  "position": 1,
                  "is_default": true,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Foam Yoga Brick",
                  "product": {
                    "id": 21,
                    "name": "Sprite Foam Yoga Brick",
                    "sku": "24-WG084",
                    "__typename": "simple"
                  }
                }
              ]
            },
            {
              "option_id": 3,
              "title": "Sprite Yoga Strap",
              "required": true,
              "type": "radio",
              "position": 3,
              "sku": "24-WG080",
              "options": [
                {
                  "id": 5,
                  "quantity": 1,
                  "position": 1,
                  "is_default": true,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Yoga Strap 6 foot",
                  "product": {
                    "id": 33,
                    "name": "Sprite Yoga Strap 6 foot",
                    "sku": "24-WG085",
                    "__typename": "simple"
                  }
                },
                {
                  "id": 6,
                  "quantity": 1,
                  "position": 2,
                  "is_default": false,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Yoga Strap 8 foot",
                  "product": {
                    "id": 34,
                    "name": "Sprite Yoga Strap 8 foot",
                    "sku": "24-WG086",
                    "__typename": "simple"
                  }
                },
                {
                  "id": 7,
                  "quantity": 1,
                  "position": 3,
                  "is_default": false,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Yoga Strap 10 foot",
                  "product": {
                    "id": 35,
                    "name": "Sprite Yoga Strap 10 foot",
                    "sku": "24-WG087",
                    "__typename": "simple"
                  }
                }
              ]
            },
            {
              "option_id": 4,
              "title": "Sprite Foam Roller",
              "required": true,
              "type": "radio",
              "position": 4,
              "sku": "24-WG080",
              "options": [
                {
                  "id": 8,
                  "quantity": 1,
                  "position": 1,
                  "is_default": true,
                  "price": 0,
                  "price_type": "FIXED",
                  "can_change_quantity": true,
                  "label": "Sprite Foam Roller",
                  "product": {
                    "id": 22,
                    "name": "Sprite Foam Roller",
                    "sku": "24-WG088",
                    "__typename": "simple"
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  }
}