We consider an assemble-to-order system in which each customer order consists of a mix of key and non-key items. Key items are items where the customer is lost if one-or more of his key items are not available. The non-key items are items which are not essential, and therefore, customers may ignore those items if they are not available. We also allow substitution in our model, and assume that some proportion of customers accept substitutions for missing items. We then develop a quasi-birth-and-death process which can be used to obtain the performance measures of the assemble-to-order system. We also introduce new measures which evaluate different levels of customer satisfaction. Through a numerical study, we reveal some interesting behaviors of the system and explore the underlying causes.