Ability to add custom fields to checkout

We have a client that needs the ability to let shoppers at checkout pick which "dealer" they are assigned to. Similar to giving a salesperson credit for an order. This would involve a custom dropdown at checkout that's required, and then that would be passed into the database and show up in the order screen etc.

is this possible out of the box, or could we get help implementing something like this?