addBundleProductsToCart mutation

Magento recommends using the addProductsToCart mutation to add any type of product to the cart.

Use the addBundleProductsToCart mutation to add bundle products to a specific cart.

Syntax

mutation: {addBundleProductsToCart(input: AddBundleProductsToCartInput): {AddBundleProductsToCartOutput}}

Example usage

The following example uses a bundle product “Sprite Yoga Companion Kit” from Magento sample data. The SKU of this product is: 24-WG080

This example adds one bundle product with following children to the specified shopping cart:

  • Sprite Stasis Ball 65 cm (x1)
  • Sprite Foam Yoga Brick (x2)
  • Sprite Yoga Strap 10 foot (x1)
  • Sprite Foam Roller (x1)

The cart_id used in this example was generated by creating an empty cart.

Request:

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
mutation {
  addBundleProductsToCart(
    input: {
      cart_id: "wARFaDnHva0tgzuforUYR4rvXincj5eu"
      cart_items: [
      {
        data: {
          sku: "24-WG080"
          quantity: 1
        }
        bundle_options: [
          {
            id: 1
            quantity: 1
            value: [
              "2"
            ]
          },
          {
            id: 2
            quantity: 2
            value: [
              "4"
            ]
          },
          {
            id: 3
            quantity: 1
            value: [
              "7"
            ]
          },
          {
            id: 4
            quantity: 1
            value: [
              "8"
            ]
          }
        ]
      },
    ]
  }) {
    cart {
      items {
        id
        quantity
        product {
          sku
        }
        ... on BundleCartItem {
          bundle_options {
            id
            label
            type
            values {
              id
              label
              price
              quantity
            }
          }
        }
      }
    }
  }
}

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
{
  "data": {
    "addBundleProductsToCart": {
      "cart": {
        "items": [
          {
            "id": "7",
            "quantity": 1,
            "product": {
              "sku": "24-WG080"
            },
            "bundle_options": [
              {
                "id": 1,
                "label": "Sprite Stasis Ball",
                "type": "radio",
                "values": [
                  {
                    "id": 2,
                    "label": "Sprite Stasis Ball 65 cm",
                    "price": 27,
                    "quantity": 1
                  }
                ]
              },
              {
                "id": 2,
                "label": "Sprite Foam Yoga Brick",
                "type": "radio",
                "values": [
                  {
                    "id": 4,
                    "label": "Sprite Foam Yoga Brick",
                    "price": 5,
                    "quantity": 2
                  }
                ]
              },
              {
                "id": 3,
                "label": "Sprite Yoga Strap",
                "type": "radio",
                "values": [
                  {
                    "id": 7,
                    "label": "Sprite Yoga Strap 10 foot",
                    "price": 21,
                    "quantity": 1
                  }
                ]
              },
              {
                "id": 4,
                "label": "Sprite Foam Roller",
                "type": "radio",
                "values": [
                  {
                    "id": 8,
                    "label": "Sprite Foam Roller",
                    "price": 19,
                    "quantity": 1
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  }
}

Input attributes

The top-level AddBundleProductsToCartInput object is listed first. All interfaces and child objects are listed in alphabetical order.

AddBundleProductsToCartInput object

The AddBundleProductsToCartInput object contains the following attributes:

Attribute Type Description
cart_id String! The unique ID that identifies the customer’s cart
cart_items [BundleProductCartItemInput!]! An array of bundle items to add to the cart

BundleProductCartItemInput object

The BundleProductCartItemInput object contains the following attributes:

Attribute Type Description
bundle_options [BundleOptionInput!]! An object that contains an array of options of the bundle product with the chosen value and quantity of each option
customizable_options [CustomizableOptionInput!] An object that contains the ID and value of the product
data CartItemInput! An object that contains the quantity and SKU of the bundle product

BundleOptionInput object

The BundleOptionInput object contains the following attributes:

Attribute Type Description
id Int! ID of the option
quantity Float! The number of a specific child item to add to the cart
value [String!]! An array with the chosen value of the option

CartItemInput object

The CartItemInput object contains the following attributes:

Attribute Type Description
quantity Float! The number of items to add to the cart
sku String! The SKU of the product

CustomizableOptionInput object

The CustomizableOptionInput object must contain the following attributes:

Attribute Data Type Description
id Int! A unique ID assigned to the customizable option
value_string String! A value assigned to the customizable option

Output attributes

The AddBundleProductsToCartOutput object contains the Cart object.

Attribute Data Type Description
cart Cart! Describes the contents of the specified shopping cart

Cart object

Attribute Data Type Description
applied_coupon AppliedCoupon Deprecated. Use applied_coupons instead
applied_coupons [AppliedCoupon] An array of AppliedCoupon objects. Each object contains the code text attribute, which specifies the coupon code
applied_gift_cards [AppliedGiftCard] An array of AppliedGiftCard objects. An AppliedGiftCard object contains the code text attribute, which specifies the gift card code. applied_gift_cards is a Commerce-only attribute, defined in the GiftCardAccountGraphQl module
applied_reward_points RewardPointsAmount The amount of reward points applied to the cart
applied_store_credit AppliedStoreCredit Contains store credit information applied to the cart. applied_store_credit is a Commerce-only attribute, defined in the CustomerBalanceGraphQl module
available_gift_wrappings [GiftWrapping]! The list of available gift wrapping options for the cart
available_payment_methods [AvailablePaymentMethod] Available payment methods
billing_address BillingCartAddress Contains the billing address specified in the customer’s cart
email String The customer’s email address
gift_message GiftMessage A gift message added to the cart
gift_receipt_included Boolean! Indicates if the customer requested a gift receipt for the cart
gift_wrapping GiftWrapping The selected gift wrapping for the cart
id ID! The ID of the cart
is_virtual Boolean! Indicates whether the cart contains only virtual products
items [CartItemInterface] Contains the items in the customer’s cart
prices CartPrices Contains subtotals and totals
printed_card_included Boolean! Indicates if the customer requested a printed card for the cart
selected_payment_method SelectedPaymentMethod Selected payment method
shipping_addresses [ShippingCartAddress]! Contains one or more shipping addresses
total_quantity Float! Total Quantity of products in the cart

Cart query output provides more information about the Cart object.

Errors

Error Description
Could not find a product with SKU "XXX" A simple product with the SKU specified in the data.sku argument does not exist.
Could not find a cart with ID "XXX" The specified cart_id value does not exist in the quote_id_mask database table.
Required parameter "cart_id" is missing The cart_id argument is omitted or contains an empty value.