=== Soul Mix and Match for WooCommerce ===
Contributors: soulcreative
Tags: woocommerce, bundles, mix and match, inventory
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 7.4
Requires Plugins: woocommerce
Stable tag: 0.14.10
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Build mix-and-match bundles with repeatable products, grouped choices, quantity rules, component stock and configurable layouts.

== Description ==

Let customers build a bundle from existing WooCommerce products. Offer one exact-quantity selection or named groups with independent minimum and maximum quantities. Customers can repeat an item within the configured limits.

For example, a starter kit can require one dry food and three drinks. Customers can choose two drinks of one flavour and one of another without creating a variation for every bundle combination.

Features:
* Exact-quantity bundles with optional, minimum, maximum and default quantities per component.
* Named groups with independent selection limits and support for products and variations.
* Fixed parent base pricing, with optional individual component pricing in exact-quantity mode.
* Drag-and-drop component ordering.
* Basic, Standard, Tabular and Grid product layouts.
* Global and per-layout style settings, including responsive typography and colours.
* Cart display with component rows or a compact selection summary.
* Native parent and component order lines, component inventory and synchronized set quantities.
* WooCommerce High-Performance Order Storage (HPOS) support.

Compatibility:
Use classic WooCommerce product, Cart and Checkout forms. Cart and Checkout Blocks are not supported. Grouped choices use the fixed parent price; individual component pricing applies to exact-quantity bundles. Set the parent bundle's shipping weight, dimensions and shipping class: component weights are not added together.

Privacy:
This plugin adds no analytics, tracking or external API calls. Selected component IDs, quantities and bundle relationships are stored with WooCommerce orders. Stock failure logs can contain order and product IDs. Product settings and order metadata remain after plugin deletion to preserve fulfilment records.

Independently developed by Soul Creative. This plugin is not affiliated with or endorsed by WooCommerce and does not require the Product Bundles or Composite Products extensions.

== Installation ==

1. Install and activate WooCommerce.
2. Upload and activate Soul Mix and Match for WooCommerce.
3. Edit a product, choose Mix & Match bundle in Product data, and set its regular price.
4. Configure allowed products and quantity rules in Mix & Match Products, or configure named product groups.
5. Choose a display layout. Configure appearance and cart display under WooCommerce > Mix & Match Bundle Setting.
6. Use classic Cart and Checkout pages. Test your theme, stock, taxes and payment flow on staging before accepting live orders.

== Frequently Asked Questions ==

= Can customers repeat a flavour? =
Yes. Quantities must satisfy item and group limits and available inventory.

= Do I need one variation for each combination? =
No. Groups select existing products or variations independently. A variable parent can supply its available variations as choices.

= How do prices and taxes work? =
The parent carries the base price and its tax class. In exact-quantity mode, components marked Priced individually add their current product price and tax class. Other components are included at zero price. Grouped choices use the fixed parent price.

= How do stock and refunds work? =
Components follow their existing WooCommerce stock settings. Products with stock management enabled use tracked quantities; other products use their In stock / Out of stock status. The plugin does not enable stock management or invent stock quantities.

Selected components become native WooCommerce order lines. When refunding a bundle quantity, enter matching quantities for its component lines, including zero-priced components. Select Restock refunded items when stock should return. A money-only refund does not restore quantities.

= Can customers edit selections in the cart? =
Set quantity can be changed in the cart. To change selected products, remove the bundle and choose again on its product page.

= Does this support subscriptions, separate component shipping or Cart and Checkout Blocks? =
No. These features are outside the current scope.

== Changelog ==

= 0.14.10 =
* Allow exact-quantity bundles to use simple products and individual variations with stock-status-only inventory, matching grouped bundles.
* Preserve managed-stock checks and out-of-stock restrictions. Avoid a misleading quantity warning when invalid components are excluded.

= 0.14.9 =
* Moved Karlpet/The7 mini-cart presentation into the site child theme; kept portable bundle summaries and visibility logic.

= 0.14.8 =
* Restyled bundle mini-cart with grouped selections, responsive width and accessible open/close controls.

= 0.14.5 =
* Compact mini-cart bundle summaries without duplicate component rows.
* Preserve variation product identity and include individually-priced components in mini-cart prices.

= 0.14.4 =
* Align WP Overnight invoice and packing slip bundle details with the clean order editor. Preserve component rows, SKUs, selections, quantities and amounts.

= 0.14.3 =
* Hide internal bundle metadata and redundant component Bundle labels in the order editor. Stored order relationships remain intact.

= 0.14.2 =
* Compact email summaries with selections on separate lines.
* Hide duplicate included component email rows when the parent summary is available.
* Preserve charged components, download information and purchase notes; original order data is unchanged.

= 0.14.0 =
* Initial directory submission version following staging development.
* Exact-quantity bundles and grouped selections with repeatable components.
* Four display layouts, global and layout-specific style settings.
* Native cart and order component lines with HPOS support.
* Compact cart summaries with distinct group headings and shorter variation labels.
* Nonce, permission, quantity and input validation hardening.

== Upgrade Notice ==

= 0.14.2 =
Improves bundle email presentation without changing stored order items or totals.

= 0.14.0 =
Use classic Cart and Checkout pages. When upgrading from an early staging build, remove and reselect bundles already in the cart.
