addConfigurableProductsToCart mutation

Use the addConfigurableProductsToCart mutation to add configurable products to a specific cart.

Syntax

mutation: {addConfigurableProductsToCart(input: AddConfigurableProductsToCartInput) {AddConfigurableProductsToCartOutput}}

Example usage

The following example adds two black Teton Pullover Hoodies size extra-small to the specified shopping cart. 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
mutation {
  addConfigurableProductsToCart(
    input: {
      cart_id: "4JQaNVJokOpFxrykGVvYrjhiNv9qt31C"
      cart_items: [
        {
          parent_sku: "MH02"
          data: {
            quantity: 2
            sku: "MH02-XS-Black"
          }
        }
      ]
    }
  ) {
    cart {
      items {
        id
        quantity
        product {
          name
          sku
        }
        ... on ConfigurableCartItem {
          configurable_options {
            option_label
          }
        }
      }
    }
  }
}

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
{
  "data": {
    "addConfigurableProductsToCart": {
      "cart": {
        "items": [
          {
            "id": "5",
            "quantity": 2,
            "product": {
              "name": "Teton Pullover Hoodie",
              "sku": "MH02"
            },
            "configurable_options": [
              {
                "option_label": "Color"
              },
              {
                "option_label": "Size"
              }
            ]
          }
        ]
      }
    }
  }
}

Input attributes

AddConfigurableProductsToCartInput object

The AddConfigurableProductsToCartInput object contains the following attributes:

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

ConfigurableProductCartItemInput object

The ConfigurableProductCartItemInput object contains the following attributes:

Attribute Type Description
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 configurable product
parent_sku String The SKU of the simple product’s parent configurable product. If you do not specify this attribute, Magento treats the product being added to the cart as a simple product
variant_sku String Deprecated. Use CartItemInput.sku instead. The SKU of the simple product

CustomizableOptionInput object

The CustomizableOptionInput object contains the following attributes:

Attribute Type Description
id Int The ID of the customizable option
value String The value of the customizable option. For example, if color was the customizable option, a possible value could be black

CartItemInput object

The CartItemInput object must contain the following attributes:

Attribute Data Type Description
quantity Float! The quantity of the item to add to the cart
sku String! The sku of the product to be added to the cart

Output attributes

The AddConfigurableProductsToCartOutput 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_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_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
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
selected_payment_method SelectedPaymentMethod Selected payment method
shipping_addresses [ShippingCartAddress]! Contains one or more shipping addresses

Cart query output provides more information about the Cart object.

Errors

Error Description
Could not add the product with SKU configurable to the shopping cart: The product that was requested doesn't exist. Verify the product and try again. The simple product with the SKU specified in the data.sku attribute does not exist.
Could not find a product with SKU "XXX" The configurable product with SKU specified in the parent_sku attribute does not exist.
Could not find specified product. The simple product specified in the data.sku attribute is not assigned to the configurable product provided in the parent_sku attribute.
Required parameter "cart_id" is missing The cart_id attribute was omitted or contains an empty value.
Required parameter "email" is missing The email attribute was omitted or contains an empty value.
The requested qty is not available The requested quantity specified data.quantity is not available.