Skip to content

Update Attribute

Update an existing product attribute.

Endpoint

PUT /v1/products/attribute/?id={attribute_id}

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)

{
  "error": "Attribute Not Found"
}

Category Not Found (404)

{
  "error": "Category Not Found"
}

Invalid Type (400)

{
  "message": "Type Not Found!"
}

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. When name_en is provided, it is also stored in the fallback name field; you do not need to send name.
  • Values Translation: Provide values_en (preferred) and optional values_az, values_es, values_de; when values_en is provided it is also stored in the fallback values field; you do not need to send values.