# 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 - **Variable Product Support**: Automatically expands variable products into selectable variations - **Stock Management**: Real-time stock validation, visual indicators, and automatic inventory tracking - **Configurable Limits**: Set global or per-product selection limits - **Pricing Options**: Fixed price or sum of selected products with full locale-aware formatting - **Multi-language Support**: Fully translated in 6 locales (de_DE, de_CH, fr_CH, it_CH + informal variants) - **Modern UI**: Clean interface built with Twig templates and vanilla JavaScript - **CI/CD**: Automated release workflow for Gitea ## 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 ``` Compile translations: ```bash for po in languages/*.po; do msgfmt -o "${po%.po}.mo" "$po"; done ``` ### Creating Releases Releases are automated via Gitea CI/CD. Push an annotated tag to trigger: ```bash git tag -a v1.2.0 -m "Release v1.2.0" git push origin v1.2.0 ``` The workflow builds the release ZIP, compiles translations, generates checksums, and creates a Gitea release with attachments. ## 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.