> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cernel.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product detail

> Inspect and edit everything Cernel knows about a single product: its attribute values, how complete it is, its variants, and the data each connected integration sends.

The product detail page is where you see and manage everything Cernel holds for a single product. It brings the product's attribute values, their languages, its variants, and the raw data from each connected integration into one view, and shows at a glance how complete the product is. Open it from the Products page whenever you want to check a specific product, edit a value by hand, or understand where a value came from.

## How it works

Open a product from the Products page to land on its detail page. The header shows the product's image, its categories in the Cernel Taxonomy, its identifiers (such as SKU and GTIN), and a **Completeness** ring. Below the header, a set of tabs organizes the rest:

* **Attributes**: every attribute value on the product, with the language it's filled in, where it came from, and the category it belongs to. This is where you edit values.
* **One tab per connected integration**: the properties that integration sends for this product, shown exactly as they arrive, and how each one connects to your attributes.
* **Variants**: the product's variants (for example the same product in different sizes or colours), shown only when the product has them.
* **Events**: a log of the system activity Cernel has recorded for this product, such as when it was enriched, classified, or synced.

<Note>
  **Key concept: completeness.** Completeness compares how many attributes have a value against everything the product's category could hold (its filled values plus the category attributes still empty). It's a guide to what's left to fill in, not a target: reaching 100% isn't always the goal, so fill in what's relevant for each product.
</Note>

### Why you would use this

<CardGroup cols={2}>
  <Card title="See a product at a glance" icon="circle-check">
    Check what's filled in, what's still missing, and how complete a product is before you enrich it or push it live.
  </Card>

  <Card title="Edit values by hand" icon="pen">
    Adjust an individual attribute value, fill in a missing one, or edit every language for a value in one place, without running a job.
  </Card>

  <Card title="Understand where a value came from" icon="magnifying-glass">
    Every value shows its origin (enriched, manual, or imported) and its history, so you can trace how it got there and restore an earlier version.
  </Card>

  <Card title="Inspect integration data" icon="plug">
    See the exact properties each integration sends for the product and how they map to your attributes.
  </Card>
</CardGroup>

## Working with a product

<Steps>
  <Step title="Open a product">
    On the Products page, click a product to open its detail page. Use **Back to products** in the top left to return to the list; your filters, search, and sort are preserved.

    <Frame>
      <img src="https://mintcdn.com/cernel-e5adbeb5/BmBqdIb1K_wYLKtT/images/product-detail/detail-header.png?fit=max&auto=format&n=BmBqdIb1K_wYLKtT&q=85&s=477330409a990c7af7992e17d49116b1" alt="The product detail page header: the image gallery, the product title, its Cernel Taxonomy and Google Product Category paths, the Shopify identifier, and the Completeness ring on the right, with the Attributes tab open below" width="2880" height="1800" data-path="images/product-detail/detail-header.png" />
    </Frame>
  </Step>

  <Step title="Read the header">
    The header summarizes the product:

    * **Image gallery**: the product's images, including any image-typed attribute values. Use the arrows to step through them.
    * **Categories**: the paths the product is classified into, led by the Cernel Taxonomy and followed by any external standards (for example Google Product Category).
    * **Identifiers**: the product's identifier values, each tagged with its type (SKU, GTIN, and so on).
    * **Completeness**: a ring showing the share of the category's attributes that have a value. Hover it for the exact percentage, and hover the info icon for how it's measured.
  </Step>

  <Step title="Browse the Attributes tab">
    The **Attributes** tab lists every attribute on the product, one row each. For each attribute you see:

    * **Attribute**: the attribute name.
    * **Value**: the current value, editable inline.
    * **Category**: the category the attribute is defined on in the Cernel Taxonomy.
    * **Languages**: which languages hold a value. With a few languages, the codes read as text (green where filled, red where missing); with more, a compact bar shows the ratio and opens a full language report when clicked.
    * **Origin**: how the value was produced. **Enriched** by an AI agent, **Manual** if someone typed it, or **Imported** from an integration.

    Click a column header (Attribute, Category, or Origin) to sort by it, and click again to reverse the order. Attributes the category defines but the product hasn't filled in yet appear as empty rows so you can add a value directly.

    <Frame>
      <img src="https://mintcdn.com/cernel-e5adbeb5/BmBqdIb1K_wYLKtT/images/product-detail/attributes-tab.png?fit=max&auto=format&n=BmBqdIb1K_wYLKtT&q=85&s=2d472ceec5820e7fdbdb31afab92a6ae" alt="The Attributes tab showing the merged attribute table with Attribute, Value, Category, Languages, and Origin columns, each attribute on its own row" width="2880" height="1800" data-path="images/product-detail/attributes-tab.png" />
    </Frame>
  </Step>

  <Step title="Edit a value">
    Click a value to edit it in place, then save. The editor matches the attribute type (text, HTML, a select, and so on). To fill in an attribute that has no value yet, edit its empty row the same way.
  </Step>

  <Step title="Edit every language at once">
    To work across languages, open the attribute's actions and choose **Edit translations**. A panel opens with every enabled language side by side, the primary language marked, and any AI reasoning shown beside the value that has it. Edit any languages you need and save them all in one go; languages you don't touch are left untouched.

    <Frame>
      <img src="https://mintcdn.com/cernel-e5adbeb5/BmBqdIb1K_wYLKtT/images/product-detail/edit-translations.png?fit=max&auto=format&n=BmBqdIb1K_wYLKtT&q=85&s=905ec41364e0fb79bc580f1e689e4096" alt="The Edit translations panel for the Product Content Description attribute, with the primary language marked and a value editor for each enabled language side by side, and Save and Cancel buttons" width="2880" height="1800" data-path="images/product-detail/edit-translations.png" />
    </Frame>
  </Step>

  <Step title="Review a value's history">
    From an attribute's actions, choose **Show history** to open its version history. Each past version is timestamped; restoring one overwrites the current value with that version. Cernel asks you to confirm first, since the restore replaces what's there now.
  </Step>

  <Step title="See the product's variants">
    If the product has variants, open the **Variants** tab. Each variant lists the attributes that make it distinct (for example its size or colour) and how many sub-variants it has. Click a variant to open its own detail page.

    <Frame>
      <img src="https://mintcdn.com/cernel-e5adbeb5/BmBqdIb1K_wYLKtT/images/product-detail/variants-tab.png?fit=max&auto=format&n=BmBqdIb1K_wYLKtT&q=85&s=bec1517c464dcfa4c6862054a8096947" alt="The Variants tab listing a product's variants, each row showing the variant title, a differentiating-attribute pill such as Size: M, and a chevron to open it" width="2880" height="1800" data-path="images/product-detail/variants-tab.png" />
    </Frame>
  </Step>

  <Step title="Inspect integration data">
    Each connected integration has its own tab showing the properties it sends for this product, exactly as they arrive. The **Connected attributes** column shows which Cernel attributes and identifiers each property maps to, with arrows for the direction (a top arrow for values going out to the integration, a bottom arrow for values coming in). Search to find a property by name.

    <Frame>
      <img src="https://mintcdn.com/cernel-e5adbeb5/BmBqdIb1K_wYLKtT/images/product-detail/integration-tab.png?fit=max&auto=format&n=BmBqdIb1K_wYLKtT&q=85&s=a4d7c5b2fa923fffcd068645df200aa3" alt="A Shopify integration tab showing the properties it sends for the product in a table with Property, Value, Type, Language, Updated, and Connected attributes columns, with mapping arrows showing each connection" width="2880" height="1800" data-path="images/product-detail/integration-tab.png" />
    </Frame>
  </Step>

  <Step title="Check the product's events">
    Open the **Events** tab to see the system activity Cernel has recorded for this product. Entries appear here as the product is enriched, classified, or synced with an integration. Each row shows the event's level (**Info** or **Error**), its domain, a short description, and when it was last seen. Use **Min severity** to focus on errors, and click a row to expand it for the full details: how many times it occurred, when it was first and last seen, and the integration or product it relates to. The feed is scoped to this product, so it never shows another product's activity.

    <Frame>
      <img src="https://mintcdn.com/cernel-e5adbeb5/qO-OwmVWfo4x0AfA/images/product-detail/events-tab.png?fit=max&auto=format&n=qO-OwmVWfo4x0AfA&q=85&s=f76453551ec9bc1bad577d5a971237e9" alt="The Events tab on the product detail page showing the product's recorded events in a table with Level, Domain, Event, and Last seen columns, with a Min severity filter above" width="2880" height="1800" data-path="images/product-detail/events-tab.png" />
    </Frame>
  </Step>
</Steps>

## Advanced configuration

<AccordionGroup>
  <Accordion title="Filtering the attribute list">
    On the **Attributes** tab you can narrow the list several ways at once:

    * **Search** by attribute name.
    * **Filter by language** to show only attributes that hold a value in the languages you pick.
    * **Filter by origin** to show only values that were **Enriched**, **Manual**, **Imported**, or that have no recorded origin.
    * **Filter by integration** to show only attributes supplied by a given integration, or choose **Not from an integration** for values added in Cernel by enrichment or by hand.
  </Accordion>

  <Accordion title="Locked variant-defining attributes">
    When a product is a variant, the attributes that define its variant axis (for example the size or colour that distinguishes it) are owned by its parent and shown as **locked** on the variant. You'll see the note *"This attribute defines the variant, so it can't be edited here."* This keeps a variant's defining values consistent with the parent. Edit these values on the parent product instead.
  </Accordion>

  <Accordion title="Mapped and unmapped integration properties">
    On an integration tab, properties split into two sections. **Mapped** properties connect to a Cernel attribute or identifier, listed in the **Connected attributes** column. **Unmapped** properties arrive from the integration but aren't connected to anything, so their values aren't applied to your products. To start using them, open the integration's settings with **Configure mappings** and map them there.

    Editing a mapped property's value on this tab writes to the Cernel attribute it maps to, not to the integration's raw incoming value (which is refreshed on the next sync).
  </Accordion>

  <Accordion title="How completeness is measured">
    The ring divides the number of attributes that have a value by everything the product's category could hold: its filled values plus the category attributes that are still empty. Cernel measures against the category the product is actually classified into, not wherever you browsed in from. A product with no category attributes shows no ring.
  </Accordion>
</AccordionGroup>

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Do I need to reach 100% completeness?">
    No. Completeness shows how much of a category's attribute set a product has filled in, as a guide to what's left. Not every attribute is relevant to every product, so fill in what matters for the product rather than chasing 100%.
  </Accordion>

  <Accordion title="Why can't I edit a value? It says the attribute defines the variant.">
    That attribute defines the product's variant axis (such as its size or colour) and is owned by the parent product, so it's locked on the variant to keep the two consistent. Edit the value on the parent product instead.
  </Accordion>

  <Accordion title="When I enrich a variant, does it use the parent product's data, like its images?">
    Only for attributes the variant doesn't already have a value for. Enrichment checks the variant's own data first, for every attribute referenced in the prompt. If the variant already holds a value there (for example its own images), that value is used and the parent product's value for that attribute is not pulled in as well. If the variant has no value of its own for that attribute, Cernel looks for it on the parent product, then the parent's own parent, and so on up the chain, stopping as soon as it finds a value or running out of ancestors to check.
  </Accordion>

  <Accordion title="What do the Enriched, Manual, and Imported origins mean?">
    The **Origin** column shows how a value was produced: **Enriched** means an AI agent generated it, **Manual** means someone entered or edited it by hand, and **Imported** means it came in from a connected integration. A value with no recorded source shows no origin.
  </Accordion>

  <Accordion title="What happens when I restore an old value from history?">
    Restoring replaces the current value with the version you picked, for that language. Cernel confirms before it does this, because the current value is overwritten. Other languages and other attributes are unaffected.
  </Accordion>

  <Accordion title="I edited an integration property here. What did it change?">
    Editing a property value on an integration tab writes to the Cernel attribute that property maps to. It does not change the integration's raw incoming value, which Cernel refreshes on the next sync. Properties that aren't mapped to an attribute can't be edited here.
  </Accordion>

  <Accordion title="What does the Events tab show?">
    The **Events** tab lists the system activity Cernel has recorded for this specific product, such as enrichment, classification, and integration syncs. It's scoped to the product you're viewing, so it only ever shows that product's own activity, not the whole account's. Each entry is graded **Info** or **Error**. Filter by **Min severity** to focus on problems, and expand a row to see the full details, including how often it occurred and when it was first and last seen.
  </Accordion>
</AccordionGroup>

## What's next

<CardGroup cols={2}>
  <Card title="Attributes" icon="arrow-right" href="/features/attributes">
    Set up the attributes and agents that fill in the values you see here.
  </Card>

  <Card title="Jobs & Review" icon="arrow-right" href="/features/jobs-and-enrichment">
    Run enrichment across many products, then approve the proposed values.
  </Card>

  <Card title="Languages" icon="arrow-right" href="/features/languages">
    Configure the languages a product can carry values in.
  </Card>

  <Card title="Shopify variants" icon="arrow-right" href="/integrations/shopify#working-with-product-variants">
    Import product variants so they appear on the Variants tab.
  </Card>
</CardGroup>
