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
{
  customAttributeMetadata(
    attributes: [
      {
        attribute_code: "size"
        entity_type: "catalog_product"
      }
      {
        attribute_code: "color"
        entity_type: "catalog_product"
      }
    ]
  ) {
    items {
      attribute_code
      attribute_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
{
  "data": {
    "customAttributeMetadata": {
      "items": [
        {
          "attribute_code": "size",
          "attribute_type": "Int",
          "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",
          "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

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
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