The Senior E-Commerce Specialist keeps Hay House's Shopify storefronts accurate, fast and easy to shop. Before applying, I read shop.hayhouse.com the way I would in my first week: all 874 products, the filters, the pages, the structured data, the speed, and how it lines up with hayhouse.com. Everything here comes from public pages on September 16, 2026.
The same shape I'd use for a weekly note to the Director of E-Commerce: what's working, what needs attention, why it matters, and what I'd do first.
i.
What's working
The migration landed: 816 titles were created in April and new releases have been added every month since, with ISBN SKUs, book-detail metafields, an Authors filter and Shop Pay Installments. Shopify's agent endpoints are already on.
ii.
What needs attention
Some data came over from Magento with gaps: two prices for the same book across Hay House sites, duplicate listings, filters that split formats and authors, zero weights, templated alt text and 5,623 tags.
iii.
Why it matters
Filters, Google Shopping, social catalogs, shipping rates and AI shopping agents all read the same product data. Clean it once and every channel improves at the same time.
iv.
What I'd do first
Week one: agree the price of record, merge duplicates, fix the Format and Authors filters, add weights. Then H1s and book structured data with the developers, tags into metafields, and alt text in batches.
ISBNs as SKUs
All 878 variants use an ISBN-13 as the SKU, and every one passes the check-digit test. That makes matching, feeds and redirects much easier.
Book details
Product pages already show pages, language, publication date, ISBN and publisher from metafields, and the Authors filter is live.
Agent-ready plumbing
Shopify publishes /agents.md, an agentic discovery sitemap and a UCP profile (2026-08-25) for the store, so AI shopping agents can search the catalog and start checkouts that the buyer approves.
What I found · twelve findings
Found before anyone had to ask.
Each finding shows what I saw, why it costs sales or trust, and the fix. The evidence comes from the public storefront on September 16, 2026. The screenshots are cropped, not edited.
01
HighPricing · two storefronts
The same book has two prices on two Hay House sites.
hayhouse.com (Magento) vs shop.hayhouse.com (Shopify) · Sept 16Worthy · PB · 9781401950156 $9.50 vs $18.99
Divine Masters, Ancient Wisdom · HC $9.50 vs $18.99
F**K It Therapy · PB · list $15.99 $8.00, out of stock vs $19.99
You Can Heal Your Life · PB $14.39 vs $17.99
14 of 14 ISBNs I compared cost 20–60% less on hayhouse.com
Google indexes product pages on both domains
A reader who arrives on the Shopify page from Google, Instagram or an AI assistant can pay nearly twice what hayhouse.com charges for the same ISBN. Shoppers and price-comparing agents will find both pages.
Fix
Agree which storefront is the price of record and sync the other from it, through a scheduled price sync or one product feed. If the gap is deliberate (a web-only discount, for example), show it the same way on both sites. Until then, give the pair one canonical URL so they stop competing in search.
Owner Director of E-Commerce + eCommEffort a decision, then 1 dayMeasure price mismatches in the weekly check (target 0)
hayhouse.com, Sept 16: Worthy at $9.50 (list $18.99).shop.hayhouse.com, same day: the same ISBN at $18.99.
02
HighCatalog data · duplicates
Duplicate listings split sales, reviews and rankings.
products.json · 874 products · Sept 16embrace-your-power and embrace-your-power-1
same ISBN 9781401955892, same price $14.99
you-can-heal-your-life PB 1984 edition · $17.99
you-can-heal-your-life-1 40th Anniversary Edition · $19.99
both titled "You Can Heal Your Life"
5 titles appear twice · Worthy HC and PB are two products,
while Super Attractor sells the PB and the card deck
as two variants of one product
Two identical titles look like a mistake in collections, search, Google and agent answers. Inventory and reviews split across the pair, and the "-1" handles give away the import.
Fix
Merge the two Embrace Your Power listings and 301 the spare handle. Rename the anniversary edition ("You Can Heal Your Life: 40th Anniversary Edition") and link editions with an "Also available" block. Pick one rule for formats: one product per ISBN, with editions linked through a metafield, and never a card deck as a variant of a book.
Owner eCommEffort half a dayMeasure duplicate ISBNs and titles (target 0)
/products/you-can-heal-your-life/products/you-can-heal-your-life-1: the edition only shows as a subtitle.
A reader who filters for card decks misses those four. Paperbacks sit under two labels that mean the same thing to a customer; "Trade Paperback Original" is a publishing term.
Fix
Rename the four option values to "Card Deck" and keep the ISBN in the SKU. Show one customer-facing "Paperback" value, and keep the publishing detail in a format metafield for reports and feeds.
Owner eCommEffort 1 hourMeasure filter values per format (target 1)
Format filter, desktop.
04
HighFilters · authors
Authors appear under several names.
/collections/mind-body-spirit · Authors filter · Sept 16David R. Hawkins, M.D. Ph.D. (5)
David R. Hawkins, M.D., Ph.D. (15)
Alberto Villoldo (4) · Alberto Villoldo, Ph.D. (1)
Alberto Villoldo with Patricia Gift (1)
Alberto Villoldo and Colette Baron-Reid (1)
Alberto Villoldo and Colette Baron-Reid, with Marcela Lobos (1)
Steven D. Farmer (2) · Steven D. Farmer, Ph.D. (4)
also: Bruce H. Lipton / Bruce H. Lipton, Ph.D.
A Hawkins reader who ticks one spelling sees 5 or 15 books, not 20. Co-authors inside one text value never match their own name, so a Colette Baron-Reid filter misses decks she co-created.
Fix
Make authors an Author metaobject (name, credentials, bio, photo) referenced as a list on each product. That gives one filter value per person, author pages at no extra cost, and credentials kept out of the name. The developer ticket is in the worked examples (HH-201).
products.json + /products/{handle}.js · Sept 16878 of 878 shippable variants: weight 0
You Can Heal Your Life (40th Anniversary) · weight: 0 · requires_shipping: true
The store ships to 28 listed countries plus the rest of the world
Weight-based and carrier-calculated rates, shipping labels and customs forms all need a weight. With every product at 0 g, the store can only charge flat or price-based rates, at home and abroad.
Fix
Bulk-fill weights by format from the publisher's product data (trim size and page count give a close estimate), check a sample against the warehouse, and make weight a required field in the new-title SOP.
Compare-at price equals the price on 861 of 878 variants.
products.json · Sept 16compare_at_price = price on 861 variants e.g. Worthy $18.99 / compare-at $18.99
compare_at_price > price on 17 variants (real markdowns)
It isn't a discount today, but it's a trap: lower any of these prices and the product shows as on sale everywhere, without anyone deciding to run a sale. It also hides the 17 real markdowns in reports.
Fix
Clear compare-at wherever it equals the price in one bulk edit, and set it only for real promotions through the promotion SOP (SOP-03).
products.json + product pages · Sept 16SPANISH-YOU CAN HEAL YOUR LIFE/TRD · 140 × 223 px GIF cover
Language: English on 4 Spanish titles (La Ley De Atracción,
Sana Tu Cuerpo, El Poder Esta Dentro De Ti, the title above)
Sara, Book 2: no image · El Poder Esta Dentro De Ti: no description
3,055 of 6,284 images under 800 px wide · smallest 91 px
816 of 874 products created in April 2026 (the import)
Legacy catalog codes in titles and wrong language values show up in Google, in feeds and in agent answers. Small covers look blurry on phones and in Google Shopping.
Fix
Rename to the published title ("Usted Puede Sanar Su Vida"), set Spanish on the Spanish list, replace covers under 800 px from the cover archive, and add the missing image and description. Run the catalog check after every import.
Owner eCommEffort 1–2 daysMeasure catalog check issues (trend to 0)
The Spanish edition: legacy title, upscaled cover, language set to English.
08
MediumCatalog data · tags
5,623 tags, and customers can see them.
products.json · Sept 165,623 distinct tags · median 44 per product · max 98
222 tags exist in two or more capitalizations (Healing / healing)
318 BISAC subject codes stored as tags (e.g. FIC009030)
search phrases as tags: "self help books for women" (446 products),
"motivational books for men" (242)
product pages list every tag under Book Details
Tags don't help a page rank, but they clutter the product page, slow down admin work and make automated collections unpredictable.
Fix
Move BISAC codes and subjects into metafields, keep a short, controlled list of merchandising tags with an owner, and hide tags from Book Details. Keyword research belongs in titles, descriptions and collection copy.
Owner eCommEffort 3–4 days, in batchesMeasure tags per product (target under 15)
09
MediumSEO · page basics
Product and collection pages have no H1.
rendered pages, desktop and mobile · Sept 16homepage: one H1, empty · title "Hay House" · no meta description
product pages: 0 H1 (the title is an H2)
collection pages: 0 H1
16 collections, none with a description
"Featured Products" is published with 0 products
You Can Heal Your Life: meta description starts in ALL CAPS jacket copy
The H1 tells search engines and screen readers what a page is about. Empty collections and missing descriptions leave the category pages that should rank for "tarot decks" or "self-help books" thin.
Fix
A theme change: product and collection titles become H1s, and the homepage gets a real one. Write the homepage and collection meta descriptions, add 50–100 word intros to the top collections, and unpublish Featured Products.
Owner eComm + DeveloperEffort 1 dayMeasure pages with one H1 (target 100%)
10
MediumStructured data · feeds · agents
Book pages don't tell Google or agents they're books.
JSON-LD on /products/you-can-heal-your-life · Sept 16@type Product · sku 9780937611012 · brand "Hay House LLC"
no gtin13 / isbn · no author · no bookFormat · no rating
Image alt text (220 images, 30 random products):
211 read "{Title} - image {n}", 9 repeat the title, 0 describe the image
Google Shopping, rich results and AI assistants match books by ISBN and author. The data already exists in the metafields; it just isn't in the markup. Alt text that says "image 7" gives screen readers and image search nothing to work with.
Fix
Output gtin13 and author on Product, or a Book + Offer graph with isbn, author, bookFormat, numberOfPages and datePublished, all from existing metafields, and settle whether the brand should read "Hay House". Write alt text in batches with the reviewed AI workflow in the worked examples.
Owner Developer + eCommEffort 1–2 daysMeasure Rich Results test pass, Merchant Center item issues
11
MediumPerformance · third parties
Mobile pages are slow, mostly because of third-party scripts.
Lighthouse 12 · mobile · lab run from a cloud server (directional) · Sept 16Performance: homepage 36 · product page 36
Total blocking time 5.6 s / 6.0 s · LCP 4.2 s / 5.8 s
Homepage: 3.7 MB · 3,868 DOM elements
Main-thread blocking: accessibility overlay 2.1 s (home) ·
Google Tag Manager 1.1–2.8 s · Facebook pixel 0.7–1.9 s ·
OneTrust 0.3–0.5 s · jQuery 3.6 from Google's CDN
Most book discovery happens on phones, from social and email. Seconds of blocking time delay the first tap on Add to Cart.
Fix
Load pixels through Shopify's customer events, trim Google Tag Manager tags, drop jQuery where the theme no longer needs it, and review whether the overlay is still needed once the theme's own accessibility fixes (H1s, alt text) are in. Set a performance budget in the launch checklist and confirm the gains with field data (CrUX) before and after.
header, breadcrumbs, robots.txt · Sept 16menu: Home · Catalog · Contact
16 collections exist (Mind, Body, Spirit 537 · Self-Help 462 …)
but none is in the menu
robots.txt: "User-agent: * Allow: /"
(Shopify's default Disallow rules are gone)
/search pages are canonical to themselves
Readers browse by topic and author. Without a topic menu, the collections are only reachable from homepage blocks, and crawlers can spend their time on search and sorted URLs instead.
Fix
Add a Shop by Topic menu (Mind, Body, Spirit · Self-Help · Health & Fitness · Card Decks · New Releases) and an Authors link. Restore Shopify's default robots rules for /search and filtered URLs.
Owner eCommEffort half a dayMeasure collection sessions, crawl stats
The full main menu.
Tool · catalog check
Every product, checked every Monday.
This runs in your browser on a copy of all 874 live products taken September 16. To check today's catalog, save shop.hayhouse.com/products.json?limit=250 (and &page=2, 3, 4), then drop the files below. As a scheduled job, it would post the list before the weekly meeting.
Snapshot · Sept 16, 2026 · 874 products
Product
Format · ISBN
Price
Priority
Issues
Files stay in this browser; nothing is uploaded.
Checks: duplicate ISBNs and titles, ISBNs inside option values, zero weights, compare-at equal to price, legacy titles, missing images or descriptions, small covers, marketplace image files, tag counts and case duplicates, BISAC codes as tags, and the "Trade Paperback Original" label. Alt text isn't in products.json, so the alt-text sample comes from product .js files instead.
Tool · price check
Two storefronts, one catalog.
I searched hayhouse.com for 15 ISBNs from the Shopify store: a random sample plus a few bestsellers. 14 were found, and all 14 cost less on hayhouse.com. Each search returned exactly one matching title.
Sorted by the size of the gap. Hover or focus a row for the numbers.
Title
Shopify
hayhouse.com
Gap
hayhouse.com shows a list price and a lower "HayHouse.com" price; the comparison uses the lower price. F**K It Therapy also has a different list price ($15.99 vs $19.99) and shows as out of stock on hayhouse.com. El Poder Esta Dentro De Ti wasn't found on hayhouse.com.
Worked examples · the rest of the posting
Seven lines from the job, worked through.
Each tab takes one responsibility from the posting and shows how I'd handle it at Hay House. Store facts come from the public storefront on September 16. Traffic and sales figures are samples, and marked that way, until they come from Shopify and GA4.
From the postingOwn e-commerce reporting through Shopify, GA4, and related tools … Monitor emerging channels, including social commerce, AI-referred traffic, and agentic commerce.
Sample numbers · the structure is what I'd sendWeek of Sept 7–13 vs the week before
Sessions and sales by source (GA4)
Orders by sales channel (Shopify)
AI-assistant sessions, last 8 weeks
ChatGPTPerplexity, Copilot, Gemini and others
GA4 setup for AI traffic (real)
Admin → Data display → Channel groups → copy the default group.
Add a channel "AI assistants": Source matches regex (below).
Drag it above Referral, save, and use the new group in reports.
Add a second condition for AI sources with medium "(not set)", because some assistants pass utm_source without utm_medium.
Every line ends with an owner. Orders from AI agents through UCP would show up as their own sales channel in Shopify, which is why I'd track them apart from AI-referred web sessions.
From the postingMonitor emerging channels, including social commerce, AI-referred traffic, and agentic commerce.
Shopify already publishes an agent interface for shop.hayhouse.com. On September 16, /agents.md (mirrored at /llms.txt) and /.well-known/ucp described the store to AI shopping agents through the Universal Commerce Protocol (UCP), version 2026-08-25. What an agent recommends depends on the same product data the findings cover.
How an agent buys from the store (from /agents.md)
GET /.well-known/ucpDiscover the store's capabilities.
search_catalogFind products that match the buyer's request.
create_cartAdd the chosen items.
create_checkoutStart the purchase.
update_checkoutSet the shipping address and method.
complete_checkoutFinish, only after the buyer approves payment.
Profile capabilities: catalog search and lookup, cart, checkout, fulfillment (shipping), discounts and orders. Payment handlers: Shop Pay, Google Pay and cards. MCP endpoint: hayhouse.myshopify.com/api/ucp/mcp.
What an agent finds for "You Can Heal Your Life by Louise Hay"
public data an agent can read · Sept 16shop.hayhouse.com
two products named "You Can Heal Your Life":
$17.99 (paperback) and $19.99 (40th anniversary)
hayhouse.com
the paperback at $14.39
structured data
no ISBN and no author on either page
shipping data
weight 0 g on both
image alt text
"You Can Heal Your Life" (paperback)
"You Can Heal Your Life - image 1" to "- image 9"
An agent has to guess which edition the reader means and may send them to the cheaper site. Clean identifiers, one price and edition names in the title remove the guesswork.
Monthly agent check
The same five prompts in ChatGPT, Perplexity, Copilot and Gemini, logged with the answer, the link and the price quoted:
"Where can I buy the 40th anniversary edition of You Can Heal Your Life?"
"Best oracle decks by Colette Baron-Reid, and where to buy them"
"Books by David R. Hawkins, cheapest new copies"
"A tarot deck for beginners from Hay House"
"Buy Ask and It Is Given and the matching cards"
Readiness checklist
Tick an item when it's fixed to see the score move.
0of 10 ready
From the postingCreate and maintain SOPs and process documentation
Three SOPs I'd write in the first month, each with an owner, a trigger, steps with the system used, and a QA list. Each one fixes a finding at the source, so the problem doesn't come back with the next import.
SOP-01
New title setup, from metadata to live
Owner · Sr. E-Commerce Specialist
Steps
Check the ISBN-13 check digit and confirm no product already uses it. catalog check
Create one product per ISBN. Use the title as published, with the edition in the title when two editions share a name. Pick the format from the controlled list: Paperback, Hardcover, Card Deck, Journal, Calendar, Boxed Set. Products
Fill the metafields: authors (Author entries), subtitle, pages, language, publication date, publisher, BISAC subjects, trim size. Metafields
Set SKU and barcode to the ISBN, enter the price, leave compare-at empty, and enter the weight. Variant
Upload the cover first (at least 1,600 px on the long side), then interior pages, and write alt text for each image. Media
Write the description (sentence case, author bio, contents if available), SEO title and meta description. SEO
Add to topic collections and New Releases; link other editions and formats. Collections
Schedule for the on-sale date and set up pre-order if needed. Status
QA on a phone, run the catalog check and the Rich Results test, and confirm the Google and Meta channels approve the product. QA
At a glance
Trigger
Title metadata approved, 3 weeks before on-sale
Time
20–30 minutes per title
Inputs
Metadata sheet or ONIX record, cover and interior files, jacket copy
Fixes
Findings 02, 03, 04, 05, 06, 07, 10
QA checklist
ISBN unique and valid
Title matches the cover; edition named
Weight above 0; compare-at empty
Cover at least 1,600 px; every image has alt text
Author filter shows the right person once
Feeds approved in Google and Meta
SOP-02
Monday storefront health check
Owner · Sr. E-Commerce Specialist · 45 min
Steps
Run the catalog check on this week's products.json and export the CSV. 10 min
Compare the top 50 sellers' prices with hayhouse.com and log any mismatch. 5 min
Review Merchant Center and Meta catalog diagnostics: disapprovals, price or availability mismatches. 10 min
Check Search Console: indexing changes, top queries, Core Web Vitals. 5 min
In GA4, check channels (including AI assistants), conversion by device, and site searches with no results. 10 min
Spot-check five product pages on a phone: price, stock, images, add to cart, checkout start. 5 min
Write the four-part note and file tickets with owners.
At a glance
Trigger
Every Monday, 9:00 a.m.
Outputs
CSV, weekly note, tickets
Escalate
Checkout errors or site-wide price problems go to the Director and Development the same hour
Fixes
Keeps findings 01, 05, 06, 07 and 11 from coming back
SOP-03
Promotion setup and teardown
Owner · eComm with Marketing
Steps
Get the brief from Marketing: dates and time zone, products or collections, discount type, channels, messaging.
Build an automatic discount or code with start and end dates. Use compare-at only for true markdowns, and save the list of changed variants so they can be reverted. Discounts
Check eligibility, minimums and how the discount combines with others; keep the Shop Pay Installments message ($35 minimum) accurate.
Schedule banners, collection sort and theme changes. Theme editor
Twenty-four hours before: test three baskets, check sale prices in the feeds, and confirm hayhouse.com matches if the promotion runs there too.
At start time: confirm it's live and watch orders hourly on day one.
At end time: let the discount expire, revert compare-at from the saved list, remove banners, recheck feeds.
Report orders, revenue, discount cost and AOV against baseline in the weekly note.
At a glance
Trigger
Approved promotion brief, at least 5 business days out
Rule
No compare-at value without an end date
Fixes
Findings 01 and 06
From the postingPartner with … Development to define requirements, coordinate projects, complete QA, and support production launches.
Two tickets for findings 04, 09 and 10, written the way I'd hand them to Development: the problem with evidence, the scope, acceptance criteria to test against, and a QA plan. The Authors filter reads the metafield custom.authors (it's in the filter URLs). Other metafield keys are marked "confirm" because the storefront doesn't show them.
HH-201 · Story
One author, one filter value: move authors to Author entries
Type Data model and themePriority HighSize M, about one sprintOwner Development, with eComm for data cleanupFixes Finding 04
Problem
Authors are stored as free text, so the same person shows up under several spellings and co-authors sit inside one value. Shoppers who pick one spelling miss the rest of the author's books.
filter.p.m.custom.authors · Sept 16David R. Hawkins, M.D. Ph.D. 5
David R. Hawkins, M.D., Ph.D. 15
Alberto Villoldo: 5 values
Steven D. Farmer: 2 values
Scope
Create an Author metaobject: name, sort name, credentials, bio, photo, website. Turn on web pages for it.
Add a product metafield custom.author_refs, a list of Author references. Keep custom.authors for the byline until launch.
Write a one-time Admin API script: split the text on " and ", " with " and ", with "; move ", Ph.D." and ", M.D." into credentials; match each name to one Author; write the references. Unmatched rows go to an exceptions CSV.
Point the Authors filter in Search & Discovery at the new metafield.
Build the author page template (name as H1, photo, bio, product grid) and link the byline on product pages to it.
Out of scope: how credentials appear in the byline. That stays as it is.
Acceptance criteria
Given the Mind, Body, Spirit collection, when I open the Authors filter, then David R. Hawkins appears once, with 20 products.
Given a deck by Alberto Villoldo and Colette Baron-Reid, when I filter by either author, then the deck is in both results.
Given any author page, then it has exactly one H1 (the author's name), a product grid and a self-referencing canonical URL.
Given the exceptions CSV, then every row is resolved by eComm before launch.
QA plan
Run the script on a duplicate theme first and compare product counts per author before and after. No product may lose an author.
Spot-check 20 co-authored products and the filter on a phone.
Launch in a low-traffic window, then watch filter use and searches with no results for 48 hours.
Rollback: the old text metafield stays until the new filter has run for two weeks.
HH-202 · Task
One H1 per page, and book details in the structured data
Type Theme (Bookraze)Priority HighSize S, two to three days with QAOwner DevelopmentFixes Findings 09 and 10
Problem
Product and collection pages have no H1; the product title is an <h2 class="h2">. The home page H1 is empty. The Product markup has the SKU and brand "Hay House LLC" but no GTIN, ISBN, author, format or page count, although Book Details shows most of them on the page.
Scope
Product page: render the title as <h1>. Keep the quick-add heading as h2.
Collection page: add the collection title as H1. Home page: fill the H1 without changing the design.
Replace the product JSON-LD with the snippet below: Product plus Book for books and journals, Product only for decks and calendars.
Question for Marketing: should the brand read "Hay House" instead of "Hay House LLC" in Google Shopping?
Acceptance criteria
Given any product or collection page, then the HTML has exactly one h1 and it matches the title.
Given /products/you-can-heal-your-life-1, when I run Google's Rich Results Test, then Product is valid with no errors and gtin13 is 9781401976910.
Given a card deck, then the markup is Product only, with gtin13 and no Book fields.
Given the Schema.org validator, then the Book node shows isbn, author, bookFormat, numberOfPages and datePublished.
QA plan
Ten pages on a duplicate theme: five books, three decks, two journals. Rich Results Test and the Schema.org validator on each.
Check the quick-add modal and the cart drawer still show their headings.
Compare the Lighthouse SEO score before and after, then watch Search Console's product snippets report for two weeks.
Snippet (Liquid), for snippets/product-jsonld.liquid
The barcode is stored with hyphens (978-1-4019-7691-0), so the snippet strips them. The author loop uses HH-201's Author entries; until that ships, output custom.authors as one name.
From the postingExperience supporting multiple Shopify storefronts, e-commerce migrations, or a growing multi-site platform.
hayhouse.com still runs its Magento store alongside shop.hayhouse.com, and its old category URLs still open product pages. If those pages move to Shopify or close, each old URL needs a planned destination so rankings, links in old emails and bookmarks land on the same edition. This is the map I'd build, starting with real URLs checked on September 16.
Legacy sitemap4,864
URLs in hayhouse.com's sitemap; 4,802 were last modified in 2019.
Raw Magento IDs233
/catalog/product/view/id/… URLs. The two I checked return 404.
One title19
URLs for You Can Heal Your Life: paperback, gift edition, Spanish, ebook, DVD, course.
Digital only806
ebook (437), audio download (225) and online course (144) URLs. The Shopify store sells print formats only.
Keep Stays where it's sold. Link to it from the Shopify page ("Also in ebook and audio").
Mapping rules
Match on the ISBN from the Magento export, never on the URL text. 1,271 legacy slugs end in -1, -2 and so on, and "ask-and-it-is-given-2" is the deck, not the book.
Every category path for a product (/shop/…, /shop-by-topic/…, /shop/featured/…) goes to the same Shopify page.
Ebooks, audio and courses stay where they're sold today.
One hop only: no chains from old path to root URL to Shopify.
No match means a decision, not a redirect to the home page.
Where the redirects live
While hayhouse.com stays on Magento, the 301s belong on hayhouse.com (Magento URL rewrites or server rules). If store paths ever move to the Shopify domain, they become Shopify URL redirects, imported by CSV. Shopify only applies a redirect when the old path doesn't exist on the store.
Redirect from,Redirect to
/shop/books-ebooks/worthy-paperback,/products/worthy
/shop-by-topic/inspiration/you-can-heal-your-life-paperback,/products/you-can-heal-your-life
/shop/cards-kits-gifts/card-decks/ask-and-it-is-given-2,/products/ask-and-it-is-given-cards
QA before and after launch
Before: crawl every legacy URL and save the status, canonical and ISBN. That crawl is how the Worthy canonical above turned up.
After: crawl again. Each URL must return one 301 to a 200 page with the same ISBN.
Keep the old sitemap submitted in Search Console for a few weeks so Google re-crawls it, and watch the 404 report.
In GA4, list landing pages that end in 404 every week for the first month and fix them.
Tell Customer Service which URLs changed, in case readers call about old links.
Same method I'd use to bring another storefront onto Shopify: inventory, ISBN match, decisions log, redirect import, re-crawl.
From the postingUse approved AI and automation tools, including ChatGPT Enterprise, to improve workflows, merchandising, efficiency, discoverability, and customer experience while maintaining appropriate human oversight.
Image alt text is a good first job for ChatGPT Enterprise. In a sample of 220 product images, 211 had templated alt text ("Title - image 3"), 9 repeated the title, and none described the image. Here's the workflow I'd run, with the human checks built in.
1 · ExportProducts, formats and image URLs from the Admin API, 50 products per batch.
2 · PromptChatGPT Enterprise gets the image plus title, author, format and image position. Nothing else.
3 · ValidateA script checks length, the exact title and author, banned phrases and the JSON shape.
4 · ReviewA person reads every result in the first 50, then 1 in 10. Flagged items always get a review.
5 · ImportApproved text goes back through the Admin API or the bulk editor.
6 · LogPrompt version, reviewer, date, before and after. Any change can be rolled back.
Prompt
You write alt text for product images on shop.hayhouse.com.
Input: one image, plus TITLE, AUTHOR, FORMAT and POSITION.
Rules:
- One sentence, 125 characters or fewer.
- POSITION 1 is the cover: start with "Cover of {TITLE} by {AUTHOR}",
then say what the cover shows.
- Other positions: say what the image shows (an interior page,
sample cards, the box) and its main subject.
- Use TITLE and AUTHOR exactly as given.
- No claims, prices, awards or health benefits.
- Don't start with "Image of" or "Picture of". No emoji, no ALL CAPS.
- If you can't tell what the image shows, return "REVIEW".
Return JSON only: {"alt": "...", "confidence": "high" | "low"}
Validation before a person sees it
1–125 characters, and not just the title.
Cover text contains the exact title and the author as stored.
No "image of", "picture of", prices or outcome claims, unless the words are part of the title.
Valid JSON. "REVIEW" or low confidence goes straight to a person.
Two results, from the 40th anniversary edition
Before
You Can Heal Your Life - image 1
After
Cover of You Can Heal Your Life by Louise Hay, illustrated by Kelly Rae Roberts: a patterned dragonfly on teal watercolor
✓ 121 characters · exact title and author · no claims
Before
You Can Heal Your Life - image 2
After
Page 36 of You Can Heal Your Life: Louise Hay traces self-criticism to one cause, “not loving the self”
✓ 103 characters · says what's on the page
The images are the store's own files. I wrote these two results by hand to show the target; in the workflow they'd come from ChatGPT Enterprise and go through the same checks.
Guardrails
Only product data and public images go in. No customer, order or author contract data.
Nothing goes live without a named reviewer.
Titles, prices and ISBNs are never written by AI; they come from the catalog system.
Measure the reviewer edit rate. If more than 10% of results need edits after week 4, fix the prompt before scaling.
Next jobs for the same workflow
Meta descriptions in sentence case (the You Can Heal Your Life one is in capitals).
First descriptions for the 16 collections, which have none today.
Mapping 5,623 tags to a short controlled list, for a person to approve.
First drafts of SOPs and weekly notes, checked against the source data.
From the postingLead storefront merchandising and conversion rate optimization using customer and performance data to improve product discovery, navigation, promotions, cross-sells, upsells, conversion, and sales.
Many Hay House authors have a book and a deck or journal on the same theme, and the product pages don't connect them. Here are ten pairings from the live catalog, with September 16 prices. Pick an author to see the set.
Where the sets show up
A "Complete the set" block on each product page, filled from the complementary products set in the Search & Discovery app. Dawn-based themes like this one have a block for it.
The same pairing in the cart drawer, one item at most, only when the other item isn't already in the cart.
A "Book and deck sets" collection, linked from Card Decks and from each author page (HH-201).
Optional, with Marketing: a small automatic discount when both items are in the cart.
How I'd measure it
Baseline: four weeks of orders from a Shopify export. Attach rate = orders with both items ÷ orders with either item.
Launch the block on the ten sets first, then extend it to the catalog if it works.
Track block clicks as a GA4 event, plus attach rate, average order value and conversion rate on those product pages.
Read the results after four weeks, or sooner if checkout conversion drops.
Candidates for the next ten come from orders that already contain two titles by the same author.
The first 90 days
What I'd do, in order.
The findings set the order: first the data that every channel reads, then the fixes that need Development, then growth work that depends on both. Each month ends with a short readout to the Director of E-Commerce.
30days
Learn the stores, stop the leaks
Get access, list every storefront, app, feed and integration, and who owns each one.
Agree the price of record with hayhouse.com, merge the duplicate listings, clean the Format filter and add weights.
Start the Monday health check, the weekly report and the AI-assistant channel in GA4.
Write the new-title and promotion SOPs with the people who'll use them.
60days
Fix the data model with Development
HH-201 (Author entries and filter) and HH-202 (H1s and book structured data) through QA and launch.
BISAC codes and subjects into metafields, a controlled tag list, tags off the product page.
Alt text in ChatGPT Enterprise, starting with covers of the top 200 sellers.
Script and app review with Development and Marketing: the pop-up, tag manager and pixels behind a mobile Lighthouse score of 36.
90days
Grow what's working
Book-and-deck sets live and measured, then the first product page tests.
Navigation beyond three menu items, collection descriptions and search synonyms in Search & Discovery.
Monthly AI-agent check and the redirect map, ready for whatever comes next for hayhouse.com.
Quarter review: conversion, feed approvals, AI-referred sessions and catalog-check trend.
Who filed this
Mousa Batarseh.
I've spent seven years running e-commerce storefronts end to end, including more than three years administering Shopify stores. I look for problems before anyone reports them, and I'd like to do that for Hay House.
ShopifyBuilt and ran the Universal Wholesale and United Textile stores side by side (2019–2023): catalogs of 14,000+ SKUs, collections, discounts, seasonal promotion calendars and product data.
MigrationsMoved stores between platforms with the URL structure and redirects planned ahead.
NowWebmaster at Wild Bill's Tobacco (2023–now): the wholesale B2B e-commerce site (catalog, inventory, pricing, descriptions, imagery) and a portfolio of retail sites, with campaign pages built alongside marketing.
ReportingGA4, Search Console and PageSpeed data turned into weekly actions; A/B and conversion tests.
AII work hands-on with ChatGPT and Claude for drafting, data checks and documentation, and I review everything before it ships.
BasicsB.S., Accounting Information Systems. Bilingual in English and Arabic. Based in Warren, Michigan.