Almost any contractor or service person does the same thing! When you get work done on your car, the mechanic or gas station or dealership marks up their cost or gets a discount from the published price. It's the same thing with a plumber or electrician or other trade. They have a risk of not getting the right thing from the dealer and having to get it corrected, the risk that you will not pay them on time or at all, and on and on.
If you wanted to buy the stuff, bring it to the job and pay for it all, then he should not have added any charge. Since you elected not to go that way, I think it's reasonable. The only problem that I see is if he is "double-dipping"--getting a mark-up from the list price and getting a discount from the dealer. But how will you know. Most stores will not say much about this because, if they do, contractors will not use that store again.