Skip to content

Product Tags & Metafields

When Emersoft Books imports or updates a product, it adds Shopify tags for BISAC subject classifications and stores a rich set of book data in Shopify metafields. These give you fine-grained control over how your catalog is organized, filtered, and displayed — both in Shopify Admin and on your storefront.

The Emersoft team will help you configure any of this during your onboarding session.

Video walkthrough

Watch Book metadata and metafields (9 min).


BISAC subject tags

When a book is imported, Emersoft Books creates Shopify tags from its BISAC subject classifications. Each tag includes a level number prefix that shows where the subject sits in the hierarchy, making it easy to filter by broad genre or narrow sub-category.

For example, a book classified as Fiction | Romance | Romantic Comedy gets three tags:

Tag What it means
1: Fiction Top-level genre
2: Romance Second-level sub-genre
3: Romantic Comedy Third-level sub-category

You can use these tags in Smart Collections, storefront filters, and Shopify automations. For example:

  • Books whose top-level genre is fiction: tag 1: Fiction
  • Books with romance as a sub-genre: tag 2: Romance
  • Romantic comedies specifically: tag 3: Romantic Comedy

How the level prefix works

BISAC subjects are hierarchical: every BISAC heading is a path that runs from a broad category down to a specific one — for example Fiction | Romance | Romantic Comedy. When the app imports a book, it walks that path and creates one tag per step, prefixing each with its depth — the broadest step becomes 1: …, the next 2: …, then 3: …, and so on.

Two things follow from this:

  • A single book usually carries several BISAC subjects, so it ends up with several level-numbered tags — not just three.
  • The number is always the subject's position in its path, not a fixed property of the word. The tag text is the exact BISAC label at that step, so 1: Fiction, 1: Juvenile Fiction, and 1: Young Adult Fiction are three different tags — not variants of one.

These tags are built from Ingram's BISAC subject field (BisacSubject). The raw BISAC codes and full subject strings are also kept in the emersoft.bisac_codes and emersoft.bisac_subjects metafields — but only these level-prefixed labels become Shopify tags.

The same subject can appear at different levels

This is the part that most often causes confusion. Because the number reflects position, the same word can land at a different level on different books, depending on how each title is catalogued:

  • A novel catalogued as Fiction | Romance | Romantic Comedy gets 1: Fiction — here Fiction is the top-level genre (the book is a work of fiction).
  • A reference or literary-studies title catalogued as Literary Criticism | Fiction gets 1: Literary Criticism and 2: Fiction — here Fiction is a second-level subject (the book is about fiction).
  • On a title where Fiction sits deeper still in its path, you would see 3: Fiction.

So across your catalogue it is completely normal to see 1: Fiction, 2: Fiction, and 3: Fiction on different books. They are distinct tags, and none of them is wrong — each one tells you precisely at what level that book treats Fiction as a subject. That precision is exactly the benefit: it lets you cleanly separate "this is fiction" (1: Fiction) from "this is about fiction" (2: Fiction / 3: Fiction) — a distinction a single, level-less "Fiction" tag could never make.

Collecting a subject across all levels

The trade-off for that precision: to capture every book with a given subject regardless of level, your Smart Collection (or filter) needs one condition per level the subject can appear at.

To grab all Fiction titles no matter where Fiction sits in their path, create a Smart Collection set to Products must match: any condition with three tag conditions:

  • Tag is equal to 1: Fiction
  • Tag is equal to 2: Fiction
  • Tag is equal to 3: Fiction

BISAC paths are usually up to three levels deep, so three conditions cover almost everything; add a 4: Fiction condition if your catalogue goes deeper. If you only want true works of fiction — and not books about fiction — use the single condition 1: Fiction instead.

Use 'any condition', not 'all conditions'

For "all Fiction at any level," the collection must match any condition (an OR across the three tags). If you leave it on all conditions, Shopify only includes books tagged with 1: Fiction and 2: Fiction and 3: Fiction at the same time — which almost no book is, so the collection comes back empty.

BISAC subject tags are created on both single imports and Bulk Import jobs, and are updated when the metadata sync runs.


Other product tags

Besides BISAC subject tags, every book the app imports or updates picks up a handful of descriptive tags drawn from the Ingram Content Group® data, plus one fixed marker tag. Like BISAC tags, these are handy for Smart Collections, storefront filters, and Shopify automations — they surface key book attributes in a form that Shopify's collection rules and theme filters work with natively.

Tag Ingram source Example When it's added
Emersoft Books (added by the app) Emersoft Books Always, on every product the app imports. Use it to find — or build a collection of — every book added through Emersoft Books.
Audience type AudienceType Juvenile When Ingram provides an audience type (e.g. Trade, Juvenile, Young Adult, Academic).
Theme Theme Coming of Age One tag per theme, when Ingram supplies themes.
Format ProductFormat Hardcover From the product format, when present.
Binding Binding Trade Paperback From the binding, when present (may match the format).
Feature Features Bestseller One tag per feature flag Ingram sets on the title — typically an award or merchandising label, when present.
Series: <id> SeriesID Series: 9012345 When the title belongs to a series. The value is Ingram's series identifier, so every title in the same series shares the exact tag.

The Ingram source column is the field in Ingram's catalog data each tag is drawn from — useful if you cross-reference titles with Ingram directly. The exact tag text comes straight from that data, so values vary from title to title and are not a fixed list. Most of these values are also stored as metafields (binding, format, audience type, themes, series): the tag is the convenient hook for Smart Collection rules and theme filters, while the metafield holds the same value for display and structured access.

Your own tags, and what happens on update

You can add your own Global tags to a whole job in Bulk Import — a comma-separated list applied to every product in that job, which is the easiest way to find and manage a batch later. When the app later updates an existing product (a re-import or a metadata sync), it merges its tags with whatever tags are already on the product, so tags you added by hand or through other apps are kept. Bulk Import also offers a Tag merge strategy override — choose Replace existing tags to overwrite a product's tags with only the app's tags instead. The default, Merge with existing tags, is recommended.


Catalog metafields

In addition to standard Shopify product fields, Emersoft Books stores a comprehensive set of book data in Shopify metafields. Catalog metadata uses the emersoft namespace on both the product (shared “work” data such as authors and subjects) and each product variant (per-edition data such as binding, publication date, pre-order flag, and wholesale cost). The same namespace also holds lightweight app-tracking fields on the product (imported_by_app, timestamps, etc.). Using a dedicated namespace means these never conflict with metafields you may already have from other apps or manual setup.

Each metafield is only written when the source data is present — if Ingram does not provide a value for a particular field on a title, the metafield is left unset on that product or variant.

Product vs variant in Shopify Admin

Catalog data is split by scope. Work-level data that is the same across every edition of a title — authors, subjects / BISAC, audience, language, publication city, harmonized code, media mail, and choking hazard — is stored on the product. Edition-level data that can differ between formats of the same work — binding, format, pages, dimensions, publication date, pre-order, wholesale cost, availability, and returnability — is stored on each product variant.

The Level column in every table below tells you exactly where each field lives. It matters in two places: in Liquid you read product fields as product.metafields.emersoft.… and variant fields as variant.metafields.emersoft.…; and in Shopify Admin a Product-level field is defined under Settings > Custom data > Products while a Variant-level field is defined under Settings > Custom data > Product variants.

Metafield definitions are created automatically

The app creates Shopify metafield definitions for the emersoft product and product-variant fields during install/reinstall. The list below is the complete catalog of data Emersoft Books captures from Ingram on every imported book. The values are written to the product and/or default variant (see intro above) and remain accessible through the Shopify API and Liquid.

Most booksellers only define a handful — typically things like Authors, Binding, Audience Type, Pages, Language, and Pre-order. Cherry-pick whatever fits how you organize and merchandise your catalog, and ignore the rest. You can always add more definitions later if you find a use for them.

The metafields below are grouped by category to make them easier to navigate. The Key column shows the exact namespace.key you will use in Liquid templates, Smart Collection rules, and the Shopify Admin metafield definition screen. The Name column is a suggested friendly name to use when defining the metafield in Shopify Admin — you can pick any name you like; it does not affect how the app writes data.

Title & identifiers

Name Key Level Type Description
Title emersoft.title_main Product Single line text The main title without any leading article
Leading Article emersoft.title_leading_article Product Single line text Leading article (e.g. "The", "A") split out from the title
Title Status emersoft.title_status Variant Single line text Distribution status from Ingram (e.g. active, out of print)
UPC emersoft.upc Variant Single line text UPC barcode, where available
Source emersoft.source Product Single line text Identifier for where the metadata was sourced
Display emersoft.display Product Single line text Display category from Ingram

Authors & contributors

Name Key Level Type Description
Authors emersoft.authors Product Single line text list All authors associated with the title
Illustrators emersoft.illustrators Product Single line text list Illustrators, where applicable
Foreword By emersoft.forewords Product Single line text list Contributors credited with a foreword
Other Contributors emersoft.other_contributors Product Single line text list Editors, translators, narrators, and other credits

Series

Name Key Level Type Description
Series ID emersoft.series_id Product Single line text Ingram's internal series identifier
Series Number emersoft.series_number Product Decimal Position of the title within the series (supports fractional values such as 5.5)

Subjects & classification

Name Key Level Type Description
BISAC Codes emersoft.bisac_codes Product Single line text list BISAC subject codes (e.g. FIC027040)
BISAC Subjects emersoft.bisac_subjects Product Single line text list Human-readable BISAC subject labels — also exposed as level-prefixed tags (see BISAC subject tags)
Library of Congress Subjects emersoft.lc_subjects Product Single line text list Library of Congress subject headings
Subject Area Subjects emersoft.sa_subjects Product Single line text list Ingram Subject Area classifications
Subject Area Product Type emersoft.sa_product_type Product Single line text Ingram Subject Area product type
Ingram Subject emersoft.ingram_subject Product Single line text Ingram's primary subject category
Themes emersoft.themes Product Single line text list Thematic descriptors
Dewey Decimal emersoft.dewey Product Single line text Dewey Decimal classification

Looking for the full BISAC, Thema, or Dewey lists?

Ingram is not permitted to share these classification lists directly. If you'd like to look up codes or browse the full taxonomies, you can go to the source:

  • BISAC subject codes are available for online viewing at bisg.org. Access is view-only — a subscription is required to download or obtain the full list.
  • Thema and Dewey Decimal classifications are managed by their respective organizations, which may provide online access. Fees may apply for use of their full lists.

Audience

Name Key Level Type Description
Audience emersoft.audience Product Single line text Audience description
Audience Type emersoft.audience_type Product Single line text Audience category (e.g. Trade, Juvenile, Young Adult, Academic)
Min Age emersoft.audience_age_min Product Number Minimum target age in years (children's titles)
Max Age emersoft.audience_age_max Product Number Maximum target age in years (children's titles)
Min Grade emersoft.audience_grade_min Product Single line text Minimum US grade level (children's titles)
Max Grade emersoft.audience_grade_max Product Single line text Maximum US grade level (children's titles)
Lexile Level emersoft.lexile_level Product Number Lexile reading-level score

Format & physical attributes

Name Key Level Type Description
Binding emersoft.binding Variant Single line text Binding type (e.g. Hardcover, Trade Paperback)
Format emersoft.format Variant Single line text Detailed product format
Media Type emersoft.media_type Variant Single line text Media type (e.g. Book, Audio, eBook)
Language emersoft.language Product Single line text Language of the title
Pages emersoft.pages Variant Number Page count
Height emersoft.height Variant Dimension Height of the book
Width emersoft.width Variant Dimension Width of the book
Depth emersoft.depth Variant Dimension Spine depth of the book
Dimension Unit emersoft.dimension_unit Variant Single line text Unit used for height, width, and depth (e.g. inches, cm)
Illustrated emersoft.illustrated Variant True / False The title contains illustrations
Large Print emersoft.large_print Variant True / False The title is a large-print edition
Abridged emersoft.abridged Variant True / False The title is an abridged edition

Publishing

Name Key Level Type Description
Publication Date emersoft.publication_date Variant Date Publication date of the title — used by the pre-order Shopify Flow workflow to determine when to clear Pre-order
Publication Date and Time emersoft.publication_date_time Variant Date and time Same publication calendar date as Publication Date, at midnight (00:00) in your store's timezone — useful for themes and automations that need a precise datetime
Publication City emersoft.publication_city Product Single line text City of publication
Country of Origin emersoft.country_of_origin Variant Single line text Country where the book was published
Publisher emersoft.publisher Variant Single line text Publisher name from the Ingram catalog. Stored independently of your Shopify Vendor — a bulk-import vendor override changes the Vendor field but not this metafield
Publisher Number emersoft.publisher_number Variant Single line text Publisher's internal catalog number
Imprint ID emersoft.imprint_id Variant Single line text Ingram's imprint identifier
Pre-order emersoft.is_preorder Variant True / False true if the title had a future publication date at the time of import. Used for Smart Collections, storefront pre-order labels, and the Shopify Flow workflow that clears it on publication day

Availability & inventory

Name Key Level Type Description
Availability emersoft.availability Variant Single line text Availability status from Ingram
Backorder Allowed emersoft.backorder Variant True / False The title can be ordered while temporarily out of stock
Returnable emersoft.is_returnable Variant True / False The title is returnable to Ingram
Print on Demand emersoft.pod Variant True / False The title is print-on-demand
Strippable emersoft.strippable Variant True / False The title is strippable (cover-only return)
Carton Quantity emersoft.carton_quantity Variant Number Number of units packed per carton
Cost emersoft.cost Variant Decimal Wholesale cost from Ingram

Compliance & shipping

Name Key Level Type Description
Harmonized Code emersoft.harmonized_code Product Single line text Harmonized System (HS) code for international shipping
Media Mail Eligible emersoft.media_mail Product True / False The title is eligible for USPS Media Mail rates
Choking Hazard emersoft.choking_hazard Product True / False Choking hazard warning, where applicable

App import metadata

The emersoft namespace records lightweight tracking data about which products the app has touched. These are all stored on the product, and are mainly used internally — you do not need to interact with them directly — but they can be useful in Smart Collections (for example, to find every product the app has ever imported).

Name Key Level Type When set
Imported by App emersoft.imported_by_app Product True / False When the product was imported through Emersoft Books
Import Method emersoft.import_method Product Single line text Records how the product was imported (e.g. single import, bulk import)
Created At emersoft.created_at Product Date and time Timestamp of when the app first created the product
Updated At emersoft.updated_at Product Date and time Timestamp of the most recent update by the app

Metafield definitions in Shopify Admin

Metafields and their definitions are created automatically by Emersoft Books. You can view them in Shopify Admin under Settings > Custom data > Products and Settings > Custom data > Product variants.

You do not need to manually create definitions for the emersoft fields. During onboarding, the Emersoft team can still help you decide which definitions to expose in Search & Discovery filters, Smart Collections, theme blocks, or custom Liquid.

Once a definition exists, the metafield can appear in Shopify Admin and can be used for Smart Collection rules, storefront filters, and theme blocks depending on Shopify's capabilities for that field type.


What you can do with metafields and tags

Smart Collections

Use any metafield or tag as a condition in a Shopify Smart Collection. Examples:

  • All pre-orders: products where Pre-order is true
  • Pre-orders by a specific author: combine Pre-order = true with an author tag
  • Children's books: products where Audience Type contains "Juvenile"
  • Large print editions: products where Large Print is true
  • Books imported by Emersoft Books: products where Imported by App is true

Storefront filters

Add the free Search & Discovery app by Shopify to your store and configure it to expose emersoft metafields as filterable attributes on your collection and search pages. For example, customers can filter by binding type, language, audience type, or large print. (Variant-scoped filters use variant metafield definitions.)

Theme customization

Metafields of type Single line text (such as Language and Audience Type on the product, or Binding on the variant) can be displayed anywhere on your product page template using a standard Text block in the Shopify theme editor — no coding required. Add a Text block to your product template and connect it to the relevant metafield. Watch the Level column when you connect the source: product-level fields are connected to the product, and variant-level fields (such as Binding) to the variant.

More complex metafield types — single line text lists and True/False fields — require Liquid code to display. Remember the same split applies in Liquid: read product-level fields from product.metafields.emersoft.… and variant-level fields from variant.metafields.emersoft.…. The pattern for accessing these values in a Liquid template looks like this:

{% assign authors = product.metafields.emersoft.authors.value %}
{% assign illustrators = product.metafields.emersoft.illustrators.value %}
{% assign forewords = product.metafields.emersoft.forewords.value %}
{% for variant in product.variants %}
  {% if variant.metafields.emersoft.is_preorder.value %}
    <span class="pre-order-badge">Pre-order</span>
  {% endif %}
{% endfor %}

If you need help with complex metafield display, the Emersoft team can assist during onboarding or as part of a theme customization request. See also Book Details Widget for a pre-built block that displays key book data with no setup required.