The current fulfilment system only supports "key per product" — each product in a tier maps to a Keystone key group, and one key is extracted per product at order time. Software bundles need a "key per tier" mode where a single activation key represents the entire tier (all products in it), rather than individual product keys.
- No enum: There is no
fulfilment_typefield. Both product-level (ProductKeyGroupMappingConfig) and tier-level (TierKeyGroupMappingConfig) key mappings are optional on any tier. The system simply extracts keys from whatever is configured. - Validation at publish time: When a bundle goes on sale, validate that every tier has at least one key mapping (product-level OR tier-level). This prevents misconfiguration without over-constraining the admin during setup.