This episode is for members only

Sign up to access "Build an E-Commerce Platform" right now.

Get started
Already a member? Sign in to continue
Playing
11. Setting up product stock

Episodes

0%
Your progress
  • Total: 8h 42m
  • Played: 0m
  • Remaining: 8h 42m
Join or sign in to track your progress
01. Introduction and demo
9m 42s
0%
02. Installing Laravel, Breeze and Livewire
4m 47s
0%
03. Creating categories
9m 4s
0%
04. Recursively displaying categories
8m 21s
0%
05. Product model and migration
2m 50s
0%
06. Showing a product
7m 50s
0%
07. Product variation setup
10m 26s
0%
08. Creating the product selector
10m 34s
0%
09. Loading child variation dropdowns
4m 28s
0%
10. Faking adding the final variation
9m 33s
0%
11. Setting up product stock
4m 34s
0%
12. Calculating variation stock levels
9m 1s
0%
13. Adding product images with MediaLibrary
8m 50s
0%
14. Creating the product gallery
7m 28s
0%
15. Providing a fallback image
2m 56s
0%
16. Adding media to product variations
3m 37s
0%
17. Creating the cart model
3m 37s
0%
18. Registering the cart service
6m 34s
0%
19. Creating a cart session
11m 4s
0%
20. Showing the cart in the navigation
9m 19s
0%
21. Caching the cart instance
3m 2s
0%
22. Adding items to the cart
14m 1s
0%
23. Creating the notification component
8m 5s
0%
24. Showing the user's cart
6m 50s
0%
25. Outputting cart items
4m 50s
0%
26. Showing variation specifics
8m 8s
0%
27. Updating item quantity
8m 2s
0%
28. Removing an item from the cart
6m 1s
0%
29. Calculating the cart summary
8m 7s
0%
30. Showing the category products page
5m 1s
0%
31. Indexing products in Meilisearch
8m 32s
0%
32. Hooking up products to categories
4m 15s
0%
33. Building the product browser
13m 32s
0%
34. Showing child categories
1m 51s
0%
35. Indexing product variations for filtering
8m
0%
36. Outputting variations for filtering
12m 52s
0%
37. Hooking up product filters with Livewire
7m 48s
0%
38. Filtering products
12m 24s
0%
39. Filtering by price
9m 50s
0%
40. Adding global navigation search
7m 50s
0%
41. Handling products that are not live
3m 22s
0%
42. Price range category fix
1m 18s
0%
43. Scaffolding the checkout page
8m 6s
0%
44. Listing shipping options
9m 3s
0%
45. Calculating the cart totals
2m 52s
0%
46. Validating the account form
9m 10s
0%
47. Validating the shipping form
5m 47s
0%
48. Saving the shipping address
8m 4s
0%
49. Selecting a saved shipping address
6m 39s
0%
50. Fix shipping address error for non authenticated users
1m 7s
0%
51. Redirecting if the cart is empty
2m 42s
0%
52. Checking for quantity changes
7m 11s
0%
53. Syncing if quantities have changed
11m 59s
0%
54. Flashing a message when quantities have changed
5m 48s
0%
55. Setting up for orders
5m 17s
0%
56. Creating an order
13m 24s
0%
57. Attaching variations to order
6m 13s
0%
58. Reducing stock after ordering
2m 56s
0%
59. Meilisearch filter query fix
1m 33s
0%
60. Showing the order confirmation page
7m 39s
0%
61. Attaching orders for registering guest users
5m 17s
0%
62. Scaffolding the orders page
5m 30s
0%
63. Filling in order variation details
5m 24s
0%
64. Returning the order status
4m 39s
0%
65. Detecting order status changes
10m 49s
0%
66. Sending the order status change email
5m 12s
0%
67. Sending an order confirmation email
2m 47s
0%
68. Handling deleted cart records
4m 44s
0%
69. Transferring the guest cart
2m 44s
0%
70. Creating a presenter for the order status
4m 31s
0%
71. Setting up Stripe
3m 43s
0%
72. Creating and updating a PaymentIntent
16m 21s
0%
73. The Stripe card form
3m 35s
0%
74. Validating before payment
5m 34s
0%
75. Submitting a payment
6m 40s
0%
76. Checking for a successful payment
5m 47s
0%
77. Handling Stripe client errors
3m 11s
0%
78. Entangling Stripe customer data
2m 18s
0%

Transcript

00:00
Product stock is of course really really important because we need to be able to control how much stock we have of each of the Final variations remember we can't have an overall stock for black Nike Air Force Ones We have to have an overall stock for black Air Force Ones in size eight So what we're going to do is implement the stocks table now speak a little bit about how this is going to work
00:22
What we attach it to and then as we go through the course we can start to look at our stock levels perhaps showing them inside of these drop-downs whether we have low stock and of course We're also going to want to disable these if they're out of stock because we don't want users to be able to select them So let's close everything off just so we can sort of start fresh with stock and we'll go ahead and create out a model which is
00:44
Going to represent the stock we have so let's say model stock and create a migration So let's open up the create stocks table could rename that if you wanted to What do we attach stock to well we know it's going to be a variation, so let's say foreign ID Variation ID and we'll go ahead and constrain that as well in there now
01:07
The only other thing that we want in here is the amount so let's create an integer With the amount now Let's go ahead and migrate this and we'll just fill in some records here and speak about how this is going to work We did speak about this in the introduction, but it'd be good to go over it
01:24
So over in stocks, let's add some stock to our size 8 in black So that's the parent ID of one I'm gonna add 10 in here and we'll fill in the created and updated update and that's it We now have 10 Nike Air Force Ones in black in size 8 in stock
01:42
What we're not going to do with this is when someone checks out reduce this number it doesn't make sense because then it doesn't give us a ledger of how many stocks have been added and Then how many have been removed? Ideally what we want is the sort of running list of the stock that we've added and the stock that's been taken away
02:00
This isn't by any means an advanced way of stock keeping but it works a lot better than having a single Value that you decrement and increment and then you can't keep track of what's going on So effectively what's going to happen is when someone checks out and buys two pairs We're gonna add a minus two value in here
02:20
So when we total up the amount of stock we have for a specific variant, this of course will now be eight so now that we've done that let's just finish up with the Relationships and then as we get through and start to calculate stock we can make use of them So over in the variation model, let's go ahead and create out a relationship in here and we're just going to call that stocks
02:43
So let's say return this has many and We'll just pass our stock Model into there. So that is now our stock Just as an example, let's take a really really quick example
02:58
Look at this and go over to our product drop-down blade file now eventually in here We're gonna say things like low stock when we get to implement their methods But for now, let's just take a really quick look at how we might calculate the stock that we have for a particular variation so what we're gonna do is say variation and
03:20
Stocks, I'm gonna sum up The total amount of stock let's go over give that a refresh and you can see here for black We've got zero that kind of makes sense because we don't have any stock levels for that And then for each of these we should actually see
03:36
The yeah, so I've used total that's amount We should see 10 now what's gonna happen is if we have another record in here and someone checks out with two
03:50
When that sums it up We're gonna end up with eight so bit confusing that we've got size eight and eight in stock But you know what that means? So now that we've got stock working we can go ahead and implement some other
04:03
Methods that are gonna allow us to check if it's out of stock if it's low in stock and we'll also talk about the overall stock for a particular variation For example, if eight and nine are both out of stock We shouldn't be able to select black because that doesn't have any stock in it
04:20
You can change it up to not do that But that's what we're gonna do just to make it a little bit more thorough So to finish off let's get rid of this and we can move over to changing around these drop downs based on stock levels Thank you for watching!
78 episodes8 hrs 42 mins

Overview

Build a robust e-commerce platform with a Laravel and Livewire. Features products with unlimited and flexible variations, a product browser with filters and price range slider, global product search, guest checkout, shipping and payment implementation, order status tracking and more.

Alex Garrett-Smith
Alex Garrett-Smith
Hey, I'm the founder of Codecourse!

Comments

No comments, yet. Be the first to leave a comment.