Bundles.app ‑ Inventory Sync

Bundles.app ‑ Inventory Sync Logo

Built for Shopify

Bundles.app ‑ Inventory Sync

Rating

100

%

Recommended

(

3

reviews

)

Pricing

From $19/month. Free trial available.

Developer

Launched

10-Mar-16

Bundles.app ‑ Inventory Sync Logo

Built for Shopify

Bundles.app ‑ Inventory Sync

Rating

100

%

Recommended

(

3

reviews

)

Pricing

From $19/month. Free trial available.

Developer

Launched

10-Mar-16

Bundles.app ‑ Inventory Sync Logo

Built for Shopify

Bundles.app ‑ Inventory Sync

Rating

100

%

Recommended

(

3

reviews

)

Pricing

From $19/month. Free trial available.

Developer

Launched

10-Mar-16

Sell Product bundles, Boost sales & keep inventory auto synced for sets, kits & volume discounts

Boost sales and increase your average order value by selling product bundles in your store! Offer multipacks, curated sets, tiered pricing and more. Bundles.app provides an adaptable and intuitive bundle product tool – a fast, flexible pathway to more sales. Easily sell multipacks, fixed bundles or “mix and match” bundles that enable your customers to select options such as size or color. Inventory automatically syncs fast. Great support and easy to set up your bundles.

Categories:

Product bundles, Inventory optimization

Integrations:

2048 variants, EasyScan, iPacky, most 3PL, Stocky, Synkro

2048 variants, EasyScan, iPacky, most 3PL, Stocky, Synkro

Languages:

English

English

Filter Reviews

Operator reports

100

%

Recommended

(

3

reviews

)
Photo of Reviewer Emily S.

Emily S.

Role:

Owner

Category:

Health & Beauty

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Jul 24, 2024

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:

Critical for me to do my job

What exceeded expectations

Unlike other inventory syncing apps I’ve tried, this one has never had any syncing issues. It always remains accurate, which is so helpful for ensuring I do not oversell my ready to ship products.

What was disappointing

I have no complaints. For the 6 years I’ve been using this app, I’ve had zero issues.

Photo of Reviewer Emily S.

Emily S.

Role:

Owner

Category:

Health & Beauty

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Jul 24, 2024

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:

Critical for me to do my job

What exceeded expectations

Unlike other inventory syncing apps I’ve tried, this one has never had any syncing issues. It always remains accurate, which is so helpful for ensuring I do not oversell my ready to ship products.

What was disappointing

I have no complaints. For the 6 years I’ve been using this app, I’ve had zero issues.

Photo of Reviewer Jeremy R.

Jeremy R.

Role:

Owner

Category:

Baby & Kids

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

May 29, 2024

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:

Critical for me to do my job

What exceeded expectations

Love the functionality of this app. It does excatly what I need it to do! Manages inventory on bundles products seamlessly.

What was disappointing

Every now and then we will oversell an item, but I'm not sure if this is do to the Bundles app, Shopify, or our 3PL software.

Photo of Reviewer Jeremy R.

Jeremy R.

Role:

Owner

Category:

Baby & Kids

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

May 29, 2024

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:

Critical for me to do my job

What exceeded expectations

Love the functionality of this app. It does excatly what I need it to do! Manages inventory on bundles products seamlessly.

What was disappointing

Every now and then we will oversell an item, but I'm not sure if this is do to the Bundles app, Shopify, or our 3PL software.

Photo of Reviewer Victoria D.

Victoria D.

Role:

Owner

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Apr 11, 2024

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:

Critical for me to do my job

What exceeded expectations

Quite possibly the single most useful app in my entire arsenal, and yet it's also the simplest. Just lets me link product inventory together. So, let's say I sell a set of jewellery that is available in earrings, necklace, and ring. This app allows me to create a regular product that contains all three (a bundle set), and then link the three separate products in so that if the bundle set sells, it updates my inventory. Also handy when I need to create duplicate listings for different sales channels, because it updates the stock on both if one sells. Love it.

What was disappointing

Zero complaints, best app ever. Apparently I need to add at least 50 characters in this field so I'll just say it again: Best. App. Ever.

Photo of Reviewer Victoria D.

Victoria D.

Role:

Owner

Category:

Fashion & Apparel

Shopify Plan:

Plus

Overall satisfaction

Very Satisfied

Apr 11, 2024

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:

Critical for me to do my job

What exceeded expectations

Quite possibly the single most useful app in my entire arsenal, and yet it's also the simplest. Just lets me link product inventory together. So, let's say I sell a set of jewellery that is available in earrings, necklace, and ring. This app allows me to create a regular product that contains all three (a bundle set), and then link the three separate products in so that if the bundle set sells, it updates my inventory. Also handy when I need to create duplicate listings for different sales channels, because it updates the stock on both if one sells. Love it.

What was disappointing

Zero complaints, best app ever. Apparently I need to add at least 50 characters in this field so I'll just say it again: Best. App. Ever.

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