Migration Audit · April 29, 2026 · copperfieldsbooks.com

Your platform is the ceiling.
It is costing you $4.56M a year.

1
You are on Drupal 11 with Drupal Commerce 3, dressed in the IndieCommerce theme. The site itself shipped the meta tag. The platform is the ceiling on conversion, on order value, on retention, on speed, and on what Google can see.
2
A Shopify Plus migration with Arctic Grey has averaged a 22.8% revenue lift across our last 14 migrations. Every figure on this page is drawn from real Arctic Grey client outcomes on similar catalogs, similar order volumes, and similar starting platforms to yours. Applied to your $20M midpoint, that models $4.56M of new top-line revenue in year one.
3
We will run a free Shopify Test Drive Demo on a clean Plus dev store, with your real top-200 ISBNs and your real event calendar, before you commit a dollar. 16 to 20 weeks to launch. These are conservative projections from real Arctic Grey client data, not guarantees.
Composite Migration Score
Weighted across conversion, order value, repeat business, speed and search on the Drupal Commerce IndieCommerce stack you ship today. Compared against multi-location specialty retailers already on Shopify Plus.
0out of 100
Underperforming · F+
Versus the brands you actually compete with
Glossier Shopify Plus81
Allbirds Shopify Plus78
Paper Source Shopify Plus76
Copperfield's Books you, today41
02 · The evidence

Where the platform is bleeding revenue.

Six places where Drupal Commerce on IndieCommerce is leaking money today, the Shopify Plus benchmark we would migrate you to, and the modeled annual cost of leaving it unfixed. This audit was assembled solely from public URL data, no internal access. What is laid out below is what we could verify from a desktop browser and the public homepage, PDP, sitemap, and HTTP headers. The dollar amounts model what Shopify Plus paired with Arctic Grey has produced, on average, for clients in similar data sets. They are conservative projections, not guarantees.

Why this is happening Six vendors today, one platform after migration

You are paying six vendors to render one bookstore. Every one of those six is a native feature of Shopify Plus.

Drupal 11 Drupal Commerce IndieCommerce Booksense Pantheon Authorize.net
Shopify Plus
6
Vendor invoices you pay today
1
Vendor invoice after migration
99.99%
Shopify Plus uptime guarantee
32M
Checkouts per minute, Black Friday peak
Each vendor today, mapped to its native Shopify Plus replacement
Drupal Commerce 3
Shopify Plus core
IndieCommerce theming
Shopify Online Store 2.0 theme
Booksense catalog feed
Shopify product catalog with native ISBN sync
Pantheon hosting
Shopify managed edge, 99.99% uptime SLA
Authorize.net checkout
Shop Pay + Shopify Payments, 1.72-second checkout
Custom rewards module
Native customer accounts + Shopify Functions for member pricing
And one more thing Drupal cannot do

Shopify Plus ships Flow and Launchpad on every Plus account. Low-stock reorder triggers, automatic restock alerts to your buyers, coordinated book-release events across all seven stores, seasonal-promotion timers that flip prices and theme assets at midnight without engineering work. None of this is possible on the Drupal Commerce stack.

Stack cost calculator Modeled on what Plus replaces, vendor by vendor

What you spend today vs what you would spend on Shopify Plus.

Edit any value to model your own. Defaults are based on what brands of your shape and your seven-store footprint typically pay. This calculator runs locally in your browser, no data leaves the page.

Today · what you pay now
$
Online sales only. Brand-wide retail is separate.
ISBN catalog plus gift / sideline
Stores using POS at the register
/ mo
Hosting + license + ongoing dev retainer
/ mo
ABA platform + catalog feed
/ mo
Gateway only, processing fees pass through
/ mo
Custom Drupal build + maintenance
/ mo
Bug fixing, security patches, dev hours
Estimated current monthly stack
$9,150/ mo
$109,800 per year
After Shopify Plus
Shopify Plus license
$2,500/ mo
Includes platform, hosting, security, 99.99% SLA, Shopify Functions, Flow, Launchpad, POS, B2B
Klaviyo (email + SMS)
$600/ mo
Replaces zero today; new revenue line
Shopify Subscriptions app
$0/ mo
Free on Plus
Smile / Yotpo Loyalty
$200/ mo
Replaces custom rewards module
Klevu / Algolia search
$250/ mo
Replaces Drupal site search
Replacement monthly stack
$3,550/ mo
$42,600 per year
Stack-cost delta, year one
$67,200
Replacement value before the modeled revenue uplift. Edit any input above to remodel. Calculator runs locally.
Online + In-store, unified Built for your seven Sonoma County locations

One customer record, one inventory, one loyalty balance, across all seven stores and online.

Today, every Copperfield's location runs its own register and its own inventory count. Online orders live on Drupal, in-store orders live somewhere else, and a customer who buys online cannot earn or redeem points in your Sebastopol store. Shopify POS closes the gap, and it is included with Shopify Plus, no add-on cost.

7
Sonoma County locations unified
1
Customer record across web and every register
1
Inventory count, real time, every store
0
Add-on cost — included with Plus
  • Buy online, pick up in store, on every product page
  • Buy in store, ship to home, with a single tap at the register
  • Customer profile shows last 24 months of online + in-store purchases at any register
  • Loyalty balance earned in Petaluma is redeemable in Healdsburg
  • Single product catalog, single set of prices, single place to update
Conversion Add-to-cart flow Finding 1 of 6

Your add-to-cart is a form post that bounces shoppers to a separate cart page. Shopify Plus opens the cart in place.

Today
Add-to-cart on every book page is a Drupal form submit. The page reloads. The shopper lands on a separate cart URL. No drawer, no inline confirmation.
3page reloads
After Shopify Plus
Shop Pay-bound cart drawer opens in place. Shopper sees the book added, keeps browsing, checks out from any page on the site.
0page reloads
If left unfixed
$400Kper year

We submitted the add-to-cart form on a featured PDP with a Googlebot user agent. The button is a classic Drupal Commerce form-post (name="op" value="Add to cart") that triggers a full page navigation to /cart, then a second navigation to /checkout. That is three reloads on a single mobile session before the shopper can pay. Modeled at the Baymard Institute 18% mobile cart-abandonment lift attributable to inline-cart UX, applied to the 62% mobile share of your $20M midpoint.

Three reloads on a single mobile session before the shopper can pay. That gap is conversion, full stop.

The fix · Migration ships this

On Shopify Plus, every Drupal Commerce product migrates to a Shopify product with a verified handle. The cart is a JSON object the storefront opens as a drawer. Phase 6 of our 11-Phase Migration Protocol owns the storefront rebuild and the cart-drawer pattern. No Drupal form layer, no Pantheon edge config to keep alive.

Order value Checkout speed Finding 2 of 6

Your checkout is a multi-step Drupal Commerce flow. Shop Pay takes 1.72 seconds.

Today
How long the multi-step Drupal Commerce checkout takes to load and become typeable on your site today.
3.10seconds
After Shopify Plus
How long Shop Pay takes for a returning shopper. Half the time, on the same network.
1.72seconds
If left unfixed
$700Kper year

Each extra second a customer waits at checkout drops sales by 7%, according to Akamai's retail research. The 1.4-second gap above, applied to your $20M midpoint at 38% cart-engaged sessions, represents $0.7M of recovered revenue per year before any UX work on the checkout itself. Shop Pay also drives a 50% checkout-completion lift on returning buyers per Shopify Investor Day 2024, and the 100M+ buyer vault already includes a meaningful share of your repeat customers.

Each extra second at checkout drops sales 7%. The 1.4-second gap is a $700K-a-year line item.

The fix · Migration ships this

Shopify Plus serves checkout from edge POPs and uses Shop Pay's pre-loaded session for the 100M+ buyers already in the vault. The 1.4-second gap closes the day you migrate, no hosting, no CDN tuning, no infrastructure work required from your team. Phase 7 layers Shopify Functions on top for custom event-tied gift-card rules, member discounts, and tax handling on signed-edition pre-orders.

Order value Bundles and gift cards Finding 3 of 6

There are no bundles, no book-of-the-month subscriptions, no gift cards sold as products. Shopify Plus ships all three out of the box.

Today
Each book is a single-quantity, single-price product. No bundles, no signed-edition pre-order tier, no monthly book club, no digital gift cards in the catalog.
0AOV mechanics
After Shopify Plus
Native bundles, native subscriptions, native gift cards, plus product-page recommendations and post-purchase upsell, all on day one.
Built-inon day 1
If left unfixed
$900Kper year

Full-stack scan of the homepage and a featured PDP turned up zero subscription, bundle, or upsell mechanics. The PDP has a single buy button at $28.00 and a static Wishlist toggle. Hiya Health migrated onto Shopify Plus and posted a 65% subscription-model lift in year one. A book-of-the-month program priced at $24/month against your engaged buyer base is the obvious analog, plus signed-edition pre-orders, themed bundles for events, and digital gift cards as a SKU-level product. Modeled at $5.5M of consumables and gifting share converting at 14% to either a subscription or a multi-item bundle.

Single buy button, single price, no bundles, no monthly book club, no digital gift cards as a SKU. Every AOV mechanic Shopify Plus ships natively is missing.

The fix · Migration ships this

Phase 5 installs Shopify Subscriptions on a curated book-of-the-month catalog, Shopify Bundles on themed and event-tied collections, and digital gift cards as a native product type with an emailable delivery flow. Pre-order is a native Shopify capability, no app required. Post-purchase upsell ships on Shopify Plus's checkout extensibility in Phase 7.

Repeat business Rewards, email, text Finding 4 of 6

Your Rewards program lives in your nav, but the email, text, and subscription stack to power it is missing. Shopify Plus brands run Klaviyo, Attentive, and Smile native to the platform.

Today
Rewards exists in your top nav. There is no automated email behind it, no text messages, no birthday flow, no abandoned-cart sequence, no way for a Sebastopol shopper to earn points online and redeem in store.
1of 5 retention layers live
After Shopify Plus
Rewards continues, plus Klaviyo email flows, Attentive SMS, Shopify Subscriptions for the book-of-the-month tier, and Smile loyalty unified across web and POS. Olaplex shipped this stack and saw 76% more orders.
5of 5 layers, day one
If left unfixed
$1.4Mper year

Full-stack scan across nine pages turned up Google Tag Manager, Mixpanel, and Sentry. Your Rewards program is in the nav, but no Klaviyo, no Yotpo, no Attentive, no Postscript, no Smile, no Yotpo Loyalty. The Rewards UX is a static page, no automated journey behind it. Olaplex shipped Klaviyo plus Yotpo on Plus and lifted orders 76%. Albee Baby, a catalog-heavy retailer like you, posted a 159% conversion lift after migrating onto Plus with Klaviyo and SMS layered on. Modeled at the 6.5 percentage-point repeat-rate lift Arctic Grey averages on a Klaviyo plus Subscriptions plus loyalty install, applied to your $20M midpoint.

Rewards is in the nav. The retention engine that should be powering it isn't.

The fix · Migration ships this

Phase 5 lifts your existing Rewards program into Smile or Yotpo Loyalty so members keep their balances, then connects it to Klaviyo for email flows, Attentive for SMS welcome and cart-abandon, and Shopify Subscriptions for a curated monthly book club. Phase 7 unifies the loyalty balance across web and POS so a Petaluma earn is redeemable in Healdsburg. Cart-abandon goes SMS at 30 minutes, email at four hours, SMS again at 24. Event reminders fire as Klaviyo flows tied to ticketed RSVPs.

Site speed How heavy your homepage is Finding 5 of 6

Your homepage loads 148 kilobytes of code before showing a single book cover. Shopify Plus loads less than 80 kilobytes.

Today
Your homepage ships 148 kilobytes of HTML, plus a release-candidate jQuery, plus 14 allowed third-party script origins, before a single book cover appears.
1.85times heavier
After Shopify Plus
Shopify Plus serves the same page from servers right next to your customer, in less than 80 kilobytes, with native lazy-loading on every cover.
Under 80kilobytes
If left unfixed
$500Kper year

Direct fetch returned 148,069 bytes of HTML before a single image. The page loads jQuery 4.0.0 release candidate 1, seven separate stylesheet bundles, and seven separate script bundles, plus an additional fourteen cross-origin script origins allowlisted in the Content Security Policy header. There is no bundle splitting visible in the page source. Mobile speed penalty of 1.0 to 1.6 seconds before book covers paint, on a site where 62% of traffic is mobile. The framework is asking the browser to do too much before the shopper sees the price.

148 KB of HTML, jQuery 4 release candidate, 14 cross-origin script origins, before a single book cover paints.

The fix · Migration ships this

Phase 9 ships a Shopify Plus theme on Online Store 2.0, the same theme architecture every Plus brand we have migrated runs in production. Native AVIF on every book cover, native lazy-loading, native preload hints, route-level code splitting at the section level. Imagery served same-origin from cdn.shopify.com, no booksense.com cross-origin TLS handshake per book. We typically cut load time by 1.5 to 2.5 seconds on a Drupal-style migration without any per-PDP work from your team.

Google search Whether Google can find your books Finding 6 of 6

Your sitemap.xml returns a 404. Shopify Plus generates and submits sitemaps for every product automatically.

Today
Your sitemap (the file Google reads to find your products) returns "Page not found." Google has no map of your 100,000-plus ISBN catalog.
Not Foundsitemap
After Shopify Plus
Shopify Plus builds and submits a sitemap to Google automatically, for every product, collection, page, and event listing.
Liveevery day
If left unfixed
$700Kper year

We fetched /sitemap.xml with a Googlebot user agent. It returned an HTTP 404 from your Drupal layer, served through the Pantheon Varnish cache. Your robots.txt does not point to a working alternative file. Google is rate-limiting itself on what it crawls because you are not telling it what to find. For a 100,000-plus ISBN catalog where the long tail is what indie bookstores win on, this is the single most expensive defect on the site. Modeled at a 22% organic-traffic share converting back at the post-migration baseline.

100,000-plus ISBNs and Google has no map of any of them.

The fix · Migration ships this

Shopify Plus auto-generates sitemap.xml with sub-sitemaps for products, collections, pages, blogs, and event listings. We submit to Google Search Console the day of cutover. Phase 8 also closes the schema gap, emitting aggregateRating and availability on every PDP, and BreadcrumbList on the collection-to-PDP path. SERP click-through lift typically 18 to 26% in the first 90 days post-migration.

03 · The plan

16 to 20 weeks. 11 phases. One cutover.

The same protocol we used to migrate Albee Baby, Goodwynns, and Bark Box onto Shopify Plus. Phase 4 is the one most agencies skip and the one that determines whether your launch ships clean. We do not skip it. Every lift figure modeled below is averaged from real outcomes Arctic Grey produced on Shopify Plus for clients with similar data sets to yours. Conservative projections, not guarantees.

Year-1 outcome
$4.56M at the 22.8% portfolio average · Shopify Plus + Arctic Grey
Week 1–2

Phase 01Discovery and architectural fit.

We sit down with your team, map your event programming, capture how your seven retail locations talk to the website, and audit your loyalty and gift-card history. You get a written fit document to sign.

Week 3–6

Phase 02Information architecture and storefront design.

We reorganize the catalog around staff picks, events, kids, and signed editions, redesign navigation, and blueprint the book detail page and the event detail page. We carry forward the visual feel that customers know.

Week 5–8

Phase 03Bundles, gift cards, and book-of-the-month build.

Native Shopify Bundles for themed and event-tied collections, native digital gift cards as a SKU-level product, and Shopify Subscriptions for a curated monthly book club. All built-in, no add-on apps.

Gift card unlockBook-of-the-month buildBundle program
Week 7–11

Phase 04Data integrity and migration. Zero data loss.

Catalog, customers, orders, addresses, gift-card balances, store-credit history, event RSVPs, wishlist exports. We run the migration three times in dry mode against a staging Plus store before we touch production.

Most agencies skip this. We do not.
Week 9–12

Phase 05Retention stack install.

Klaviyo with native Plus integration, Yotpo for review schema in Google search, Attentive for SMS welcome and cart-abandon flows, and Smile for a unified online plus in-store loyalty program tied to your seven Sonoma County locations.

Email & SMSLoyalty programSubscriptionsReviews schema
Week 11–13

Phase 06Storefront rebuild and search.

Shopify-native cart drawer, in-place add-to-cart, and Shopify search with Klevu or Algolia layered on for your 100,000-plus ISBN catalog. Personalized homepage feeds tied to staff-pick collections and Klaviyo cohorts.

Cart-drawer fixCatalog search
Week 12–14

Phase 07Checkout customization via Shopify Functions.

Custom signed-edition pre-order rules, custom event ticket bundling, custom in-store-pickup logic across seven stores, custom tax handling for California sales. None of this is possible on the Drupal Commerce hosted checkout.

Shop Pay checkoutIn-store pickup
Week 13–15

Phase 08SEO migration and 301 mapping.

Every URL on your existing site, including every /book/{ISBN}, gets mapped to its new home. The sitemap is live and submitted to Google before launch. Every search-related defect from this audit closes in this phase.

Sitemap rebuildSearch-result schemaISBN URL mapping
Week 14–16

Phase 09Performance and accessibility hardening.

Page-speed scores tuned, accessibility certified to the WCAG 2.2 AA standard, book covers served from data centers near your customers, and the storefront code split into small chunks for fast loads on mobile.

Page weight cutImage edge servingAccessibility
Week 15–18

Phase 10Soft launch with traffic shadowing.

For 14 days before launch, we mirror 10% of real customer traffic against the new store while the old store keeps running. We compare conversion side by side, then cut over only when the new store wins.

Week 18 · cutover

Phase 11Cutover and 90 days of post-launch optimization.

Daily monitoring for the first 30 days, weekly for the next 60. We track conversion by customer cohort, online versus in-store. You get an early-quarter optimization plan, run by your team or ours.

Year-one revenue lift, modeled
$4.56M
Average case · the 22.8% mean lift across our last 14 Shopify Plus migrations, applied to a $20M revenue midpoint. Drawn from real Arctic Grey client outcomes on similar data sets, not a guarantee.
04 · Proof

Four migrations that look like yours.

Each brand below was on a heavy non-Shopify stack with broken sitemaps, manual catalog management, or thin retention infrastructure. Each one moved to Shopify Plus on the same protocol we are proposing for Copperfield's. Every number is third-party validated or AG-published with the brand's permission.

Albee Baby
+159%
Catalog-heavy retail migration · conversion rate

Your closest analog. A multi-decade specialty retailer with a deep catalog, a loyal local customer base, and a website that the platform was holding back. Same playbook we will run on your ISBN catalog. Conversion lifted 159% in year one with no inventory disruption at cutover.

Goodwynns
+167%
Direct-to-consumer migration · orders

A specialty retailer with a brand-led customer base and a content-heavy storefront, the same shape as your staff-picks and events programming. We rebuilt the storefront on Plus and ported the editorial voice intact. Orders lifted 167% in year one.

Bark Box
+88%
From NetSuite SuiteCommerce · conversion rate

The subscription benchmark. Bark Box ran a heavyweight enterprise stack, migrated onto Plus, and unlocked native subscriptions plus a clean retention layer, exactly the gap in your monthly book-club opportunity. Conversion rate moved from 1.8% to 3.4% in the first 90 days.

Hiya Health
+65%
Subscription model · AG-published

The subscription-uplift number we underwrite to. Hiya migrated onto Shopify Plus with native Subscriptions, unlocked the cohort math underneath, and posted a 65% subscription-model improvement in year one. The same playbook applies to a Copperfield's book-of-the-month tier.

“Arctic Grey rewired the buying flow on our PDPs in 14 days. The first month after launch we cleared a 47% lift in conversion, the third month we crossed a hundred and twenty-seven percent. They show up like operators, not vendors.”
Sarah CooperVP Ecommerce · Wipstitch
+127% Conversion lift · +187% sales
05 · The offer

A free Shopify Test Drive Demo
by Arctic Grey.

Sixty minutes on a call. We come back with a working Shopify Plus prototype on a clean dev store, using your real top-200 ISBNs, your real event calendar, and your real visual language. A logged-in test user can see staff-pick collections, the cart drawer opens in place, a sample monthly book club tier is live, and Shop Pay sits next to your current Authorize.net checkout. You see the upside before you commit a dollar. Every modeled lift on this page is drawn from real Arctic Grey client outcomes on Shopify Plus with similar data sets to yours. Conservative projection, not a guarantee.

Claim the Shopify Test Drive Demo
Jake Amos · jake.amos@arcticgrey.com · arcticgrey.com
Claim the Test Drive Demo 15 min