A rule’s optional scope decides which entities it evaluates and how the tag
propagates.
"scope": {
"entityType": "VARIANT",
"propagationMode": "BUBBLE_UP",
"brandIds": ["<uuid>"],
"productIds": [],
"taxonomies": [ { "type": "gender", "values": ["M"] } ],
"collections": ["<uuid>"]
}
Scope fields
| Field | Meaning |
|---|
entityType | The entity the rule targets: PRODUCT, BRAND, VARIANT, INVENTORY_ITEM. Always set. |
brandIds | Restrict to these brands. |
productIds | Restrict to these products. |
taxonomies | Restrict by dimension — each { type, values } (e.g. gender = M). |
collections | Restrict to these collections. |
propagationMode | How the tag spreads through the hierarchy (below). |
An empty/absent filter means “no restriction on that dimension”. Filters combine to narrow
the evaluated population.
Propagation modes
The hierarchy is Brand → Product → Variant → Inventory item.
| Mode | Effect |
|---|
ENTITY_ONLY | Tag only the matched entity (default — no propagation). |
CASCADE_DOWN | Also tag the entity’s descendants (e.g. brand → its products → their variants). |
BUBBLE_UP | Also tag the entity’s ancestors (e.g. variant → its product → its brand). |
The exact propagation traversal runs in the data platform’s tag-evaluation engine; the
rule only declares the mode. Choose CASCADE_DOWN to label a whole sub-tree from a
higher level, or BUBBLE_UP to mark a parent because one of its children matched.