Product and market status
How product status and market status decide whether a product is public in product search / GraphQL and available to merchandising.
A product in Enad has two status layers. They work together, but they are not the same thing.
Product status
The global lifecycle. In general, draft and incomplete keep the
product hidden on every surface, even if market status is active.
Market status
Availability for one store group + market (one surface). When the product is otherwise publishable, this can still turn that surface off.
The same product can be live in B2B Sweden and off in B2C Finland. Each store group + market pair has its own market status.
For the shared contract, a product is public in product search / GraphQL when it is publishable globally and market status for that surface is active. In general, the same combination also controls merchandising (search and recommendations). Integration-specific behavior may differ. See Nosto for the mapping we document today.
What each status means
| Status | Meaning |
|---|---|
active |
Publishable. |
inactive |
Turned off. On a market, this typically makes an otherwise publishable product unavailable on that surface. |
draft |
Upcoming, not ready to publish. On the product, this typically keeps it hidden. |
incomplete |
Missing required data. On the product, this typically keeps it hidden. |
archived |
Ended. Used as a product lifecycle status. Treat archived on a market as something to confirm; market and channel status is typically active, inactive, or incomplete. |
The explorer lists the statuses you can see on a product in Enad, including archived on the market axis.
Try a combination
Pick a product status and a market status to see the intended outcome for one surface.
Variant status
Variants have their own status as well. In general they follow the same logic as the product: a global lifecycle, plus availability per store group + market where that is supported.
Once product status and market status are clear, variant status can typically be read the same way. Integration-specific behavior may differ.
Storefront presentation
Enad exposes the status. The storefront decides how that status is presented.
This is most relevant for archived. The shared contract above covers whether the product is public in product search / GraphQL and merchandising. The storefront can still choose the visitor experience, for example:
- a 404
- an old-link or “no longer available” page
- hiding the product from listings while keeping a direct URL
Product search / GraphQL and merchandising integrations do not have to match that storefront experience.
Merchandising integrations
The explorer shows the shared publication idea. Some integrations add their own states on top. This list will grow as more merchandising tools are connected.
Nosto
Nosto keeps its own catalog status per surface. For the shared contract, this is the mapping that is robust enough to publish:
| Combination | What Nosto typically gets |
|---|---|
Product active + market active |
Synced and searchable |
Product active + market inactive |
Discontinued / not searchable |
Product draft or incomplete |
Not public, and typically not synced as active content |
discontinued is integration-specific to Nosto: when the product stays active and the market is inactive, Nosto typically keeps the product but drops it out of search.
Other combinations (including product inactive, product archived, and market archived) should be confirmed per implementation. Do not assume every non-active product status means “not synced”, or that archived always maps like inactive.