There are many aspects that you should remember on or while dealing with the customer.
Before dealing out with the client, you should always remember what is the budget and requirement of the client, as these will be the threshold on which you will be stacking your expense.
You can consider things like distribute your website work into tasks like -
- Backend (PHP, Python or Java)
- Server (Apache or HTTPD or any other server)
- Normal website hosting
- Dedicated hosting
- Cloud hosting
- VPS hosting, etc.
- Data entry (client may ask for pre-addition of data in database)
- Admin panel for data/access control.
- Inclusion of photographs/images of client's business or products which in turn may increase the cost if dedicated photographer is used.
- Dedicated email provider (many web hosting provides it with additional cost)
I have purposely mentioned about UI/Backend as selecting appropriate language may increase/decrease the cost as well.
If you are choosing Wordpress you may need very least handling of deployments. For Python (Django/Flask), some web hosting servers provides in build support for running it. For Java (SpringBoot or any other framework), you may need to have a server to deploy it for which you may additionaly need root access on command line on the hosting webservers.
Client may also ask for good UI themes which may add another cost.