Dynasort Collection Sorting

Dynasort Collection Sorting Logo

Built for Shopify

Dynasort Collection Sorting

Rating

100

%

Recommended

(

1

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

19-Sep-22

Dynasort Collection Sorting Logo

Built for Shopify

Dynasort Collection Sorting

Rating

100

%

Recommended

(

1

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

19-Sep-22

Dynasort Collection Sorting Logo

Built for Shopify

Dynasort Collection Sorting

Rating

100

%

Recommended

(

1

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

19-Sep-22

Automate collection & product sorting using 25+ data points. Built for merchants with large catalogs

Dynasort automates merchandising for stores with complex catalogs. Sort collections and product options using AI and 25+ metrics including sales, revenue, inventory, reviews, and metafields. A/B test sort strategies to find what converts. Build reusable recipes at scale (1000+ collections every 10/min). Track shopping behavior with built-in analytics: CVR, bounce rate, and add-to-cart metrics. Move sold-out options down, pin best-sellers, and ensure customers always see best products 1st.

Categories:

Collections

Integrations:

Checkout, Shopify Admin, Debutify, Espresso Live Metafields, Judge.me, LOOX, Okendo, Yotpo

Checkout, Shopify Admin, Debutify, Espresso Live Metafields, Judge.me, LOOX, Okendo, Yotpo

Languages:

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

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

Filter Reviews

Operator reports

100

%

Recommended

(

1

reviews

)
Photo of Reviewer Tony S.

Tony S.

Role:

E-commerce Manager

Category:

Toys & Games

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

May 28, 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

Creating ranking and scoring options within a sort are quite powerful and useful.

What was disappointing

Those powerful options are spread amongst several different menus, so honing in on the desired results is frustrating.

Photo of Reviewer Tony S.

Tony S.

Role:

E-commerce Manager

Category:

Toys & Games

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

May 28, 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

Creating ranking and scoring options within a sort are quite powerful and useful.

What was disappointing

Those powerful options are spread amongst several different menus, so honing in on the desired results is frustrating.

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