Create Product attribute with select (drop-down) option type by REST Web API Magento 2.
You can create a product select type attribute with the provided payload and basic operation.
Action: POST
Request URL: <HOST_URL>/rest/V1/products/attributes (https://magento.test/rest/V1/products/attributes)
Header: Authorization:Bearer <admin_user_token>
Payload:
{
"attribute": {
"extension_attributes": {
"is_pagebuilder_enabled": false
},
"is_wysiwyg_enabled": false,
"is_html_allowed_on_front": true,
"used_for_sort_by": false,
"is_filterable": true,
"is_filterable_in_search": false,
"is_used_in_grid": false,
"is_visible_in_grid": false,
"is_filterable_in_grid": false,
"position": 0,
"apply_to": [],
"is_searchable": "0",
"is_visible_in_advanced_search": "0",
"is_comparable": "1",
"is_used_for_promo_rules": "1",
"is_visible_on_front": "1",
"used_in_product_listing": "0",
"is_visible": true,
"scope": "global",
"attribute_id": null,
"attribute_code": "my_attribute",
"frontend_input": "select",
"entity_type_id": "4",
"is_required": false,
"options": [
{
"label": "Small",
"value": "Small",
"sort_order": 0,
"is_default": true,
"store_labels": [
{
"store_id": 0,
"label": "Small"
}
]
},
{
"label": "Medium",
"value": "Medium",
"sort_order": 0,
"is_default": false,
"store_labels": [
{
"store_id": 0,
"label": "Medium"
}
]
},
{
"label": "Long",
"value": "Long",
"sort_order": 0,
"is_default": false,
"store_labels": [
{
"store_id": 0,
"label": "Long"
}
]
}
],
"is_user_defined": true,
"default_frontend_label": "Specific Size",
"frontend_labels": [],
"backend_type": "text",
"backend_model": "Magento\\Eav\\Model\\Entity\\Attribute\\Backend\\ArrayBackend",
"default_value": "",
"is_unique": "0",
"validation_rules": []
}
}
In the Payload, you can add multiple select options with store-related labels and basic info you want with the product attribute.
Here frontend_input type must be select and the attribute_code must be a unique attribute code. I have used the attriburte_code value as my_attribute.
Response: New Product Attribute Details.
{
"extension_attributes": {
"is_pagebuilder_enabled": false
},
"is_wysiwyg_enabled": false,
"is_html_allowed_on_front": true,
"used_for_sort_by": false,
"is_filterable": true,
"is_filterable_in_search": false,
"is_used_in_grid": false,
"is_visible_in_grid": false,
"is_filterable_in_grid": false,
"position": 0,
"apply_to": [],
"is_searchable": "0",
"is_visible_in_advanced_search": "0",
"is_comparable": "1",
"is_used_for_promo_rules": "1",
"is_visible_on_front": "1",
"used_in_product_listing": "0",
"is_visible": true,
"scope": "global",
"attribute_id": 345,
"attribute_code": "my_attribute",
"frontend_input": "select",
"entity_type_id": "4",
"is_required": false,
"options": [
{
"label": " ",
"value": ""
},
{
"label": "Small",
"value": "18170"
},
{
"label": "Medium",
"value": "18171"
},
{
"label": "Long",
"value": "18172"
}
],
"is_user_defined": true,
"default_frontend_label": "Specific Size",
"frontend_labels": [],
"backend_type": "text",
"backend_model": "Magento\\Eav\\Model\\Entity\\Attribute\\Backend\\ArrayBackend",
"default_value": "18170",
"is_unique": "0",
"validation_rules": []
}
You can create any type of product attribute with Magento 2 with the help of REST API.
