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.
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:
- Is this a book? (determined by
@type: Book) - What genre and format is it? (
genre,bookFormat) - What does it cost and can I buy it? (
ProductwithOffer)
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 |
|---|---|---|
| Ebook | https://schema.org/EBook | PDF, EPUB, Kindle, digital download |
| Paperback | https://schema.org/Paperback | Softcover print book |
| Hardcover | https://schema.org/Hardcover | Hardbound / case-bound print book |
| Audiobook | https://schema.org/AudiobookFormat | Audio recording of the book |
| GraphicNovel | https://schema.org/GraphicNovel | Comics, 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.isbn | Single-line text | "978-0-307-38789-9" |
book.author | Single-line text | "Cormac McCarthy" |
book.publisher | Single-line text | "Vintage Books" |
book.format | Single-line text | "https://schema.org/Paperback" |
book.edition | Single-line text | "Reprint Edition" |
book.date_published | Date (ISO 8601) | "2007-05-01" |
book.pages | Integer | 287 |
book.language | Single-line text | "en" |
book.genre | Single-line text | "Post-Apocalyptic Fiction" |
book.award | Single-line text | "Pulitzer Prize for Fiction 2007" |
book.series_name | Single-line text | "The Lord of the Rings" |
book.series_position | Integer | 1 |
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.