Checkout Blocks

Checkout Blocks Logo

Built for Shopify

Checkout Blocks

Rating

90

%

Recommended

(

5

reviews

)

Pricing

Free plan available

Developer

Launched

28-Sep-22

Checkout Blocks Logo

Built for Shopify

Checkout Blocks

Rating

90

%

Recommended

(

5

reviews

)

Pricing

Free plan available

Developer

Launched

28-Sep-22

Checkout Blocks Logo

Built for Shopify

Checkout Blocks

Rating

90

%

Recommended

(

5

reviews

)

Pricing

Free plan available

Developer

Launched

28-Sep-22

Customize your thank you and order status pages. Add content blocks and order value limits.

Checkout Blocks lets you customize your thank you and order status pages, without code. Add content blocks for post-purchase information and set order value limits. Shopify Plus merchants can extend these customizations to the full checkout, with custom fields like optional delivery notes or required terms agreements, address format validation, options to hide or reorder delivery and payment methods, and order or shipping discounts.

Categories:

Checkout - Other, Discounts

Integrations:

Checkout, Customer accounts, Shopify Admin

Checkout, Customer accounts, Shopify Admin

Core Features:

Thank you & order status page customization · Checkout content blocks · Custom fields such as delivery notes · Payment & shipping method rules · Order value limits · Shopify Plus full checkout customization

Thank you & order status page customization · Checkout content blocks · Custom fields such as delivery notes · Payment & shipping method rules · Order value limits · Shopify Plus full checkout customization

Languages:

English

English

Is Checkout Blocks worth it?

Fills the gap Shopify left in checkout customization — reviewers are glad it exists and unhappy that the revenue features cost extra.

Across 5 verified merchants and agency operators, 90% are satisfied with Checkout Blocks. It was among the first movers in Shopify checkout extensibility, and reviewers value the level of personalization it enables without code — adding content blocks to thank you and order status pages, custom fields like delivery notes, and control over which payment and shipping methods appear in given scenarios. One reviewer is simply relieved an app finally exists to add basic elements like a text box to checkout. The complaints are commercial and situational. The sharpest concerns pricing structure: one merchant objects that revenue-generating blocks sit behind paid plans, particularly given Shopify Plus costs rose 25% on the promise of added features. Certain unique use cases remain impossible, though one reviewer considers that fair for a free app. Another notes no quick solution emerged for upsell discounts after Shopify Scripts was deprecated. The verdict: the free tier alone justifies installing it for basic checkout customization. Whether the paid blocks are worth it depends on how much revenue you expect them to generate.

SIGNAL FROM THE PANEL

Pros & cons from 5 verified Checkout Blocks reviews

What merchants like

What merchants like

No-code checkout customization

3

Wide range of use cases

2

Early checkout extensibility leader

2

Controls payment & shipping methods

1

Free plan covers the basics

1

Common Complaints

Common Complaints

Some use cases not possible

2

Revenue features behind paid plans

1

Missing discount upsell solution

1

0

0

COST

How much does Checkout Blocks cost?

Checkout Blocks has a free plan. Our panel's note: reviewers describe the free tier as genuinely useful for basic checkout customization, while the revenue-generating blocks sit behind paid plans — a split at least one merchant found hard to accept given Shopify Plus pricing increases.

Filter Reviews

Operator reports

90

%

Recommended

(

5

reviews

)

What merchants say about this app

AI SUMMARY

Merchants praise Checkout Blocks for unlocking rich checkout customization and extensibility, an early mover that lets them control payment and shipping methods and add elements like text boxes across many use cases, with a founder repeatedly described as responsive and hands-on. The main complaints are that the revenue-generating blocks sit behind paid plans, upsell discounts remain unsolved since Shopify Scripts was deprecated, and a few advanced use cases still aren't possible.

Photo of Reviewer Dhananjay G.

Dhananjay G.

Role:

E-commerce Manager

Category:

Jewelry & Accessories

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Jan 9, 2026

Years of use:

2-3 years

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Critical for me to do my job

What exceeded expectations

Great checkout customization options present in the app. Especially, controlling payment and shipping methods

What was disappointing

More customization options

Photo of Reviewer Dhananjay G.

Dhananjay G.

Role:

E-commerce Manager

Category:

Jewelry & Accessories

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Jan 9, 2026

Years of use:

2-3 years

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Critical for me to do my job

What exceeded expectations

Great checkout customization options present in the app. Especially, controlling payment and shipping methods

What was disappointing

More customization options

Photo of Reviewer Hans-Kristian K.

Hans-Kristian K.

Role:

Marketing

Category:

Sports & Recreation

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Feb 26, 2025

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

Easy to use and lots of possibilities on different use cases in the checkout.

What was disappointing

Some unique use cases can't be done but fair enough for a free app.

Photo of Reviewer Hans-Kristian K.

Hans-Kristian K.

Role:

Marketing

Category:

Sports & Recreation

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Feb 26, 2025

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

Easy to use and lots of possibilities on different use cases in the checkout.

What was disappointing

Some unique use cases can't be done but fair enough for a free app.

Photo of Reviewer Gui R.

Gui R.

Role:

Owner

Category:

Health & Beauty

Shopify Plan:

Plus

Overall satisfaction

Neutral

Aug 8, 2024

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

I am happy an app like this finally launched from Shopify as this is essential to add basic things like a simple text box in your checkout.

What was disappointing

Don't like how all of the revenue generating blocks are behind paid plans. Especially considering this is a Shopify Native app and they just increased our Shopify Plus cost by 25% claiming that they are adding more features yet they want to upcharge for something so basic as a recommended product feed at checkout for upsell.

Photo of Reviewer Gui R.

Gui R.

Role:

Owner

Category:

Health & Beauty

Shopify Plan:

Plus

Overall satisfaction

Neutral

Aug 8, 2024

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

I am happy an app like this finally launched from Shopify as this is essential to add basic things like a simple text box in your checkout.

What was disappointing

Don't like how all of the revenue generating blocks are behind paid plans. Especially considering this is a Shopify Native app and they just increased our Shopify Plus cost by 25% claiming that they are adding more features yet they want to upcharge for something so basic as a recommended product feed at checkout for upsell.

MR

Marcello R.

Role:

Owner

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Jul 15, 2024

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

No

Importance:

Valuable but not essential

What exceeded expectations

Checkout was one of the first mover in the shopify checkout extensibility. So many features and level of personalization

What was disappointing

Discount for upsell are essential. They didn't find a quick solution with Shopify after shopify script was deprecated

MR

Marcello R.

Role:

Owner

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Jul 15, 2024

Years of use:

Less then 1 year

Relationship with this product:

I both used it and influenced the buying decisions

Still use this tool:

No

Importance:

Valuable but not essential

What exceeded expectations

Checkout was one of the first mover in the shopify checkout extensibility. So many features and level of personalization

What was disappointing

Discount for upsell are essential. They didn't find a quick solution with Shopify after shopify script was deprecated

Frequently asked questions about Checkout Blocks

Is Checkout Blocks worth it?

Does Checkout Blocks have a free plan?

What are the main complaints about Checkout Blocks?

Does Checkout Blocks integrate well with Shopify?

What is the best Checkout Blocks alternative?

Related Apps

import * as React from "react" type Props = { name: string slug: string description: string image: string developer: string categories: string pricing: string launchedAt: string dateModified: string ratingValue: number ratingCount: number faqQ1: string faqA1: string faqQ2: string faqA2: string faqQ3: string faqA3: string faqQ4: string faqA4: string faqQ5: string faqA5: string } export function SchemaMarkup(props: Props) { const { name, slug, description, image, developer, categories, pricing, launchedAt, dateModified, ratingValue, ratingCount, faqQ1, faqA1, faqQ2, faqA2, faqQ3, faqA3, faqQ4, faqA4, faqQ5, faqA5 } = props const scriptContent = ` (function () { var ORIGIN = window.location.origin; var SAT = { "Very Satisfied": 100, "Neutral": 50, "Not Satisfied": 0 }; var AGG_NOTE = "Percentage of vetted Shopify merchants and agency operators who recommend this app, based on first-party reviews collected by app store research."; function read(root, key) { if (!root) return ""; var el = root.querySelector('[data-k="' + key + '"]'); return el ? el.textContent.trim() : ""; } function iso(v) { if (!v) return null; var d = new Date(v); return isNaN(d) ? null : d.toISOString().slice(0, 10); } function notes(text) { return { "@type": "ItemList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": text }] }; } var root = document.getElementById("asr-seo-data"); if (!root) return; var NAME = read(root, "name"); var SLUG = read(root, "slug"); if (!NAME || !SLUG) return; var PAGE_URL = ORIGIN + "/shopify-app-reviews/" + SLUG; function collectReviews() { var out = []; Array.prototype.forEach.call( document.querySelectorAll(".asr-review-seo"), function (n) { var author = read(n, "author"); var pos = read(n, "positive"); var neg = read(n, "negative"); if (!author || (!pos && !neg)) return; var r = { "@type": "Review", "author": { "@type": "Person", "name": author }, "itemReviewed": { "@id": PAGE_URL + "#app" } }; var d = iso(read(n, "date")); if (d) r.datePublished = d; var s = read(n, "satisfaction"); if (s && SAT.hasOwnProperty(s)) { r.reviewRating = { "@type": "Rating", "ratingValue": String(SAT[s]), "bestRating": "100", "worstRating": "0", "alternateName": s }; } if (pos) r.positiveNotes = notes(pos); if (neg) r.negativeNotes = notes(neg); out.push(r); } ); return out; } function buildGraph(reviews) { var app = { "@type": "SoftwareApplication", "@id": PAGE_URL + "#app", "name": NAME, "url": PAGE_URL, "applicationCategory": "BusinessApplication", "operatingSystem": "Web (Shopify)" }; var v; if ((v = read(root, "description"))) app.description = v; if ((v = read(root, "image"))) app.image = v.replace(/&/g, "&"); if ((v = read(root, "developer"))) app.author = { "@type": "Organization", "name": v }; if ((v = read(root, "categories"))) app.keywords = v; if ((v = read(root, "pricing"))) { app.offers = { "@type": "Offer", "price": "0", "priceCurrency": "USD", "description": v }; } if ((v = iso(read(root, "launchedAt")))) app.datePublished = v; if ((v = iso(read(root, "dateModified")))) app.dateModified = v; if (reviews.length) app.review = reviews; var rv = read(root, "ratingValue"); var rc = parseInt(read(root, "ratingCount"), 10); if (reviews.length && rv && rc > 0) { app.aggregateRating = { "@type": "AggregateRating", "ratingValue": String(parseFloat(rv)), "bestRating": "100", "worstRating": "0", "ratingCount": String(rc), "description": AGG_NOTE }; } var graph = [app]; var faq = []; for (var i = 1; i <= 5; i++) { var q = read(root, "faqQ" + i); var a = read(root, "faqA" + i); if (q && a) { faq.push({ "@type": "Question", "name": q, "acceptedAnswer": { "@type": "Answer", "text": a } }); } } if (faq.length) { graph.push({ "@type": "FAQPage", "@id": PAGE_URL + "#faq", "mainEntity": faq }); } graph.push({ "@type": "BreadcrumbList", "@id": PAGE_URL + "#breadcrumb", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": ORIGIN + "/" }, { "@type": "ListItem", "position": 2, "name": "Shopify App Reviews", "item": ORIGIN + "/shopify-app-reviews" }, { "@type": "ListItem", "position": 3, "name": NAME, "item": PAGE_URL } ] }); return graph; } function build() { var reviews = collectReviews(); var old = document.getElementById("asr-jsonld"); if (old && old.dataset.count === String(reviews.length)) return; if (old) old.remove(); var s = document.createElement("script"); s.type = "application/ld+json"; s.id = "asr-jsonld"; s.dataset.count = String(reviews.length); s.textContent = JSON.stringify({ "@context": "https://schema.org", "@graph": buildGraph(reviews) }); document.head.appendChild(s); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", build); } else { build(); } [300, 900, 2000].forEach(function (ms) { setTimeout(build, ms); }); })(); ` return ( <> {/* HIDDEN DIV – provjeri da li je ID tačan */} {/* SCRIPT TAG – OBAVEZNO zatvoren */} </> ) } SchemaMarkup.defaultProps = { name: "Naziv aplikacije", slug: "slug-aplikacije", description: "", image: "", developer: "", categories: "", pricing: "", launchedAt: "", dateModified: "", ratingValue: 0, ratingCount: 0, faqQ1: "", faqA1: "", faqQ2: "", faqA2: "", faqQ3: "", faqA3: "", faqQ4: "", faqA4: "", faqQ5: "", faqA5: "" }