Build an e-commerce platform

126 episodes
14 hours  16 mins
Hold up, there's an newer version of this course available! Build an E-Commerce Platform

About this course

Build a robust e-commerce platform with a Laravel API and Nuxt frontend. Products with flexible variations, proper price implementation, a full checkout experience with dynamic shipping and payment implementations (including saved payment methods) and loads more.

Your teacher

Alex Garrett-Smith
Alex Garrett-Smith

Hey, I'm the founder of Codecourse!

course episodes (126)

01. Introduction and demo

6m 10s

02. Setting up Laravel

3m 27s

03. Setting up Nuxt and Bulma

7m 26s

04. Setting up for testing

2m 57s

05. Building the category model

15m 1s

06. Category index endpoint

12m 24s

07. Showing categories and children

14m 29s

08. Simple products

3m 7s

09. Product index endpoint

7m 54s

10. Product show endpoint

4m 3s

11. Showing a product

3m 50s

12. Hooking up products to categories

3m 16s

13. Scoping products by category

14m 41s

14. Simple CORS support

1m 17s

15. Showing products in categories

8m 3s

16. Product variations

9m 1s

17. Product variation types

12m 54s

18. Fixing failing tests for the product index

2m 57s

19. Quick scoper trait refactor

1m 2s

20. Product prices

11m 5s

21. Product variation prices

7m 42s

22. Updating the client prices


23. Showing product variations


24. Showing if the product variation price differs

1m 10s

25. Selecting product variations to add

9m 52s

26. Product stock blocks

6m 49s

27. Basics orders to test stock

5m 10s

28. Product stock database view

13m 34s

29. Product variation stock checks

9m 12s

30. Showing if a variation is out of stock

1m 15s

31. Base product stock information

4m 58s

32. Showing if a product is out of stock

1m 5s

33. Updating dropdown with stock count

3m 36s

34. JSON response profiling

8m 6s

35. Setting up authentication

3m 52s

36. Registering a user

13m 6s

37. Authenticating a user

7m 47s

38. The me endpoint

7m 37s

39. Authenticating on the client

7m 46s

40. Updating the navigation

2m 19s

41. The user cart relationship

5m 57s

42. Adding items to the cart

23m 35s

43. Incrementing quantity when adding

4m 17s

44. Updating product cart quantities

10m 14s

45. Deleting cart products

4m 27s

46. Emptying the cart

1m 41s

47. Getting the user’s cart


48. Getting the cart for every request

4m 27s

49. Building the cart page

9m 58s

50. Deleting cart items

3m 25s

51. Updating cart item quantities

3m 39s

52. Checking if the cart is empty

5m 5s

53. Disabling the checkout button

2m 36s

54. Getting the cart totals

6m 8s

55. Showing the cart subtotal

2m 52s

56. Syncing the cart

10m 28s

57. Testing minimum stock

1m 13s

58. Getting changed status on the client

1m 51s

59. Showing the product variation type

1m 4s

60. SQL optimizations

3m 57s

61. Adding items on the client

3m 41s

62. Countries table

2m 37s

63. Addresses setup

7m 32s

64. Listing addresses

5m 26s

65. Storing an address

9m 55s

66. Toggling default addresses

5m 49s

67. Building the checkout page

7m 42s

68. Showing the default address

8m 38s

69. Switching the shipping address

8m 51s

70. Creating a new shipping address

7m 37s

71. Countries endpoint

2m 44s

72. Country dropdown selector

4m 31s

73. Creating shipping methods

4m 6s

74. Hooking up shipping methods to countries

6m 4s

75. Getting the right shipping methods for an address

11m 41s

76. Using v-model with a shipping address

2m 16s

77. Outputting available shipping methods

3m 41s

78. Adding shipping onto the subtotal


79. Displaying shipping price and total at checkout

9m 54s

80. Fixing shipping error on checkout

1m 40s

81. Adding address and shipping method relation to orders

8m 49s

82. Order statuses and defaults

5m 46s

83. Basic order validation

12m 4s

84. Custom shipping method validation rule

7m 7s

85. Creating an order

9m 59s

86. Revisiting orders and product relations

4m 58s

87. Fixing cart store failing test

1m 26s

88. Attaching products when ordering

10m 40s

89. Refactoring to a custom collection

7m 56s

90. Failing if the cart is empty

4m 7s

91. Emptying the cart when ordering

6m 37s

92. Returning order details

7m 41s

93. Fixing up failing order test

1m 13s

94. Placing orders from the checkout

7m 7s

95. Warning users of cart changes, plus some refactoring

14m 55s

96. Alerting on checkout changes

11m 52s

97. Fixing the quantity UI bug

3m 35s

98. Orders endpoint

9m 32s

99. Formatting order total and subtotal

5m 33s

100. Order index setup

2m 49s

101. Listing through orders

11m 36s

102. Product variation product relationship

5m 46s

103. Updating product variations in orders

2m 12s

104. Refactoring statuses to dynamic components

5m 35s

105. Fixing a syncing bug

5m 26s

106. Setting up payment methods

10m 59s

107. Refactoring defaults to a trait

4m 9s

108. Payment methods index endpoint

7m 7s

109. Showing and switching payment methods

11m 8s

110. Attaching payment methods to orders

9m 45s

111. Setting up Stripe

2m 36s

112. Mocking up our payment gateway

11m 40s

113. Storing a payment method

17m 59s

114. Responding with a card and writing some tests

11m 8s

115. Storing a new card with Stripe


116. Event handler for processing the payment

4m 36s

117. Processing a payment

5m 18s

118. Handling a failed payment

7m 19s

119. Handling a successful payment

2m 40s

120. Fixing failing 'cart empty' test

3m 41s

121. Testing listeners

10m 3s

122. Using Mockery to test more complex listeners

15m 9s

123. Client authentication middleware

6m 11s

124. Tweaking order status components

3m 34s

125. Order transactions setup

4m 47s

126. Storing transactions

4m 15s
Want to stay in the loop about new content?
Of course you do.

© 2023 Codecourse Ltd. All Rights Reserved. Born in the UK.