Product Tags & Metafields¶
When Emersoft Books imports or updates a product, it adds a set of tags and stores additional book data in Shopify metafields. These give you fine-grained control over how your catalog is organised, 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.
Product tags¶
Every product the app touches receives tags that tell you what the app did and when. These are visible in Shopify Admin > Products and can be used in bulk actions, automations, and Smart Collections.
| Tag | When it is added |
|---|---|
GetBooks |
Added to every product the app has ever touched in any way |
GetBooksCreated |
Added when the app creates a new product |
GetBooksUI |
Added when the product was created or imported through the app's interface (as opposed to a background process) |
GetBooksUpdated |
Added when the app updates an existing product in any way |
GetBooksCreatedTime_[timestamp] |
Added when a product is created, with the date and time — for example, GetBooksCreatedTime_2026-04-01 16:11 |
GetBooksUpdatedTime_[timestamp] |
Added on each update with the date and time — for example, GetBooksUpdatedTime_2026-04-01 16:11 |
These tags apply to both single imports and Bulk Import jobs. If the Emersoft team has built a catalog for you, or you have run a bulk import job, you can filter by the timestamp tag afterwards to find exactly those products — for example, to publish them as a batch, adjust pricing, or assign them to a collection.
BISAC subject tags¶
When a book is imported, Emersoft Books also 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:
- All fiction titles: products with tag
1:Fiction - All romance titles (any sub-type): products with tag
2:Romance - Specifically romantic comedies: products with tag
3:Romantic Comedy
BISAC subject tags are created on both single imports and Bulk Import jobs, and are updated when the metadata sync runs.
Product metafields¶
In addition to standard Shopify product fields, Emersoft Books stores a rich set of book data in Shopify metafields. All metafields use the ingram prefix so they never conflict with metafields you may already have from other apps or manual setup.
| Metafield | Type | Description |
|---|---|---|
| Ingram Is Preorder | 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 |
| Ingram Pub Date and Time | Date and Time | The publication date and time from Ingram — used by the pre-order Flow workflow to determine when to flip Ingram Is Preorder to false |
| Ingram Binding | Single line text | Binding type (e.g. Hardcover, Trade Paperback) |
| Ingram Product Format | Single line text | Physical format details |
| Ingram Pages | Number | Page count |
| Ingram Language | Single line text | Language of the title |
| Ingram Authors List | Single line text list | All authors associated with the title |
| Ingram Illustrators List | Single line text list | Illustrators, where applicable |
| Ingram Foreword By List | Single line text list | Contributors credited with a foreword |
| Ingram Audience Type | Single line text | Target audience (e.g. trade, children's, academic) |
| Ingram Audience | JSON | Age and grade range — populated for children's books only (empty for all other titles). See schema below. |
| Ingram SeriesID | Single line text list | Ingram's internal series identifier |
| Ingram Series Num | Single line text list | Position within the series |
| Ingram Choking Hazard | Single line text | Choking hazard warning, where applicable |
Ingram Audience JSON schema¶
The Ingram Audience metafield is a JSON type. Shopify requires you to provide the schema when defining it in your store. Copy and paste the schema below when creating the metafield definition in Shopify Admin > Settings > Custom data > Products:
{
"type": "object",
"properties": {
"Age": {
"type": "object",
"properties": {
"Min": { "type": "string" },
"Max": { "type": "string" }
},
"required": ["Min", "Max"]
},
"Grade": {
"type": "object",
"properties": {
"Min": { "type": "string" },
"Max": { "type": "string" }
},
"required": ["Min", "Max"]
}
},
"required": ["Age", "Grade"]
}
For example, a children's book for ages 6–9 in grades 1–4 would have the value { "Age": { "Min": "6", "Max": "9" }, "Grade": { "Min": "1", "Max": "4" } }.
This is an advanced metafield — the Emersoft team will handle the setup during onboarding.
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 Ingram Is Preorder is
true - Pre-orders by a specific author: combine Ingram Is Preorder =
truewith an author tag - Children's books: products where Ingram Audience Type contains "Juvenile"
- All books imported by the app: products with tag
GetBooks
Storefront filters¶
Add the free Search & Discovery app by Shopify to your store and configure it to expose Ingram metafields as filterable attributes on your collection and search pages. For example, customers can filter by binding type, language, or audience type.
Theme customisation¶
Metafields of type Single line text (such as Ingram Binding, Ingram Language, and Ingram Audience Type) 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.
More complex metafield types — single line text lists, JSON objects, True/False fields — require Liquid code to display. The pattern for accessing these values in a Liquid template looks like this:
{% assign bookAuthors = product.metafields.book_authors.authors.value %}
{% assign bookIllustrators = product.metafields.book_ilustrator.illustrators.value %}
{% assign bookForewords = product.metafields.book_foreword_by.foreword_by.value %}
If you need help with complex metafield display, the Emersoft team can assist during onboarding or as part of a theme customisation request. See also Book Details Widget for a pre-built block that displays key book data with no setup required.