How BOM (Bill of Materials) Preview on Bookings Works
Source: events_controller.rb
- BOM preview creates temporary event items from the bill of materials within a database transaction that is ALWAYS rolled back — no data is persisted
- The preview returns calculated data for the UI display only; the user must explicitly choose to add the BOM items to the booking
- Customer-adjusted pricing is calculated during the preview so the user sees accurate costs before committing
- This is a read-only operation wrapped in a transaction rollback, so there is zero risk of accidentally adding items
Support scenarios
- "I previewed a BOM but the items weren't added to the booking" → BOM preview is display-only by design. After previewing, you must explicitly add the items. The preview always rolls back without saving.
- "The BOM preview prices don't match the product prices" → Customer-adjusted pricing is applied during preview. The prices shown reflect any customer-specific pricing, which may differ from standard product prices.