Indie Bookhaven Theme Documentation
Bookhaven Theme Documentation
Bookhaven is a Shopify theme designed for independent bookstores, bookshops, gift shops, author shops, and other story-centered retailers.
It includes flexible page-building sections, bookstore-friendly product cards, a book-specific metadata band, collection filtering, store-hours-aware footer messaging, “Follow Us Everywhere” bookstore platform links, optional affiliate integrations, SEO-conscious product structure, and support for app blocks.
Use this documentation to set up your theme, configure bookstore-specific features, and troubleshoot common setup questions.
Getting Started
After installing Bookhaven, start with these steps:
-
Open Online Store → Themes.
-
Find Bookhaven and choose Customize.
-
Configure your global theme settings.
-
Set up your header, footer, homepage, product pages, collections, and cart.
-
Add products, collections, navigation menus, pages, blogs, and metafields in Shopify.
-
Review your store on desktop and mobile before publishing.
Recommended setup order:
-
Brand settings
-
Color schemes
-
Typography and buttons
-
Header and announcement bar
-
Footer, store information, and store hours
-
Product page settings
-
Book metadata mappings
-
Product condition metaobject
-
Collection/search filtering
-
Cart settings
-
Homepage sections
-
Optional integrations
-
Accessibility and mobile review
Global Theme Settings
Global settings control the overall look and behavior of your store.
Logo and Branding
Upload your store logo in the theme settings.
The header can display:
-
Logo and shop name
-
Logo only
-
Shop name only
If no logo is uploaded, the theme may show a fallback bookstore-style icon.
Typography
Choose your primary font in theme settings. The theme uses this font across headings, body text, buttons, forms, cards, navigation, and product information.
Color Schemes
Bookhaven uses Shopify color schemes. Each color scheme includes colors for:
-
Background
-
Foreground
-
Text
-
Accent
-
Buttons
-
Button text
-
Borders
-
Icons
-
Links
You can assign color schemes to many areas of the theme, including the header, announcement bar, footer, product cards, custom layouts, app sections, and page sections.
When customizing colors, make sure text, links, icons, and buttons have enough contrast against their backgrounds. Merchant-customized color combinations affect accessibility.
Buttons
Button radius and button colors are controlled globally.
Primary buttons use the configured button and button text colors. Secondary, text-style, or link-style buttons may use the link or accent color depending on context.
Header
The header includes your brand, search, cart/basket link, and navigation.
Header Settings
You can configure:
-
Header color scheme
-
Logo display style
-
Logo width
-
Brand position
-
Search style
-
Sticky behavior
Sticky behavior options may include:
-
Not sticky
-
Sticky
-
Hide on scroll
The cart/basket link is always available in the header because it is a standard ecommerce navigation pattern.
Search
The header supports search as either:
-
Search icon
-
Search bar
When the search bar is enabled, predictive search can appear as customers type. Predictive search uses Shopify search behavior.
Navigation
Set your main navigation menu in Shopify under Online Store → Navigation. Then assign that menu in the header settings.
On mobile, navigation appears in a drawer-style menu.
Announcement Bar
The announcement bar can be used for store notices, promotions, shipping updates, events, and new-release messages.
You can configure:
-
Text
-
Optional link
-
Color scheme
-
Sticky behavior
-
Autoplay/rotation when multiple announcements are used
-
Controls
-
Dismiss behavior
Keep announcement text short and readable. If using rotating announcements, make sure each message is understandable on its own.
Footer
The footer is designed for bookstore-style store information.
Footer content may include:
-
Store description
-
Address or directions link
-
Store hours
-
Open/closed status
-
Newsletter signup
-
Social links
-
Bookshop.org, Libro.fm, and StoryGraph links
-
Navigation links
Store Hours and Open/Closed Status
Bookhaven includes bookstore-friendly store hours functionality for merchants with a physical location.
If you add store hours to your Shopify location metafields and map those metafields in the theme settings, the footer can automatically understand your shop’s weekly hours and show customers whether the store is currently open or closed.
This is especially useful for bookstores that offer:
-
Local pickup
-
In-store shopping
-
Events
-
Book clubs
-
Author signings
-
Limited seasonal hours
How Store Hours Work
The theme can read configured store hours from location metafields. When store hours are available, the footer can display your weekly schedule and calculate your current open/closed status based on the current day and time.
The footer can show messaging such as:
-
Open now
-
Closed now
-
Today’s hours
-
Weekly store hours
Location Metafields for Store Hours
Stores with a physical location can create location metafields for store hours.
These fields support footer store hours and open/closed status.
Recommended location metafields may include:
-
Monday open time
-
Monday close time
-
Tuesday open time
-
Tuesday close time
-
Wednesday open time
-
Wednesday close time
-
Thursday open time
-
Thursday close time
-
Friday open time
-
Friday close time
-
Saturday open time
-
Saturday close time
-
Sunday open time
-
Sunday close time
Create these as location metafields in Shopify, then add the values to the Shopify location used for local pickup or in-store availability.
For each store-hours time metafield, turn metafield validation on and set validation to true. Use this regular expression as the validation rule:
^(1[0-2]|[1-9]):[0-5][0-9]\s?(AM|PM|am|pm)$
This ensures hours are entered in a format the theme can reliably read, such as:
-
9:00 AM -
10:30 AM -
6:00 PM -
7:15pm
Do not use 24-hour time, words such as closed, or date ranges in these time fields.
If a day is closed, leave that day’s open and close time fields blank.
After creating store hour metafields, add values to the correct Shopify location, then map those metafields in the theme settings.
Store Hours Setup
To use store hours:
-
Create location metafields for your store hours in Shopify.
-
Enable validation for each time metafield.
-
Use the recommended regular expression validator.
-
Add your hours to the location used for local pickup or in-store availability.
-
Open the theme editor.
-
Go to the theme settings or footer/store hours settings.
-
Map the store hours metafields to the matching theme settings.
-
Add the Store Hours block to the footer, if it is not already present.
-
Preview the footer and confirm the open/closed status is correct.
Local Pickup Awareness
The theme is designed to work well for stores that use Shopify local pickup. When location and pickup data are available, Bookhaven can use that store context to display more helpful bookstore messaging.
If store hours are not configured, the footer can still display manually entered hours or omit the open/closed status.
Follow Us Everywhere Links
Bookhaven includes bookstore-friendly “Follow Us Everywhere” link support in the footer. In addition to standard social media links, the theme can highlight book-specific platforms that matter to independent bookstores and readers.
Supported bookstore-oriented links may include:
-
Bookshop.org
-
Libro.fm
-
StoryGraph
These links can appear alongside standard social links so customers can find your bookstore wherever they prefer to browse, listen, review, or buy books.
Bookshop.org
Use the Bookshop.org footer link to send customers to your store’s Bookshop.org profile or partner page.
This is useful for bookstores that use Bookshop.org for online book sales, affiliate revenue, wishlist sharing, or supporting customers outside their local pickup/shipping area.
Libro.fm
Use the Libro.fm footer link to send customers to your Libro.fm storefront or partner page.
This is useful for bookstores that sell audiobooks through Libro.fm and want customers to know that audiobook purchases can still support an independent bookstore.
StoryGraph
Use the StoryGraph footer link to connect customers with your bookstore’s reading community, recommendations, challenges, or social reading presence.
This is useful for stores that want to encourage discovery, reviews, reading goals, and reader engagement beyond the storefront.
Footer Link Setup
To configure these links:
-
Open the theme editor.
-
Go to the footer or global social/link settings.
-
Add your Bookshop.org, Libro.fm, and StoryGraph URLs.
-
Add any standard social media URLs you want to display.
-
Review the footer on desktop and mobile.
Leave any unused links blank. The theme will only display links that have been configured.
Homepage Sections
Bookhaven includes flexible sections that can be used to build a bookstore homepage.
Common homepage sections include:
-
Announcement bar
-
Header
-
Hero or banner
-
Featured collections
-
Product carousels
-
Custom layout
-
Rich text
-
Newsletter
-
App sections
-
Footer
Featured Collections
Use featured collection sections to highlight shelves such as:
-
New releases
-
Staff picks
-
Local authors
-
Book club favorites
-
Gifts
-
Events
-
Kids books
-
Romance
-
Fantasy
-
Mystery
-
Nonfiction
Featured collection sections use Shopify collections and product cards. Make sure each collection has products assigned.
Custom Layout
The Custom Layout section lets you create flexible rows and columns using theme blocks.
Use it for:
-
Store feature cards
-
Event promotions
-
Staff recommendation blocks
-
Newsletter callouts
-
Category highlights
-
Local pickup messaging
-
Seasonal content
Columns can contain rich text, images, app blocks, and other supported blocks.
Rich Text
Use rich text blocks or sections for simple editorial content, announcements, staff notes, or informational sections.
Rich text can also be used with mapped product metafields in supported presets, such as shelf talker content.
Product Pages
Product pages are designed to support both standard Shopify products and bookstore-specific products.
A product page may include:
-
Product gallery
-
Title
-
Author/vendor information
-
Description
-
Variant selector
-
Price
-
Quantity selector
-
Add to basket button
-
Pickup message
-
Book metadata band
-
Optional affiliate buttons
-
App blocks
Product Images
Upload product images in Shopify. Book covers work best with portrait-oriented images.
If a product has no image, the theme may show a bookstore-style fallback image.
Product Variants
Use Shopify variants for product options such as:
-
Condition
-
Format
-
Size
-
Color
-
Denomination
-
Ticket type
The product page can show variants as pills. Product cards may use a dropdown depending on configuration.
If you sell books in multiple conditions, formats, or editions, choose the variant structure that best matches your inventory workflow.
Quantity Selector
The quantity selector allows customers to increase or decrease quantity before adding to the basket.
If inventory is tracked, the theme can show low-stock messaging.
Author and Vendor Setup
For bookstores, the Shopify product vendor field often works best when it contains the book’s author rather than the publisher or distributor.
If you use ISBN Express, configure ISBN Express so the Shopify product Vendor field is set to the book’s author.
The theme can also use mapped author metafields, but setting vendor to author gives the theme a helpful native Shopify fallback and improves author display across product cards, product pages, collections, and search results.
Book Metadata Band
Bookhaven includes a book-specific metadata band designed to make product pages more useful for bookstores and book shoppers.
The metadata band can display important book details in a clean, scannable format below or near the main product information.
Supported metadata may include:
-
ISBN
-
Publication date
-
Binding
-
Publisher
-
Genres/categories
-
Dimensions
-
Page count
-
Language
-
Condition
This helps customers quickly answer common book-buying questions without digging through the full product description.
Why the Metadata Band Matters
For bookstores, product descriptions are often inconsistent because book data may come from publishers, distributors, inventory tools, or manual entry. The metadata band gives key book information a consistent place on the product page.
This improves the shopping experience by making details like format, publisher, ISBN, publication date, page count, language, and condition easier to find.
Metafields and Metaobjects
Bookhaven works best when bookstore-specific product information is stored in Shopify metafields and mapped in the theme settings.
Metafields let you keep important book details out of long product descriptions and display them consistently across product pages, product cards, filters, metadata links, and structured data.
You do not need to create every metafield listed below. Create the fields that match your store’s catalog, inventory workflow, and optional integrations.
Recommended Metafield Setup Order
For the best theme experience:
-
If using ISBN Express, configure ISBN Express first.
-
Confirm ISBN Express is creating product metadata.
-
Configure ISBN Express so product vendor is set to author.
-
Confirm the theme’s default metafield mappings match the ISBN Express metafields.
-
Create a product condition metaobject definition.
-
Create condition metaobject entries such as New, Used, and Refurbished.
-
Create or confirm the product condition metafield.
-
Create location store hours metafields, if using store hours.
-
Create the Libro.fm URL metafield, if using Libro.fm audiobook links.
-
Add metafield values to products and locations.
-
Map the metafields in the theme settings.
-
Enable relevant metafields as filters in Shopify Search & Discovery.
-
Test product pages, collection filters, product cards, and structured data.
ISBN Express Setup Shortcut
Bookhaven is designed to work especially well with ISBN Express.
ISBN Express can create many of the bookstore-specific product metafields that the theme uses for book metadata. The theme’s default metafield mappings are based on the ISBN Express metafields, so merchants using ISBN Express usually do not need to manually create every book metadata field listed in this documentation.
If ISBN Express is creating your book metadata, you will usually only need to configure a few additional fields to get the most out of the theme:
-
Product condition metaobject and condition metafield
-
Location store hours metafields
-
Libro.fm URL metafield, if you sell or promote audiobooks through Libro.fm
ISBN Express-created metadata can support theme features such as:
-
Author display
-
ISBN display
-
Publication date
-
Binding
-
Publisher
-
Genres or categories
-
Dimensions
-
Page count
-
Language
-
Book metadata band
-
Metadata links and filters, when enabled in Shopify Search & Discovery
For the best theme experience, configure ISBN Express so the Shopify product Vendor field is set to the book’s author.
This allows the theme to use Shopify’s native vendor field as an author-friendly fallback in places where author information is useful, such as product cards, product pages, search, and collection browsing.
If you use ISBN Express, recommended setup is:
-
Configure ISBN Express to create product metadata.
-
Set ISBN Express so the product vendor is the author.
-
Confirm the default theme metafield mappings match the ISBN Express metafields.
-
Create and map the product condition metaobject/metafield.
-
Create and map store hours location metafields, if using open/closed footer messaging.
-
Create the Libro.fm URL metafield, if using Libro.fm audiobook links.
-
Enable relevant metafields as filters in Shopify Search & Discovery.
-
Review product pages, product cards, filters, and structured data.
If you are not using ISBN Express, you can still use the theme fully by creating your own product metafields and mapping them in the theme settings.
Recommended Product Metafields
The theme can map these product metafields in theme settings.
| Theme field | Recommended Shopify resource | Recommended metafield type | Used for |
|---|---|---|---|
| Author | Product metafield or vendor fallback | Single line text or list of single line text | Product page author display, product cards, metadata links, filters |
| ISBN | Product metafield or product barcode | Single line text | Metadata band, Bookshop.org links, product search, structured product information |
| Publication date | Product metafield | Date | Metadata band |
| Binding | Product metafield | Single line text, list of single line text, or category metafield where appropriate | Metadata band, filters |
| Publisher | Product metafield | Single line text | Metadata band, metadata links, filters |
| Genres / categories | Product metafield | List of single line text, collection reference list, or metaobject reference list | Metadata band, browsing links, filters |
| Dimensions | Product metafield | Single line text or measurement-compatible field | Metadata band |
| Page count | Product metafield | Integer | Metadata band |
| Language | Product metafield | Single line text | Metadata band, metadata links, filters |
| Condition | Product metafield | Metaobject reference | Metadata band, product cards, filters, product structured data |
| Shelf talker | Product metafield | Rich text or multi-line text | Staff pick notes, recommendation callouts, custom rich text presets |
| Libro.fm URL | Product metafield | URL | Optional Libro.fm audiobook button |
| Aggregate rating badge HTML | Product metafield | Multi-line text or app-provided metafield | Optional aggregate rating structured data when using a review app |
If your book inventory, review, or metadata app already creates metafields, you do not need to duplicate them. Instead, map the app-created metafields to the matching theme settings.
Default ISBN Express Metafield Mappings
Bookhaven includes default mappings intended to work with ISBN Express-created book metadata.
If you use ISBN Express, confirm these mappings in the theme settings before creating new metafields.
Common ISBN Express/default book metadata mappings may include:
| Theme field | Default mapping |
|---|---|
| Author | ISBN Express author metafield, with Shopify vendor as author fallback |
| ISBN | ISBN Express ISBN metafield or product barcode |
| Publication date | ISBN Express publication date metafield |
| Binding | ISBN Express binding metafield |
| Publisher | ISBN Express publisher metafield |
| Genres / categories | ISBN Express categories/genres metafield |
| Dimensions | ISBN Express dimensions metafield |
| Page count | ISBN Express page count metafield |
| Language | ISBN Express language metafield |
| Condition | Merchant-created condition metaobject reference |
| Shelf talker | Merchant-created shelf talker metafield, if used |
| Libro.fm URL | Merchant-created custom.librofm_url metafield, if used |
The exact namespace and key may vary depending on your ISBN Express configuration or app version. Always verify the metafields in your Shopify admin before changing mappings.
Metafield Mapping
In theme settings, map your product metafields to the matching book fields. This allows the theme to display book information without hardcoding a single required app or metafield namespace.
The theme includes default mappings for ISBN Express metafields because ISBN Express can create many of the book metadata fields used by the theme. If you use ISBN Express, confirm those mappings are still correct for your store before creating duplicate metafields.
If you use a different book inventory or metadata app, check which metafields the app creates and map those fields in the theme settings.
Recommended fields to map:
-
Author
-
ISBN
-
Publication date
-
Binding
-
Publisher
-
Genres/categories
-
Dimensions
-
Page count
-
Language
-
Condition
-
Shelf talker, if using staff recommendation content
-
Libro.fm URL, if using Libro.fm audiobook links
-
Aggregate rating badge HTML, if the theme is managing aggregate rating structured data
Blank metafields are ignored by the theme. If a product does not have a value for a mapped field, that field will not display.
Product Condition Metaobject
For best results, create condition as a Shopify metaobject instead of a plain text metafield.
A condition metaobject keeps display labels, filtering values, and structured data values consistent across the store. This is especially useful for bookstores selling a mix of new, used, remaindered, refurbished, damaged, collectible, or special-condition inventory.
Recommended Condition Metaobject Definition
Create a metaobject definition such as:
Metaobject name: Product condition
Example handle: product_condition
Recommended fields:
| Field | Type | Example |
|---|---|---|
| Display label | Single line text | New |
| Schema condition | Single line text or URL | https://schema.org/NewCondition |
| Optional description | Multi-line text | Brand new copy from publisher or distributor. |
| Optional sort order | Integer | 1 |
The Schema condition field is important because it allows the theme to use the correct product condition value in structured data when available.
Recommended Condition Entries
Create entries for the conditions your store uses.
Recommended starting entries:
| Display label | Schema condition |
|---|---|
| New | https://schema.org/NewCondition |
| Used | https://schema.org/UsedCondition |
| Refurbished | https://schema.org/RefurbishedCondition |
Optional additional entry:
| Display label | Schema condition |
|---|---|
| Damaged | https://schema.org/DamagedCondition |
Product Condition Metafield
After creating the metaobject definition and entries, create a product metafield for condition.
Recommended product metafield setup:
Name: Condition
Namespace and key: use your preferred namespace and key, such as custom.condition
Type: Metaobject reference
Reference: Product condition
List of entries: Off, unless a single product can intentionally have more than one condition
Then map this product metafield to the theme’s Condition setting.
Why Condition Should Use Schema Values
The customer-facing condition label can be simple, such as New, Used, or Refurbished.
The structured data value should use the matching schema value, such as:
-
https://schema.org/NewCondition -
https://schema.org/UsedCondition -
https://schema.org/RefurbishedCondition -
https://schema.org/DamagedCondition
This helps the theme output cleaner product structured data when condition data is available.
If you only use a plain text condition field, the theme may still display the condition to customers, but it may not be able to output the most reliable structured data value.
Shelf Talker Metafield
The shelf talker metafield is optional. Use it when you want product-specific recommendation text, staff notes, or bookstore-style callouts.
Good shelf talker content examples:
-
Staff pick notes
-
“Perfect for fans of…” recommendations
-
Local author highlights
-
Book club notes
-
Gift recommendations
-
Content warnings or reading guidance, when appropriate
Recommended product metafield setup:
Name: Shelf talker
Type: Rich text or multi-line text
After creating the field, map it in the theme settings. Shelf talker presets should only display when the mapped field has content.
If a shelf talker metafield is blank, the related shelf talker preset should stay hidden on the storefront.
Libro.fm URL Metafield
The Libro.fm URL metafield is optional and is only needed if your store uses Libro.fm audiobook links.
Recommended product metafield:
custom.librofm_url
Recommended type:
URL
Add the Libro.fm URL only to eligible products. If the metafield is blank, the theme will not show the Libro.fm button.
If ISBN Express is already creating your main book metadata, this is one of the few product metafields you may still want to create manually.
Review and Aggregate Rating Metafields
If you use a review app, the theme can work with review app blocks and optional aggregate rating mapping.
For Judge.me users, the Aggregate rating badge HTML metafield can be set to:
judgeme.badge
Choose one owner for review structured data:
-
If the theme manages aggregate rating structured data, map the review metafield and disable duplicate product rich snippets, structured data, or review microdata in the review app if the app outputs them.
-
If the review app manages review schema, leave the theme aggregate rating mappings blank.
Always test structured data after configuring review mappings.
Filter-Friendly Book Data
When your book metadata is stored in Shopify metafields and enabled through Shopify filtering, the same data can support collection filters and metadata links.
For example, customers may be able to browse or filter by:
-
Author
-
Genre
-
Publisher
-
Language
-
Condition
-
Binding
-
Format
This makes Bookhaven especially useful for stores with large book catalogs.
Metadata Links and Filters
Some metadata fields may link to filtered collection results, such as author, genre, publisher, language, or condition.
For these links to work well, make sure the corresponding Shopify filters are enabled in Search & Discovery.
Filter-Friendly Metafields
To use metafields as storefront filters:
-
Create the metafield definition.
-
Add values to products.
-
Enable filtering for the metafield when supported.
-
Open Shopify Search & Discovery.
-
Add the metafield as a collection/search filter.
-
Review a collection page with products that use that metafield.
Useful bookstore filters may include:
-
Author
-
Genre
-
Publisher
-
Language
-
Condition
-
Binding
-
Format
For condition, use the condition metaobject reference field so filter labels stay consistent.
For fields with multiple values, such as genres, use a list field when appropriate.
Search-Friendly Metafields
Metafields can improve customer discovery when values are displayed, linked, indexed, or used in filters.
For bookstores, the most useful search-supporting fields are usually:
-
Title
-
Author
-
ISBN
-
Publisher
-
Genre
-
Language
-
Binding
-
Condition
Shopify search behavior depends on Shopify’s indexing and the store’s search configuration. Use clear product titles, descriptions, tags, collections, and metafields together for the best results.
Collection and Search Pages
Collection and search pages include product grids, filters, sorting, pagination, and product cards.
Collection Filters
Filters are managed through Shopify’s filtering system.
To configure filters:
-
Open Shopify admin.
-
Go to Apps → Search & Discovery.
-
Configure filters for product availability, price, product type, tags, metafields, or other supported fields.
-
Save your filters.
-
Review the collection page.
The theme displays filters when Shopify provides filter data for the current collection or search.
Sort Options
Sort options are provided by Shopify and appear when available.
Filter Search and Show More
Large filter groups may include search within the filter group and a “Show more” button. This helps keep long lists usable.
Keyboard-Friendly Filtering
The filter area includes keyboard-friendly behavior for desktop and mobile shoppers.
On desktop, customers can tab through the filters and then continue into product results. A skip link is also available for keyboard users who want to skip the filter controls and go directly to the product results.
On mobile, filters appear in a drawer-style interface.
Product Cards
Product cards can show:
-
Image
-
Title
-
Vendor or author
-
Price
-
Condition
-
Sale badge
-
Variant selector
-
Add to basket button
-
Optional alternate-format buttons
-
App blocks
The product card block can be configured where it is used.
If ISBN Express is configured so vendor is set to author, product cards can use that author-friendly vendor value as a fallback when mapped author metafields are unavailable.
Search Page
The search page is designed for bookstore-style browsing. Customers can search by title, author, ISBN, genre, tag, or other product data indexed by Shopify.
Internal search result pages are commonly kept out of search engine indexes to avoid thin or duplicate search result URLs. This is normal and does not prevent products, collections, pages, blogs, or articles from being indexed.
Cart / Basket
The cart page uses bookstore-friendly “basket” language and includes line items, quantities, totals, checkout buttons, and shipping messaging.
Cart features may include:
-
Product image and title
-
Variant details
-
Gift card recipient details, when available
-
Quantity controls
-
Remove/update behavior
-
Subtotal
-
Free-shipping messaging
-
Checkout button
-
Dynamic checkout buttons
-
Empty-cart recommendations
Free Shipping Message
If configured, the cart can show progress toward a free-shipping threshold.
Make sure the message matches your store’s actual shipping policy.
Gift Cards
If you sell Shopify gift cards, review the cart line item display to make sure gift card recipient details appear clearly when used.
Gift card recipient details may include:
-
Recipient email
-
Recipient name
-
Message
-
Send date
-
Other gift card line-item properties
Contact Page
The contact page uses Shopify’s native contact form functionality. When a customer submits the form, Shopify sends the message to the store email address configured in Shopify.
The contact form may include:
-
Name
-
Email
-
Topic
-
Message
Topic options can be configured by the merchant when supported by the section.
Blog and Article Pages
Use Shopify blogs for:
-
Staff picks
-
Event recaps
-
Reading guides
-
New release roundups
-
Author interviews
-
Local bookstore news
For best results:
-
Use descriptive article titles.
-
Add featured images where appropriate.
-
Use headings in order.
-
Add meaningful alt text to images.
-
Keep paragraphs readable and scannable.
Static Pages
Use Shopify pages for evergreen content such as:
-
About us
-
Shipping policy
-
Return policy
-
Privacy policy
-
Events
-
Book clubs
-
Local pickup information
-
Store history
Use theme sections and blocks to create richer layouts when needed.
Password Page
The password page appears when your store is password protected. Use it before launch or during maintenance.
Recommended content:
-
Store name
-
Short launch message
-
Email signup
-
Social links, if relevant
404 Page
The 404 page appears when a customer visits a URL that does not exist.
Use friendly language and include a helpful link back to shopping, search, or collections.
SEO and Structured Data
Bookhaven is built with bookstore SEO in mind. The theme gives merchants structured places to display important product, book, collection, and store information.
SEO depends on many factors, including product content, collection organization, page speed, image quality, headings, links, and merchant configuration. The theme cannot guarantee search ranking, but it provides a strong technical and content foundation for bookstore storefronts.
Product SEO
Product pages are designed to support clear, structured product content, including:
-
Product title
-
Author/vendor information
-
Product description
-
Product images with alt text
-
Price and availability
-
Variant information
-
Book metadata
-
Condition data, when configured
-
Review data, when configured
The book metadata band helps surface important book details for customers and can support richer, more complete product content.
Book-Specific Metadata
Bookstores often need to display information that general retail themes do not prioritize, such as ISBN, binding, publisher, page count, publication date, language, and condition.
Bookhaven gives these details a dedicated display area so product pages can be more complete and easier to scan.
Product Condition and Structured Data
When condition is configured as a metaobject with a schema condition value, the theme can use that value for product structured data when available.
Recommended schema condition values include:
-
https://schema.org/NewCondition -
https://schema.org/UsedCondition -
https://schema.org/RefurbishedCondition -
https://schema.org/DamagedCondition
For best results, create product condition as a metaobject and map the product condition metafield in the theme settings.
Structured Data
The theme can output product structured data for search engines using Shopify product information and configured theme settings.
When review data is configured, the theme may also support aggregate rating structured data. If using a review app, choose whether the theme or the review app should manage review schema to avoid duplicate structured data.
For Judge.me users, the Aggregate rating badge HTML metafield can be set to:
judgeme.badge
If the theme is managing aggregate rating structured data, disable duplicate product rich snippets, structured data, or review microdata in the review app if that app also outputs schema.
If the review app should manage review schema instead, leave the theme’s aggregate rating mappings blank.
Always test structured data after configuring reviews, condition, price, and availability.
Collection SEO
Collection pages should use clear collection titles, descriptions, and product organization. Bookhaven supports collection heroes, product grids, filters, and pagination to help customers browse large catalogs.
Search SEO
Internal search result pages are commonly kept out of search engine indexes to avoid thin or duplicate search result URLs.
This is normal and does not prevent products, collections, pages, blogs, or articles from being indexed.
Merchant SEO Checklist
Before publishing, review:
-
Product titles
-
Product descriptions
-
Product images and alt text
-
Collection titles and descriptions
-
Page titles and meta descriptions
-
Blog/article headings
-
Book metadata mappings
-
Product condition metaobject setup
-
Review structured data ownership
-
Color contrast and readability
-
Mobile performance
Optional Integrations
Bookhaven is designed to work without required third-party apps. Optional integrations can be configured by merchants when desired.
ISBN Express
Bookhaven is designed to work especially well with ISBN Express.
ISBN Express can create many of the book metadata metafields used by the theme. The theme uses ISBN Express-compatible metafield mappings by default where possible.
If ISBN Express is creating your product metadata, you usually only need to create or configure:
-
Product condition metaobject and product condition metafield
-
Location store hours metafields
-
Libro.fm URL metafield, if using Libro.fm audiobook links
For best results, configure ISBN Express so the Shopify product Vendor field is set to the book’s author.
Bookshop.org
The theme may support optional Bookshop.org links for print books.
To use Bookshop.org links:
-
Add your Bookshop.org affiliate or partner information in theme settings, if available.
-
Make sure products have ISBN or barcode data.
-
Review product pages and product cards to confirm the link appears only where appropriate.
If you do not use Bookshop.org, leave the related settings blank or disabled.
Libro.fm
The theme may support optional Libro.fm audiobook links for print books.
To use Libro.fm links:
-
Create or confirm the product metafield used for Libro.fm URLs.
-
Add a Libro.fm URL to eligible products.
-
Confirm the audiobook button appears only when a URL is present.
The recommended product metafield for Libro.fm audiobook links is:
custom.librofm_url
If you do not use Libro.fm, leave the related metafield blank.
Review Apps and Judge.me
Bookhaven can work with review apps through Shopify app blocks and custom metafield mapping.
If using Judge.me and you want the theme to output aggregate rating structured data, set the Aggregate rating badge HTML metafield to:
judgeme.badge
To avoid duplicate review schema, choose one owner for review structured data:
-
If the theme manages aggregate rating schema, disable Judge.me’s own product rich snippets, structured data, or microdata if Judge.me outputs them.
-
If the review app manages review schema, leave the theme aggregate rating mappings blank.
Always test structured data after configuring reviews.
App Blocks
The theme supports Shopify app blocks in supported areas.
Use app blocks for optional functionality such as:
-
Reviews
-
Loyalty
-
Badges
-
Subscriptions
-
Email/SMS capture
-
Store pickup tools
Avoid relying on app blocks for core storefront functionality unless the app is required for your business.
Accessibility Guidance
Bookhaven includes accessibility-minded patterns such as:
-
Keyboard-accessible navigation
-
Skip links
-
Focus-visible styling
-
Semantic landmarks
-
Accessible form labels
-
Keyboard-friendly filters
-
Proper heading structure on collection/search pages
-
Reduced-motion considerations where appropriate
Merchant-customized content still affects accessibility.
Before publishing, review:
-
Color contrast
-
Image alt text
-
Heading order in rich text content
-
Link text clarity
-
Button text clarity
-
Form labels
-
App block accessibility
When customizing color schemes, make sure text, links, icons, and buttons have enough contrast against their backgrounds.
Performance Guidance
For best performance:
-
Use appropriately sized images.
-
Avoid uploading unnecessarily large images.
-
Keep homepage sections focused.
-
Remove unused app blocks.
-
Avoid loading heavy third-party apps unless needed.
-
Use Shopify-native image fields and product images where possible.
-
Test on mobile, not just desktop.
Troubleshooting
Filters are not showing
Check that:
-
Products exist in the collection.
-
Shopify Search & Discovery filters are configured.
-
The relevant metafields are enabled for filtering.
-
The collection is not empty.
-
The products have values for the fields you want to filter by.
Book metadata is not showing
Check that:
-
The product has metafield values.
-
The metafields are mapped in theme settings.
-
The product is in the correct product category, if the display is category-specific.
-
The block or section that displays metadata is enabled.
-
The metafield type is compatible with the theme field.
-
The value is not blank.
If you use ISBN Express, also check that:
-
ISBN Express has created metadata for the product.
-
The theme’s default metafield mappings still match your ISBN Express metafields.
-
ISBN Express is configured to set vendor to author, if you want author-friendly vendor fallback behavior.
Condition is not showing correctly
Check that:
-
The product condition metafield is a metaobject reference.
-
The product has a condition entry selected.
-
The condition metaobject entry has a display label.
-
The condition metaobject entry has a schema condition value.
-
The condition metafield is mapped to the theme’s Condition setting.
Condition structured data is not showing
Check that:
-
The condition field is mapped.
-
The selected condition entry includes a valid schema condition value.
-
The product has price and availability data.
-
You have tested the product URL with a structured data testing tool.
Shelf talker is not showing
Check that:
-
The shelf talker metafield exists.
-
The product has shelf talker content.
-
The shelf talker metafield is mapped in theme settings.
-
The rich text preset or section using the shelf talker field is enabled.
-
The preset is expected to stay hidden when the mapped field is blank.
Store hours or open/closed status is not showing
Check that:
-
Store hours metafields exist.
-
Store hours values have been added to the correct Shopify location.
-
The store hours time metafields have validation turned on.
-
Store hours validation is set to true.
-
The recommended regular expression validator has been added to each time metafield.
-
The time values use a supported format, such as
9:00 AMor6:30pm. -
The theme settings are mapped to the correct location metafields.
-
The Store Hours block is enabled in the footer.
-
Your Shopify location and local pickup settings are configured, if the feature depends on pickup/location context.
-
The store timezone and current date/time are correct.
The recommended store-hours validation regular expression is:
^(1[0-2]|[1-9]):[0-5][0-9]\s?(AM|PM|am|pm)$
If a day is closed, leave that day’s open and close time fields blank.
Follow Us Everywhere links are not showing
Check that:
-
The footer block or social/link area is enabled.
-
URLs have been added for the platforms you want to display.
-
Blank links are expected to stay hidden.
-
The footer color scheme has enough contrast for icons and links.
Bookshop or Libro.fm buttons are not showing
Check that:
-
The integration is enabled/configured.
-
The product has the required ISBN, barcode, or URL.
-
The product is an eligible product type/category.
-
The related setting or metafield is not blank.
For Libro.fm, confirm the product has a value in the recommended metafield:
custom.librofm_url
Review stars or schema are not showing
Check that:
-
The review app is installed and configured.
-
The app block or metafield is present.
-
The correct metafield is mapped in theme settings.
-
You have chosen whether the theme or review app owns structured data.
Header or announcement bar looks wrong
Check that:
-
The correct color scheme is selected.
-
Text, links, icons, and buttons have sufficient contrast.
-
The logo width is appropriate.
-
Mobile preview has been tested.
Images look stretched or cropped
Check:
-
Product image ratio setting
-
Image shape setting
-
Original image dimensions
-
Whether the section expects portrait, square, landscape, or natural images
Product cards look incomplete
Check that:
-
Products have images.
-
Products have titles and prices.
-
Product card settings are enabled.
-
Products are available in the collection being displayed.
-
Optional app blocks or review blocks are configured.
-
Author/vendor data is available if author display is enabled.
-
Condition data is available if condition display is enabled.
Support
If you need help with Bookhaven, please include enough detail to reproduce the issue.
When contacting support, include:
-
Store name
-
Store URL or myshopify.com URL
-
Theme version
-
Page or template affected
-
What you expected to happen
-
What actually happened
-
Steps to reproduce
-
Screenshots or screen recording
-
Apps involved
-
Any recent changes you made
Recommended issue categories:
-
Installation/setup
-
Theme editor/settings
-
Product page
-
Collection/search/filtering
-
Cart or checkout-adjacent issue
-
Header/footer/navigation
-
Store hours/location setup
-
Book metadata/metafields
-
ISBN Express setup
-
Product condition/metaobjects
-
Apps/integrations
-
Accessibility
-
Performance
-
Bug report
-
Feature question
-
Other
Release Notes
Version 1.0.0
Initial release of Bookhaven.
Includes:
-
Bookstore-focused product cards
-
Flexible homepage sections
-
Header and announcement bar
-
Footer with store information and hours
-
Store-hours-aware open/closed messaging
-
Store hours location metafield support
-
Store hours validation guidance
-
Follow Us Everywhere bookstore platform links
-
Product metadata display options
-
Book-specific metadata band
-
ISBN Express-friendly default metafield mappings
-
Author/vendor fallback support
-
Product condition metaobject support
-
Collection and search filtering
-
Cart/basket experience
-
Gift card line-item detail support
-
Optional Bookshop.org support
-
Optional Libro.fm support
-
Optional review app support
-
SEO-conscious product structure
-
Product structured data support
-
Custom layout and rich text blocks
-
Theme app block support
-
Accessibility and performance-focused defaults