PHP 7.3 reaches end of support in December 2021 and Adobe Commerce 2.3.x reaches end of support in April 2022. You may want to consider planning your upgrade now to Adobe Commerce 2.4.x and PHP 7.4.x to help maintain PCI compliance.

customAttributeMetadata query

The customAttributeMetadata query returns the attribute type, given an attribute code and entity type. All entity attributes can be added to an equivalent GraphQL type, including custom, extension, and EAV (which have precedence set in that order for collisions). The GraphQL query consumer does not have the ability to know a field’s attribute type.

Syntax

customAttributeMetadata(attributes: [AttributeInput!]!): CustomAttributeMetadata

Example usage

The following query returns the attribute type for various custom and EAV attributes.

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
{
  customAttributeMetadata(
    attributes: [
      {
        attribute_code: "size"
        entity_type: "catalog_product"
      }
      {
        attribute_code: "color"
        entity_type: "catalog_product"
      }
    ]
  ) {
    items {
      attribute_code
      attribute_type
      entity_type
      input_type
      attribute_options {
       value
       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
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
{
  "data": {
    "customAttributeMetadata": {
      "items": [
        {
          "attribute_code": "size",
          "attribute_type": "Int",
          "entity_type": "catalog_product",
          "input_type": "select",
          "attribute_options": [
            {
              "value": "91",
              "label": "55 cm"
            },
            {
              "value": "169",
              "label": "XS"
            },
            {
              "value": "92",
              "label": "65 cm"
            },
            {
              "value": "170",
              "label": "S"
            },
            {
              "value": "93",
              "label": "75 cm"
            },
            {
              "value": "171",
              "label": "M"
            },
            {
              "value": "94",
              "label": "6 foot"
            },
            {
              "value": "172",
              "label": "L"
            },
            {
              "value": "95",
              "label": "8 foot"
            },
            {
              "value": "173",
              "label": "XL"
            },
            {
              "value": "96",
              "label": "10 foot"
            },
            {
              "value": "174",
              "label": "28"
            },
            {
              "value": "175",
              "label": "29"
            },
            {
              "value": "176",
              "label": "30"
            },
            {
              "value": "177",
              "label": "31"
            },
            {
              "value": "178",
              "label": "32"
            },
            {
              "value": "179",
              "label": "33"
            },
            {
              "value": "180",
              "label": "34"
            },
            {
              "value": "181",
              "label": "36"
            },
            {
              "value": "182",
              "label": "38"
            }
          ]
        },
        {
          "attribute_code": "color",
          "attribute_type": "Int",
          "entity_type": "catalog_product",
          "input_type": "select",
          "attribute_options": [
            {
              "value": "49",
              "label": "Black"
            },
            {
              "value": "50",
              "label": "Blue"
            },
            {
              "value": "51",
              "label": "Brown"
            },
            {
              "value": "52",
              "label": "Gray"
            },
            {
              "value": "53",
              "label": "Green"
            },
            {
              "value": "54",
              "label": "Lavender"
            },
            {
              "value": "55",
              "label": "Multi"
            },
            {
              "value": "56",
              "label": "Orange"
            },
            {
              "value": "57",
              "label": "Purple"
            },
            {
              "value": "58",
              "label": "Red"
            },
            {
              "value": "59",
              "label": "White"
            },
            {
              "value": "60",
              "label": "Yellow"
            }
          ]
        }
      ]
    }
  }
}

Input attributes

The AttributeInput input object requires the following attributes.

Attribute Data Type Description
attribute_code String The unique identifier for an attribute code. This value should be in lowercase letters without spaces
entity_type String The type of entity that defines the attribute, such as catalog_product, catalog_category, or customer

Output attributes

The CustomAttributeMetadata object is an array of items. The items object can contain the following attributes.

Attribute Data Type Description
attribute_code String The unique identifier for an attribute code. This value should be in lowercase letters without spaces
attribute_options [AttributeOption] An array of attribute options
attribute_type String The data type of the attribute
entity_type String The type of entity that defines the attribute, such as catalog_product, catalog_category, or customer
input_type String The frontend input type of the attribute

AttributeOption object

The AttributeOption object contains the name and value of the option.

Attribute Data Type Description
label String The name of an attribute option
value String The value assigned to an attribute option

Errors

Error Description
Field "customAttributeMetadata" argument "attributes" of type "[AttributeInput!]!" is required but not provided The attributes array parameter is required.
The attribute with a "xxxx" attributeCode doesn't exist. Verify the attribute and try again The given attribute_code parameter is invalid.
Invalid entity_type specified: "xxxx" The given entity_type is invalid.
Missing attribute_code for the input entity_type: "xxxx" There is no value passed for the attribute_code parameter for the given entity_type parameter.
Missing entity_type for the input attribute_code: "xxxx" There is no value passed for the entity_type parameter for the given attribute_code parameter.
Missing attribute_code/entity_type for the input Empty AttributeInput There are no values passed for both attribute_code and entity_type parameters.