Stack: Next.js + Shopify Storefront API + hosted checkout. Below is every concern raised during scoping. Click each row to expand details, then mark reviewed / blocked so we can track decisions.
Headless storefronts redirect users from Next.js → Shopify-hosted checkout via the checkoutUrl returned by Storefront API. On Basic / Shopify / Advanced plans this checkout cannot be replaced with custom React — only branded.
#949584) on buttons / linkscheckout.housenine.co.ukShopify ships "New Customer Accounts" — a hosted UI for login, profile, order history, addresses. It has the same theming limits as checkout: brand colors + fonts only, no layout control.
| Option | Effort | Brand fit | Notes |
|---|---|---|---|
| Shopify-hosted | None | Medium | Brand colors + fonts. Off-layout, but functional. |
| Custom in Next.js | +5–10 days | Perfect | Use Customer Account API for auth, orders, addresses. |
You can build the entire login UI in your Next.js app — no redirect to Shopify, no off-brand pages.
customerAccessTokenCreate — login, returns access tokencustomerCreate — registrationcustomerRecover / customerReset — password reset flowcustomer(customerAccessToken:) — fetch profile, addresses, orderscustomerUpdate — edit profileStore the token in an httpOnly cookie. User stays on your domain the whole time.
The design has heavy editorial sections (split heroes, three-up panels, feature banners, marquee press strip, editorial features). Shopify Pages = plain rich-text editor, which can't model these structured layouts. The content team will struggle.
| Option | Cost | Authoring UX | Notes |
|---|---|---|---|
| Shopify Metaobjects | Free | OK | Native to Shopify. Strict schemas. Authors stay in one tool. |
| Sanity | Free → paid | Excellent | Best block editor. Adds a 2nd CMS for non-product content. |
| Contentful | $300+/mo | Good | Enterprise-ready. Probably overkill here. |
| Hardcoded MDX | Free | Dev-only | Fast to ship, no client edit. Only viable if content rarely changes. |
The Shopify "Trade" page exists, but the design doesn't specify the mechanism. Trade users typically need: (a) approval workflow, (b) discounted prices visible only after login, (c) sometimes net-30 terms.
Built-in catalogues, price lists, company accounts, payment terms. Cleaner but only worth it if trade is a meaningful revenue stream.
Themed Shopify stores rely on apps that inject Liquid snippets. In a headless Next.js store, those apps either need a Storefront/Admin API, or won't work at all.
| Category | Headless-friendly options |
|---|---|
| Email / SMS marketing | Klaviyo ✓ (full API) |
| Reviews | Judge.me ✓, Yotpo ✓, Okendo ✓ |
| Search / filters | Algolia ✓, Searchspring ✓, Shopify Search & Discovery ✓ |
| Loyalty / rewards | Smile.io ✓, LoyaltyLion ✓ |
| Upsell / cross-sell | Most require Liquid — check per-app |
| Analytics / pixels | GA4, Meta, TikTok ✓ via Next |
| Currency / geo | Shopify Markets native ✓ |
Shop.shopPolicies query. Recommended for legal pages.Vintage pieces are qty = 1. Once sold, the SKU stays in the catalogue. Need a clear "Sold" state matching the editorial aesthetic — and decide whether sold items stay visible (good for SEO/social) or are hidden.
Shopify's Search & Discovery API is free, supports keyword search, basic filters, predictive suggestions, and product recommendations. Works fine for small-to-medium catalogues.
| Feature | Available on Basic? |
|---|---|
| Storefront API (Next.js reads products/cart) | ✓ Yes — free on all plans |
Cart creation + checkoutUrl redirect | ✓ Yes — built-in |
| Hosted checkout page | ✓ Yes |
| Basic checkout branding (logo, colors, fonts) | ✓ Yes |
| Custom checkout domain | ✓ Yes |
| Full checkout UI customisation | ✗ Plus only |
| Native B2B | ✗ Plus only |