Quick answer
Shopify feels hard to customise because three different walls look identical from the theme editor: the setting exists but lives elsewhere in the admin, the theme does not expose it, or the platform genuinely does not allow it.
Most "impossible" requests are the middle one, and the fix is an ordinary theme section. Real platform limits cluster around checkout on non-Plus plans. Diagnose by searching the admin for the setting, checking whether the theme has anywhere to put it, and asking whether it happens after checkout begins.
The frustration is real and the diagnosis is usually wrong. "Shopify will not let me" collapses three very different situations into one sentence: the theme editor does not expose the setting, the theme cannot do it at all, or the platform genuinely will not allow it. Telling them apart takes minutes and saves weeks.

01 · Settings
The setting exists, somewhere else.
The commonest wall is not a wall. Shopify splits settings across places that feel unrelated: theme editor, theme settings, Settings, Markets, Content, Navigation, and the app that owns the feature. Shipping rules are not in the theme. Currency display is in Markets. The product page's sold-out text may be in a translation file rather than a setting.
Before you assume the platform is fighting you, search the setting by name in the admin search bar, then check the theme's own documentation. A surprising share of "impossible" requests are two clicks away in a place nobody thinks to look.
02 · The theme
The theme cannot, but a theme could.
This is the real wall, and it is the one worth crossing. The theme editor only exposes what the theme author chose to expose. If the product page has no place for a size guide, that is the theme's decision, not Shopify's.
The fix is a section or block, and it is ordinary work. Everything unusual on the client stores we build sits here: a flavour switcher, a stockist map, a per-item colour picker, a sample-set builder, an A–Z maker directory. None of it required leaving Shopify; all of it required someone to write the section the theme did not ship.
The tell is the phrasing. "There is nowhere to put it" is wall two. So is "the app added it but it looks wrong", because app blocks land wherever the theme allows and the theme allowed the wrong place.
03 · The platform
The platform genuinely will not.
Some limits are real, and knowing them saves you from paying someone to discover them. Checkout is the big one: on anything below Shopify Plus it is not freely editable, and that is deliberate. Shopify owns the conversion and security surface of checkout, and hands you defined extension points rather than the file.
Other genuine limits: variant option counts, the way discounts combine, what a theme app extension may inject, and how far cart behaviour can deviate before you are fighting the platform rather than using it.
When you hit a real one, the honest options are to change the requirement, use the supported extension point, or move the logic into a custom app. Sometimes the right answer is a custom app: we built a routing app for a client precisely because the requirement did not belong in a theme.
04 · Method
Ten minutes to know which wall.
- Say what you want in one sentence, in customer terms, not interface terms.
- Search the admin for the noun in that sentence. If a setting appears, it was wall one.
- Open the theme editor on the template in question and look for a section or block that could hold it. If a similar thing exists elsewhere in the theme, it is wall two and buildable.
- Ask whether it happens after the customer clicks checkout. If yes, assume wall three until proven otherwise.
- If it is wall two, ask what it would take as a section. That is a quotable question with a bounded answer.
05 · Perspective
The limits are the product.
Shopify's constraints are why stores on it stay up during a traffic spike, why checkout keeps converting, and why a platform update does not break your store on a Tuesday. Every open-source alternative that removes the constraints hands you the maintenance in exchange.
That does not make an individual limit any less annoying. It does mean the productive question is never "why is Shopify like this", but "which wall is this, and what does crossing it cost".
Quick check
Before you commit.
- You searched the admin for the setting by name.
- You checked whether the theme exposes a section or block for it.
- You know whether the change happens before or after checkout.
- "Impossible" has been narrowed to one of the three walls.
- If it is wall two, you have asked for it as a scoped section.
- If it is wall three, the requirement has been re-framed rather than forced.
Name the wall, then price it.
Almost everything merchants call impossible is wall two: the theme did not ship the part they need. That is a section, and a section is a bounded job with a real quote.
Questions
Questions people ask.
Why can I not edit my Shopify checkout?
Checkout is not freely editable below Shopify Plus. Shopify owns that surface for conversion and security reasons and provides defined extension points instead. Requirements that need a genuinely different checkout are either re-framed, moved to a supported extension, or handled in a custom app.
Is Shopify or WooCommerce more customisable?
WooCommerce has fewer hard limits because you own the whole stack, and in exchange you own hosting, security, updates and everything that breaks. Shopify trades some freedom for a platform that stays up and keeps converting. Neither answer is universal; it depends on whether you want to run infrastructure.
Can I add anything I want to a Shopify product page?
Almost anything above the checkout line, yes. If the theme has nowhere to put it, a developer writes a section or block, which is ordinary work on Online Store 2.0. The genuine limits start where checkout begins.