Structured Data Guide

Shopify Book Product Schema: Book JSON-LD for Bookstores

Independent bookstores and publishers selling on Shopify miss a huge discovery channel by treating books as generic products. AI shopping agents looking for "books by [author]" or "hardcover thrillers under $20" rely on Book schema.org structured data — not product descriptions — to identify, match, and filter book listings.

TL;DR Add a Book JSON-LD block alongside your Product block on book pages. Essential properties: isbn (ISBN-13 preferred), author (Person with name), publisher (Organization), bookFormat (EBook, Paperback, Hardcover), bookEdition, inLanguage, numberOfPages, and genre. Store bibliographic data in Shopify metafields and output both blocks from product.liquid.

Why Book Schema Unlocks AI Agent Discovery for Bookstores

When someone asks an AI shopping agent "recommend a mystery novel under $15 available in ebook format," the agent needs to know three things about each candidate listing:

  1. Is this a book? (determined by @type: Book)
  2. What genre and format is it? (genre, bookFormat)
  3. What does it cost and can I buy it? (Product with Offer)

Without Book structured data, your Shopify products look identical to a kitchen appliance or a T-shirt — generic products with a title, price, and an image. The ISBN, author, and format metadata that defines a book as a book is invisible to automated systems.

Google Book Search, which powers book panels in AI Overviews, also consumes Book JSON-LD to populate author attribution, edition comparisons, and "buy this book" cards. Shopify bookstores without Book markup lose these panels entirely.

Book vs. Product: Two Separate JSON-LD Blocks

Book is a subtype of CreativeWork, not Product. They are distinct schema.org hierarchies that serve complementary purposes on a bookstore product page:

JSON-LD Block Hierarchy Answers
Product Thing → Product Price, availability, condition, shipping, seller
Book Thing → CreativeWork → Book Author, ISBN, publisher, format, edition, language, genre, page count

Include both as separate <script type="application/ld+json"> elements on the same page. The Product block handles commerce; the Book block handles bibliography. Neither block replaces the other.

Book Schema Properties Reference

Property Type Description
isbn Text ISBN-13 preferred (e.g. "978-0-7432-7356-5"); ISBN-10 also accepted
author Person or Organization Primary author: {"@type":"Person","name":"Cormac McCarthy"}
publisher Organization Publishing house: {"@type":"Organization","name":"Penguin Random House"}
bookFormat BookFormatType URL schema.org/EBook, schema.org/Paperback, schema.org/Hardcover, schema.org/AudiobookFormat
bookEdition Text Free-text edition description: "2nd Edition", "Anniversary Edition", "Illustrated"
inLanguage Language or Text BCP 47 language code: "en", "fr", "es", "de"
numberOfPages Integer Page count — used for "short read" and "long read" filtering
genre Text or URL Literary genre: "Mystery", "Science Fiction", "Business", "Self-Help"
datePublished Date Original publication date: "2005-08-16"
about Thing Primary subject matter — helps topical queries like "books about WW2"
award Text Literary awards: "Pulitzer Prize", "National Book Award Finalist"
workExample Book Specific editions of this work — links editions to the canonical work entity
isPartOf BookSeries Series membership: {"@type":"BookSeries","name":"Harry Potter"}
position Integer or Text Position in a series: "1" for book 1, "2" for book 2

BookFormatType Enumeration Values

Format Schema.org Value Use For
Ebookhttps://schema.org/EBookPDF, EPUB, Kindle, digital download
Paperbackhttps://schema.org/PaperbackSoftcover print book
Hardcoverhttps://schema.org/HardcoverHardbound / case-bound print book
Audiobookhttps://schema.org/AudiobookFormatAudio recording of the book
GraphicNovelhttps://schema.org/GraphicNovelComics, manga, illustrated narrative books

Book JSON-LD Example: Shopify Bookstore Product Page

/* Product block (commerce signals) */
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "The Road — Paperback",
  "description": "A father and his young son walk alone through burned America, heading slowly south. Nothing they carry except a pistol to save themselves from the ultimate horror. Pulitzer Prize winner.",
  "image": "https://your-bookstore.myshopify.com/cdn/shop/products/the-road-cover.jpg",
  "brand": {"@type": "Brand", "name": "Vintage Books"},
  "offers": {
    "@type": "Offer",
    "price": "14.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://your-bookstore.myshopify.com/products/the-road-paperback",
    "condition": "https://schema.org/NewCondition"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "2841",
    "bestRating": "5"
  }
}

/* Book block (bibliographic signals) */
{
  "@context": "https://schema.org",
  "@type": "Book",
  "name": "The Road",
  "isbn": "978-0-307-38789-9",
  "author": {
    "@type": "Person",
    "name": "Cormac McCarthy",
    "sameAs": "https://en.wikipedia.org/wiki/Cormac_McCarthy"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Vintage Books"
  },
  "bookFormat": "https://schema.org/Paperback",
  "bookEdition": "Reprint Edition",
  "datePublished": "2007-05-01",
  "numberOfPages": 287,
  "inLanguage": "en",
  "genre": "Post-Apocalyptic Fiction",
  "award": "Pulitzer Prize for Fiction 2007",
  "about": {
    "@type": "Thing",
    "name": "Post-apocalyptic survival"
  },
  "url": "https://your-bookstore.myshopify.com/products/the-road-paperback",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "2841"
  }
}

Series Book Example: isPartOf BookSeries

{
  "@context": "https://schema.org",
  "@type": "Book",
  "name": "The Fellowship of the Ring",
  "isbn": "978-0-618-57494-1",
  "author": {
    "@type": "Person",
    "name": "J.R.R. Tolkien"
  },
  "publisher": {"@type": "Organization", "name": "Houghton Mifflin Harcourt"},
  "bookFormat": "https://schema.org/Hardcover",
  "numberOfPages": 432,
  "inLanguage": "en",
  "genre": "Epic Fantasy",
  "isPartOf": {
    "@type": "BookSeries",
    "name": "The Lord of the Rings",
    "url": "https://your-bookstore.myshopify.com/collections/lord-of-the-rings"
  },
  "position": 1
}

The isPartOf and position properties let AI agents answer "what order do the Lord of the Rings books go in?" and "does this store carry the complete series?" by connecting each book to its parent series.

Shopify Liquid Template: Book JSON-LD Implementation

{% comment %} product.liquid — Book JSON-LD alongside Product JSON-LD {% endcomment %}

{% assign book_isbn = product.metafields.book.isbn.value %}
{% if book_isbn %}
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Book",
  "name": {{ product.title | remove: " - Paperback" | remove: " - Hardcover" | remove: " - Ebook" | json }},
  "isbn": {{ book_isbn | json }},
  "author": {
    "@type": "Person",
    "name": {{ product.metafields.book.author.value | json }}
  },
  "publisher": {
    "@type": "Organization",
    "name": {{ product.metafields.book.publisher.value | json }}
  },
  "bookFormat": {{ product.metafields.book.format.value | json }},
  "bookEdition": {{ product.metafields.book.edition.value | json }},
  "datePublished": {{ product.metafields.book.date_published.value | json }},
  "numberOfPages": {{ product.metafields.book.pages.value | json }},
  "inLanguage": {{ product.metafields.book.language.value | default: "en" | json }},
  "genre": {{ product.metafields.book.genre.value | json }},
  {% if product.metafields.book.award.value %}
  "award": {{ product.metafields.book.award.value | json }},
  {% endif %}
  {% if product.metafields.book.series_name.value %}
  "isPartOf": {
    "@type": "BookSeries",
    "name": {{ product.metafields.book.series_name.value | json }}
    {% if product.metafields.book.series_url.value %}
    ,"url": {{ product.metafields.book.series_url.value | json }}
    {% endif %}
  },
  "position": {{ product.metafields.book.series_position.value | json }},
  {% endif %}
  "url": "https://{{ shop.domain }}{{ product.url }}"
  {% if product.metafields.reviews.rating %}
  ,"aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "{{ product.metafields.reviews.rating.value }}",
    "reviewCount": "{{ product.metafields.reviews.rating_count.value }}"
  }
  {% endif %}
}
</script>
{% endif %}

Required metafields for book products

Metafield key Type Example value
book.isbnSingle-line text"978-0-307-38789-9"
book.authorSingle-line text"Cormac McCarthy"
book.publisherSingle-line text"Vintage Books"
book.formatSingle-line text"https://schema.org/Paperback"
book.editionSingle-line text"Reprint Edition"
book.date_publishedDate (ISO 8601)"2007-05-01"
book.pagesInteger287
book.languageSingle-line text"en"
book.genreSingle-line text"Post-Apocalyptic Fiction"
book.awardSingle-line text"Pulitzer Prize for Fiction 2007"
book.series_nameSingle-line text"The Lord of the Rings"
book.series_positionInteger1

Common Book Schema Mistakes on Shopify

Mistake Effect Fix
Using Product @type alone and putting author/ISBN in additionalProperty ISBN and author not recognized as Book-specific identifiers; Google Book Search panels don't fire Use a separate Book JSON-LD block with the isbn and author properties at the top level
Setting bookFormat to plain text ("Paperback") instead of schema.org URL Format not machine-readable; AI agents can't filter by format Use full schema.org URL: "https://schema.org/Paperback"
Omitting author sameAs link to Wikipedia/Wikidata Author entity not connected to knowledge graph; author-based queries weaker Add sameAs to the author Person pointing to their Wikipedia article
Storing ISBN with dashes removed ("9780307387899") Some validators accept either form, but hyphenated ISBN-13 is the standard Use hyphenated ISBN-13 format: "978-0-307-38789-9"
Skipping series data for clearly serialized books AI agents can't answer "which book in this series is this?" or recommend the next book Add isPartOf BookSeries and position for all books that are part of a series

CatalogScan Book Schema Checks

CatalogScan's AI Readiness scan detects Shopify stores in book, publishing, and literary retail categories and checks for Book JSON-LD alongside standard Product blocks. Stores missing Book markup on book products receive a bibliographic-signal gap warning. The scan validates: isbn format (ISBN-10 or ISBN-13 with hyphens), author structure (Person vs. plain string), bookFormat using schema.org enumeration values, and isPartOf presence for products whose title or tags suggest series membership.

Related guides: ProductGroup and variant schema · Digital product delivery schema · Ecommerce product schema overview · Shopify schema markup guide

FAQ

Should I use Book or Product schema on a Shopify book page?

Use both as separate JSON-LD blocks. Product handles commerce signals (price, availability, shipping). Book handles bibliographic signals (ISBN, author, publisher, format, genre). Google Book Search and AI agents consume both independently — neither replaces the other.

How do I express book format (ebook, paperback, hardcover) in schema.org?

Use the bookFormat property with schema.org BookFormatType enumeration URLs: https://schema.org/EBook, https://schema.org/Paperback, https://schema.org/Hardcover, https://schema.org/AudiobookFormat. Do not use plain text like "Paperback" — use the full schema.org URL so AI agents can filter by format reliably.

How do I add ISBN to Shopify product pages?

Store the ISBN in a metafield (e.g., 'book.isbn'). In schema.org, use the isbn property on Book with the hyphenated ISBN-13 value. Also add the ISBN as the product's GTIN barcode in Shopify admin — this feeds it into Google Shopping and AI product matching systems that use ISBN as the canonical book identifier.

How do I mark a book as part of a series?

Use isPartOf with a BookSeries object (name, optionally url pointing to your series collection page) and position for the book's order in the series. This lets AI agents answer "which book in the series is this?" and recommend the next book in sequence.

Does Google show book-specific rich results for Shopify stores?

Yes. Google shows book knowledge panels, "buy this book" cards, and author attribution in AI Overviews for pages with valid Book JSON-LD. The isbn property is the canonical match key — Google uses the ISBN to connect your product page to its book knowledge graph entity, which powers author panels and edition comparisons.