Boost AI Search & Filter

Boost AI Search & Filter Logo

Built for Shopify

Boost AI Search & Filter

Rating

50

%

Recommended

(

2

reviews

)

Pricing

From $29/month. Free trial available.

Developer

Launched

17-Jan-17

Boost AI Search & Filter Logo

Built for Shopify

Boost AI Search & Filter

Rating

50

%

Recommended

(

2

reviews

)

Pricing

From $29/month. Free trial available.

Developer

Launched

17-Jan-17

Boost AI Search & Filter Logo

Built for Shopify

Boost AI Search & Filter

Rating

50

%

Recommended

(

2

reviews

)

Pricing

From $29/month. Free trial available.

Developer

Launched

17-Jan-17

Increase sales with AI Search, advanced filters, and smarter product discovery

Help shoppers find exactly what they want faster with AI search built to increase conversions. Deliver instant, relevant results even with typos, vague searches, or large catalogs. Keep shoppers engaged with advanced filters, then grow AOV with personalized recommendations and bundles. No coding needed, just fast setup, easy customization, eye-catching merchandising and seamless theme integration Plus, our team’s here to support you every step of the way.

Categories:

Search and filters, Navigation and menus

Integrations:

Checkout, Shopify Admin, App builder: Shopney & Vajro, Klaviyo, Product label apps, Reviews.io, Weglot & langify, Yotpo, Judge.me, Growave, Loox

Checkout, Shopify Admin, App builder: Shopney & Vajro, Klaviyo, Product label apps, Reviews.io, Weglot & langify, Yotpo, Judge.me, Growave, Loox

Languages:

English

English

Filter Reviews

Operator reports

50

%

Recommended

(

2

reviews

)
Photo of Reviewer Russell B.

Russell B.

Role:

E-commerce Manager

Category:

Business Equipment

Shopify Plan:

Plus

Overall satisfaction

Not Satisfied

Feb 27, 2026

Years of use:

More then 3 years

Relationship with this product:

I used it, but I didn't influence the buying decision

Still use this tool:

Yes

Importance:

Critical for me to do my job

What exceeded expectations

It works, though it requires a lot of setup and patience.

What was disappointing

It’s cumbersome but adds critical functionality to our site in the form of product filters. If it could read metafield values, it would be invaluable!

Photo of Reviewer Russell B.

Russell B.

Role:

E-commerce Manager

Category:

Business Equipment

Shopify Plan:

Plus

Overall satisfaction

Not Satisfied

Feb 27, 2026

Years of use:

More then 3 years

Relationship with this product:

I used it, but I didn't influence the buying decision

Still use this tool:

Yes

Importance:

Critical for me to do my job

What exceeded expectations

It works, though it requires a lot of setup and patience.

What was disappointing

It’s cumbersome but adds critical functionality to our site in the form of product filters. If it could read metafield values, it would be invaluable!

Photo of Reviewer Nathan P.

Nathan P.

Role:

E-commerce Manager

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

May 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:

No

Importance:

Critical for me to do my job

What exceeded expectations

Low cost, high flexibility. Almost as good as more expensive alternatives. Can be customised to look like a native part of your website

What was disappointing

Moved away to a solution which gave more granular merchandising control

Photo of Reviewer Nathan P.

Nathan P.

Role:

E-commerce Manager

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

May 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:

No

Importance:

Critical for me to do my job

What exceeded expectations

Low cost, high flexibility. Almost as good as more expensive alternatives. Can be customised to look like a native part of your website

What was disappointing

Moved away to a solution which gave more granular merchandising control

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