{"id":342642,"date":"2026-07-23T12:27:49","date_gmt":"2026-07-23T12:27:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/maxtdesign-product-bundles\/"},"modified":"2026-07-23T12:27:35","modified_gmt":"2026-07-23T12:27:35","slug":"maxtdesign-product-bundles","status":"publish","type":"plugin","link":"https:\/\/sv.wordpress.org\/plugins\/maxtdesign-product-bundles\/","author":23163067,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.1","stable_tag":"0.1.1","tested":"7.0.2","requires":"6.4","requires_php":"8.1","requires_plugins":null,"header_name":"MaxtDesign Product Bundles","header_author":"MaxtDesign","header_description":"Sell products as a set \u2014 a curated fixed kit of products (and author-pinned variations) bought in one add-to-cart and priced as a unit, with customer-adjustable quantities. Adds a dedicated Bundle product type. Compatible with WooCommerce. Part of the MaxtCommerce suite.","assets_banners_color":"622b66","last_updated":"2026-07-23 12:27:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/maxtdesign.com\/plugins\/product-bundles","header_author_uri":"https:\/\/maxtdesign.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.1":{"tag":"0.1.1","author":"slaacr","date":"2026-07-23 12:27:35"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3619999,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3619999,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3619999,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3619999,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3619999,"resolution":"1","location":"assets","locale":"","width":1280,"height":800},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3619999,"resolution":"2","location":"assets","locale":"","width":1280,"height":1050},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3619999,"resolution":"3","location":"assets","locale":"","width":1280,"height":800},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3619999,"resolution":"4","location":"assets","locale":"","width":1280,"height":800}},"screenshots":{"1":"A bundle on the product page: a compact grid of exactly what is included, the saving versus buying separately, and one Add to Cart.","2":"Building a bundle in the product editor: search products (or pin a specific variation), set per-item quantities, and choose a pricing mode.","3":"The cart: the bundle plus its real component lines. Component quantities are locked to the bundle, so the group can never be desynchronised.","4":"Display settings: list or grid, thumbnails, quick view, and the savings line."}},"plugin_section":[],"plugin_tags":[233154,31086,131453,33373,73298],"plugin_category":[],"plugin_contributors":[250063],"plugin_business_model":[],"class_list":["post-342642","plugin","type-plugin","status-publish","hentry","plugin_tags-bundle-pricing","plugin_tags-frequently-bought-together","plugin_tags-grouped-products","plugin_tags-kits","plugin_tags-product-bundles","plugin_contributors-slaacr","plugin_committers-slaacr"],"banners":{"banner":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/banner-772x250.png?rev=3619999","banner_2x":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/banner-1544x500.png?rev=3619999","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/icon-128x128.png?rev=3619999","icon_2x":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/icon-256x256.png?rev=3619999","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/screenshot-1.png?rev=3619999","caption":"A bundle on the product page: a compact grid of exactly what is included, the saving versus buying separately, and one Add to Cart."},{"src":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/screenshot-2.png?rev=3619999","caption":"Building a bundle in the product editor: search products (or pin a specific variation), set per-item quantities, and choose a pricing mode."},{"src":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/screenshot-3.png?rev=3619999","caption":"The cart: the bundle plus its real component lines. Component quantities are locked to the bundle, so the group can never be desynchronised."},{"src":"https:\/\/ps.w.org\/maxtdesign-product-bundles\/assets\/screenshot-4.png?rev=3619999","caption":"Display settings: list or grid, thumbnails, quick view, and the savings line."}],"raw_content":"<!--section=description-->\n<p>MaxtDesign Product Bundles adds a dedicated <strong>Bundle<\/strong> product type. A bundle is\na curated, author-chosen set of products (and specific product variations) that\ncustomers buy together in one add-to-cart, priced as a unit. Compatible with\nWooCommerce.<\/p>\n\n<p>The customer never picks which products are in the bundle. The composition is\nfixed by you. The only thing the customer adjusts is quantity.<\/p>\n\n<p><strong>What a bundle is<\/strong><\/p>\n\n<ul>\n<li>A fixed set of products you choose, sold as one kit.<\/li>\n<li>Author-set per-item quantities, with the option to let customers adjust them.<\/li>\n<li>Author-pinned product variations (e.g. \"Red \/ Large\") as bundle items.<\/li>\n<\/ul>\n\n<p><strong>Pricing modes<\/strong><\/p>\n\n<ul>\n<li>Sum of the item prices.<\/li>\n<li>A fixed bundle price.<\/li>\n<li>A percent or fixed-amount discount off the sum (distributed across the real\ncomponent lines with penny reconciliation, so tax reconciles exactly).<\/li>\n<li>A per-item price override.<\/li>\n<\/ul>\n\n<p><strong>Built right<\/strong><\/p>\n\n<ul>\n<li>A dedicated Bundle product type, not a grouped-product hack.<\/li>\n<li>Real component lines keep their own stock and SKU; bundle stock is the minimum\nbuyable across items.<\/li>\n<li>A bundle item is a real product, so the order is self-describing for fulfilment.<\/li>\n<li>Zero frontend footprint: no bundle scripts or styles load on pages without a\nbundle, and a fully-locked kit renders with no JavaScript at all. The only\nsitewide addition is a ~450-byte inline consent shim shared by the MaxtCommerce\nsuite. No external requests, no jQuery, no webfonts, no tracking.<\/li>\n<li>Coexists with the rest of the MaxtCommerce suite (Configurator, Companion\nProducts) on the same store without collision.<\/li>\n<\/ul>\n\n<p>This is the free core. A Pro add-on adds tier\/conditional bundle discounts,\ntemplates and cloning, per-bundle analytics, and \"frequently bought together\"\nsuggestions.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin to <code>\/wp-content\/plugins\/<\/code> and activate it.<\/li>\n<li>Ensure WooCommerce is active.<\/li>\n<li>Add a new product, choose <strong>Bundle<\/strong> as the product type, open the <strong>Bundle<\/strong>\ntab in Product data, add items, and choose a pricing mode.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20customers%20choose%20which%20products%20are%20in%20the%20bundle%3F\"><h3>Can customers choose which products are in the bundle?<\/h3><\/dt>\n<dd><p>No. A bundle's composition is fixed by the author; customers buy the whole set.\nChoose-which \/ build-your-own experiences belong to the MaxtCommerce Configurator,\nnot to Bundles.<\/p><\/dd>\n<dt id=\"can%20i%20use%20product%20variations%20as%20bundle%20items%3F\"><h3>Can I use product variations as bundle items?<\/h3><\/dt>\n<dd><p>Yes. You can pin a specific variation (e.g. \"Red \/ Large\") as an item in the free\ncore.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20the%20block%20cart%20and%20store%20api%3F\"><h3>Does this work with the block cart and Store API?<\/h3><\/dt>\n<dd><p>Yes. Bundle cart integrity is built on the commerce-core Store API path, and works\non both the block cart and the classic shortcode cart. Bundle lines are locked to\ntheir bundle quantity, the price is always recalculated server-side from the stored\nbundle, and removing a component removes the whole bundle rather than orphaning it.<\/p><\/dd>\n<dt id=\"do%20bundled%20items%20keep%20their%20own%20stock%3F\"><h3>Do bundled items keep their own stock?<\/h3><\/dt>\n<dd><p>Yes. Each component is a real product line that decrements its own stock and SKU.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Migration: the WPC Product Bundles importer is now fully implemented (both\nthe v7+ array format and the legacy delimited string format, including SKU\nentries and pinned variations). Fixed, discounted, and sum pricing map to\nthe equivalent mode; optional-item and choose-a-variation bundles are\nflagged and skipped, never mis-imported.<\/li>\n<li>Performance: bundle prices on cart and checkout are now computed once per\ncomposition per request instead of once per pass.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Data model + authoring: the Bundle product type, split storage, pricing engine,\nand the customer-facing bundle contents + running total on the product page.<\/li>\n<li>Cart and order integration: one add-to-cart, server-authoritative pricing, locked\ncomponent quantities, orphan protection, real per-component stock and SKU\ndecrements, and order-again support. Works on the block cart and the classic cart.<\/li>\n<li>Enriched bundle display: list or image-grid layout, lazy thumbnails, per-item\n\"View\" links (new tab), an optional image quick-view lightbox (off by default),\nand a \"you save $X\" line. Configure under MaxtDesign &gt; Bundle Display. All free,\npage-scoped, and lean by default (no JavaScript unless a quantity is adjustable\nor the lightbox is enabled).<\/li>\n<\/ul>","raw_excerpt":"Sell products as a set: a curated fixed kit bought in one add-to-cart and priced as a unit, with correct tax, stock, and block-cart handling.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/342642","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=342642"}],"author":[{"embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/slaacr"}],"wp:attachment":[{"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=342642"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=342642"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=342642"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=342642"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=342642"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/sv.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=342642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}