# WooCommerce Composable Products

Create composable products where customers can select a limited number of items from a configurable set of products.

## Description

This plugin adds a new product type to WooCommerce that allows customers to build their own product bundles by selecting from a predefined set of simple or variable products. Think of it as a "build your own gift box" or "create your sticker pack" feature.

### Key Features

- **Custom Product Type**: New "Composable Product" type in WooCommerce
- **Flexible Selection**: Define available products by category, tag, or SKU
- **Configurable Limits**: Set global or per-product selection limits
- **Pricing Options**: Fixed price or sum of selected products
- **Multi-language Support**: Fully translatable with i18n support
- **Modern UI**: Clean interface built with Twig templates and vanilla JavaScript

## Requirements

- PHP 8.3 or higher
- WordPress 6.0 or higher
- WooCommerce 8.0 or higher

## Installation

1. Upload the plugin files to `/wp-content/plugins/wc-composable-product/`
2. Run `composer install --no-dev` in the plugin directory
3. Activate the plugin through the 'Plugins' menu in WordPress
4. Configure global settings under WooCommerce > Settings > Composable Products

## Usage

### Creating a Composable Product

1. Go to Products > Add New
2. Select "Composable Product" as the product type
3. Configure product details:
   - Set the selection limit (or use global default)
   - Choose pricing mode (fixed or sum)
   - Define available products by category, tag, or SKU
4. Publish the product

### Global Settings

Navigate to WooCommerce > Settings > Composable Products to configure:
- Default selection limit
- Default pricing mode
- Display options

## Development

This project was created with AI assistance (Claude.AI) and follows WordPress and WooCommerce best practices.

### Building from Source

```bash
composer install
```

### Translation

Generate POT file:
```bash
wp i18n make-pot . languages/wc-composable-product.pot
```

## License

GPL v3 or later - see LICENSE file for details

## Author

Marco Graetsch

## Support

For issues and feature requests, please use the GitHub issue tracker.
