Build and Deploy a Modern Full Stack ECommerce React Application with Stripe

แชร์
ฝัง
  • เผยแพร่เมื่อ 5 ก.ย. 2024

ความคิดเห็น • 1.7K

  • @javascriptmastery
    @javascriptmastery  2 ปีที่แล้ว +141

    Build even more comprehensive, modern applications such as an AI-Powered Movie App and an NFT Marketplace application - Check it out now - www.jsmastery.pro 🔥
    I asked Sanity to hook up some free stuff for this video... They made a custom boosted free plan 👉 www.sanity.io/javascriptmastery2022

    • @banasthalividyapithevents
      @banasthalividyapithevents 2 ปีที่แล้ว +6

      Please release the nft marketplace built fast

    • @Alex-bc3xe
      @Alex-bc3xe 2 ปีที่แล้ว +5

      🎉This channel will reach 1 mil this year no doubt about it

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +3

      @@banasthalividyapithevents coming in mid May!

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +3

      @@Alex-bc3xe let's hope so! 🎉

    • @knowledgewalatech
      @knowledgewalatech 2 ปีที่แล้ว +5

      Please make full stack blog application with dark feature & infinite scroll & full responsive and support google ads . I request you please make it with your ♥️

  • @davidhendriksen
    @davidhendriksen ปีที่แล้ว +229

    I think it is not considered good practice to send sensitive information, such as cart items, directly from the client side to Stripe. This is because a malicious user could modify the prices in the line_items array before the request is sent. To mitigate this risk, it would be more secure to use the Product ID's in the line items instead of the price itself. This way, on the server-side, you can fetch the correct price for each line item. Also, making the Stripe Secret key publicly available can be very dangerous. I just wanted to give some feedback, I hope you don't take it the wrong way. Thanks for the great tutorial!

    • @carlosmontes7088
      @carlosmontes7088 ปีที่แล้ว +18

      Thanks for your advice, I recently learn backend and your way to do the process is the right way for secure the data. Maybe this tutorial is a good way to practice the basics of React but is mandatory have in mind the security factor.

    • @salmaahmed7789
      @salmaahmed7789 ปีที่แล้ว

      Thank u ❤❤❤❤

    • @_sheetalgehlot
      @_sheetalgehlot ปีที่แล้ว +2

      Hey can you provide some tutorials which provide all the information which you describe

    • @ptapollo
      @ptapollo 11 หลายเดือนก่อน +1

      Is he making the stripe secret key publicly available? The only key he’s using on the client side is the publishable key, which is meant to be used on the client side. The secret key is being used in the api folder which is code next.js makes sure does not end up on the client-side. At least, this is what I understood from what I’ve learn from next.js. Am I thinking incorrectly?
      Regarding the cart items, I also agree. Using the price sent from the client-side is not a good idea, since it can be easily manipulated.

    • @marumaru296
      @marumaru296 8 หลายเดือนก่อน

      Who are u? An engineer? Why I have to trust u?

  • @ifechukwu7379
    @ifechukwu7379 ปีที่แล้ว +12

    I'm from rural Nigeria and I'm about to start watching and learning. To give such great content for free is a blessing to humanity. This world is a better place because of people like you. God bless you. I hope to learn a lot.

  • @salmanpatrick
    @salmanpatrick 2 ปีที่แล้ว +69

    It is one of the best tutorials that I have ever seen in my web dev career. A very clean step by step process with each logic beautifully explained and in very polite way. Hats Off 🔥.
    I finished it in one and half day. At first I didn't get what's going on , I just followed him and created the entire website. After finishing I started studying the whole project and I concluded some points:
    First simply we set up the Sanity. We created two database schemas one for products and other for our banner for homepage. After setting up the schemas we created the front page of the website. Now it's on you how you wanna design the pages. The main thing he teach us that how to fetch the data from Sanity Schemas and how to display them. If you know this then you can implement the logic in any kind of website and I love that part. So we created a home page with a hero banner, products listing and footer. Also a navbar.
    Then we created products detailed page logic. We just need to fetch the specific product from the sanity products schemas. Before we were fetching the all products to display on the home page but now we only need the specific product to render dynamically on a specific page. So this can be done easily in Next JS. Again you can design that product detail page whatever you want but we learned how to fetch the specific data.
    After that we created a context using React Context hook. If you know even the basics of this hook then this part would feel like piece of cake. We created some states and then passed into the context so we can use them anywhere. We could also create those states in our slug or other pages but that's what the beauty of Context Hook that we stored all the states and functions in a single Context.
    And then the cart logic was the lil bit difficult for me but still I'm learning and experimenting on it. I think instead of using "prevQty" we can just increment the qty by using setQty(qty +1); It's very simple we don't even need that "prev" logic cuz that's bit confusing.
    And then that stripe logic was game changer for me . That filled the entire website with life.
    Thank you so much bro. I got a great opportunity to learn a lot from this tutorial. Just keep it up. Looking forward.😁

    • @PANDEYAYUSHPRAKASH
      @PANDEYAYUSHPRAKASH 2 ปีที่แล้ว +1

      i am getting error in setup of sanity could you help me

    • @salmanpatrick
      @salmanpatrick 2 ปีที่แล้ว +1

      @@PANDEYAYUSHPRAKASH what kind of error it is

    • @aquibjameelkhan1118
      @aquibjameelkhan1118 2 ปีที่แล้ว +1

      How can I reach @salman Haider. Need to talk to u

    • @salmanpatrick
      @salmanpatrick 2 ปีที่แล้ว

      @@aquibjameelkhan1118 yes bro

    • @kavyar8579
      @kavyar8579 2 ปีที่แล้ว

      Is next js a prerequisite for this project ?

  • @ryancoding6733
    @ryancoding6733 ปีที่แล้ว +27

    incredible project, as react developer i can tell everyone trying to learn just follow the steps, try to understand every task and if you feel you are struggling with something pause the video and do some research to understand it very well till you feel comfortable with it and keep going, at the end you will able to build project on your own and get a job.
    good job my friend you are always the best

  • @vidz_24
    @vidz_24 2 ปีที่แล้ว +29

    This man teaches in a very easy to understand way. Udemy teachers should emulate him. Kudos Adrian

  • @borismassesa9553
    @borismassesa9553 2 ปีที่แล้ว +91

    Adrian you’re just a gift from God the way you explain the concepts is just phenomenal…..Thanks again for another amazing project that I can code along and learn new web technology and add on my portfolio.
    Please keep doing a good work. You’re blessing a lot of people out here and inspiring 🙏🏼🙏🏼🙌🏽❤️‍🔥🙌🏽❤️‍🔥

    • @NzeluHub
      @NzeluHub 2 ปีที่แล้ว +1

      I so much agree

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +11

      Thanks so much for the kind words! I'm glad you're enjoying the projects and learning new things. :)

    • @vvek_7
      @vvek_7 ปีที่แล้ว

      Pay With Stripe is just redirecting, works sometimes only. What to do ??

  • @arnaldopires7655
    @arnaldopires7655 ปีที่แล้ว +9

    I would have loved to follow this step by step process, but this needs to be updated. I ran into so many compatibility issues and prompts I didn't know how to deal with. When running the commands the same way as the video, I got prompts I wasn't sure about how to proceed with. I also got files and folders that appeared, that when I compared to the video/github it wasn't the same. I had additional folders like "app" that got created, and in the video, it never got created, so things became confusing.
    I spent more time trying to figure out these issues, than actually writing code and following along. All this stuff is new to me and ended up being frustrating. There really aren't many videos out there that show a step by step guide on how to use these specific technologies together, so an update for 2023 would be perfect.

    • @davidrubianocripto4452
      @davidrubianocripto4452 ปีที่แล้ว

      agreed, I think the sanity cli he uses is why we cant get it to work

    • @abdullah_abisola
      @abdullah_abisola 9 หลายเดือนก่อน

      Ya I'm experiencing the same issue after putting the project on hold
      @@davidrubianocripto4452

    • @ulenund9867
      @ulenund9867 8 หลายเดือนก่อน

      I am currently facing the same issues on my end.I followed the whole process but came up with bugs & became frustrated.

    • @gabrielomane-yeboah
      @gabrielomane-yeboah 5 หลายเดือนก่อน

      ​@@ulenund9867 I also ran into the same issues but I decided to find my way around it and I'm smooth sailing. The only thing is to find the updated equivalent of the deprecated functions and refactor some of the components to render on the client. NextJS components are now server components by default so button interactions and stuff don't work till you make them client components.
      That's all

  • @thejohnsonarticle5492
    @thejohnsonarticle5492 ปีที่แล้ว +6

    I have never commented on any TH-cam video before but this one got me overwhelmed with how detail and simple to understand. Kudos 👌👍👍👌 you are an amazing teacher

  • @Tomiciatko
    @Tomiciatko ปีที่แล้ว +3

    The best code teacher I’ve ever heard. Calm and patient no background music, no ADHD. Like your style :)

    • @kingdommanga-anime151
      @kingdommanga-anime151 ปีที่แล้ว

      hello, please there is a part of the video i didn't understand. when creating the Project, there is a stage where he talks about overwriting dependencies. i did not understand what he did at that stage because he was going quite fast. Please wound you mind explaining what he did there?

  • @oduniyitinuijioluwa2768
    @oduniyitinuijioluwa2768 2 ปีที่แล้ว +5

    This man!! I have no words to just thank you! ♥️ only God can express my gratitude towards you!

  • @MichaelPulliam
    @MichaelPulliam ปีที่แล้ว +3

    I'm glad everyone else is having great results from this tutorial. I am unable to get sanity working? I wasn't prompted to setup an account or name the project. I tried installing TLS 1.2.. not sure what I'm doing wrong.

  • @DeveloperJunaid
    @DeveloperJunaid 2 ปีที่แล้ว +8

    When he says "This is the best project video that you can currently find on the youtube", I BELIEVE THAT 🔥❤

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +1

      Thank you so much for your support!

    • @DeveloperJunaid
      @DeveloperJunaid 2 ปีที่แล้ว

      @@javascriptmastery You deserve more than that Adrian

    • @shubiie
      @shubiie 2 ปีที่แล้ว

      hey @Developer Junaid I am facing little problem while following this Tutorial , can you please Help Me to solve this ?

    • @DeveloperJunaid
      @DeveloperJunaid 2 ปีที่แล้ว

      @@shubiie Yes sure, how may I help you?

    • @hisoka9067
      @hisoka9067 ปีที่แล้ว

      Can anyone send the DFD diagram and ER diagram of this project?

  • @alinionutraileanu7887
    @alinionutraileanu7887 ปีที่แล้ว +4

    anyone who have problem with that error import sanity/base or something like that at the point when you create a schema.js , you need to rename index.js first with schema and vs code will automatically update and do where need to be replaced if still don't update then you need to change in sanity.config.js the import like this import { schemaTypes } from './schemas/schema' . Also to not have that error like up you need to put this in schema.js file :
    import product from "./product"
    import banner from "./banner"
    export const schemaTypes = [product, banner]

    • @muhammadazeem7444
      @muhammadazeem7444 ปีที่แล้ว

      Thanks bro

    • @alinionutraileanu7887
      @alinionutraileanu7887 ปีที่แล้ว

      @@muhammadazeem7444 you're welcome !

    • @mansouryuniev6726
      @mansouryuniev6726 ปีที่แล้ว +1

      much thanks, helped a lot

    • @mansouryuniev6726
      @mansouryuniev6726 ปีที่แล้ว

      @@alinionutraileanu7887 also, did u not faced errors with client.js file and those exports? im getting this error n im stuck
      './lib/client.js:1:0
      Module not found: Can't resolve '@/sanity/client''

  • @jashanmago9825
    @jashanmago9825 2 ปีที่แล้ว +5

    Tomorrow I've to start my first paid project! And guess what, it's a ecommerce site! What a timing!

  • @clipsandsips373
    @clipsandsips373 9 หลายเดือนก่อน +3

    bro you are an angel for real the amount of effort you put on you videos shows that you not doing it for money you just love what you doing and we love you keep up the good work my G

  • @manuel3699
    @manuel3699 ปีที่แล้ว +1

    What I like the most is the pronunciation, I'm improving my English while I'm learning to become a developer. And with you I don't need subtitles, it's great. But by far the best thing is your content and the professional approach you give it. Thank you very, very much 😀😀

  • @mvrius2924
    @mvrius2924 2 ปีที่แล้ว +5

    I've never thought I'll see a video la this for free on youtube. You're a legend man

  • @knowthis5
    @knowthis5 2 ปีที่แล้ว +1

    3:04:10 to onward. You might face issue with bad error 500 req.body is not a function that is because we are passing stringified JSON and then applying map on string body .. Change " req.body.map((item)=>{} " to " JSON.parse(req.body).map((item)=>{ } "

  • @andrejkling3886
    @andrejkling3886 2 ปีที่แล้ว +6

    Each your project is individual... It's just incredible amazing Adrian. Gratitude ... It's a lot of efforts

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +1

      Thank you so much for your kind words, I really appreciate it! :)

  • @sayeghjoe
    @sayeghjoe 2 ปีที่แล้ว +50

    You’ve made some amazing videos Adrian but I think this is your BEST one yet. Truly remarkable. This is a game changer. Thank you

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +8

      I'm so glad you think so Joseph! Enjoy!

    • @mohamaddarwish3765
      @mohamaddarwish3765 2 ปีที่แล้ว

      Does this deployment in vercel, does it free or not?

    • @stephan3199
      @stephan3199 2 ปีที่แล้ว +1

      @@mohamaddarwish3765 100% free

    • @mohamaddarwish3765
      @mohamaddarwish3765 2 ปีที่แล้ว

      @@stephan3199 tqsm

    • @kingdommanga-anime151
      @kingdommanga-anime151 ปีที่แล้ว

      hello, please there is a part of the video i didn't understand. when creating the Project, there is a stage where he talks about overwriting dependencies. i did not understand what he did at that stage because he was going quite fast. Please wound you mind explaining what he did there?

  • @naijaspeed8456
    @naijaspeed8456 2 ปีที่แล้ว +11

    Your courses are even more better than some Udemy paid courses. Thank u so much for sharing this great tutorial. Indeed u make learning easier for people like me.

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +1

      Thanks so much for the kind words! I'm glad you're enjoying the courses. :)

  • @kennedyfreitas7548
    @kennedyfreitas7548 2 ปีที่แล้ว +7

    if you're having problems with the parsing error after creating the .babelrc file. do this instead:
    {
    "presets": ["next/babel"],
    "plugins": []
    }
    and do not forget to update the eslintrc as well

    • @025_h_mohitkumardora5
      @025_h_mohitkumardora5 2 ปีที่แล้ว

      Bro can you plz tell me how to update eslintrc

    • @kennedyfreitas7548
      @kennedyfreitas7548 2 ปีที่แล้ว +1

      @@025_h_mohitkumardora5 {
      "extends": ["next/babel","next/core-web-vitals"]
      }

  • @user-wz3ei3nx7q
    @user-wz3ei3nx7q 2 ปีที่แล้ว +3

    hi I am from South Korea. I watch your videos every day. Thank you so much for always uploading great videos. your video is cool and the content is cool!! And I'm not good at English, but I can understand you, so this is a perfect video. Thank you for always.

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว

      Thank you so much for being a loyal subscriber and for your kind words! I'm glad you enjoy the videos and that you can understand them. :) Keep watching and thanks for your support!

  • @boluwatife2875
    @boluwatife2875 2 ปีที่แล้ว +1

    If by any chance you run into an issue with the javascript mastery coupon saying "cannot load scripts because running scripts is disabled " then clear your console and input this first "set-ExecutionPolicy RemoteSigned -Scope CurrentUser" click enter and then type "Get-ExecutionPolicy" click enter, then lastly enter "Get-ExecutionPolicy -list" and thats all. I hope this helps. God bless
    PS. God bless you Mr. Adrian

  • @cstroudio7516
    @cstroudio7516 2 ปีที่แล้ว +4

    The absolute best! Making content like this literally changes lives.

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว

      Thank you so much for the kind words! I'm glad my videos are helping you out. :)

  • @alinionutraileanu7887
    @alinionutraileanu7887 ปีที่แล้ว

    For vercel if you have problems for not loading the website like in your local host just follow all the commands for git in the video and will work fine . for me it worked 100% . Awesome project now it's live finally !

    • @asbaqq
      @asbaqq ปีที่แล้ว

      Bro this project is free api

    • @alinionutraileanu7887
      @alinionutraileanu7887 ปีที่แล้ว +1

      @@asbaqq yes yes , just explaining for those who get some errors.

  • @ankitkumarsharma2372
    @ankitkumarsharma2372 2 ปีที่แล้ว +8

    Thanks a lot, for this valuable course. I was waiting for many days.

  • @alykane6347
    @alykane6347 2 ปีที่แล้ว +1

    Sure! Number One Js Provider is this Chanel. That's my point of #View and this is why I #Type This #Script to #React. Thanks again @JavaScript Mastery

  • @j946atFIVEFOUR88AA
    @j946atFIVEFOUR88AA 2 ปีที่แล้ว +8

    This tutorial is really great man, learned a lot and even the small stuff like ctrl+clicking a component to open it, ctrl+shift+r for a hard reset, and ctrl+space for easily importing components are really great tips that save time

    • @rown
      @rown ปีที่แล้ว

      Please how do I overwrite for dependencies, can’t find my way

    • @kingdommanga-anime151
      @kingdommanga-anime151 ปีที่แล้ว

      hello, please there is a part of the video i didn't understand. when creating the Project, there is a stage where he talks about overwriting dependencies. i did not understand what he did at that stage because he was going quite fast. Please wound you mind explaining what he did there?

  • @radiknazmiev
    @radiknazmiev 2 ปีที่แล้ว +2

    Hands down this is the best channel that brakes everything down for you!! At 56:15 do we really need to specify "slug.current" rather than just "slug"?! For each product component its own unique slug will be it received from the parent.

    • @subratsahai2017
      @subratsahai2017 ปีที่แล้ว

      It's giving error on both what to do now please help

  • @summerlin9019
    @summerlin9019 2 ปีที่แล้ว +4

    Thank you so much for the great course! I enjoyed the most part of it. However, there are 2 major bugs😟😟 in this project which will make people hesitate to really use this in their portfolio. The first major bug is, if you add ItemA to cart, then add ItemB to cart, then you add ItemA to cart again, everything will be broken once you click the cart icon in the top right corner on the page. The error reads: "TypeError: Cannot read properties of undefined (reading '_id'). The second bug is, when you increment ItemA quantity to 3 on its page, without clicking add to cart button, then you go to ItemB page, the quantity of ItemB will be 3 as default, which should be 1 instead. The first bug is really a deal breaker for those who are eager to put this project on their portfolio. I spent almost a day to code along and build the project, yet in the end I found out this critical bug. It will be super appreciated if you can provide the solution to the bugs, especially the first one. Thank you!

    • @shakirkamal4958
      @shakirkamal4958 2 ปีที่แล้ว

      have u found a solution to it ,im facing the same issue

    • @fullmetalnun
      @fullmetalnun 2 ปีที่แล้ว +4

      in StateContext.js, end cartItems.map with an else statement that just returns cartProduct.
      const updatedCartItems = cartItems.map((cartProduct) => {
      if (cartProduct._id === product._id) {
      return {
      ...cartProduct,
      quantity: cartProduct.quantity + quantity,
      };
      } else {
      return cartProduct;
      }
      });
      When it maps through cartItems, if (cartProduct._id !== product._id), it returns undefined. This fixes that issue.

    • @summerlin9019
      @summerlin9019 2 ปีที่แล้ว

      @@fullmetalnun Thank you Brent! You are the best!

    • @summerlin9019
      @summerlin9019 2 ปีที่แล้ว

      @@shakirkamal4958 Hey bro. See the correct solution Brent provided in the thread.

    • @summerlin9019
      @summerlin9019 2 ปีที่แล้ว +1

      By the way, the second bug I mentioned in this comment can be fixed by adding a useEffect hook in the ProductDetails Component in pages/product/[slug].js file. Inside the ProductDetails component, add below:
      useEffect(()=>{
      setQty(1)
      }, [product.slug])
      This way, whenever the product's slug changes, the qty to be rendered will change to 1. Good luck everyone!

  • @Binarybotsltd
    @Binarybotsltd 2 ปีที่แล้ว +1

    Definitely this is the Best E-commerce Application video on TH-cam

  • @kenthefley2226
    @kenthefley2226 2 ปีที่แล้ว +4

    Wow. I requested this project on Discord and you did it! You were probably working on this long before I made that post but still amazing. I cannot tell you enough how thankful I am that you create such useful content.

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +2

      You're welcome, glad I could help!

    • @vaniad555
      @vaniad555 2 ปีที่แล้ว

      I was hoping tailwindcss was used, also a carousel & video as a bg of about section as clients enjoy more visual presentation of their stores.

  • @OmnispectiveHub
    @OmnispectiveHub 2 ปีที่แล้ว +2

    considering the content this should be a paid course. Thank you on behalf of every struggling developer out there

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +1

      I'm glad you think the course is worth paid, but it will always be free. Thanks for the support!

  • @chaubrian5879
    @chaubrian5879 2 ปีที่แล้ว +10

    Amazing project! As an undergraduate student, I usually learn react from your videos. Thanks for your contribution!

  • @KasK6517
    @KasK6517 ปีที่แล้ว +3

    i would really love to see the updated version on this course, i love jsMastry but this course is now outdated, dependencies do not install, pages folder is missing, stripe is a real pain and its asking too much to install when i run npm command that is not covered in this couse.

    • @elbarto5421
      @elbarto5421 10 หลายเดือนก่อน

      being able to fix broken dependencies is a core skill for a professional dev

  • @nyctophilialone
    @nyctophilialone 2 ปีที่แล้ว +2

    bro you are the best teacher I've ever seen. love your contents. KEEP GOING PLEASE!!!

  • @UpdaterMC
    @UpdaterMC 2 ปีที่แล้ว +4

    letss goooo finally I will learn how to use sanity for a commerce shop thank you so much

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +3

      Thank you so much for your support! I'm excited to help you learn how to use Sanity for a commerce shop. Thanks for being a great subscriber!

  • @paradox739
    @paradox739 2 ปีที่แล้ว +31

    I got my first interview for frontend dev next week because of you. Hopefully i pass it. Thank you man 🥹

    • @billalfarabi5589
      @billalfarabi5589 2 ปีที่แล้ว

      Which job site you got it?

    • @paradox739
      @paradox739 2 ปีที่แล้ว +3

      @@billalfarabi5589 posted by portfolio on linkedin.

    • @billalfarabi5589
      @billalfarabi5589 2 ปีที่แล้ว +2

      @paradox, i am also junior frontend developer, i am job seeker. I have LinkedIn account. Whose will be perfect connection for my job or interview?

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +3

      You're welcome! Best of luck to you!

    • @paradox739
      @paradox739 2 ปีที่แล้ว +2

      @@billalfarabi5589 yes man i suggest building a site that would showcase your projects. In that case employers would see what technologies u got under your belt. This method works for me best.i got alot of messages on linkedIn after I posted my portfolio.

  • @abdulazizmamatkulov3618
    @abdulazizmamatkulov3618 2 ปีที่แล้ว +1

    1:50:05 for one liners: setQty((prevQty) => (prevQty > 1 ? prevQty - 1 : 0));

  • @beefykenny
    @beefykenny 2 ปีที่แล้ว +3

    I am currently wacthing your other e commerce web shop tutorial video. Loving it! But now you came out with another BANGER🤩

  • @pankaj2129
    @pankaj2129 2 ปีที่แล้ว +2

    You again won my heart! Incredibly a great topic. I would like you to request to kindly include some entities like stock number and automatically update the stock whenever a product is bought by someone. Assumr that our company is a large one and If we receive 1000 of new product in a single day, say, then how can we manage uploading those huge amount of images (1000 × 4 = 4000 images in a single day) in SANITY and also update its stocks.
    This features would enhance the app more, so I request you to kindly take care of the above points.

  • @douglasdavid177
    @douglasdavid177 2 ปีที่แล้ว +29

    This is incredible! Thank you for all you do! You have the most intricate projects and the best tutorials. My only fear is that you'll become so popular that employers will begin seeing your impressive projects on everyone's portfolios and I won't be able to stand out as much haha. But seriously thanks for all these awesome and well put together videos, you're great at teaching and I've learned a lot

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +3

      Thanks so much, I really appreciate it! :D

    • @shahbazmughal5808
      @shahbazmughal5808 2 ปีที่แล้ว +1

      I've been thinking about this for months man!!! All the employers are going to catch on to Adrian's phenomenal work hahahah! shoooooot!

  • @MrDenys09
    @MrDenys09 2 ปีที่แล้ว +2

    The video it's amazing but I cannot find a solution for the part when the user have to introduce his name/ shipping address (some kind of dashboard with orders you will get form clients)

  • @marloncorreiamarlin3125
    @marloncorreiamarlin3125 2 ปีที่แล้ว +9

    Sou brasileiro, e esse tutorial é de longe o melhor que já vi, mesmo tendo que ler a legenda e fazer ao mesmo tempo, obrigado por disponibilizar esse conteúdo gratuitamente!!

    • @fumalyson
      @fumalyson ปีที่แล้ว

      O gateway de pagamento vc utilizou o stripe mesmo?

    • @marloncorreiamarlin3125
      @marloncorreiamarlin3125 ปีที่แล้ว

      @@fumalyson Eu acabei modificando todo o projeto, para vender regatas da NBA, mas continuei usando o stripe

    • @enriquesantosdeoliveira5798
      @enriquesantosdeoliveira5798 ปีที่แล้ว

      Amigos vcs adaptaram para typescript ou seguiram em javascript mesmo?

    • @fumalyson
      @fumalyson ปีที่แล้ว

      @@enriquesantosdeoliveira5798 depende da proposta amigo, nao vejo pq n fzr com TS! Eh uma boa.

    • @juniorMr
      @juniorMr ปีที่แล้ว

      Esse canal é incrível

  • @jmg9509
    @jmg9509 ปีที่แล้ว

    1:21:40 - Query with Slug
    1:24:33 - getStaticPaths Error
    2:13:10 && 2:17:00 - Increment and Decrement Quantity

  • @mukhammad5464
    @mukhammad5464 2 ปีที่แล้ว +4

    Your all videos is amazing! Never stop! Thank you!

  • @JesterPiero
    @JesterPiero 2 ปีที่แล้ว +30

    To fix the order issue at 2:31 you can use the following on both the "inc" and "dec" in the toggleCartItemQuantity function ( don't forget to make it - 1 for the "dec" )
    setCartItems( prevCartItems =>
    prevCartItems.map( item => {
    if (item._id === id){
    return {...item, quantity: foundProduct.quantity + 1}
    }
    return item
    })
    );

    • @minal4801
      @minal4801 2 ปีที่แล้ว +2

      Can you fix stripe.redirecttocheckout issue

    • @matthewc3778
      @matthewc3778 ปีที่แล้ว

      Thank you for this

    • @Alalpog
      @Alalpog ปีที่แล้ว

      thanks for this man. really helped.

    • @ameralyasin3075
      @ameralyasin3075 ปีที่แล้ว

      thanks a lot ❣

    • @madjidharuna574
      @madjidharuna574 ปีที่แล้ว

      Please @martn rogue at 1:28 there's an error saying Unable to resolve image URL from source (undefined), would you please help me solving that one?

  • @xiaonanhan2360
    @xiaonanhan2360 ปีที่แล้ว +3

    Attention! For anyone who has trouble with getStaticProps around 1:28:00. Getting null as product is due to the uppercase issue. Code this const query = `*[_type == "product" && slug.current == '${slug.toLowerCase()}'][0]`; instead of slug.current == '${slug}'][0]`... toLowerCase() will FIX this problem and get your project alone.

    • @Bri4real271
      @Bri4real271 ปีที่แล้ว +1

      i'm still facing Problem with that .. can you help me to fix it .. please ?

    • @marcosmeneghetti3261
      @marcosmeneghetti3261 ปีที่แล้ว

      Thank you Xiaonan. It fixed my problem.

    • @cammysmith227
      @cammysmith227 ปีที่แล้ว

      Thank you. Upvoting for reach.

  • @wilsonmela6343
    @wilsonmela6343 2 ปีที่แล้ว +3

    Always serving us amazing contents for nothing. Man, you are one of kind. Thank you very much!.

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว

      Thank you, I'm glad you enjoy the videos!

    • @wilsonmela6343
      @wilsonmela6343 2 ปีที่แล้ว

      I do with full satisfaction. Thank you.

  • @nachozz1032
    @nachozz1032 ปีที่แล้ว +2

    Great tutorial, helped a tremendous amount in understanding Next.js and ecommerce stores in general. If I had to pick out some cons, you never implemented the local storage like you promised, and the website wasn't perfectly responsive, but that's just knit picking!

    • @aaronomale1563
      @aaronomale1563 ปีที่แล้ว

      Exactly what I just noticed. I followed the tutorial to build the app but I noticed no localstorage integration, but he used localSorage.clear() 😅. Have you implemented it?

  • @jonathanbriceno3865
    @jonathanbriceno3865 2 ปีที่แล้ว +6

    Extraordinary content, thanks to you I have managed to materialize my dream of being a developer, I have learned a lot from your videos.
    Immensely grateful. I admire you incredibly.

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +1

      Thank you so much for your kind words! I'm glad I could help you achieve your dreams.

  • @aqsa537
    @aqsa537 2 ปีที่แล้ว +1

    Two minutes into this *immediate subscribe*✨

  • @devhubmip9762
    @devhubmip9762 2 ปีที่แล้ว +9

    Thank you SO MUCH for your effort to make such an incredible, comprohensive tutorial, and sharing your knowledge/experience with us I wonder if you also could make a video (part 2) to cover the integration of a Commerce API to view in a dashboard the inventory management, orders, sales, emails, etc. (with platforms as commerce layer, snipcart, shopizer, others)? Greetings from the Netherlands!

  • @saumya8407
    @saumya8407 ปีที่แล้ว +1

    This project is 10 times better than the bootcamp projects. Thank you adrian.

  • @adriantworek1057
    @adriantworek1057 2 ปีที่แล้ว +6

    You're just a ninja :D Thank you for your work Adrian!
    Btw. guys if you have any problems while adding multiple products "again" then make sure you always return an item in map methods:
    const onAdd = (product, quantity) => {
    const checkProductInCart = cartItems.find(
    (item) => item._id === product._id
    )
    setTotalPrice((prev) => prev + product.price * quantity)
    setTotalQuantities((prev) => prev + quantity)
    if (checkProductInCart) {
    const updatedCartItems = cartItems.map((cartProduct) => {
    if (cartProduct._id === product._id)
    return {
    ...cartProduct,
    quantity: cartProduct.quantity + quantity,
    }
    return cartProduct //

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +1

      Nice!

    • @kayub007
      @kayub007 2 ปีที่แล้ว

      thanks for this ! please i try implement local storage but i was not able to persist my total and total quantity since is not in the cart.
      do you have any sudgestion?

    • @adriantworek1057
      @adriantworek1057 2 ปีที่แล้ว

      @@kayub007 You have access to all the necessary data in StateContext.js. Try to update localStorage once you add or remove items from the cart, using localStorage method setItem. Note that if it is an object, first you will have to use JSON.stringify(obj) on this.

    • @kayub007
      @kayub007 2 ปีที่แล้ว

      @@adriantworek1057 thanks figured it out already

  • @gourabbanik2043
    @gourabbanik2043 2 ปีที่แล้ว +3

    Thank you sir I'm biggest fan of your teaching skills.

  • @darrenarmani
    @darrenarmani ปีที่แล้ว

    i like ur accent when u explain over entire video, easy to understand for me who aren't native speakers

  • @mhlengingubane2469
    @mhlengingubane2469 2 ปีที่แล้ว +4

    You're a blessing man, just what I was looking for

  • @yassiribrahim7521
    @yassiribrahim7521 2 ปีที่แล้ว +3

    as usual MrHajdin making everything special and different Thanks Boss

  • @israelbosun4032
    @israelbosun4032 ปีที่แล้ว +1

    Thank you so much Adrian, even almost a year after your tutorials are still so high quality, I just finished the project, though I could not use Stripe because of my country, I was able to use paystack to handle the payments. Really appreciate you Bro

    • @yesayajones3725
      @yesayajones3725 ปีที่แล้ว +1

      Hi Israel, I am also from a country where I can't use stripe. How did you integrate paystack. That would really be helpful.

    • @israelbosun4032
      @israelbosun4032 ปีที่แล้ว

      @@yesayajones3725 They had a very good documentation with examples, the link is on their website

    • @ulenund9867
      @ulenund9867 8 หลายเดือนก่อน

      @@israelbosun4032 Please I had dependency issues while trying to spin up the app, can you please be of help,I'll appreciate it greatly!!!

  • @klinfeldt82
    @klinfeldt82 ปีที่แล้ว +4

    Really enjoyed this project overall, particularly the exposure to Sanity. Looking forward to more tutorials!

  • @valentineejakpomewhe4352
    @valentineejakpomewhe4352 2 ปีที่แล้ว +3

    thank you so much for this video, please in your next ecommerce course, please add products with multiple variations, no e-commerce tutorial online covers that, all have single product style.

  • @joetechstudio
    @joetechstudio ปีที่แล้ว +1

    I love your work, Thank you for your good work

  • @shalakagaikwad8813
    @shalakagaikwad8813 2 ปีที่แล้ว +6

    I needed this tutorial. Thank you so much! I have been following you from a while now. You are doing an amazing job Adrian! So so grateful!!

  • @Komal_Aggarwal
    @Komal_Aggarwal ปีที่แล้ว +4

    I'm having an error while deploying to vercel ...plz someone help

    • @randomjapanesee
      @randomjapanesee ปีที่แล้ว

      | ^
      10 |
      11 | Best Selling Products
      12 | Speakers of many variations

  • @bijendernagar15
    @bijendernagar15 2 ปีที่แล้ว +3

    No words for your efforts Thank you so much

  • @elmedinluckin1979
    @elmedinluckin1979 ปีที่แล้ว +1

    I buy React course from Maximilian from Udemy, really bro you are life saver for him. If anybody read this comment trust me, when you come to lection FOOD APP in Maximilian course, when you see explanation with useContext you will destroy your PC.

  • @paulchambers7586
    @paulchambers7586 ปีที่แล้ว +3

    This tutorial was extremely clear, concise, and easy to follow. I'm sure I'm going to buy one of the pro courses now. Bravo!

    • @vvek_7
      @vvek_7 ปีที่แล้ว

      Pay With Stripe is just redirecting, works sometimes only what to do ?

  • @massimomaxima6064
    @massimomaxima6064 2 ปีที่แล้ว +1

    I have fallen in love with your contents. Man you are a alpha human

  • @karoldawid8981
    @karoldawid8981 10 หลายเดือนก่อน +6

    After over a year, trying to create this project is a nightmare :p

  • @cyrusbigham7075
    @cyrusbigham7075 2 ปีที่แล้ว +2

    Dude I did your last tutorial as well. You are the best teacher by far! Thank you for what you do and look forward to more videos!

  • @Ephraim86
    @Ephraim86 7 หลายเดือนก่อน +3

    I am not getting the same file structure when running npx create-next-app, any ideas?

    • @kdogpwns
      @kdogpwns 6 หลายเดือนก่อน +1

      Say no to app router and src dir
      Would you like to use `src/` directory? … No
      Would you like to use App Router? (recommended) › No

  • @silesianguy87
    @silesianguy87 2 ปีที่แล้ว +1

    Love Sanity with Next. Now You r showing best practising. Many thank You Adrian.

  • @boaytariq988
    @boaytariq988 2 ปีที่แล้ว +4

    Words cant explain the extraordinary quality of the course "Strongly Recommended"
    I am learning development on different platforms like youtube,udemy,coursera .. since 2 years ,
    But believe me this channel is perfect! Real JS Master ... Keep it up - God bless you~

  • @dhruvagarwal4787
    @dhruvagarwal4787 2 ปีที่แล้ว +1

    The brand you used BOAT is an Indian Brand , great to see it in your video 👍

  • @Ta_3-k8n
    @Ta_3-k8n 2 ปีที่แล้ว +6

    I feel so happy when I see you post a new video ❤️, your project based tutorials are priceless literally. So thank you, if i may just suggest to make one day a full functional bug tracker web app.

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว

      Thank you so much for your kind words! I'm glad you enjoy my videos and find them helpful. I'll definitely keep your suggestion in mind for future projects. :)

    • @Ta_3-k8n
      @Ta_3-k8n 2 ปีที่แล้ว +1

      @@javascriptmastery wow you've replayed, thank you so much, we really should appreciate what you're doing for us with this quality content 🔥 you're making for free, that's huuuge man. Keep up. And we'll try to support u the way we can.
      Thanks for keeping the suggestion in mind 😉, love u.

  • @abdullah_abisola
    @abdullah_abisola ปีที่แล้ว

    I just finished HTML CSS and Basic JS
    This is probably a bit of a stretch but since my focus on making money is through e-commerce, WE GOTTA LEARN IT!

  • @leonardovillar5985
    @leonardovillar5985 2 ปีที่แล้ว

    When I say that I learn much more with youtube videos I'm talking about this. Sincerily one of the best contents that I have seen on youtube. I'm from Brazil and I'm so thankful about all your videos teaching us how to improve our habilities. Thank you so much.

  • @amd859
    @amd859 2 ปีที่แล้ว +3

    Cannot destructure property 'image' of 'product' as it is null. Getting a error when i click on show now button in the banner section.

  • @mathiaschevez1629
    @mathiaschevez1629 2 ปีที่แล้ว +2

    ANOTHER BANGER! Thanks man I really appreciate the time you take to post these.

  • @Clytax
    @Clytax 2 ปีที่แล้ว +12

    Amazing Video! But I have one thing: It would be really cool to see you code the CSS and explain it. I know it would lead to a longer video but it could be really useful for the viewers as web design "unfortunately" includes styling :D

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +10

      You're right, it would be cool to see the CSS too. I'll try to include it in future videos. Thanks for the suggestion!

    • @mvmclx5622
      @mvmclx5622 2 ปีที่แล้ว

      Thats a good point. CSS is so far from what is interesting when trying to learn the inner workings of everything. Styling obviously is a major component, and the master does well with not bringing in multiple conflicting files that do more harm than good when just wanting to get things rolling, but I would also like to painfully get a better grasp on exactly what the styles are doing. Ive been the last 6 hours messing around with the footer banner for shits and giggles, and I always arrive at the same conclusion "WE GOTTA KEEP EM SEPERATED"

    • @jesseemana9598
      @jesseemana9598 2 ปีที่แล้ว

      I mean, even just looking at the separate CSS file and referring to the corresponding class works just as fine as long as you know css

    • @vaniad555
      @vaniad555 2 ปีที่แล้ว

      @@javascriptmastery I would suggest getting further into query language GROQ that can be tested in vision - sanity, where we get to connect data for the potential client. I am mainly using tailwindcss, benefits are endless.

  • @rown
    @rown ปีที่แล้ว +2

    Please sir, how do I overwrite the dependencies? 😢 it’s been my issue for 3days now.. please help 🙏🏽

  • @scarswell12
    @scarswell12 11 หลายเดือนก่อน +7

    I do not have the same file structure after running npx create-next-app any ideas why. Specifically there isn't a pages, git, or styles folder.

    • @sankalpsharma3907
      @sankalpsharma3907 9 หลายเดือนก่อน +2

      its the same case with me 🥲

  • @ShubhamSharma-xt5ft
    @ShubhamSharma-xt5ft 2 ปีที่แล้ว +2

    amazing project, best content in the youtube

  • @codewithfarhad8594
    @codewithfarhad8594 2 ปีที่แล้ว +4

    amazing course. thanks for keeping my tutorial hell so much entertaining 😍😂

  • @nolameshows9535
    @nolameshows9535 2 ปีที่แล้ว +2

    Adrian doesn't miss!👏

  • @emran310
    @emran310 2 ปีที่แล้ว +7

    This video is great no doubt about that. It would be great if you could show how to create customer account where order tracking and purchase information can be shown. Great stuff keep up the good work

  • @dagirekavorwuchi9628
    @dagirekavorwuchi9628 ปีที่แล้ว +2

    This question might be slightly funny for senior developers but I am starting fresh and when I installed sanity and react it asked me if I wanted to include typescript... Is it better practice if I always include typescript or when should I use and when I shouldn't?

  • @abdellahdamri656
    @abdellahdamri656 2 ปีที่แล้ว +3

    Adrian This is so dope !! I always look forward for your next project. I was just wondering if you could make a video about building a youtube like project with the MERN Stack. Thank you Keep up the good work

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว

      I'll definitely consider it! Thanks for the suggestion.

  • @yashasvitripathi8863
    @yashasvitripathi8863 2 ปีที่แล้ว

    I must say, you really work very hard to provide newie learner for getting their hands on such Tech. I pray after getting a dignified job I could buy you a coffee.

  • @anonymouseverx
    @anonymouseverx 2 ปีที่แล้ว +6

    I can't explain my feelings when seeing a new project video from you. 👌 Thank you so much for everything, Adrian.

  • @shortsplanet763
    @shortsplanet763 2 ปีที่แล้ว

    Feels great to have an ecommerce store of mine...thanks to JavaScript Mastery

  • @hsuwater2857
    @hsuwater2857 2 ปีที่แล้ว +2

    for the function toggleCartItemQuantity, I think this way will be nice for preserving the position of the item~
    setCartItems([
    ...newCartItems.slice(0, index),
    { ...foundProduct, quantity: foundProduct.quantity + 1 },
    ...newCartItems.slice(index)
    ])

  • @tegacreatives1673
    @tegacreatives1673 2 ปีที่แล้ว +6

    You really deserve an award for the best react tutorials. Love to see more react native videos too 💯💯

  • @ayoubouahid5852
    @ayoubouahid5852 ปีที่แล้ว +2

    Hi Adrian on everyone. Got a probleme in the part "hook up sanity" after creating the client.js and completing him and create the const "getServerProps" exactly like in the video it's telling me this error : "TypeError: Cannot read properties of undefined (reading 'fetch')" and there is a mark between await and client.fetch... Thank you for you responses everyone.

  • @sthefanocarvalho2823
    @sthefanocarvalho2823 2 ปีที่แล้ว +3

    Thanks, Adrian! You are an inspiration! The content is amazing!

    • @javascriptmastery
      @javascriptmastery  2 ปีที่แล้ว +1

      Thank you so much! I'm glad you're enjoying it!

  • @juancarlosrodriguez1085
    @juancarlosrodriguez1085 8 หลายเดือนก่อน

    THANKS ADRIAN!!!...This is a great course. I made did twice. I learned a lot!!!...and I also worked fixing some bugs which is a part of the learning process as well. For the future, I would like to see this same project with log in feature and localStorage implementation...

  • @shaheennamboori
    @shaheennamboori 8 หลายเดือนก่อน +3

    🤔I was trying to learn as a total beginner , but seems like this video is outdated. Dependencies shown in the video and his gihub code is itself different