Product Property Value Service
Overview
Product property values store the actual values assigned to a product for each dynamic property (e.g. Colour = Red, Material = Cotton).
Related to Properties which define the property schema.
All operations are tenant-aware.
Database tables
catalog.ProductPropertyValue
Endpoints
GET
/api/v1/ProductPropertyValues
Returns all property values for a specific product.
Query parameters:
productId(long, required) - product identifier
Response:
List<ProductPropertyValueModel>
Authorization:
[AllowAnonymous]— no token required
POST
/api/v1/ProductPropertyValues
Creates a new product property value.
Request body (ProductPropertyValueModel):
ProductId(long, required) - product to assign value toPropertyId(long, required) - property definitionValue(string, required) - the value to store
Response:
201 Created—ProductPropertyValueModel
Authorization:
- Requires Bearer Token
- Permission:
FullManage
PUT
/api/v1/ProductPropertyValues/product/{productId}
Updates property values for a product (replaces existing values).
Route parameters:
productId(long, required) - product identifier
Request body (ProductPropertyValueModel):
- Updated values for the product
Response:
200 OK—ProductPropertyValueModel
Authorization:
- Requires Bearer Token
- Permission:
FullManage
DELETE
/api/v1/ProductPropertyValues/product/{productId}
Deletes all property values for a product.
Route parameters:
productId(long, required) - product identifier
Response:
204 No Content
Authorization:
- Requires Bearer Token
- Permission:
FullManage
DELETE
/api/v1/ProductPropertyValues/product/{productId}/property/{propertyId}
Deletes a specific property value for a product.
Route parameters:
productId(long, required) - product identifierpropertyId(long, required) - property definition identifier
Response:
204 No Content
Authorization:
- Requires Bearer Token
- Permission:
FullManage
Notes
- Property values are managed independently of the product — deleting a product does not automatically clear its property values
- All state-changing operations are audited
- Internal errors are logged but not exposed to clients