Checkout Plus ‑ Page Editor

Checkout Plus ‑ Page Editor Logo

Built for Shopify

Checkout Plus ‑ Page Editor

Rating

100

%

Recommended

(

2

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

26-Sep-22

Checkout Plus ‑ Page Editor Logo

Built for Shopify

Checkout Plus ‑ Page Editor

Rating

100

%

Recommended

(

2

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

26-Sep-22

Checkout Plus ‑ Page Editor Logo

Built for Shopify

Checkout Plus ‑ Page Editor

Rating

100

%

Recommended

(

2

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

26-Sep-22

Customize Your Checkout: Free Gifts, Trust Badges, Upsells, Messages, Reviews, Surveys & Rules

Unlock the ability to customize your Checkout, Thank You, and Order Status pages. Communicate vital information to your customers during checkout such as custom messages, and reviews at checkout. Establish trust with your customers by giving them confidence when they checkout it is secure and trustworthy. Provide your customers the option to provide custom gift messages to make their checkout experience even more personal. Create payment & shipping method customizations based on rules.

Categories:

Checkout - Other, Upsell and cross-sell

Integrations:

Checkout, Customer accounts, Shopify Flow, Shopify Admin, Discount Plus, Judge.me, Okendo, Yotpo Reviews

Checkout, Customer accounts, Shopify Flow, Shopify Admin, Discount Plus, Judge.me, Okendo, Yotpo Reviews

Languages:

English, Czech, Danish, German, Spanish, Finnish, French, Italian, Japanese, Korean, Norwegian, Dutch, Polish, Portuguese (Brazil), Portuguese (Portugal), Swedish, Thai, Turkish, Vietnamese, Chinese (Simplified), Chinese (Traditional)

English, Czech, Danish, German, Spanish, Finnish, French, Italian, Japanese, Korean, Norwegian, Dutch, Polish, Portuguese (Brazil), Portuguese (Portugal), Swedish, Thai, Turkish, Vietnamese, Chinese (Simplified), Chinese (Traditional)

Filter Reviews

Operator reports

100

%

Recommended

(

2

reviews

)
Photo of Reviewer Tristan K.

Tristan K.

Role:

E-commerce Manager

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Oct 29, 2024

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

Fantastic Checkout App. Allows you to easily add extra fields to the checkout. It has TONS of features, including some advanced ones like detecting the user's country before displaying. And it has some of the BEST support I've ever seen on a Shopify App (the developer even implements custom features without being asked). Excellent.

What was disappointing

I haven't had any problems with it - support has been great, any quirks or requests have been answered realy quickly.

Photo of Reviewer Tristan K.

Tristan K.

Role:

E-commerce Manager

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Oct 29, 2024

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

Fantastic Checkout App. Allows you to easily add extra fields to the checkout. It has TONS of features, including some advanced ones like detecting the user's country before displaying. And it has some of the BEST support I've ever seen on a Shopify App (the developer even implements custom features without being asked). Excellent.

What was disappointing

I haven't had any problems with it - support has been great, any quirks or requests have been answered realy quickly.

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: "" }