How do I create service packages?

For example, as a computer shop, I can be tasked with repair services, installation services, etc.

Every type of service needs its own custom values, like for upgrade service, I need to select what gets upgraded, and for repair service, I need to specify what’s being repaired.

On the invoice, I want to include service packages and any items purchased to complete that service, like bill of materials.

How can I get ERPNext to do these?