Products are reusable WordPress site templates that define which plugins, themes, branding, and restrictions to apply when launching a demo site.
The easiest way to create a product is with the interactive script:
bash scripts/create-product.shThe script walks you through:
This creates a products/<product-id>.json config file and a product-assets/<product-id>/ directory for any local plugin ZIPs.
# 1. Create the product JSON config
# 2. Build the product image
bash scripts/build-wp-image.sh --product your-product
# 3. Restart the API to pick up the new product
docker compose restart api# 1. Place plugin ZIP files in product-assets/your-product/
# 2. Create the product JSON config referencing local sources
# 3. Build the product image
bash scripts/build-wp-image.sh --product your-product
# 4. Restart the API
docker compose restart api{
"id": "woocommerce-demo",
"name": "WooCommerce Store Demo",
"database": "sqlite",
"plugins": {
"preinstall": ["woocommerce", "flavor"],
"remove": ["hello", "akismet"]
},
"themes": {
"install": ["flavor"],
"active": "flavor",
"remove": ["twentytwentyfour"]
},
"demo": {
"expiration": 48,
"maxConcurrentPerUser": 2,
"adminUser": { "username": "shopadmin", "password": "demo123" },
"landingPage": "/shop/"
},
"restrictions": {
"disableFileModifications": true,
"hiddenMenus": ["tools.php"],
"blockedCapabilities": ["install_plugins", "install_themes"]
},
"branding": {
"bannerText": "WooCommerce Store Demo",
"description": "Explore a fully configured WooCommerce store",
"image": "https://ps.w.org/woocommerce/assets/icon-256x256.gif"
}
}product-assets/ or modify the JSON configbash scripts/build-wp-image.sh --product your-productdocker compose restart api