When to use "Products", "Line Items" and "Customer Profiles"

I am attempting to build a site using Drupal Commerce to feature mortgage loan products, which is a somewhat non-traditional 'ecommerce' product. I'm trying to determine how to model such products within Drupal Commerce and would like to hear the thoughts of the Drupal Commerce team (or others) on the best approach.

Generally, I look at the data associated with a mortgage in the following way:

- Things about the mortgage: Interest rate, term, geographic region offered, type of mortgage, minimum and maximum loan values, the type of home it can be used for, etc.

- Things about obtaining a mortgage: Closing costs, application fees, document preparation, title search, etc. These tend to be specific fees that are the same for each type of mortgage offered, but might have some geographical variations. So basically, I'll assign a number of different fees associated with each item based on geographic region of the customer, but those fees will be identical regardless of the type of mortgage selected. I guess you could kind of look at them like warranty or installation costs.

- Things about a customer's use of a mortgage: Purchase price of home, down payment amount, loan amount, monthly payment, cash needed at closing, escrow account funding, etc. that are unique to each customer and require specific calculations to determine the value for each customer based on values that they will have to provide when reviewing mortgage options.

I guess my question is whether those three buckets of "things" belong in different buckets of Drupal Commerce such as "Products" (things about the mortgage), "Line Items" (things about obtaining a mortgage) and "Customer Profiles" (things about a customer's use of a mortgage. Given the different requirements for each of these, what is the best method to set them up in Drupal Commerce?

Posted: Jan 23, 2012


rfay Randy Fay on January 23, 2012

In addition to trying to attach all this data to an order via line items or products, you have the option of putting some of it somewhere else (node type? webform submission?), and making sure that the line item has a link to that webform submission.

It's a little confusing to me why the store model is even appropriate for a mortgage, but I know you've already thought that through.