Update Attribute
Update an existing product attribute.
Endpoint
Authentication
Required (Store role)
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
integer | Yes | Attribute ID |
Request Body
{
"name_az": "Yenilənmiş Rəng",
"name_en": "Updated Color",
"name_es": "Color Actualizado",
"name_de": "Aktualisierte Farbe",
"values_az": "[{\"name\":\"Qırmızı\"},{\"name\":\"Mavi\"},{\"name\":\"Yaşıl\"},{\"name\":\"Sarı\"}]",
"values_en": "[{\"name\":\"Red\"},{\"name\":\"Blue\"},{\"name\":\"Green\"},{\"name\":\"Yellow\"}]",
"values_es": "[{\"name\":\"Rojo\"},{\"name\":\"Azul\"},{\"name\":\"Verde\"},{\"name\":\"Amarillo\"}]",
"values_de": "[{\"name\":\"Rot\"},{\"name\":\"Blau\"},{\"name\":\"Grün\"},{\"name\":\"Gelb\"}]",
"type": "2",
"options_api": "",
"category_id": 1,
"is_filter": true,
"is_view": true
}
Parameters
| Field | Type | Required | Description | Validation |
|---|---|---|---|---|
name |
string | No | Deprecated fallback (API derives from name_en) |
Not empty (if provided) |
name_az |
string | No | Attribute name in Azerbaijani | - |
name_en |
string | No | Attribute name in English (stored as fallback name when provided) |
- |
name_es |
string | No | Attribute name in Spanish | - |
name_de |
string | No | Attribute name in German | - |
type |
string | No | Attribute type | One of: "1", "2", "3", "4" (if provided) |
values |
string | No | JSON array string of values (legacy fallback) | - |
values_az |
string | No | JSON array string of values in Azerbaijani | - |
values_en |
string | No | JSON array string of values in English (stored as fallback) | - |
values_es |
string | No | JSON array string of values in Spanish | - |
values_de |
string | No | JSON array string of values in German | - |
options_api |
string | No | API endpoint for dynamic options | - |
category_id |
integer | No | Category ID | Must exist (if provided) |
is_filter |
boolean | No | Whether attribute can be used for filtering | - |
is_view |
boolean | No | Whether attribute should be displayed | - |
Response
Success (200 OK)
{
"id": 1,
"name": "Yenilənmiş Rəng",
"name_az": "Yenilənmiş Rəng",
"name_en": "Updated Color",
"name_es": "Color Actualizado",
"name_de": "Aktualisierte Farbe",
"type": "select",
"values": [
{"name": "Qırmızı"},
{"name": "Mavi"},
{"name": "Yaşıl"},
{"name": "Sarı"}
],
"values_az": "[{\"name\":\"Qırmızı\"},{\"name\":\"Mavi\"},{\"name\":\"Yaşıl\"},{\"name\":\"Sarı\"}]",
"values_en": "[{\"name\":\"Red\"},{\"name\":\"Blue\"},{\"name\":\"Green\"},{\"name\":\"Yellow\"}]",
"values_es": "[{\"name\":\"Rojo\"},{\"name\":\"Azul\"},{\"name\":\"Verde\"},{\"name\":\"Amarillo\"}]",
"values_de": "[{\"name\":\"Rot\"},{\"name\":\"Blau\"},{\"name\":\"Grün\"},{\"name\":\"Gelb\"}]",
"options_api": "",
"category_id": 1,
"category": {
"id": 1,
"name": "Elektronika",
"name_az": "Elektronika",
"name_en": "Electronics",
"name_es": "Electrónica",
"name_de": "Elektronik",
"image": "https://...",
"parent_id": null
},
"is_filter": true,
"is_view": true,
"created": "2025-01-15T10:30:00Z"
}
Error Responses
Attribute Not Found (404)
Category Not Found (404)
Invalid Type (400)
Example Request
curl -X PUT "https://api.luxmart.site/v1/products/attribute/?id=1" \
-H "Authorization: Token your_access_token" \
-H "Content-Type: application/json" \
-d '{
"name_az": "Yenilənmiş Rəng",
"name_en": "Updated Color",
"name_es": "Color Actualizado",
"name_de": "Aktualisierte Farbe",
"values": "[{\"name\":\"Qırmızı\"},{\"name\":\"Mavi\"},{\"name\":\"Yaşıl\"},{\"name\":\"Sarı\"}]"
}'
Notes
- Only provided fields are updated
- Type validation is only performed if type field is provided
- Category must exist and not be deleted if category_id is provided
- Translation Support: Provide any of
name_az,name_en,name_es,name_de; missing languages remain unchanged. Whenname_enis provided, it is also stored in the fallbacknamefield; you do not need to sendname. - Values Translation: Provide
values_en(preferred) and optionalvalues_az,values_es,values_de; whenvalues_enis provided it is also stored in the fallbackvaluesfield; you do not need to sendvalues.