ai | dominikatracy.com https://dominikatracy.com Shopify web designer Wed, 30 Sep 2026 14:44:49 +0000 en-US hourly 1 https://wordpress.org/?v=6.7.9 https://dominikatracy.com/wp-content/uploads/2018/09/favicon.png ai | dominikatracy.com https://dominikatracy.com 32 32 Should You Be Doing Anything About GEO for Your UK Shopify Store? Mostly No. Here’s the Bit That’s Yes https://dominikatracy.com/geo-for-uk-shopify-stores/ Mon, 21 Sep 2026 13:41:35 +0000 https://dominikatracy.com/?p=1502720

Short answer: if your store is UK-only, there is nothing called GEO you should be paying for this year, and one afternoon of unglamorous product-data tidying you should absolutely do. If you also sell to the US, there’s a switch worth flipping this week. Everything else being sold under the GEO label right now is either Shopify’s own catalogue doing the work for you, or someone renting a hot word.

I’ll show you how I got to that, because I didn’t want to write another post that explains what generative engine optimisation is and then tells you to hire someone. I asked Google and ChatGPT what to buy and wrote down who they listened to.

The term

What is GEO, in one paragraph?

When someone asks ChatGPT or Google’s AI Mode “what’s the best natural deodorant that actually works”, the engine doesn’t show ten links. It reads a handful of sources, writes an answer, and shows two or three products with a price and a place to buy. GEO is the business of being one of the sources it reads or one of the products it shows. For a service business that means being quotable. For a product brand it means something more specific, and nobody had told me what, so I went and looked.

The test

I asked the AI what to buy. Who did it cite?

On 19 September 2026 I ran six shopping questions a UK customer might actually type through Google’s AI Mode, and two of them again through ChatGPT with web search on. Beauty and home fragrance, because that’s who I work with. I noted every source the answer cited and whether any small brand’s own website was among them.

Query Who got cited Products shown Small brand’s own site cited?
Best mineral powder foundation UK bareMinerals, Lily Lolo, INIKA, Boots bareMinerals, Lily Lolo, INIKA Yes
Best natural deodorant UK that actually works The Guardian, Which?, AKT, Fussy, Reddit, two small blogs AKT, Fussy Yes
Best vitamin C serum under £30 UK The Guardian, Reddit, YouTube CeraVe, Geek & Gorgeous, Naturium, COSRX No
Best scented candle brands UK small business The Guardian, Elle, Liberty, plus five indie candle brands’ own sites Little Karma Co, Evermore Yes, five of them
Best organic skincare brand UK for sensitive skin John Lewis, Green People, YouTube Green People, Pai, Evolve Yes
Best hair oil for curly hair UK Only Curls, The Pure Curls House, Superdrug Only Curls, Curlsmith, Trepadora, Noughty Yes
ChatGPT: best mineral powder foundation UK bareMinerals, The Guardian, Lily Lolo, Jane Iredale Same three, as product cards Yes
ChatGPT: best candle brands UK small business The Independent, Ideal Home, Essence of Harris Essence of Harris, Fais Botanicals, Chelsea Candle Co Yes

Three things jumped out, and the first one surprised me.

Small brands’ own product pages get cited directly. I went in expecting the engines to lean entirely on magazines and Reddit and ignore what a brand says about itself. Wrong. In seven of the eight answers a brand’s own site was a source, and they weren’t all household names: Lily Lolo, Only Curls, Little Karma Co, Fussy, Essence of Harris. Google in particular pulled product pages straight into the answer, with the price, the review count and a “best for” line lifted from the page.

A woman in a pink suit in a 1990s office clasping her hands in delight at what has appeared on her computer screen
The face of a founder discovering her own product page is the source.

The one query where no small brand appeared is the one dominated by giants. Vitamin C serum under £30 is CeraVe and COSRX territory, and the engine went to The Guardian and Reddit to referee. The lesson isn’t “you can’t win”, it’s “pick the question you can win”. Nobody is beating CeraVe for “best vitamin C serum”, but “best mineral powder for rosacea” or “best candle brand that’s a small business” is wide open, and a niche brand with a clear page is exactly what the engine wants there.

Every answer had one national publisher in it. The Guardian appeared five times out of eight. A single mention in one of those tried-and-tested round-ups, or in Which?, seems to do more for you in an AI answer than it ever did for Google rankings, because the engine uses it as the referee that makes your own page believable.

The research method. It cost nothing and took an afternoon.

Real now

What’s real now for every UK store

None of this needs a US market or a budget, and all of it is the same work you’d do if Agentic Storefronts opened in the UK tomorrow.

Make your product pages quotable. Look at what Google lifted: “finely milled 100% natural pigments”, “eco-friendly recyclable paper refills”, “100% plastic-free aluminium tubes”, “suitable for sensitive skin”. Facts, not feelings. Every product page needs a short, plain paragraph that states what it’s made of, who it’s for, what it does and what’s unusual about it, near the top, in words a machine can repeat without embarrassment. Lifestyle copy can live below.

Get into Google Merchant Center. The review counts and price comparisons on those product cards come from merchant listings, not from your page. On Shopify that’s the Google & YouTube channel, free listings on, product data synced. If you haven’t done this, the engine has no clean record of your product to show.

Clean the data that feeds the catalogue. Clear primary category, material and audience fields filled in rather than internal codes, each variant bound to its own image, consistent option names, complete shipping and returns pages. Shopify’s Catalog reads these fields, and so does Google. This is the boring bit, and it’s the whole bit.

Earn one referee. One place in a Guardian or Independent round-up, one honest Reddit thread where a real customer compares you to the big name, one Which? mention. Not a PR campaign. One.

Ask the engines about yourself, monthly. Type your category question into Google AI Mode and ChatGPT, see whether you appear, and if you do, see what they say. If they’re quoting your page, you’ll know which line. If they’re quoting someone else about you, you’ll know what to fix.

US only, for now

What’s real only if you sell to the US

This is the part most of the UK coverage gets wrong, so I’ll be precise. Shopify’s Agentic Storefronts channel puts your catalogue inside ChatGPT, Microsoft Copilot, Gemini and Google’s AI Mode, with in-chat checkout on some of them. Shopify’s own help pages say your store must sell to customers in the United States, but it can be based outside the United States. So a UK store with a US market switched on is eligible; a UK-only store isn’t, yet, and Shopify hasn’t given a date for UK buyers.

If you do ship to the US, the sequence is: agree the supplemental terms when the channel appears under Settings, check the products are Catalog-eligible (subscriptions, bundles and customisable products are excluded from direct checkout), and do the data hygiene above first, because the catalogue record is what the agent reads. There are no fees beyond normal payment processing. If you don’t ship to the US, you lose nothing by doing the hygiene now and flipping the switch the day the email arrives.

Hype

What’s hype

Paying for “GEO services” this year. Nobody, including me, can tell you reliably why one page gets cited and another doesn’t. The test above cost me nothing. Anyone charging a retainer for AI visibility is charging you for a monthly version of it.

The other “agentic storefront”. Search the phrase and the paid result at the top is a company selling an on-site AI shopping assistant, a chatbot that guides people around your own store. It’s a conversion tool, priced for brands doing serious volume, and it has nothing to do with appearing in ChatGPT. Shopify picked a name, a vendor bought the keyword. Before you take the demo call, ask which one they mean.

Rewriting your homepage for robots. The engines cited product pages, publishers and forums. Not one homepage. Your homepage is for humans who already found you.

The engines cited product pages, publishers and forums. Not one homepage.

The decision

Which camp is your store in?

Pre-launch, or under a couple of thousand a month. Do the product page paragraph and Merchant Center as part of setting up properly, then forget the word GEO for a year.

Profitable, UK-only. Do all five things in the “real now” list, this month, yourself. It’s an afternoon plus one email to a journalist. Then check the engines monthly. If you’d rather someone else did the audit, that’s what my Website Botox is: I go through the store and tell you exactly which settings, pages and fields are holding it back, from £300.

Profitable and already shipping to the US. All of the above, plus switch Agentic Storefronts on this week and tell me what happens, because almost nobody in the UK has published what they actually saw.

Thinking about building the store with AI first. Read whether Claude can build a Shopify store before you decide, and note that the product data problem is the same whoever builds it.

The honest verdict

GEO for a UK product brand in 2026 is a product page a machine can quote, a Merchant Center listing, one referee, and a monthly check. That’s it. The rest is either not open to you yet or not worth paying for.

Not sure which camp you’re in?

A free discovery call. No jargon, and if the answer is “do nothing for a year”, I’ll say so.

Book a discovery call

Frequently asked questions

Does GEO replace SEO for a Shopify store?

No. The AI engines in my test cited the same kinds of sources Google has always ranked: your product pages, national publishers, retailers and Reddit. A page that’s well structured for search is most of the way to being quotable by an AI. The difference is emphasis: plain factual product copy and one third-party mention matter more, keyword density matters less.

Can a small UK brand appear in ChatGPT shopping answers?

Yes. In my test ChatGPT showed product cards for Lily Lolo, Essence of Harris, Fais Botanicals and Chelsea Candle Company alongside big names, and cited their own websites. The condition is a clear product page and a category where a giant doesn’t own the answer.

Is Shopify Agentic Storefronts available in the UK?

For UK merchants, yes, provided the store sells to customers in the United States. For UK buyers seeing UK products inside ChatGPT or Gemini, not yet, and Shopify hasn’t announced a date.

What should a product page say to get cited by AI?

What it’s made of, who it’s for, what it does and what makes it different, in one plain paragraph near the top. The lines Google lifted in my test were all of that shape: “100% natural pigments”, “antibacterial”, “plastic-free aluminium tube”, “for sensitive or acne-prone skin”.

Do I need to be on Amazon or Boots to show up?

It helps. Price comparisons and review counts on the product cards come from merchant listings, and a retailer stocking you acts as a referee. But Only Curls, Little Karma Co and Fussy appeared through their own Shopify stores, so it isn’t a requirement.

Want to know which camp you’re in without guessing? Book a discovery call. Free, no jargon, and if the answer is “do nothing for a year”, I’ll say so.

]]>
Should You Hire a Shopify Designer or Just Use Claude? (I’m Biased. Here’s the Maths Anyway) https://dominikatracy.com/hire-a-shopify-designer-or-use-claude/ Fri, 18 Sep 2026 19:48:40 +0000 https://dominikatracy.com/?p=1502716 /* Scoped to .dt-article. The class is doubled on most selectors so these rules
out-specify Divi's own typography (.et_pb_text_inner p and friends), which is
what was flattening the post to 14px Lato. */
.dt-article{
--noir:#0F1820; --red:#FC4C0F; --butter:#FDF1AB; --perry:#C3D9FF;
--green:#DFF8E7; --cream:#FBF9F3; --rule:#E8E2D4;
--display:"Libre Caslon Text",Georgia,"Times New Roman",serif;
}
.dt-article.dt-article{color:var(--noir);font-size:17px;line-height:1.7;}
/* WordPress wpautop leaves empty

tags around block elements. Hide them. */
.dt-article.dt-article p:empty{display:none!important;margin:0!important;}
.dt-article.dt-article p{
margin:0 0 1.15em!important;padding-bottom:0!important;
font-size:17px!important;line-height:1.7!important;color:var(--noir)!important;
}
.dt-article.dt-article a{color:var(--noir);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--red);}
.dt-article.dt-article a:hover{color:var(--red);}
/* ---- headings ---- */
.dt-article.dt-article h2{
font-family:var(--display)!important;font-weight:400!important;
font-size:34px!important;line-height:1.15!important;
margin:2em 0 .6em!important;padding:0!important;color:var(--noir)!important;
}
.dt-article.dt-article h3{
font-family:inherit!important;font-size:15px!important;letter-spacing:.06em;
text-transform:uppercase;font-weight:700!important;line-height:1.4!important;
margin:2em 0 .6em!important;padding:0!important;color:var(--noir)!important;
}
.dt-article.dt-article .dt-eyebrow{
display:block;font-size:11px!important;letter-spacing:.18em;text-transform:uppercase;
color:var(--red)!important;font-weight:700;margin:0 0 .4em!important;line-height:1.4!important;padding:0!important;
}
.dt-article.dt-article > .dt-eyebrow{margin-top:2.6em!important;}
.dt-article.dt-article .dt-eyebrow + h2{margin-top:0!important;}
/* ---- lists with orange dots ---- */
.dt-article.dt-article ul:not(.dt-plain){list-style:none!important;padding:0!important;margin:0 0 1.4em!important;}
.dt-article.dt-article ul:not(.dt-plain) > li{
position:relative;padding:0 0 0 1.6em!important;margin:0 0 .7em!important;
font-size:17px!important;line-height:1.7!important;list-style:none!important;
}
.dt-article.dt-article ul:not(.dt-plain) > li::before{
content:"";position:absolute;left:0;top:.62em;
width:8px;height:8px;border-radius:50%;background:var(--red);
}
.dt-article .dt-lead,.dt-article.dt-article p.dt-lead{font-size:21px!important;line-height:1.55!important;}
/* ---- callout boxes ---- */
.dt-article .dt-box{border-radius:16px;padding:22px 24px;margin:28px 0;}
.dt-article .dt-box > :last-child{margin-bottom:0!important;}
.dt-article .dt-box--answer{background:var(--perry);}
.dt-article .dt-box--note{background:var(--butter);}
.dt-article .dt-box--good{background:var(--green);}
.dt-article .dt-box--outline{background:#fff;border:1.5px solid var(--rule);}
.dt-article .dt-box--warn{background:#fff;border:1.5px solid var(--red);}
/* ---- dark verdict block ---- */
.dt-article.dt-article .dt-verdict{color:var(--cream)!important;}
.dt-article .dt-verdict{background:var(--noir);border-radius:16px;padding:26px 28px;margin:32px 0;}
.dt-article.dt-article .dt-verdict p{color:var(--cream)!important;}
.dt-article.dt-article .dt-verdict .dt-eyebrow{color:var(--butter)!important;}
.dt-article .dt-verdict > :last-child{margin-bottom:0!important;}
.dt-article.dt-article .dt-verdict a{color:var(--butter);text-decoration-color:var(--butter);}
/* ---- pull quote ---- */
.dt-article .dt-pull{
font-family:var(--display);font-size:30px;line-height:1.25;
border-left:4px solid var(--red);padding:6px 0 6px 22px;margin:34px 0;color:var(--noir);
}
.dt-article .dt-pull span{font-style:italic;color:var(--red);}
/* ---- big stat ---- */
.dt-article .dt-stat{text-align:center;margin:36px 0;padding:26px 20px;background:#fff;border:1.5px solid var(--rule);border-radius:16px;}
.dt-article .dt-stat b{display:block;font-family:var(--display);font-size:62px;line-height:1;color:var(--red);font-weight:400;}
.dt-article .dt-stat span{display:block;font-size:15px;color:#5a5a5a;margin-top:10px;}
/* ---- best-for pill ---- */
.dt-article .dt-pill{display:inline-block;background:var(--butter);border-radius:999px;padding:7px 16px;font-size:13px;font-weight:700;margin:0 0 18px;}
/* ---- contents card ---- */
.dt-article .dt-toc{background:#fff;border:1.5px solid var(--rule);border-radius:16px;padding:24px 28px;margin:32px 0;}
.dt-article.dt-article .dt-toc .dt-eyebrow{margin-bottom:.8em!important;}
.dt-article.dt-article .dt-toc ol{list-style:none!important;padding:0!important;margin:0!important;counter-reset:toc;column-count:2;column-gap:32px;}
.dt-article.dt-article .dt-toc li{counter-increment:toc;margin:0 0 .55em!important;padding:0!important;font-size:15px!important;line-height:1.5!important;break-inside:avoid;list-style:none!important;}
.dt-article .dt-toc li::before{content:counter(toc,decimal-leading-zero);color:var(--red);font-weight:700;margin-right:10px;font-size:13px;}
.dt-article.dt-article .dt-toc a{text-decoration:none;}
.dt-article.dt-article .dt-toc a:hover{text-decoration:underline;}
/* ---- numbered steps ---- */
.dt-article.dt-article .dt-steps{list-style:none!important;padding:0!important;margin:24px 0!important;counter-reset:step;}
.dt-article.dt-article .dt-steps li{
counter-increment:step;position:relative;padding:0 0 20px 56px!important;margin:0!important;
border-left:1.5px solid var(--rule);font-size:17px!important;line-height:1.7!important;list-style:none!important;
}
.dt-article.dt-article .dt-steps li::before{
content:counter(step);position:absolute;left:-19px;top:-2px;background:var(--red);
width:36px;height:36px;border-radius:50%;color:#fff;font-size:15px;font-weight:700;
display:flex;align-items:center;justify-content:center;margin:0;
}
.dt-article .dt-steps li:last-child{border-left-color:transparent;padding-bottom:0!important;}
/* ---- table ---- */
.dt-article .dt-tablewrap{overflow-x:auto;margin:28px 0;-webkit-overflow-scrolling:touch;}
.dt-article.dt-article .dt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;min-width:640px;border:0;}
.dt-article.dt-article .dt-table th{
background:var(--noir);color:var(--cream);text-align:left;padding:14px;border:0;
font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;line-height:1.4;
}
.dt-article .dt-table th:first-child{border-radius:12px 0 0 0;}
.dt-article .dt-table th:last-child{border-radius:0 12px 0 0;}
.dt-article.dt-article .dt-table td{padding:14px;border:0;border-bottom:1px solid var(--rule);vertical-align:top;font-size:15px;line-height:1.5;background:#fff;}
.dt-article.dt-article .dt-table tr:nth-child(even) td{background:var(--cream);}
.dt-article.dt-article .dt-table td:first-child{font-weight:600;}
/* ---- FAQ accordion ---- */
.dt-article .dt-faq{border-top:1.5px solid var(--rule);margin:24px 0 0;}
.dt-article .dt-faq details{border-bottom:1.5px solid var(--rule);margin:0;}
.dt-article .dt-faq summary{
list-style:none;cursor:pointer;padding:20px 48px 20px 0;position:relative;
font-size:18px;font-weight:700;line-height:1.35;color:var(--noir);
}
.dt-article .dt-faq summary::-webkit-details-marker{display:none;}
.dt-article .dt-faq summary::after{content:"";position:absolute;right:8px;top:50%;width:18px;height:2.5px;background:var(--red);border-radius:2px;transform:translateY(-50%);}
.dt-article .dt-faq summary::before{content:"";position:absolute;right:8px;top:50%;width:18px;height:2.5px;background:var(--red);border-radius:2px;transform:translateY(-50%) rotate(90deg);transition:transform .18s ease;}
.dt-article .dt-faq details[open] summary::before{transform:translateY(-50%) rotate(0deg);}
.dt-article .dt-faq summary:hover{color:var(--red);}
.dt-article.dt-article .dt-faq details > p{padding:0 40px 20px 0!important;margin:0!important;}
/* ---- daisy divider ---- */
.dt-article .dt-divider{text-align:center;margin:56px 0;}
.dt-article .dt-divider svg{width:34px;height:34px;}
/* ---- offer card ---- */
.dt-article .dt-offer{border-radius:18px;padding:22px;margin:36px 0;background:var(--cream);border:1.5px solid var(--rule);display:flex;gap:22px;align-items:center;flex-wrap:wrap;}
.dt-article .dt-offer img{width:130px;height:130px;object-fit:cover;object-position:top;border-radius:12px;display:block;}
.dt-article .dt-offer-body{flex:1;min-width:230px;}
.dt-article.dt-article .dt-btn{
display:inline-block;background:var(--noir);color:#fff!important;text-decoration:none!important;
font-weight:700;font-size:14px!important;line-height:1.4!important;padding:12px 26px;border-radius:999px;
}
.dt-article.dt-article .dt-btn:hover{background:var(--red);color:#fff!important;}
/* ---- closing CTA ---- */
.dt-article.dt-article .dt-cta{color:#fff!important;}
.dt-article .dt-cta{background:var(--red);border-radius:20px;padding:40px 28px;margin:44px 0;text-align:center;}
.dt-article.dt-article .dt-cta h2{font-family:var(--display)!important;font-size:34px!important;margin:0 0 10px!important;color:#fff!important;}
.dt-article.dt-article .dt-cta p{color:#fff!important;margin:0 0 22px!important;font-size:16px!important;}
.dt-article.dt-article .dt-cta .dt-btn{background:#fff;color:var(--noir)!important;}
.dt-article.dt-article .dt-cta .dt-btn:hover{background:var(--noir);color:#fff!important;}
.dt-article .dt-formwrap{background:#fff;border-radius:14px;padding:22px;margin:0 auto 6px;max-width:460px;text-align:left;}
.dt-article .dt-cta small{display:block;margin-top:16px;font-size:13px;color:#fff;opacity:.85;}
/* ---- figures ---- */
.dt-article figure{margin:32px 0;}
.dt-article figure img{width:100%;height:auto;border-radius:14px;display:block;}
.dt-article figcaption{font-size:13px;color:#7a7a7a;margin-top:10px;text-align:center;font-style:italic;}
.dt-article .dt-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:32px 0;}
.dt-article .dt-compare figure{margin:0;}
.dt-article .dt-compare img{border:1px solid var(--rule);}
/* ---- code ---- */
.dt-article.dt-article pre{background:var(--noir);color:var(--cream);padding:20px;border-radius:14px;overflow-x:auto;font-size:14px;line-height:1.6;margin:22px 0;border:0;}
.dt-article.dt-article :not(pre) > code{background:var(--cream);border:1px solid var(--rule);border-radius:5px;padding:1px 6px;font-size:.88em;color:var(--noir);}
@media (max-width:980px){
.dt-article.dt-article h2{font-size:27px!important;}
.dt-article .dt-pull{font-size:23px;}
.dt-article.dt-article .dt-toc ol{column-count:1;}
.dt-article .dt-compare{grid-template-columns:1fr;}
.dt-article .dt-stat b{font-size:46px;}
.dt-article .dt-offer img{width:100%;height:180px;}
}

Short answer: if you have no budget and a simple product, use Claude with a good theme and don’t hire anyone, including me. If you’re turning a consistent profit and the store is the thing holding you back, hire a designer. And if you’ve already built it with Claude and it looks great but isn’t selling, you don’t need a rebuild, you need someone to find the leak.

That’s the whole post. The rest is the maths behind it, because ‘it depends’ is the answer most designers give and I’d rather you had the actual numbers.

Bias, declared

I’m a Shopify designer, so I have an obvious interest in you picking option two. I also build my own stores with Claude every week and wrote a whole post about whether Claude can build a Shopify store (short version: yes, eventually, after a fight). So I’ve paid for both routes with my own evenings. Let’s do the sums.

Route one and two

What does it actually cost to build a Shopify store with Claude?

On paper, nearly nothing. A Claude subscription, a Shopify plan you were paying for anyway, and a theme. If you buy a premium theme from the Shopify store you’re looking at a one-off £200 to £400. If you go with Dawn, which is free and perfectly good, it’s £0.

The real cost is time, and it splits into two very different amounts depending on which way you go.

Route A: theme plus Claude as your assistant. You buy a theme, and you use Claude to write product descriptions, plan your pages, generate the FAQ, tidy your About page and tell you what’s missing. This is fast. A weekend, maybe two if your product photography isn’t ready. I genuinely recommend this to start-up brands and I’ve said so since May. Nothing in this post changes that.

Route B: Claude builds the actual theme. This is the version Instagram is selling you, where Claude designs the site and pushes the code straight into your store. It works now. It didn’t in May, and it does in September, because you can connect Claude directly to your Shopify theme through GitHub or a code editor.

But it is not a weekend. Getting that connection set up was, in my own words at the time, bloody difficult, and I do this for a living. Then there’s the design itself. Claude’s first draft will be beautiful and it will be wrong in ways you can’t see yet: text that doesn’t scale on mobile, sections with too much air, a product page with no reviews, no trust signals and one photo. You’ll spend evenings training it like an intern on their first day. Realistically that’s 30 to 50 hours for someone reasonably technical, and ‘reasonably technical’ means you don’t flinch at the words ‘command line’.

Founder building a Shopify store with Claude late at night
Route B, in its natural habitat.

Put an honest value on your own time. If your hour is worth £40 to your business, Route B costs £1,200 to £2,000 before you’ve sold anything, plus the weeks it took, plus the risk you built the wrong thing well.

Route three

What does it cost to hire a Shopify designer?

I can only quote my own prices, because the market is anywhere from £500 on a freelancer site to £15,000 at an agency and those two things are not the same product.

My Shopify Face Lift starts at £2,000 and takes 4 to 6 weeks. That’s a fully custom design and build, up to two custom product templates, plugins chosen for speed rather than habit, and the home, category, About, FAQ and blog pages done. Fees split 50% on booking and 50% on completion.

Here’s the part the price list doesn’t say. I use Claude on every one of those builds now. It’s why the things I used to gently talk clients out of, the subscription flow, the custom product labels, the animation that carries the whole brand, are on the table at £2,000 rather than at five figures. You are not choosing between AI and a human. You’re choosing whether the human driving the AI is you, at midnight, or someone who already knows where the potholes are.

What you’re paying for is 15 years of watching what makes people buy or bounce. Claude has read about that. I’ve watched it happen.

The comparison

Claude vs a Shopify designer: the comparison table

Theme + Claude as assistant Claude builds the theme Hire a Shopify designer (Face Lift)
Cash cost £0 to £400 £0 to £400 From £2,000
Your time 10 to 20 hours 30 to 50 hours 3 to 5 hours (questionnaire, call, reviews)
Calendar time A weekend or two 3 to 8 weeks of evenings 4 to 6 weeks
Technical skill needed None GitHub, a code editor, patience None
Design quality Good, template-shaped Excellent, if you can steer it Excellent, custom
Built to convert Only if you know what to ask for Only if you know what to ask for Yes, that’s the job
Who fixes it in six months You, or Claude, or both You, or Claude, or both Client-editable theme, or me
Best for Start-ups, first store, no budget Technical founders who enjoy it Profitable brands ready for the grown-up version

The middle column is the interesting one. It’s the cheapest route to a truly custom store and the most expensive route in evenings. Whether that’s a bargain depends entirely on what your evenings are for.

A shop bell priced from £2,000 next to a retro keyboard labelled evenings: the real cost of a Shopify designer versus Claude
The two currencies. Pick the one you have more of.

The blind spot

What Claude won’t tell you about your store

Claude is a brilliant designer and a terrible shopkeeper.

When I asked it to design a homepage in May, it produced something I’d have been proud to make, in minutes. What it didn’t include, because I hadn’t asked, was any social proof, any trust signals near the add to cart button, or any of the photo types that actually move people from looking to buying. Perfect UX, zero sales instinct. And a founder building their first store would have no way of knowing what was missing, because the page looks finished.

That’s the whole gap. Baymard Institute’s research puts cart abandonment at around 70%, and most of that isn’t price. It’s friction: a checkout with a surprise, a product page that doesn’t answer the one question the buyer had, a mobile layout that hides the button. Claude will build you a store with all of that in it and tell you it’s done.

The trick, if you’re going Route B

In August I stopped letting Claude design my product pages from scratch and gave it a layout of a product page that converts, then asked it to build to that. The difference was night and day. Feed it a framework, not a vibe. But you have to have the framework first, and that’s the thing people are paying for when they hire.

The decision

Which route should you choose?

Three founders, three answers. And a fourth, because it’s the email I get most.

You’re pre-launch or under £2,000 a month in sales. Theme plus Claude. Spend the money on product photography and a couple of months of ads instead. Do not hire me. If someone quotes you £2,000 for a store at this stage, ask them how it’ll pay for itself, and listen carefully to the answer.

You’re profitable, the DIY site is embarrassing you, and you’ve got roughly 40 free hours and a taste for it. Route B is a real option now, and I’d rather you did it well than badly. Read the connection guide, use GitHub so you can roll back, and get a product page framework before you let Claude design a single section.

You’re profitable, the site is the bottleneck, and your evenings are already spoken for by formulations, packaging suppliers and the wholesale enquiry that’s been sitting there four days. Hire a designer. That’s the Face Lift, and if you want to know whether it’s the right package, or whether any package is, that’s exactly what the discovery call is for. No jargon, no hard sell, and I’ll tell you if you’re better off with a theme.

You already built it with Claude. It looks lovely. It isn’t selling. Don’t rebuild. Something specific is leaking and it’s usually three or four settings, not the design. That’s what the Website Botox is: an audit of what you’ve got and small, targeted fixes where they’re needed, from £300, done in 1 to 2 weeks. It’s the cheapest thing on my menu and it’s the one I’d send my own sister to.

The honest verdict

Claude didn’t make Shopify design a DIY job. It moved the ceiling. The custom store that cost five figures last year costs £2,000 now, and the theme-plus-Claude store that costs nothing is better than it’s ever been. The only bad decision is paying for the middle route in evenings you don’t have.

Not sure which route is yours?

A free discovery call. I’ll tell you which package makes sense, if any, and whether you’re better off with a theme. No jargon, no hard sell.

Book a discovery call

Frequently asked questions

Can Claude build a Shopify store on its own?

Yes, as of 2026, if you connect it to your theme through GitHub or a code editor. It will not do it in one click and the first version will need a lot of steering. For a non-technical founder, a good theme plus Claude for the copy is the faster and safer route.

How much does it cost to hire a Shopify designer in the UK?

Anywhere from about £500 for a template customisation on a freelancer site to £15,000 plus at an agency. A custom design and build from an experienced specialist typically sits between £2,000 and £5,000. Mine starts at £2,000 for the Shopify Face Lift and £5,000 for the full Transformation with SEO, analytics and email set up.

Is a custom Shopify theme worth it over a premium theme?

Only once the theme is costing you sales. A premium theme customised well will serve most brands to well past their first £10,000 a month. Custom pays off when you need something the theme can’t do, like subscriptions, a specific product page layout, or a brand that lives in its motion.

Will a designer just use AI anyway?

The good ones will, and you should want them to. AI is why custom work costs a third of what it did two years ago. What you’re paying for is the judgment about what to build, not the typing.

What if I already have a Claude-built store that isn’t converting?

Get it audited before you rebuild. The problem is almost always a handful of settings, missing trust signals or checkout friction, not the design. A conversion audit is a fraction of the cost of starting over.

If you’d rather have someone else do the arguing with Claude, book a discovery call. Free, no pressure, and I’ll tell you honestly which of the three routes above is yours.

]]>
How to Connect Claude to Your Shopify Store: 5 Methods, Honestly Rated https://dominikatracy.com/connect-claude-to-shopify/ Wed, 26 Aug 2026 15:40:21 +0000 https://dominikatracy.com/?p=1502673 /* Scoped to .dt-article. The class is doubled on most selectors so these rules out-specify Divi's own typography (.et_pb_text_inner p and friends), which is what was flattening the post to 14px Lato. */ .dt-article{ --noir:#0F1820; --red:#FC4C0F; --butter:#FDF1AB; --perry:#C3D9FF; --green:#DFF8E7; --cream:#FBF9F3; --rule:#E8E2D4; --display:"Libre Caslon Text",Georgia,"Times New Roman",serif; } .dt-article.dt-article{color:var(--noir);font-size:17px;line-height:1.7;} /* WordPress wpautop leaves empty

tags around block elements. Hide them. */ .dt-article.dt-article p:empty{display:none!important;margin:0!important;} .dt-article.dt-article p{ margin:0 0 1.15em!important;padding-bottom:0!important; font-size:17px!important;line-height:1.7!important;color:var(--noir)!important; } .dt-article.dt-article a{color:var(--noir);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;text-decoration-color:var(--red);} .dt-article.dt-article a:hover{color:var(--red);} /* ---- headings ---- */ .dt-article.dt-article h2{ font-family:var(--display)!important;font-weight:400!important; font-size:34px!important;line-height:1.15!important; margin:2em 0 .6em!important;padding:0!important;color:var(--noir)!important; } .dt-article.dt-article h3{ font-family:inherit!important;font-size:15px!important;letter-spacing:.06em; text-transform:uppercase;font-weight:700!important;line-height:1.4!important; margin:2em 0 .6em!important;padding:0!important;color:var(--noir)!important; } .dt-article.dt-article .dt-eyebrow{ display:block;font-size:11px!important;letter-spacing:.18em;text-transform:uppercase; color:var(--red)!important;font-weight:700;margin:0 0 .4em!important;line-height:1.4!important;padding:0!important; } .dt-article.dt-article > .dt-eyebrow{margin-top:2.6em!important;} .dt-article.dt-article .dt-eyebrow + h2{margin-top:0!important;} /* ---- lists with orange dots ---- */ .dt-article.dt-article ul:not(.dt-plain){list-style:none!important;padding:0!important;margin:0 0 1.4em!important;} .dt-article.dt-article ul:not(.dt-plain) > li{ position:relative;padding:0 0 0 1.6em!important;margin:0 0 .7em!important; font-size:17px!important;line-height:1.7!important;list-style:none!important; } .dt-article.dt-article ul:not(.dt-plain) > li::before{ content:"";position:absolute;left:0;top:.62em; width:8px;height:8px;border-radius:50%;background:var(--red); } .dt-article .dt-lead,.dt-article.dt-article p.dt-lead{font-size:21px!important;line-height:1.55!important;} /* ---- callout boxes ---- */ .dt-article .dt-box{border-radius:16px;padding:22px 24px;margin:28px 0;} .dt-article .dt-box > :last-child{margin-bottom:0!important;} .dt-article .dt-box--answer{background:var(--perry);} .dt-article .dt-box--note{background:var(--butter);} .dt-article .dt-box--good{background:var(--green);} .dt-article .dt-box--outline{background:#fff;border:1.5px solid var(--rule);} .dt-article .dt-box--warn{background:#fff;border:1.5px solid var(--red);} /* ---- dark verdict block ---- */ .dt-article.dt-article .dt-verdict{color:var(--cream)!important;} .dt-article .dt-verdict{background:var(--noir);border-radius:16px;padding:26px 28px;margin:32px 0;} .dt-article.dt-article .dt-verdict p{color:var(--cream)!important;} .dt-article.dt-article .dt-verdict .dt-eyebrow{color:var(--butter)!important;} .dt-article .dt-verdict > :last-child{margin-bottom:0!important;} .dt-article.dt-article .dt-verdict a{color:var(--butter);text-decoration-color:var(--butter);} /* ---- pull quote ---- */ .dt-article .dt-pull{ font-family:var(--display);font-size:30px;line-height:1.25; border-left:4px solid var(--red);padding:6px 0 6px 22px;margin:34px 0;color:var(--noir); } .dt-article .dt-pull span{font-style:italic;color:var(--red);} /* ---- big stat ---- */ .dt-article .dt-stat{text-align:center;margin:36px 0;padding:26px 20px;background:#fff;border:1.5px solid var(--rule);border-radius:16px;} .dt-article .dt-stat b{display:block;font-family:var(--display);font-size:62px;line-height:1;color:var(--red);font-weight:400;} .dt-article .dt-stat span{display:block;font-size:15px;color:#5a5a5a;margin-top:10px;} /* ---- best-for pill ---- */ .dt-article .dt-pill{display:inline-block;background:var(--butter);border-radius:999px;padding:7px 16px;font-size:13px;font-weight:700;margin:0 0 18px;} /* ---- contents card ---- */ .dt-article .dt-toc{background:#fff;border:1.5px solid var(--rule);border-radius:16px;padding:24px 28px;margin:32px 0;} .dt-article.dt-article .dt-toc .dt-eyebrow{margin-bottom:.8em!important;} .dt-article.dt-article .dt-toc ol{list-style:none!important;padding:0!important;margin:0!important;counter-reset:toc;column-count:2;column-gap:32px;} .dt-article.dt-article .dt-toc li{counter-increment:toc;margin:0 0 .55em!important;padding:0!important;font-size:15px!important;line-height:1.5!important;break-inside:avoid;list-style:none!important;} .dt-article .dt-toc li::before{content:counter(toc,decimal-leading-zero);color:var(--red);font-weight:700;margin-right:10px;font-size:13px;} .dt-article.dt-article .dt-toc a{text-decoration:none;} .dt-article.dt-article .dt-toc a:hover{text-decoration:underline;} /* ---- numbered steps ---- */ .dt-article.dt-article .dt-steps{list-style:none!important;padding:0!important;margin:24px 0!important;counter-reset:step;} .dt-article.dt-article .dt-steps li{ counter-increment:step;position:relative;padding:0 0 20px 56px!important;margin:0!important; border-left:1.5px solid var(--rule);font-size:17px!important;line-height:1.7!important;list-style:none!important; } .dt-article.dt-article .dt-steps li::before{ content:counter(step);position:absolute;left:-19px;top:-2px;background:var(--red); width:36px;height:36px;border-radius:50%;color:#fff;font-size:15px;font-weight:700; display:flex;align-items:center;justify-content:center;margin:0; } .dt-article .dt-steps li:last-child{border-left-color:transparent;padding-bottom:0!important;} /* ---- table ---- */ .dt-article .dt-tablewrap{overflow-x:auto;margin:28px 0;-webkit-overflow-scrolling:touch;} .dt-article.dt-article .dt-table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;min-width:640px;border:0;} .dt-article.dt-article .dt-table th{ background:var(--noir);color:var(--cream);text-align:left;padding:14px;border:0; font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;line-height:1.4; } .dt-article .dt-table th:first-child{border-radius:12px 0 0 0;} .dt-article .dt-table th:last-child{border-radius:0 12px 0 0;} .dt-article.dt-article .dt-table td{padding:14px;border:0;border-bottom:1px solid var(--rule);vertical-align:top;font-size:15px;line-height:1.5;background:#fff;} .dt-article.dt-article .dt-table tr:nth-child(even) td{background:var(--cream);} .dt-article.dt-article .dt-table td:first-child{font-weight:600;} /* ---- FAQ accordion ---- */ .dt-article .dt-faq{border-top:1.5px solid var(--rule);margin:24px 0 0;} .dt-article .dt-faq details{border-bottom:1.5px solid var(--rule);margin:0;} .dt-article .dt-faq summary{ list-style:none;cursor:pointer;padding:20px 48px 20px 0;position:relative; font-size:18px;font-weight:700;line-height:1.35;color:var(--noir); } .dt-article .dt-faq summary::-webkit-details-marker{display:none;} .dt-article .dt-faq summary::after{content:"";position:absolute;right:8px;top:50%;width:18px;height:2.5px;background:var(--red);border-radius:2px;transform:translateY(-50%);} .dt-article .dt-faq summary::before{content:"";position:absolute;right:8px;top:50%;width:18px;height:2.5px;background:var(--red);border-radius:2px;transform:translateY(-50%) rotate(90deg);transition:transform .18s ease;} .dt-article .dt-faq details[open] summary::before{transform:translateY(-50%) rotate(0deg);} .dt-article .dt-faq summary:hover{color:var(--red);} .dt-article.dt-article .dt-faq details > p{padding:0 40px 20px 0!important;margin:0!important;} /* ---- daisy divider ---- */ .dt-article .dt-divider{text-align:center;margin:56px 0;} .dt-article .dt-divider svg{width:34px;height:34px;} /* ---- offer card ---- */ .dt-article .dt-offer{border-radius:18px;padding:22px;margin:36px 0;background:var(--cream);border:1.5px solid var(--rule);display:flex;gap:22px;align-items:center;flex-wrap:wrap;} .dt-article .dt-offer img{width:130px;height:130px;object-fit:cover;object-position:top;border-radius:12px;display:block;} .dt-article .dt-offer-body{flex:1;min-width:230px;} .dt-article.dt-article .dt-btn{ display:inline-block;background:var(--noir);color:#fff!important;text-decoration:none!important; font-weight:700;font-size:14px!important;line-height:1.4!important;padding:12px 26px;border-radius:999px; } .dt-article.dt-article .dt-btn:hover{background:var(--red);color:#fff!important;} /* ---- closing CTA ---- */ .dt-article.dt-article .dt-cta{color:#fff!important;} .dt-article .dt-cta{background:var(--red);border-radius:20px;padding:40px 28px;margin:44px 0;text-align:center;} .dt-article.dt-article .dt-cta h2{font-family:var(--display)!important;font-size:34px!important;margin:0 0 10px!important;color:#fff!important;} .dt-article.dt-article .dt-cta p{color:#fff!important;margin:0 0 22px!important;font-size:16px!important;} .dt-article.dt-article .dt-cta .dt-btn{background:#fff;color:var(--noir)!important;} .dt-article.dt-article .dt-cta .dt-btn:hover{background:var(--noir);color:#fff!important;} .dt-article .dt-formwrap{background:#fff;border-radius:14px;padding:22px;margin:0 auto 6px;max-width:460px;text-align:left;} .dt-article .dt-cta small{display:block;margin-top:16px;font-size:13px;color:#fff;opacity:.85;} /* ---- figures ---- */ .dt-article figure{margin:32px 0;} .dt-article figure img{width:100%;height:auto;border-radius:14px;display:block;} .dt-article figcaption{font-size:13px;color:#7a7a7a;margin-top:10px;text-align:center;font-style:italic;} .dt-article .dt-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:32px 0;} .dt-article .dt-compare figure{margin:0;} .dt-article .dt-compare img{border:1px solid var(--rule);} /* ---- code ---- */ .dt-article.dt-article pre{background:var(--noir);color:var(--cream);padding:20px;border-radius:14px;overflow-x:auto;font-size:14px;line-height:1.6;margin:22px 0;border:0;} .dt-article.dt-article :not(pre) > code{background:var(--cream);border:1px solid var(--rule);border-radius:5px;padding:1px 6px;font-size:.88em;color:var(--noir);} @media (max-width:980px){ .dt-article.dt-article h2{font-size:27px!important;} .dt-article .dt-pull{font-size:23px;} .dt-article.dt-article .dt-toc ol{column-count:1;} .dt-article .dt-compare{grid-template-columns:1fr;} .dt-article .dt-stat b{font-size:46px;} .dt-article .dt-offer img{width:100%;height:180px;} }

There are five ways to connect Claude to your Shopify store, and they have almost nothing to do with each other. Here is the short answer before anything else.

The two minute version

To connect Claude to your Shopify store, open Claude, go to Settings then Connectors, find Shopify, and authorise it with read-only access. That takes about two minutes and gives you a Claude that can answer questions about your live orders, products, inventory and sales.

What it will not do is touch your theme. Not a single line. For that you need a completely different setup involving the Shopify CLI, a GitHub repository and an afternoon of your life.

Both get called “connecting Claude to Shopify” and the gap between them is roughly the gap between a bicycle and a forklift.

I have used four of the five methods on real client stores. Below is what each one actually does, what it costs you in setup time, and which one you should pick, including the fairly large group of people whose correct answer is “none of them, go and do something else”.

I am a Shopify designer, so I have an obvious interest in telling you this is all too hard for you and you should hire me. I am going to try not to do that. Two of these methods genuinely take under five minutes and most brand owners should turn them on today.

The short version

Which method should I use?

If you just want the answer and not the reasoning:

What you actually want Method Setup Cost Changes your store?
Ask about sales, orders and products in plain English Shopify connector in Claude 2 minutes Free Yes, with write access
Quick admin help without leaving Shopify Sidekick None, already there Included Some things
Build or edit your theme properly Claude Code, Shopify CLI and GitHub An afternoon Claude plan plus free tooling Yes, everything
Accurate Liquid and GraphQL, no invented filters Shopify AI Toolkit 5 minutes Free Only with store auth
Store management without touching a terminal Third-party MCP app 10 minutes Usually monthly Yes

If you read nothing else: turn on the Shopify connector today, and stop trying to build your theme by pasting Liquid out of a chat window. That second one is what I did for months and it was, in hindsight, daft. I wrote about how badly that went in Claude Shopify: can AI really build a good website?

Some context

Why are there five methods and not one?

Shopify and Anthropic have been building towards the same thing from opposite ends, and they met in the middle in a slightly untidy way.

Shopify wanted its merchants to have an assistant, so it built Sidekick into the admin, which at the time of writing runs on Claude under the bonnet. Shopify also wanted developers to stop shipping broken Liquid, so it published a documentation server that any AI tool can read from. Anthropic, meanwhile, wanted Claude to talk to the software people already use, so it built a connectors directory with Shopify in it.

And then a whole ecosystem of third-party apps appeared to fill the gaps, because that is what always happens.

So you end up with five doors into the same building. They are all labelled “Claude” and “Shopify” and none of them tell you which room you will end up in. Below, the rooms.

Method 01

How do I connect Claude to my Shopify store directly?

Best for: almost every brand owner

This is the official Shopify integration inside Claude itself. You authorise it once, and after that you can open a normal Claude conversation and ask things like “which products had the worst sell-through in the last 60 days” and get an answer from your live store data rather than a polite guess.

Step by step

  1. Open Claude, either the web app or the desktop app. Not the phone one if you can help it, because the authorisation flow is nicer on a big screen.
  2. Go to Settings, then Connectors.
  3. Find Shopify and click to add it.
  4. You will be bounced to Shopify to log in and approve access. Read this screen. Genuinely read it. It is the only point in the process where you get to decide what Claude is allowed to do.
  5. Choose read-only for now. I will explain why in a moment.
  6. Pick the store you want to connect. It is one store at a time, so if you run three you will be switching.

That is it. It is free to turn on. You are not paying Shopify anything extra for it, though what data you can reach still depends on your Shopify plan.

What it can actually do

Reading is where it shines. Orders, products, inventory levels, customers, discount codes, analytics. You can ask it to summarise a month, compare two periods, find the customers who have ordered three times and never used a discount, or work out which collection is quietly carrying the whole store.

With write access granted it can also update products, adjust inventory quantities and create discount codes. This is useful and it is also the bit where you want to be a grown-up about permissions.

What it cannot do

It only exists inside a conversation. Nothing is watching your store. It will not tell you when stock runs low, it will not flag a weird order at 3am, and it will not run every Monday morning unless you sit down and ask it to. If you close the tab, nothing is happening. People get this wrong constantly and then wonder why their “AI store monitoring” never alerted them to anything.

It also cannot touch your theme. If you ask it to make your product page look better it will give you advice, which is not the same as a product page that looks better.

Start read-only. Here is why

“Update the price on this product” and “update the price on all products” are one badly worded sentence apart, and there is no undo button on a live store.

Give it two weeks of read-only. Ask it fifty questions. Watch how it interprets things. When you have caught it misreading a request once or twice, and you will, you will have a much better instinct for what to trust it with. Then widen the permissions if you want to.

One more rule that is not in anyone’s official documentation: do not grant write access during a sale, a launch, or the run-up to Christmas. Not because it is likely to go wrong, but because that is the fortnight where you have the least attention available to notice if it does.

Method 02

What is Shopify Sidekick and do I need to connect it?

Best for: small jobs you are already in the admin for

You do not need to connect anything. Sidekick is Shopify’s own assistant, already sitting in your admin, available across plans. It is built on Claude, which is why it keeps turning up in articles about connecting Claude to Shopify despite not being a connection at all.

It is good at the things it is good at: pulling up a report you cannot remember the name of, drafting product descriptions, making a discount, adjusting a few theme settings, answering “how do I do X in Shopify” without you opening a support doc.

It is less good the moment a task crosses more than one part of the admin, or needs it to hold a lot of context about your specific store. Its write capabilities are real but conservative, which for something with a direct line into a live shop is the correct design decision even when it is annoying.

The honest verdict

Sidekick is a convenience feature, not a workflow. Use it, do not plan around it. If your question is “why is this not converting”, Sidekick will not be the thing that tells you.

Method 03

What is the Shopify AI Toolkit?

Best for: anyone writing Liquid, GraphQL or app code

This is the one most merchants have never heard of and most developers should be using.

Shopify publishes an open-source toolkit that gives an AI tool direct access to Shopify’s real documentation, its GraphQL schemas, and a validator that checks generated code against them. It grew out of the Dev MCP server Shopify shipped at the end of 2025, and it works with Claude Code, Cursor, VS Code and a few others.

The problem it solves is specific and enormous. Without it, an AI writing Liquid will occasionally invent a filter that does not exist. It writes something that looks completely plausible, ships, and then silently renders nothing on mobile. With the toolkit connected, the model reads Shopify’s actual schema instead of remembering it.

Setting it up in Claude Code

The plugin route is the one to use, because it updates itself when Shopify ships new capabilities:

/plugin marketplace add Shopify/shopify-ai-toolkit
/plugin install shopify-plugin@shopify-ai-toolkit

Documentation lookups and code validation work with no store connection at all. Nothing to authorise, no token, no risk. If you want it to run operations against a live store you will authenticate through the Shopify CLI, which sends you through a normal approval in your admin.

While you are there, Shopify also publishes a separate Liquid plugin for Claude Code that teaches it theme conventions, CSS and JS standards, and accessibility patterns for ecommerce components:

/plugin marketplace add Shopify/liquid-skills
/plugin install liquid-skills@liquid-skills

The accessibility one is worth having even if you think you know what you are doing. I thought I knew what I was doing.

One caveat

Validation sends code to Shopify’s servers to be checked. If you are working on something proprietary, a client’s custom app or unreleased work, set OPT_OUT_INSTRUMENTATION=true in your environment before you start.

One thing it is not: a way to run your shop. It is a developer tool. “Put everything in the sale collection up by 10%” is not what this is for.

Method 04

Can Claude actually edit my Shopify theme?

Best for: building and editing themes properly

Yes, but not through any of the methods above. To let Claude properly edit a theme, it needs to work on the theme files themselves. That means Claude Code, the Shopify CLI, and ideally GitHub sitting in the middle. This is the one that changed how I work.

Everything above is Claude talking about your store. This is Claude working inside it.

What I was doing before, and why it was silly

For months my process was: describe a section to Claude, get Liquid back in the chat window, copy it, open the Shopify code editor, paste it into a new section file, save, preview, spot the problem, go back to the chat, explain the problem, get a new version, copy, paste, save, preview.

It worked. I built a genuinely nice animated homepage that way and kept full control over the details. But it felt like training an intern on their first day, and it took roughly as long as building the thing from scratch would have.

The reason it was slow is obvious in hindsight. Claude could not see the theme. Every request started from nothing. It did not know what my snippets were called, what my design tokens were, what the section above did, or which of my sixteen colour variables I had actually used.

I was the integration. And I am much slower than a computer.

The setup that fixed it

Put the whole theme on your machine, in a git repository, with Claude Code able to read all of it. I found this route via a YouTube video by Brendan Gillen. Here is the plain-English version, because this is not that kind of blog and the exact commands move around every few months.

  1. Install the Shopify CLI. One command, npm install -g @shopify/cli, and it is a prerequisite for everything below.
  2. Pull your live theme down with shopify theme pull. You now have the whole thing, sections, snippets, templates, config and locales, as folders you can actually see.
  3. Put it in a private git repository and commit it before you let anything near it. This is not optional. It is the step that means every mistake from here is a thirty-second revert instead of a bad afternoon.
  4. Connect that repository to Shopify. Shopify’s GitHub integration lets you attach a branch to a theme, and it syncs. This is what turns “Claude wrote some code” into “the change is in my store”.
  5. Open Claude Code in the theme folder so it can read the whole structure.
  6. Install the toolkit and Liquid plugins from method 3, so it is writing against real schemas.
  7. Write a CLAUDE.md file in the root of the repo. More on this below, because it is the single highest-value thing in the setup.

Then you type things like “read sections/main-product.liquid, create a new section that does the same thing but with the gallery on the right and sticky on scroll, keep all the existing schema settings” and it does it, in the actual files, and you preview it locally with shopify theme dev.

Was it hard?

It was bloody difficult, and I say that as someone comfortable with code. The first afternoon was mostly error messages. But it is a one-off cost. Once it is set up, the whole thing runs in plain language.

10×
Not “a bit faster” than copying and pasting. An order of magnitude.

GitHub also gives you something the theme editor never has: every version of the site, forever, with the ability to go back to any of them. I have stopped duplicating themes and naming them things like LIVE - do not touch - v4 FINAL. That alone was worth the afternoon.

Claude is only as good as what you feed it

This is the thing I would tell you if we only had two minutes.

I spent a while asking Claude to design things and being underwhelmed. Then I stopped doing that. Instead of asking it to design a product page, I gave it the layout of the perfect product page and asked it to build that using the existing theme’s design language. The difference between those two outputs is not subtle. The first is a competent template. The second was the first time I have been able to build a Shopify page exactly the way I wanted it, down to the last pixel.

Shopify product page before customisation, using the standard product template
Out of the box, using the standard product template.
Shopify product page after customisation, built with Claude Code from a supplied layout
Built from my layout. Now we are talking.

CLAUDE.md is where you make that permanent. It is a plain text file in the root of your repo that Claude reads automatically, and it should be short, a hundred lines or so rather than five hundred. Mine covers:

  • The stack. Which base theme, how CSS is organised, which conventions I am using.
  • Naming rules. How sections are named, which metafield namespaces exist, whether strings need to go through the translation files.
  • The commands. How to run the dev server, how to lint, how to push.
  • A file map. What is in each folder and what the prefixes mean.
  • Guardrails. Never push to the live theme. Never delete a theme. Always specify metafield types.

The two failures I hit most often

An agent quietly stripping schema settings out of a section, which wipes whatever the client had customised in the theme editor. And misreading a metafield type, so a rich text field renders as escaped HTML on the live page.

Both are entirely preventable by writing them down once.

The Perfect Homepage Builder template by Dominika Tracy

Free template

The Perfect Homepage Builder

Speaking of giving Claude a good layout to work from. This is the homepage structure I use on client builds, section by section, free to take.

Get the template →

The rules I now work by

  • Scope by section, never by epic. “Convert this theme into a custom build” produces sludge. “Read this file, make this specific change, preserve the schema” produces a diff I can review in fifteen seconds.
  • Push to an unpublished theme. shopify theme push --unpublished creates a duplicate. Look at it. Then publish.
  • Run shopify theme check and require zero errors before anything is considered done. This one rule prevents a whole category of broken storefront.
  • Read the diff. Fifteen seconds of looking at what changed catches nearly everything. Not reading it is how people end up with stories about AI destroying their site.

What this made possible

The reason I care about all of this is not speed. It is that I can now build a store exactly the way I want it and then hand it over to a client to run themselves without any trouble.

That combination did not exist before. Previously I could either custom-code something and make it unusable for anyone without a computer science degree, or work inside a template and accept its limits. Now the theme editor still works for the client, every section is properly configurable, and the design is not compromised. If you want the design side of that argument, I have written separately about how to make your Shopify site look expensive.

The bit your accountant will like

It also means fewer apps. Subscriptions, product labels, custom badges, the sort of thing you would normally bolt on at £15 a month each. Most of it can be built into the theme now. For a store running six or seven apps that is a few hundred pounds a year back, plus the page speed, which is the bit that actually shows up in your conversion rate.

Method 05

Should I use a third-party MCP app?

Best for: people who will never open a terminal

There are apps in the Shopify App Store that act as a bridge between your store and Claude. You install the app, approve the permissions, connect it in Claude, and you get a set of tools for managing products, orders, customers and inventory conversationally. There are also open-source community servers that do the same thing if you are happy configuring them yourself.

The pitch is real: more tools than the official connector, and no code. Four things to check before you install one:

  • What permissions is it asking for, and does it need all of them? An app that wants write access to customers in order to help you edit product titles is asking for more than the job requires.
  • Where does your store data go? You are routing your orders and customers through a third party. Read the privacy policy. I know. Read it anyway.
  • Is there a confirmation step before writes? There is no dry run on a live Shopify store. Every change is real the moment it fires.
  • Who maintains it? Shopify’s API changes constantly. A server that has not been updated in eight months is a liability, not a tool.

If the official connector covers what you need, and for most brand owners it does, start there instead. Fewer parties, fewer permissions, fewer things to go wrong.

The limits

What can Claude still not do with my Shopify store?

Worth saying plainly, because a lot of writing on this subject is quietly optimistic.

  • It cannot watch anything. No connector here monitors your store, fires on low stock, or emails you about a fraud flag. Every one of these methods requires you to start a conversation. If you want automation, that is Shopify Flow’s job.
  • It cannot fix a business problem that is not a website problem. If the product is not right, or nobody knows you exist, a better product page changes nothing. I would rather say that now than take your money for a rebuild.
  • It cannot make design decisions for you. It will produce something competent from a vague brief and something excellent from a precise one. The judgment is still yours, which is either reassuring or annoying depending on why you are reading this.
  • It does not know your store’s history. It does not know that the previous developer left a custom snippet half your collection pages depend on, or that the founder hates the colour green. That is what CLAUDE.md is for.
  • It will do exactly what you asked. Including when what you asked and what you meant were different. That is the entire risk profile of write access in one sentence.

Decide

So which one should you actually use?

You run a store and want to understand your numbers better. The Shopify connector, read-only, today. Two minutes, and the highest return on effort of anything in this article.

You want to tidy up products, descriptions and discounts. The connector with write access, once you have had a fortnight of read-only. Sidekick for anything you are already in the admin for.

You want to change how your store looks. Method 4, or a designer. There is no shortcut here, and anyone selling you one is selling you a template with extra steps.

You are a developer or a technical founder. The toolkit, Claude Code and a CLAUDE.md. The setup afternoon pays for itself in about a week.

You are a brand owner without a technical bone in your body. The connector, Sidekick, and then go and do your job. Which brings me to the awkward question.

The awkward question

Did I just talk myself out of a job?

Theoretically yes, if my clients decide to spend their evenings learning Claude Code, the command line and GitHub. It is all learnable. Nothing in method 4 requires a degree.

But most of my clients are busy with product formulations, packaging suppliers, sales tax, the wholesale enquiry that has been sitting unanswered for four days, and a customer who wants to know whether the candle is vegan. They do not want to learn git. Nor should they have to.

What actually changed

Not that Shopify design became a DIY job. The ceiling moved. The things I used to gently talk clients out of, the custom subscription flow, the animation that carries the whole brand, the product labels that would otherwise mean another app and another £200 a year, are all on the table now at a budget that did not reach them two years ago.

So if you have been told something is not possible on Shopify without a developer, an app, or a five-figure budget, it is worth asking again. The answer is probably different this year.

And I will repeat the advice I gave before all of this: a start-up brand with no budget for a designer is still better off buying a good template and customising it. That has not changed and I do not expect it to.

Answers

Frequently asked questions

Is the Shopify connector for Claude free?

Yes. Turning it on costs nothing. You need a Claude account and a Shopify store. What data you can reach still depends on your Shopify plan.

Can Claude edit my Shopify theme?

Not through the connector or Sidekick in any meaningful way. To let Claude properly edit a theme it needs to work on the theme files directly, which means Claude Code with the Shopify CLI, ideally with GitHub in the middle. That is method 4 above.

Is it safe to give Claude write access to my store?

It is as safe as your permissions and your habits. Start read-only, grant the narrowest scope that does the job, work on unpublished themes, and keep your theme in version control. The real risk is not malice, it is a request you phrased more broadly than you meant.

Can Claude connect to more than one Shopify store?

The official connector authorises one store at a time, so if you manage several you will be switching between them. Method 4 has no such limit, because each theme is just a different folder on your computer.

What is the difference between Sidekick and connecting Claude?

Sidekick lives inside your Shopify admin and is limited to what Shopify has taught it to do there. The Claude connector lives in Claude, where you have your full conversation history, your files, your other tools and your own prompting. Different rooms, same underlying model.

Do I need to know how to code?

For methods 1, 2 and 5, no. For method 3, a bit. For method 4 you do not need to write code, but you do need to be comfortable with a terminal, a git repository and the occasional error message that means nothing to you. If the phrase “command line” makes you want to lie down, methods 1 and 2 are still very much worth your time.

Will connecting Claude break my Shopify store?

Not on read-only. On write access it can, in the same way you can. The difference between people who have a good experience and people who write angry posts about it is almost entirely whether they set up version control before they started.

Where to go next

If you want the unglamorous version of all this, I wrote up my first attempt at building a Shopify store with Claude before I found the setup above, including the bits that did not work and the point where I nearly gave up. It is a useful counterweight to the tidy version you have just read: Claude Shopify: can AI really build a good website?


]]>
Claude Shopify: Can AI Really Build a Good Website? https://dominikatracy.com/claude-shopify/ Tue, 12 May 2026 12:12:22 +0000 https://dominikatracy.com/?p=1502415

I built this amazing Shopify website from scratch using nothing but Claude

And it was… a massive waste of time.

 

Claude Shopify website design

Update, August 2026: I wrote this in May and concluded that building a Shopify site with Claude was a massive waste of time. Three months later, I’ve changed my mind because AI has already moved on and fixed the biggest problem with this setup. The original post is below exactly as it was, and the new bit picks up under What I got wrong and you can skip directly to it. 

Over the last few weeks I’ve been seeing posts all over Instagram about how AI is making web designers redundant and how you can get Claude to redesign your Shopify store in minutes and launch it with one click. Which to me sound rather worrying because I happen to be a web designer myself.

So I thought I’d test Claude out and see if it is coming for my job any time soon and also to check how fast I can build an online store for my would-be cosmetic brand with this tool.

Like most web designers, I of course rely quite heavily on AI to make my job easier and faster so I’m not opposed to the idea of Claude helping the process even further. But I wanted to test it for myself first.

I set out with a goal of building a beautiful, animated website which would be fully integrated with the Shopify backend. The design process itself was actually brilliant, as the homepage mockup created by Claude in minutes was high quality, matched my spec perfectly and would normally take me hours to design. So far so good.

claude website mockup

Interestingly, although very pretty and perfect from the point of UX, the design wasn’t optimised for sales and didn’t include elements which could drive potential sales, like including social proof, trust signals, or different types of photos. This is something I’m able to spot and correct as a professional web designer but the average brand owner who is just trying to build their first Shopify store and save some money on web design, I’m sure I’d just follow the advice of AI who I’d assume knows more than me.

Claude develops my Shopify website

The next hurdle is the issue of moving my design into my Shopify test store somehow. By Claude’s own admission, there isn’t a ‘one click solution’ available, you need to get the code created by Claude and copy and paste it bit by bit into the Shopify backend. And it’s not a straightforward process of grabbing the whole page design and putting it on the website.

The first choice is whether to have Claude create the code from scratch or use the free Dawn theme as the foundations to put everything on (which is strongly recommended).

The next step is to update the liquid code created by Claude section by section, like the CSS stylesheet, page sections or the main liquid file. Claude will provide instructions on how to do that but, unless you’re quite familiar with the Shopify backend and editing code, it’s neither straightforward nor fast!

Shopify backend

Where things go wrong

The next part is where is where the whole concept of designing with AI falls apart for me. The code created by Claude is far from ‘plug in and play’. You upload it to your website and only then discover that it leaves too much empty space or that the font size is not screen responsive. From there, the process feels a lot like training an intern on their first day to perform the most basic tasks in your job. The dialogue goes something like this:

Me: Claude, this text is barely readable, can you increase text by about 30%

Claude: Do you want to increase just the headers or all text?

Me: If you make the headers bigger but leave the body the same, it will look off. You have to increase everything.

Claude: Okay, here’s the new code for you to paste into every single section we spent the last 3 hours creating.

Ugh.

Then, you need to take your AI intern by the hand and create the elements you know are missing from his design entirely. In all fairness, Claude does a great job predicting your design needs, intuitively making new sections which perfectly fit the rest of the design. It even added animations here and there because I indicated I want the website to be interactive, without me having to prompt that expressly.

The result, as you can see, is a beautiful website which makes me want to purchase this product doesn’t even exist. Was it quick and easy? Not one bit. If I were a Shopify brand owner, I would be much better served getting a premium (or even a free theme) from the Shopify store and customise it to my brand. If your vision isn’t super specific yet or aren’t too fussed about particular details you’d want on the website, you can achieve a functioning Shopify store like this in just a few hours.

shopify website created by Claude

As a web designer, I won’t be losing sleep worrying about Claude replacing me any time soon. But I will be using it in my own design process going forward!

What I got wrong

That was May. I’ve spent a good chunk of the summer since then researching how AI actually gets used in ecommerce, and I now think the post above is half right. 

The half that’s right: everything about the output. Claude’s designs still aren’t optimised for selling unless you tell them to be, and a brand owner with no budget is still better off buying a good theme and customising it. I’ll stand behind both of those for a while yet.

The part where I need to now revise is the implementation. Back in May there wasn’t yet a tool allowing Claude to interact with the code in Shopify directly, meaning copying and pasting it manually into Liquid was the only way. But AI moves fast and now I found a better way.

The correct setup – and a big improvement on my previous method of creating code section by section in Claude and then pasting it into Shopify’s Liquid – came to me from a YouTube video by Brendan Gillen. I’m not going to bore you with the technical details because this is not that type of blog but it requires connecting your store to Claude either using GitHub or Visual Studio. Neither one of these methods is doable if you’ve ever described yourself as ‘non-technical’. 

For my Claude Shopify integration I chose Git Hub because it also offers a nice backup plan for if anything was to go wrong and I could easily bring back any version of the site I’d choose. It was bloody difficult but once set up, I can, using plain language, tell Claude what to do and it pushes all the edits directly into my store. 

My other discovery is Claude is only as good as the data you feed it to begin with. So, rather than letting it design a product page, I gave it a layout of the perfect product page and asked it to use the existing design to make it happen. Here’s the product page ‘out of the box’, using the product template vs using my framework:

Before

(customised Shopify template)

product page out of the box

After

(built with Claude using my framework)

product page, designed by Claude in Shopify

now we’re talking. 

What this actually makes possible

For the first time, I can build a Shopify store exactly the way I want it, down to the last pixel, and then hand it over to a client to run themselves without any trouble.

That combination didn’t exist before. Previously I could either custom-code something and make it unusable for anyone without a computer science degree, or work inside a template and accept its limits. Now the theme editor still works perfectly for the client, every section is properly configurable, and the design isn’t compromised.

It also means far fewer apps. Subscriptions, product labels, custom badges, the sort of thing you’d normally bolt on at £15 a month each. Most of that can be built into the theme now. For a store running six or seven apps that’s a few hundred pounds a year back, plus the page speed, which is the bit that actually shows up in your conversion rate.

So did I just talk myself out of a job?

Theoretically yes, if my clients decide to spend their evenings learning Claude Code, the command line and GitHub. It’s all learnable. Nothing in the setup above requires a degree.

But most of my clients are busy with product formulations, packaging suppliers, sales tax, the wholesale enquiry that’s been sitting unanswered for four days, and a customer who wants to know whether the candle is vegan. They don’t want to learn git. Nor should they have to.

The updated verdict

I said in May that I wouldn’t be losing sleep over Claude replacing me. That’s still true, but for a completely different reason than I thought at the time.

What’s changed isn’t that Shopify design became a DIY job. It’s that the ceiling moved. The things I used to gently talk clients out of, the custom subscription flow, the animation that carries the whole brand, the product labels that would otherwise mean another app, are all on the table now at a budget that didn’t reach them last year.

So if you’ve been told something isn’t possible on Shopify without a developer, an app, or a five-figure budget, it’s worth asking again. The answer is probably different this year.

And the advice I gave in May still stands, unchanged: if you’re a start-up brand with no budget for a designer, buy a good theme and customise it. That hasn’t moved at all.

If you want the setup detail I’ve skipped over here, including every method of connecting Claude to a Shopify store and which one is worth your afternoon, I’ve written that up separately: How to connect Claude to your Shopify store.

]]>