|Think about Loose Coupling|
Just some thoughts:
How do you go about quoting a price for coding an entire site?
Make a project plan, including and detailing all tasks to be done (find Andy Lester's slides for his talk on project estimation). Don't forget to put some oxygen on your deadlines.
After you know (roughly, of course) how long it's gonna take you, you can put a price for your work during that time.
Be sure the client agrees with the list of tasks to do (that is, that the client knows which functionalities are going to be implemented), and make sure it's in writing, so no one demands you anything else later on ("but the site must do Y!", "Sure, but that was not comtemplated, so it's gonna cost/take more").
There're bound to be bugs that will only be uncovered when the system is being put to use
Include X hours of support in the pack they're buying. Every time you fix a bug, report how long it took you to fix it.
The amount of time for support should probably be based on the project complexity.