# JSON-LD and schema markup for your whole catalog

> One JSON-LD graph per product page, filled from your catalog, published through the platform's own API and read back from the live page.

URL: https://clione.ai/features/schema-and-json-ld-publishing/
Lang: en

## The graph, as a crawler receives it

This is the shape of what Clione publishes on a product page: one `@graph` holding your company, your site, the breadcrumb trail and the product with its offer, plus the questions when the product has them. Every node points at the others by `@id`, so a machine reads one connected description instead of four loose ones.


```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://nubiasleep.com/#org",
      "name": "Nubia Sleep",
      "logo": "https://nubiasleep.com/logo.png"
    },
    {
      "@type": "WebSite",
      "@id": "https://nubiasleep.com/#site",
      "publisher": { "@id": "https://nubiasleep.com/#org" }
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Mattresses" },
        { "@type": "ListItem", "position": 2, "name": "Cloud Mattress" }
      ]
    },
    {
      "@type": "Product",
      "@id": "https://nubiasleep.com/cloud#product",
      "name": "Cloud Memory Foam Mattress",
      "sku": "NUB-CLD-Q",
      "brand": { "@type": "Brand", "name": "Nubia" },
      "description": "Medium-feel memory foam with a washable cover.",
      "keywords": "memory foam mattress, medium firm mattress",
      "offers": {
        "@type": "Offer",
        "price": "899.00",
        "priceCurrency": "USD"
      }
    },
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "Is it good for side sleepers?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Yes. The medium feel lets the shoulder sink in."
          }
        }
      ]
    }
  ]
}
```


Shortened for the page: the real graph carries every field the store and the enrichment can fill. The product node's `@id` is stable, which is what lets it sit beside your theme's own markup. [What JSON-LD is](/glossary/json-ld/), and [what schema markup is](/glossary/schema-markup/), if you want the long version.
