Channels, locales and completeness
A product does not have one description. It has a description per language, possibly per channel, and whether it is ready to publish depends on which combination you are asking about. This page explains the three ideas that keep that manageable.
Picture the fitting 4711-A again. Your German web shop wants a warm,
formatted description. The English shop wants the same in English. The punchout
catalog that one large customer sees inside SAP Ariba wants two plain lines
with no formatting at all. Three descriptions, one product, and all three are
correct. The question is how to store them without losing track.
Locales: the same field, per language
An attribute marked localizable holds one value per language. description
is localizable: there is a German one and an English one. weight is not;
4.2 kg is 4.2 kg in every language.
The distinction matters more than it looks. Mark too much as localizable and you create translation work that will never be finished. Mark too little and you cannot enter a German product name.
The test: would a translator change this value? If yes, localizable. If it is a number, a code, a SKU or a date, it is not.
Channels: the same field, per destination
An attribute marked scopable holds one value per channel. A channel is a destination your catalog is published to: your main shop, a second storefront for a different brand, a punchout catalog for one large customer, a print export.
Scopable attributes exist because the honest answer to "what is this product's description?" is sometimes "depends who is asking". The description in your web shop can be marketing prose; the description in a punchout catalog rendered inside SAP Ariba often has to be short, plain and unformatted.
Use it deliberately. Every scopable attribute multiplies the number of values somebody has to maintain. Most catalogs need it for a small handful of fields (name, description, maybe an image) and nothing else.
Completeness: what is ready
Completeness is the platform's answer to "can this be published yet?".
It works off the family. The family says which attributes are required, and optionally required for which channels. Completeness then measures each product against that contract: of the attributes this product must have, how many carry a value.
This is the mechanism that makes a large catalog governable. You are no longer asking "is the catalog finished". You are asking a specific, answerable question:
How many products are 100% complete?
And, more usefully:
Which twelve attributes are missing across the 340 products that are not?
Because required attributes can be narrowed to a channel, a product can be ready for your German shop and not ready for the English punchout catalog, which is the truth, and what you want to see before a customer does.
What completeness does not tell you
It measures presence, not quality. An attribute filled with - or tbd
counts as complete. Completeness catches missing data; it does not catch wrong
data. For that, see Data quality in practice.
How this works in the Revenue Cloud
Localizable and Scopable (per channel) are flags on the attribute, set when you create it. The two flags decide where a value is stored and how many values the attribute holds:
| Localizable | Scopable | The attribute holds | Example |
|---|---|---|---|
| no | no | one value | weight = 4.2 kg |
| yes | no | one value per locale | name in de_DE and en_US |
| no | yes | one value per channel | min_order_qty = 6 for the b2b channel |
| yes | yes | one value per channel and locale | marketing_copy for b2b in de_DE |
When a channel asks for a value, the platform reads the most specific one it finds: channel and locale first, then locale, then channel, then the plain value. The plain value is always the last fallback, so a value imported before the flags were set still shows up.
Two consequences follow from the storage:
- Changing Localizable or Scopable on an attribute that already holds data moves every stored value to a different place. That is a migration, not a toggle. Decide early.
- Rule-based categories read only the plain value. A condition on a localizable or scopable attribute is refused, so keep the facts you want to build rules on unflagged.
Required and Required channels are set on the family, per attribute, when you assign attributes to a family. Required channels narrow "required" to the channels you name.
Completeness is stored on the product and measured against the family's required attributes. It is recalculated when you assign a family (the same step measures) and when you run Recompute completeness from the product grid. A product without a family shows no completeness at all rather than 0% or 100%, because there is nothing to measure it against. The product grid shows the stored figure, which is the fastest route to a work list; see Completeness and readiness.