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.

CustomizableOptionInterface

Customizable options for a product provide a way to offer customers a selection of options with a variety of text, selection, and date input types. All product types can contain customizable options.

CustomizableOptionInterface is defined in the CatalogGraphQl module, and its attributes can be used in any products query. This interface returns basic information about a customizable option and can be implemented by several types of configurable options:

  • Text area
  • Checkbox
  • Date picker
  • Drop-down menu
  • Text field
  • File picker
  • Multiple select box
  • Radio buttons

Magento has not implemented all possible customizable product options for GraphQL.

CustomizableOptionInterface can contain the following attributes:

Attribute Type Description
option_id Int The ID assigned to the option
required Boolean Indicates whether the option is required
sort_order Int The order in which the option is displayed
title String The display name for this option

CustomizableAreaOption object

CustomizableAreaOption contains information about a text area that is defined as part of a customizable option.

Attribute Type Description
product_sku String The Stock Keeping Unit of the base product
value CustomizableAreaValue An object that defines a text area

CustomizableAreaValue object

CustomizableAreaValue defines the attributes of a product whose page contains a customized text area.

Attribute Type Description
max_characters Int The maximum number of characters that can be entered for this customizable option
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
price Float The price assigned to this option
sku String The Stock Keeping Unit for this option

CustomizableCheckboxOption object

CustomizableCheckboxOption contains information about a set of checkbox values that are defined as part of a customizable option.

Attribute Type Description
value CustomizableCheckboxValue An array that defines a set of checkbox values

CustomizableCheckboxValue object

CustomizableCheckboxValue defines the attributes of a product whose page contains a customized set of checkbox values.

Attribute Type Description
option_type_id Int The ID assigned to the value
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
price Float The price assigned to this option
sku String The Stock Keeping Unit for this option
sort_order Int The order in which the option is displayed
title String The display name for this option

CustomizableDateOption object

CustomizableDateOption contains information about a date picker that is defined as part of a customizable option.

Attribute Type Description
product_sku String The Stock Keeping Unit of the base product
value CustomizableDateValue An object that defines a date field in a customizable option.

CustomizableDateValue object

CustomizableDateValue defines the attributes of a product whose page contains a customized date picker.

Attribute Type Description
price Float The price assigned to this option
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
sku String The Stock Keeping Unit for this option

CustomizableDropDownOption object

CustomizableDropDownOption contains information about a drop down menu that is defined as part of a customizable option.

Attribute Type Description
value CustomizableDropDownValue An array that defines the set of options for a drop down menu

CustomizableDropDownValue object

CustomizableDropDownValue defines the attributes of a product whose page contains a customized drop down menu.

Attribute Type Description
option_type_id Int The ID assigned to the value
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
price Float The price assigned to this option
sku String The Stock Keeping Unit for this option
sort_order Int The order in which the option is displayed
title String The display name for this option

CustomizableFieldOption object

CustomizableFieldOption contains information about a text field that is defined as part of a customizable option.

Attribute Type Description
product_sku String The Stock Keeping Unit of the base product
value CustomizableFieldValue An object that defines a text field

CustomizableFieldValue object

CustomizableFieldValue defines the attributes of a product whose page contains a customized text field.

Attribute Type Description
max_characters Int The maximum number of characters that can be entered for this customizable option
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
price Float The price of the custom value
sku String The Stock Keeping Unit for this option

CustomizableFileOption object

CustomizableFileOption contains information about a file picker that is defined as part of a customizable option.

Attribute Type Description
product_sku String The Stock Keeping Unit of the base product
value CustomizableFileValue An object that defines a file name

CustomizableFileValue object

CustomizableFileValue defines the attributes of a product whose page contains a customized file picker.

Attribute Type Description
file_extension String The file extension to accept
image_size_x Int The maximum width of an image
image_size_y Int The maximum height of an image
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
price Float The price assigned to this option
sku String The Stock Keeping Unit for this option

CustomizableMultipleOption object

CustomizableMultipleOption contains information about a multiselect that is defined as part of a customizable option.

Attribute Type Description
value CustomizableMultipleValue An array that defines the set of options for a multiselect

CustomizableMultipleValue object

CustomizableMultipleValue defines the price and sku of a product whose page contains a customized multiselect

Attribute Type Description
option_type_id Int The ID assigned to the value
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
price Float The price assigned to this option
sku String The Stock Keeping Unit for this option
sort_order Int The order in which the option is displayed
title String The display name for this option

CustomizableRadioOption object

CustomizableRadioOption contains information about a set of radio buttons that are defined as part of a customizable option.

Attribute Type Description
value CustomizableRadioValue An array that defines a set of radio buttons

CustomizableRadioValue object

CustomizableRadioValue defines the attributes of a product whose page contains a customized set of radio buttons.

Attribute Type Description
option_type_id Int The ID assigned to the value
price_type PriceTypeEnum FIXED, PERCENT, or DYNAMIC
price Float The price assigned to this option
sku String The Stock Keeping Unit for this option
sort_order Int The order in which the option is displayed
title String The display name for this option## CustomizableRadioOption object

CustomizableRadioOption contains information about a set of radio buttons that are defined as part of a customizable option.

Attribute Type Description
value CustomizableRadioValue An array that defines a set of radio buttons

Example usage

The following query returns information about the customizable options configured for the product with a sku of xyz.

Request:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
{
  products(filter: {sku: {eq: "xyz"}}) {
    items {
      id
      name
      sku
      __typename
      ... on CustomizableProductInterface {
        options {
          title
          required
          sort_order
          option_id
        }
      }
    }
  }
}

Response:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
  "data": {
    "products": {
      "items": [
        {
          "id": 1,
          "name": "T-shirt",
          "sku": "xyz",
          "__typename": "SimpleProduct",
          "options": [
            {
              "title": "Image",
              "required": false,
              "sort_order": 1,
              "option_id": 1
            }
          ]
        }
      ]
    }
  }
}