Storeitemvalues¶
Version: v1 (minor version 2) Scope: per-tenant+store (one record per item per store) Owning service: item-registry
Storeitemvalues represents a single store item flattened to a generic key-value map. It strips away the typed protobuf model in favour of string-valued properties that renderers and rule evaluators can process without knowledge of the store's specific schema. The record also carries the item's Store Item Codes (SICs) — alternative identifiers such as secondary barcodes or supplier codes — and exposes a by_sic alias that lets consumers look up the same record by any of those codes instead of the canonical item ID.
ID pattern¶
t/{tenantid}/s/{storeid}/items/{itemid}/values
| Segment | Meaning |
|---|---|
t/{tenantid} |
Tenant scope |
s/{storeid} |
Store scope |
items/{itemid} |
The canonical item identifier (e.g. items/ABC123) |
values |
Fixed suffix distinguishing this DTO from other per-item records |
Example: t/10001/s/S001/items/ABC123/values
Schema¶
| Field | Type | Description |
|---|---|---|
id |
string | Full resource name following the ID pattern above |
custom_properties |
repeated PropertyEntry | All key-value properties for this item. Keys are the exact Storeitem field names or custom property keys as defined in Itemproperties. Values are stringified. Must be sorted alphabetically by key for consistent serialisation. |
sics |
repeated string | Store Item Codes associated with this item. Alternative identifiers (e.g. secondary barcodes, supplier codes) that resolve to this item. Must be sorted alphabetically for consistent serialisation. |
PropertyEntry message¶
| Field | Type | Description |
|---|---|---|
key |
string | Property name, matching a name in the store's Itemproperties catalogue |
value |
string | Stringified property value |
Note on stripping¶
Depending on the consuming context, custom_properties may be a subset of all item properties. For example, when producing records for the renderer, properties not referenced by any active design or rule may be omitted. Consumers must therefore not assume completeness of the property map.
Aliases¶
by_sic¶
| Alias name | by_sic |
| Alias pattern | t/{tenantid}/s/{storeid}/itemsics/{sic}/values |
| Alias expression | t/{tenantid}/s/{storeid}/itemsics/{.sics[]}/values |
The by_sic alias creates one additional lookup path per SIC in the sics list. A consumer that knows only a barcode (SIC) can resolve it to the full Storeitemvalues record without first mapping the SIC to the canonical item ID.
Example: t/10001/s/S001/itemsics/8710447016023/values resolves to the same record as t/10001/s/S001/items/ABC123/values if 8710447016023 is one of ABC123's SICs.
Consumed by¶
| Service | Why |
|---|---|
studio-renderer |
Resolves the item's property values to fill in design template variables and evaluate design selection conditions |
studio-link-evaluator |
Uses item properties (alongside link properties) to evaluate CEL/rule conditions in Communicationpack scenarios and determine the correct design for an ESL |
ecc-image-render-service |
Reads item values during ECC rendering; uses the by_item alias to find all ECC links affected by an item update |
Related DTOs¶
- itemproperties — defines the property catalogue;
custom_propertieskeys are thenamevalues from that catalogue - itemprocessingparameters — controls how SICs are appended or replaced when item updates arrive;
sic_appendandsic_allow_moving_sicdirectly affect thesicslist in this DTO