Costs · Margins · The business of ecommerce
The reader typing 'shopify pos cost' wants one number, but the honest answer sits inside theme settings and market data this site can actually measure, not a hardware price sheet, so this article settles what is measurable and names what is not.
A reader typing “shopify pos cost” into a search bar expects a terminal price and a per-swipe fee, and they get instead a scattering of theme store data, performance charts, and code repositories that never mention point of sale hardware at all. That mismatch is the story. The category list this site tracks, built from a market of 329 themes, has slots for Art, Auto, Bags, Beauty, Clothing, Electronics, Food and drink, Home, Jewelry & Access., Kids, Pets, Sports, and Toys, and nothing under any name resembling POS pricing. So the honest move is not to invent a number that was never measured, but to lay out what this dataset actually settles, which is theme pricing, theme performance, and the exact settings a merchant can and cannot touch on a product or blog page.
Across the 329 themes in the ranked market, the median price is $300, and prices run from $100 at the low end to $500 at the high end. That is what a merchant pays once for a theme license, separate from any plan tier or hardware purchase. The average rating across themes with enough reviews to count, 308 of them, is 4.53 out of 5, and the median number of reviews per theme is 23. None of these numbers describe recurring POS fees, because the dataset was never built to track that. It was built to track theme storefronts, and it does that well.
| Metric | Median | Best in market | Worst in market | Themes with sufficient data |
|---|---|---|---|---|
| Mobile, all CWV pass | 85.5% | 98.6% | 46.1% | 247 |
| Desktop, all CWV pass | 86.2% | 99.2% | 30.3% | 199 |
The gap between the best and worst theme on mobile, 98.6% against 46.1%, is far wider than anything the $100 to $500 price range can explain on its own. The same holds on desktop, where the spread runs from 30.3% up to 99.2%. This data comes from CrUX for July 2026, meaning it reflects real visitors loading real stores, not a lab benchmark run once and forgotten. A merchant who wants speed has to check this figure directly against the theme they are considering, because price alone gives no signal here.
Dawn’s sections/featured-product.liquid, at commit 258f00f, carries 12 settings and 13 block types. Among the named settings are product, color_scheme, secondary_background as a checkbox, media_size as a select with 3 options, constrain_to_viewport as a checkbox, and media_fit as a select with 2 options. Dawn’s sections/main-product.liquid, same commit, carries 13 settings and 18 block types, including enable_sticky_info as a checkbox, color_scheme, media_size again with 3 options, constrain_to_viewport as a checkbox, media_fit with 2 options, and gallery_layout as a select with 4 options.
What neither section exposes is any setting related to payment terminals, POS sync, or per-transaction fees, because theme sections govern layout and media presentation, not the commerce backend. A merchant reading “shopify pos cost” into this section list will find media_fit toggles and gallery layouts, not a fee schedule, and that absence is worth stating plainly rather than glossing over.
Horizon’s sections/main-blog-post.liquid, at commit 8b42ace, has 5 settings and 6 block types, including content_direction as a select with 1 option, gap as a range from 0 to 100 in 1px steps, background_color, and two padding ranges, padding-block-start and padding-block-end, both 0 to 100 in 1px steps. The section that controls how many posts show and in what layout, featured-blog-posts.liquid, has 16 settings and 3 block types, including blog, layout_type as a select with 3 options, carousel_on_mobile as a checkbox, post_limit ranging 2 to 10, columns ranging 1 to 8, and mobile_columns as a select with 2 options.
Below the section level, the blocks/_blog-post-title.liquid block carries 19 settings, including text as richtext, width with 2 options, max_width with 3 options, alignment as text_alignment, type_preset with 9 options, and font with 4 options. The blocks/_blog-post-description.liquid block carries 12 settings, including type_preset with 9 options, font with 4 options, font_size with 17 options, line_height with 3 options, letter_spacing with 3 options, and case with 2 options. This is granular control over typography and spacing, and none of it touches transaction cost, because that is not what a blog block is for.
A merchant who typed “shopify pos cost” should go find a Shopify pricing or hardware page directly, because nothing in this theme market data answers that question and no number here should be stretched to pretend otherwise. What this data is good for is picking a theme inside the $100 to $500 range with an eye on the Core Web Vitals spread, 46.1% to 98.6% on mobile and 30.3% to 99.2% on desktop, and checking specific section settings like Dawn’s gallery_layout or Horizon’s post_limit before assuming a theme does something it does not.
No. The category list this site tracks covers Art, Auto, Bags, Beauty, Clothing, Electronics, Food and drink, Home, Jewelry & Access., Kids, Pets, Sports, and Toys, and none of them is a POS or hardware category. The search term a reader types, shopify pos cost, does not map to any theme, section, or setting in the 329-theme market this article draws from. What this article can state with numbers is theme pricing and theme performance, which is a different question than terminal cost. Anyone comparing POS plans should treat that as a separate research task from theme selection.
The median theme price across the tracked market is $300, with the cheapest themes at $100 and the priciest at $500. That is a one-time or per-theme cost, not a recurring fee, and it sits on top of whatever plan and hardware a merchant chooses. The average rating across 308 rated themes is 4.53 out of 5, with a median of 23 reviews per theme, which gives a sense of how tested these themes are before a merchant commits $100 to $500 to one of them.
Dawn's main-product.liquid section, at commit 258f00f, has 13 settings and 18 block types. Named settings include enable_sticky_info as a checkbox, color_scheme, media_size as a select with 3 options, constrain_to_viewport as a checkbox, media_fit as a select with 2 options, and gallery_layout as a select with 4 options. None of these settings touch payment processing, POS sync, or terminal configuration, because that logic lives outside the theme layer entirely.
Partially. The blocks/_blog-post-title.liquid block in Horizon has 19 settings, including text as richtext, width with 2 options, max_width with 3 options, alignment as text_alignment, type_preset with 9 options, and font with 4 options. The blocks/_blog-post-description.liquid block has 12 settings, including font_size with 17 options, line_height with 3 options, letter_spacing with 3 options, and case with 2 options. Layout-level control comes from featured-blog-posts.liquid, which has 16 settings including layout_type with 3 options, post_limit ranging 2 to 10, columns ranging 1 to 8, and mobile_columns with 2 options, all fixed at commit 8b42ace.
The facts here do not link price to Core Web Vitals pass rates directly, so no correlation can be stated. What can be stated is that the mobile median pass rate is 85.5% across 247 themes with sufficient data, ranging from 46.1% to 98.6%, and the desktop median is 86.2% across 199 themes, ranging from 30.3% to 99.2%. A merchant picking a theme by price alone, using the $100 to $500 range, has no guarantee of where that theme lands in the vitals range.