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
25. Outputting cart items

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
So let's fill in the markup for our car item. So if we head over to car item, again, I'm going to go ahead and paste in a load of markup here. This is quite a lot, but pretty simple.
00:09
We've just got an image. We've got the formatted price of each item, the product title, the variation ancestors. So eventually, we want something like white slash 8 slash.
00:20
And we could have even a customization option after that. It doesn't really matter. But we want to show every single detail about the variation that the user has selected.
00:28
And then down here, we've got a quantity dropdown. At the moment, all of this is hard-coded to 1. We'll be updating that. And then just a Remove button, which will
00:37
delete the item from the cart. So if we come over now and give that a refresh, we end up with something that looks like this for each of the items in our cart,
00:45
again, with that dropdown and that Remove button, which at the moment doesn't do anything. OK, so let's start out with the product image. We already added images for each variation
00:56
earlier on in the course. So we know that for a variation, we can do pretty much what we did with our main product because we have the media library
01:07
package attached to this. So we're going to go ahead and say variation, get first media URL. And we're going to pass in the collection, which
01:19
is just our default collection. And really importantly, that thumbnail that we generated when we uploaded that media. So that was thumb 200 by 200.
01:28
And again, if you need a reminder, if you just head over to your variation model, we know that down here, we registered that media conversion just here when we added that items, them items.
01:38
So now that we've added that in, let's just give that a refresh. And there we go. We've got our white shoe and our black shoe here. Of course, not much information on any of these
01:47
just at the moment. Now, just going to keep an eye on our queries as well. So that doesn't look too bad at the moment. We'll monitor that as we go.
01:56
Let's go over and look at our formatted price. So over in our variation model, we know that we already have a formatted price. Let's just search for that.
02:04
And there we go. It's just using that money library and grabbing the price for the individual variation that we've created.
02:10
So that's really easy. We just say variation, formatted price, and we're done. That's going to go ahead and show us $90 for each of these because both of these variations have exactly the same price.
02:21
Now, for the product title, let's just head over to our variation model and make sure we hooked up a product relationship. And we did.
02:30
So we can just access this product overall product relationship and grab the title out because remember, each of our variations is hooked up to the base product that we have over here.
02:42
So we can easily show that this is a Nike Air Force 1. So in our product title, we just want to go ahead and say variation, product, and title. And that should show us Nike Air Force 1.
02:56
Great. Now, the variation ancestors is a little bit more complex. We will cover that in the next episode. But let's go ahead and iterate through the quantities,
03:05
so the max quantity that we can actually update that to. And before we do that, let's go over to our stocks and just change that to 5 just so we've got a little bit of difference in both of these end
03:18
variations. OK, so let's go down to our quantity. We want to basically iterate through and show this option for every single quantity that we have
03:28
or max quantity that we actually have. So in here, we're going to go ahead and create a for loop, not a for each loop. We're going to start the quantity at 1.
03:38
We're going to go ahead and say while the quantity is, if we just get rid of that extra dollar, less than or equal to the variation stock count, so the maximum stock count that we actually have.
03:49
And we want to increment the quantity for every single loop. So we'll just say plus plus. So now if we end that for loop here and we come over, what we should see is 5 for this white shoe and 10 for this one.
04:04
Now, in terms of user experience, there are probably better ways of assessing quantity. But we'll just keep it really simple for now. So the value for each of these is just
04:12
going to be the quantity digit that we have in here. And the display is, again, just going to be the quantity digit that we have inside of here. So let's just get rid of that.
04:23
And if we come over, now we can choose five of these to add to our cart. And this will be a sort of hook within LiveWire to automatically update that quantity.
04:31
And the same for this as well. We can choose a maximum of 10 because there are currently 10 in stock. And that is it.
04:39
So we're going to go over to the next episode and focus on the variation ancestors. Show these out so we've got a full picture of the exact variation that we've added to our cart.
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!

Episode discussion

No comments, yet. Be the first!