Bulk Discount Code Bot

Bulk Discount Code Bot Logo

Built for Shopify

Bulk Discount Code Bot

Rating

100

%

Recommended

(

2

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

15-Dec-17

Bulk Discount Code Bot Logo

Built for Shopify

Bulk Discount Code Bot

Rating

100

%

Recommended

(

2

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

15-Dec-17

Bulk Discount Code Bot Logo

Built for Shopify

Bulk Discount Code Bot

Rating

100

%

Recommended

(

2

reviews

)

Pricing

Free plan available. Free trial available.

Developer

Launched

15-Dec-17

Grow sales with unlimited unique coupon codes, track performance & get a discount risk audit

Run targeted promotions that increase sales, reward loyal customers, and ensure accurate attribution. Generate or import unlimited unique coupons for Buy X Get Y, BOGO, or any Shopify discount. View results by campaign, channel, and department with growth-focused reporting. Automatically audit your discounts to prevent leaks. Export codes for influencers, loyalty, affiliates, direct mail, email, SMS, and connect to Klaviyo & Gorigas. The unique discount code generator trusted by 20k+ brands.

Categories:

Discounts, Promotions - Other

Integrations:

Checkout, Shopify Flow, Shopify Admin, Discounts, Gorgias, Klaviyo

Checkout, Shopify Flow, Shopify Admin, Discounts, Gorgias, Klaviyo

Languages:

English, French, German, Spanish, Czech, Danish, Finnish, Italian, Japanese, Norwegian (Bokmål), Dutch, Portuguese (Brazil), Portuguese (Portugal), Chinese (Traditional), Chinese (Simplified), Albanian, Croatian, Greek, Hungarian, Indonesian, Korean, Lithuanian, Polish, Serbian, Swedish, Thai, Turkish, Vietnamese

English, French, German, Spanish, Czech, Danish, Finnish, Italian, Japanese, Norwegian (Bokmål), Dutch, Portuguese (Brazil), Portuguese (Portugal), Chinese (Traditional), Chinese (Simplified), Albanian, Croatian, Greek, Hungarian, Indonesian, Korean, Lithuanian, Polish, Serbian, Swedish, Thai, Turkish, Vietnamese

Filter Reviews

Operator reports

100

%

Recommended

(

2

reviews

)
Photo of Reviewer Dan K.

Dan K.

Role:

Owner

Category:

Toys & Games

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Feb 14, 2026

Years of use:

More then 3 years

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

It allows us to generate custom discount codes in large numbers - very handy

What was disappointing

It has met my expectations.

Photo of Reviewer Dan K.

Dan K.

Role:

Owner

Category:

Toys & Games

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Feb 14, 2026

Years of use:

More then 3 years

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

It allows us to generate custom discount codes in large numbers - very handy

What was disappointing

It has met my expectations.

HD

Heidi D.

Role:

Operations

Category:

Other

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Dec 11, 2025

Years of use:

1-2 years

Relationship with this product:

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

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

It was very easy to set up bulk discount codes, and I like that we get 3 downloads for free.

What was disappointing

I've had to manage the codes outside of the bot, which is cumbersome

HD

Heidi D.

Role:

Operations

Category:

Other

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Dec 11, 2025

Years of use:

1-2 years

Relationship with this product:

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

Still use this tool:

Yes

Importance:

Valuable but not essential

What exceeded expectations

It was very easy to set up bulk discount codes, and I like that we get 3 downloads for free.

What was disappointing

I've had to manage the codes outside of the bot, which is cumbersome

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