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
71. Setting up Stripe

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
In this episode we're going to take a moment to get Stripe set up, so of course we can process payments.
00:05
So we're going to go ahead and attach the Stripe library to our container, we'll take a look around Stripe if you're new, and then we'll pretty much be ready to create payment intents and go ahead and charge the user at checkout. So the first thing that we're going to do is go ahead and pull in the Stripe PHP library, so let's go ahead and grab the composer
00:24
command to do this and pull this in, it's going to go ahead and install that for us, and then before we do anything else let's go ahead and grab our keys over on Stripe, so we can attach these to our config and then go ahead and pass these into Stripe when we boot it up. So if you don't already have a Stripe account of course you're going to need to go ahead and
00:44
sign up, and then you're going to need to come over to the test mode, toggle this. Now under the developers section here, add API keys, you'll find your publishable key which is used for the client side, and your secret key which is used for the server side. So we're going to go ahead and pull in both of these, we can hit reveal test key as well, and of course go ahead and enter our
01:05
password, and once we've done that we'll go ahead and see our secret key. So what we're going to do is come over and just create out some new config in here, so let's go over to our config section, let's create out a stripe.php file, and then from here we'll just build up a new config, so we'll just return an array, and we'll say secret, and we're going to use our environment
01:30
variables for this, so let's name them now, let's say stripe secret, and we'll just say stripe key, in fact we'll pump that to the top because usually we'll put the publishable key at the top, and that's just going to be stripe key. Great, so we want to pull both of these over to our EMV, let's do this at the bottom, stripe key, and of course stripe secret. Okay, let's go ahead and
01:56
grab both of these, so copy these over here, and we're pretty much done with our config stuff. So we can reference these if we head over to config, and I think it's under services, we can use stripe inside of here, or do what we've done and create our separate config file for this, it doesn't really matter too much, but we've got that in there now. Now the next thing that we need
02:19
to do is create a service provider so we can bind this to Laravel's container, and then we can use this wherever we like. We're going to do this in a really simple way and just bind it by a string, not to an interface, just so we can conveniently pluck it out of the container wherever we need. So for this we're going to go ahead and make a provider, we could do this an app service provider,
02:40
but let's go ahead and create a stripe service provider just so it is in its own provider, and let's go ahead and open up that stripe service provider under app and providers, and we're going to come down to the register section here, and we're going to go ahead and bind this in as a singleton. So let's go ahead and say singleton stripe, and then for this all we need
03:01
to do is create our closure, and then just return a new stripe instance. So for this we're going to go ahead and return a new stripe client which is from the package that we just pulled in, and then the only thing that we really need to pass to this for our use is the stripe secret. Now that we've created that stripe config we can say stripe.secret and that'll be pulled
03:23
directly from our env. So the last thing that we need to do is just come over to config and app and go ahead and paste in our service provider in here. So let's say stripe service provider, much like we did for our cart service provider, and we're pretty much done. That is stripe pulled in and we can start to look at processing payments on the checkout.
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!