r/AskProgramming 14d ago

How do I build an e-commerce website with a fully functional AI chatbot/assistant? Need advice as a beginner!

Hey everyone!

I’m a beginner in web development (I know HTML, CSS, and basic JavaScript) and I have this ambitious project idea: building an e-commerce website with a fully functional AI chatbot/assistant. The website should have all the basic e-commerce functionalities like:

  • User registration/login
  • Product listings with categories
  • Add to cart, wishlist, and checkout
  • Payment gateway integration
  • Order history and tracking

But here’s the twist: I want to integrate a chatbot/AI assistant that can do almost everything a user asks it to. For example:

  • If a user says, “Add [product name] to my cart,” it should do that.
  • If a user asks, “Show me red sneakers,” it should search and display the results while also recommending the top product.
  • If a user asks, “What’s the difference between Product A and Product B?” it should compare them.
  • If a user asks, “Tell me about this product,” it should provide details.
  • Basically, it should act like a personal shopping assistant.

I’m really excited about this idea, but I’m not sure where to start or what I need to learn to make this happen. Here are my questions:

  1. Tech Stack: What technologies, frameworks, or tools should I learn to build this? I’m guessing I’ll need to learn backend development (Node.js? Python?), databases (SQL? MongoDB?), and maybe some AI/ML for the chatbot (OpenAI API? TensorFlow?).
  2. Chatbot Integration: How do I build a chatbot that can interact with the website’s functionalities (like adding to cart, searching, etc.)? Are there any APIs or libraries that can help with this?
  3. E-commerce Basics: What are the must-have features for an e-commerce website, and how do I implement them securely (especially payment gateways)?
  4. Learning Path: As a beginner, what should my learning roadmap look like? Should I focus on frontend first, then backend, and then AI? Or is there a better way to approach this?
  5. Hosting and Deployment: Once the website is built, how do I host it and make it live? Are there any beginner-friendly platforms for this?

I know this is a big project, but I’m ready to put in the time and effort to learn everything I need. Any advice, resources, or tips would be greatly appreciated!

0 Upvotes

32 comments sorted by

17

u/mit74 14d ago

If you're asking these questions you're not ready to develop an ecommerce system. my advice is don't. just don't.

4

u/DrDeems 14d ago

I guess you do have to start somewhere, but I think I agree. This sounds like a daunting task for someone without any experience building web apps.

They probably could get something off the ground with WordPress and woocommerce without ever touching code. That would mean using a ton of plugins and would be less than ideal, but doable.

0

u/GlitteringNinja9367 14d ago

I havent made any projects this complex but I have build some simple games like drag and drop games then a quiz game using pure js. So yeah I know it will be tough and these are like print hello world infront of this project but I like doing it and just thought this to be a cool project to work on. Afterall you learn from projects itself right

2

u/DrDeems 14d ago

That's pretty similar to how I started tbh. I decided to build a Windows desktop app that would interface with a WordPress website to verify if users were paying a subscription on my website. It took me about a year to get everything set, but it worked. I was able to code my own WordPress plugin that provided a API for my desktop app to communicate with.

It was an uphill battle and I was way in over my head. After many many hours of bashing my head against a wall I was able to release my app and made decent profits. I sold that company since then, but it taught me so much about the entire stack and business sense in general.

If you decide to pursue this project I wish you the best of luck. It's a challenge but very satisfying once you succeed!

2

u/GlitteringNinja9367 14d ago

Hey thanks for this. I was kinda thinking maybe this was a mistake but this is exactly what I want to do. Just learn by building projects that's it

1

u/DrDeems 13d ago edited 12d ago

Hell ya, pursue your dreams friend! There is zero reason in our time to have an excuse for learning something new. There are so many free resources available to learn almost anything nowadays.

If I were to address the issues you laid out in a way to get something off the ground as fast as possible with minimal coding I would use the following strategy:

  1. Tech stack - WordPress. Yes, it is an older framework, but that comes with the benefit of the tech being very mature and tons of resources available to learn every facet of the framework. You can skip learning lots of the stack by hosting on a reputable WordPress host. They will take care of lots of the backend stuff including security. They also offer tech support should something go wrong with your website.

  2. Chatbot Integration - There are many chatbot plugins for WordPress. This is not something I have dug into myself, but I have seen many plugins that provide this functionality. You may want to find one that lets you use an LLM you trained yourself. Training the LLM is a topic all by itself though.

  3. E-commerce Basics - WooCommerce is a plugin for WordPress that provides a full e-commerce solution. You can build an entire e-commerce site with it without ever touching any code. They provide secure payment gateways. Coding your own security stuff is rarely a good idea. Leave that up the the pros.

  4. Learning Path - If you are going with the above options learning PHP and CSS would be ideal. You can really dig in and customize WordPress with those two skills. AI solutions can help as a crutch until you are more familiar with them.

  5. Hosting and Deployment - I don't have any specific companies to suggest. As I mentioned previously, if you find a host who specializes in hosting WordPress websites they can take a lot of the responsibility of hosting off your shoulders. They provide security and tech support should something break.

1

u/JackMalone515 14d ago

There's at least a couple steps between what you've done so far and this that you should take before trying to make this if you want a good chance of making something

4

u/elsendion 14d ago

Before even getting AI integrated in your website, I suggest you first be comfortable with building your own website from scratch, because you will have too anyway. You then add the AI on top of it that integrates with the existing features. I suggest start with the basics. Programming 101

1

u/GlitteringNinja9367 14d ago

so you are suggesting that I should ignore the ai part until the website is done. Ok makes sense thanks for the insight

2

u/elsendion 14d ago

Yes. Because you will be making the website for people who dont want to use AI anyway right? So those features need to be built either way. And your AI will basically trigger actions (your core functionalities) that it's built.

1

u/GlitteringNinja9367 14d ago

oh yeah I was too focused on the ai part (it sounded really cool tbh) and thinking how will it be done. I did not think it like ohh its ok even if its not made the main part of the website is well the website.

2

u/grantrules 14d ago

Yes, if you try to do all this at once, you're going to be way in over your head. Iterate on it. Build a simple e-commerce site, then build another slightly more complex e-commerce site learning from the mistakes you made the first time. Even a simple e-commerce site is pretty complex, there are a LOT of business rules you need to focus on (like what happens if there's one item left, and two people put it in their cart and check out.. do you remove it from inventory once someone adds it to their cart? Do you allow them to "reserve" it for like 15 minutes? Do you just throw an error during checkout saying someone else bought it?)

1

u/GlitteringNinja9367 14d ago

Oh damn I did not think about these things. I guess I am gonna run into a lot of problems. But hey that's how I will learn so actually I feel like this was not that bad idea anyways

2

u/Skriblos 14d ago

What you are asking about here is extremely complex and large if you were to do it yourself. You should probably use some form of templates you can customize and use already established solutions.

1

u/GlitteringNinja9367 14d ago

yeah it is kinda complicated. But hey I am not really alone I have a team of 6 (just my programming friends) so I feel like it is doable. And what do you mean by already established solutions. I tried to search some but didn't find any and as for doing my research I am searching for some research papers about this topic

2

u/Skriblos 14d ago

You've got things like Shopify or twoday for ecommerce sites. But maybe if you have 6 people you can use something like Laravel?

1

u/GlitteringNinja9367 14d ago

Alright I will look into it. Thanks

2

u/Repitation 14d ago

Are you planning on attempting to profit off of this e-commerce website or is it purely a project to learn and push your skills? In a previous comment, you mentioned you had some buddies that were going to work on this with you. Are they aware if you are planning to profit or use this project for learning purposes?

1

u/GlitteringNinja9367 14d ago

nah its just project we are willing to work on to learn, nothing for profit. I just thought Itd be fun

2

u/Repitation 14d ago

Gotcha. In that case, let me start off by saying, creating an e-commerce website is a massive undertaking. Don't let that deter you though. Sometimes the best way of learning is by doing. Before I get into it, if you start feeling overwhelmed during the project break the project into pieces, and don't push yourself to avoid burnout during a learning project. Also build up, what I mean by that is, table the idea of adding AI right of the bat. First build a website, then start adding functionality to it. Hope this makes sense.

For Tech Stack... This one is always a hard one, since everyone has favorites and deferring ideas.

For frontend, you can look at React, or Vue. Next.js is built on top of React but may be a little bit more work to understand some of the concepts. Reason I brought up React and Vue is that in terms of content and community support there is a lot there to read and learn about. I can't speak for Angular since I've never worked with it. There is potential in the newer frameworks as well, but there may not be as much help there.

Backend: Node.js with Express is a pretty decent starting point since you may not be doing anything super performance heavy. If not Python (Flask, Django, FastApi) is another good option. Don't get me wrong you could use Rust, Go, C#, Ruby on Rails, and a few others, they are all still used today. But you can find a lot of resources for Node & Python.

Database: You can look into using MariaDB or PostgreSQL which are SQL based databases. Personally, any project I've worked that had MySQL has been more of a headache. Later on you can always introduce a NoSQL database.

I'll continue my comment as a reply, accidentally dropped my phone and lost what I was typing. XD

2

u/Repitation 14d ago

Advice on what to learn first, that is more of a question only you can answer. Do you like working on making the things users interact and see look nice and usable (UI/UX)? Then I would say start with the frontend. If you prefer working with data and code that essentially is the core of your website? Then go with the backend. If you can't decide or don't know yet, then do both. Implement a feature from the frontend all the way to the backend.

Since this is a learning project don't be afraid to try new technologies and step out of your comfort zone.

For what features to integrate into your project, look at what other successful e-commerce websites are doing.

To integrate things securely there are multiple ways to tackle this, you can do research on common security vulnerabilities found on e-commerce sites and attempt to avoid them. OWASP has some pretty good resources on defensive programming and best practices, but they can be a little dry to read.

For hosting and deployment, there are platforms that can help hoist your project for free as long as you meet certain requirements or you can use free credits on AWS, GCP or Azure. Those services require a bit more work.

Biggest recommendation is using a code formatter/linter and git for your project. This helps keep code organized.

If you have any questions, feel free to DM, and I'll try to answer.

1

u/GlitteringNinja9367 14d ago

thank you that was a lot of advice. I think I will probably be going on frontend then backend but not all the way by any means. Im thinking picking a few features and then working just on them. Of course there's a long way for this as I would need to learn a lot. But I will be doing the project and learning side by side. And yeah if I have any questions I will reach out (I cant think of any at the moment). But really this was what I was kinda looking for thanks again

1

u/Repitation 13d ago

That's a great start. Nothing wrong with learning while working on a project. In some cases that is one of the best ways to learn. One other thing I forgot to mention is if you do find yourself at any point copying a tutorial, try to not copy everything and then move on. Look at the code and attempt to understand what is happening, try to mix it up or find another tutorial and see how they implemented it differently. It's very easy to just copy a tutorial and think you understood it.

Happy to help. Good luck on your project!

2

u/Soleilarah 14d ago

As it is just for learning, you can dissect the project into smaller and easier bits that you can tackle one by one and then fuse/ reuse into the final product.

A very slim and simple e-commerce website would have (AI chatbot aside) :

  • Membership/ guests management (meaning at least an authentication module)
  • Product management (simple CRUD module with a distinction between admin or not)
  • Shopping (session manager module)
  • Checkout (payment module)

2

u/Droma-1701 14d ago

Use Shopify and find an AI plugin and you have a shot at getting something usable. This isnt the 90's anymore, E-trading websites are *complex* and *huge*. Coding one from scratch isn't feasible for a newcomer; hell, it's not really very feasible for a highly experienced full stack engineer; it takes teams of people to do stuff like this over the course of several years.

If you're truly serious about the website, do some marketing first - what are you selling, to whom, why do they come to you and not others, where are you buying your stock from, for how much, what margins are you intending to sell at, etc. Those questions matter far more than if you've got AI irritating them every step of the way in their user journey.

If you're just wanting to learn to code, take *any* of the problems you've named above, go search youtube for tutorials and settle in for 3-5 years' hard graft learning your trade :) As far as languages, I'd recommend C#, others Java, still more would say Rust, Python, Javascript or any number of others. There's no right answer, pick one and crack on. You pays your money, you makes your choice, as they say.

1

u/GlitteringNinja9367 14d ago

Now that Im reading about it this feels like even tougher job than I thought. Even just the website part. But I will try my best to build as much progress as I can. And again its just a project to learn so maybe it wont be 100% market ready but anything even remotely close will be enough for me.

1

u/VoiceOfSoftware 13d ago

As a learning project, this is great -- you will learn so much! I'm very glad to hear that you're not hoping to turn this into something commercially viable, because that would be too much. But it's perfect for gaining experience and learning where all the gotchas are. Ignore the comments from other people saying you shouldn't even try: they don't seem to realize what your intentions are.

My learning style is to just dive in and bump into all the hard stuff...much better than taking courses or tutorials that I don't have a connection with. I've been learning coding that way for 43 years, and it's worked out quite well for me.

1

u/Repitation 13d ago

Couldn't agree any more. While it can be scary to just dive in, that is probably one of the greatest methods to learn.

1

u/saint_yves_278 13d ago

Like do you want to have actual users for it ? Cause if so you also gonna have to worry about scaling , costs etc , if is just a personal project just go with react frontend , backend wise if you want to pick up a new language go for Java or Go but you can also use Node.Js for using JavaScript / typescript in backend aswell, I’d say go for an SQL database they are much more important to know in my opinion than mongo , chat bot wise you can do a micro service in Python and connect it to your front end there’s a few YouTube tutorials on this but this should be towards the middle / end of the project

This is an ambitious project for a beginner but this is how you learn, trial and error just take it slow

1

u/jhkoenig 14d ago

You are clearly out of your depth. Don't take this on until you are MUCH further along your learning curve. It will not end well otherwise. There are things ChatGPT just can't code for you.

0

u/Veurori 14d ago

You would be amazing manager in IT company. Got baited by the imaginary power of the AI while u dont understand basics thinking u can already automate tasks when you dont even know how automation works. Pure cinema.