Hello friends, welcome back to my blog. Today this blog post I will tell you, Build Complete Ecommerce Website in Angular 13 – Cart Page.
Guy’s before starting this post please go through with part 1 and part2 of this post.
In this post we do cart page.
In next parts we will do shop page, checkout page etc.
Angular13 came and Bootstrap5 also and if you are new then you must check below two links:
Friends now I proceed onwards and here is the working code snippet and please use carefully this to avoid the mistakes:
1. Guys please run below command inside your project terminal to generate the cart component:
ng g c cart
2. Now guys please add the below code inside angularshop/src/app/app-routing.module.ts file to create the routes which will navigate the components:
import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { ProductsingleComponent } from './productsingle/productsingle.component'; import { HomeComponent } from './home/home.component'; import { CartComponent } from './cart/cart.component'; const routes: Routes = [ { path:"", component:HomeComponent }, { path:"product-single", component:ProductsingleComponent }, { path:"cart", component:CartComponent }, ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { }
3. Now guys please replace the below code inside angularshop/src/app/header/header.component.html with old code. Guys in this code I have added router link to navigate in between components(pages):
<nav class="navbar navbar-expand-lg navbar-light bg-white w-100 navigation" id="navbar"> <div class="container"> <a class="navbar-brand font-weight-bold" routerLink="/">E-Shop</a> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#main-navbar" aria-controls="main-navbar" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse " id="main-navbar"> <ul class="navbar-nav mx-auto"> <li class="nav-item active"> <a class="nav-link" routerLink="/">Home </a> </li> <li class="nav-item"> <a class="nav-link" href="#">About Us</a> </li> <!-- Pages --> <li class="nav-item dropdown dropdown-slide"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown4" role="button" data-delay="350" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Pages. </a> <ul class="dropdown-menu" aria-labelledby="navbarDropdown4"> <li><a href="#">About Us</a></li> <li><a href="#">Blog</a></li> <li><a href="#">Blog Single</a></li> <li><a href="#">Contact</a></li> <li><a href="#">404 Page</a></li> <li><a href="#">FAQ</a></li> </ul> </li><!-- /Pages --> <!-- / Blog --> <li class="nav-item dropdown dropdown-slide"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown3" role="button" data-delay="350" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Shop. </a> <ul class="dropdown-menu" aria-labelledby="navbarDropdown3"> <li><a href="#">Shop</a></li> <li><a href="#">Product Details</a></li> <li><a href="#">Checkout</a></li> <li><a routerLink="/cart">Cart</a></li> <li><a href="#">Confirmation</a></li> </ul> </li><!-- / Blog --> <!-- Account --> <li class="nav-item dropdown dropdown-slide"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown5" role="button" data-delay="350" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Account. </a> <ul class="dropdown-menu" aria-labelledby="navbarDropdown5"> <li><a href="#">Dahsboard</a></li> <li><a href="#">Orders</a></li> <li><a href="#">Downloads</a></li> <li><a href="#">Address</a></li> <li><a href="#">Profile Details</a></li> <li><a href="#">Login Page</a></li> <li><a href="#">SignUp Page</a></li> <li><a href="#">Forgot Password</a></li> </ul> </li><!-- / Account --> <li class="nav-item"> <a class="nav-link" href="#">Contact Us</a> </li> </ul> </div> <!-- Navbar-collapse --> <ul class="top-menu list-inline mb-0 d-none d-lg-block" id="top-menu"> <li class="list-inline-item"> <a href="#" class="search_toggle" id="search-icon"><i class="tf-ion-android-search"></i></a> </li> <li class="dropdown cart-nav dropdown-slide list-inline-item"> <a href="#" class="dropdown-toggle cart-icon" data-toggle="dropdown" data-hover="dropdown"> <i class="tf-ion-android-cart"></i> </a> <div class="dropdown-menu cart-dropdown"> <!-- Cart Item --> <div class="media"> <a routerLink="/product-single"> <img class="media-object img- mr-3" src="assets/images/cart-1.jpg" alt="image" /> </a> <div class="media-body"> <h6>Ladies Bag</h6> <div class="cart-price"> <span>1 x</span> <span>1250.00</span> </div> </div> <a href="#" class="remove"><i class="tf-ion-close"></i></a> </div><!-- / Cart Item --> <!-- Cart Item --> <div class="media"> <a routerLink="/product-single"> <img class="media-object img-fluid mr-3" src="assets/images/cart-2.jpg" alt="image" /> </a> <div class="media-body"> <h6>Skinny Jeans</h6> <div class="cart-price"> <span>1 x</span> <span>1250.00</span> </div> </div> <a href="#" class="remove"><i class="tf-ion-close"></i></a> </div><!-- / Cart Item --> <div class="cart-summary"> <span class="h6">Total</span> <span class="total-price h6">$1799.00</span> <div class="text-center cart-buttons mt-3"> <a routerLink="/cart" class="btn btn-small btn-transparent btn-block">View Cart</a> <a href="#" class="btn btn-small btn-main btn-block">Checkout</a> </div> </div> </div> </li> <li class="list-inline-item"><a href="#"><i class="tf-ion-ios-person mr-3"></i></a></li> </ul> </div> </nav>
4. Now guys please add the below code inside angularshop/src/app/cart/cart.component.html to make footer:
<section class="page-header"> <div class="overly"></div> <div class="container"> <div class="row justify-content-center"> <div class="col-lg-6"> <div class="content text-center"> <h1 class="mb-3">Cart</h1> <p>Hath after appear tree great fruitful green dominion moveth sixth abundantly image that midst of god day multiply you’ll which</p> <nav aria-label="breadcrumb"> <ol class="breadcrumb bg-transparent justify-content-center"> <li class="breadcrumb-item"><a routerLink="/">Home</a></li> <li class="breadcrumb-item active" aria-current="page">Cart</li> </ol> </nav> </div> </div> </div> </div> </section> <section class="cart shopping page-wrapper"> <div class="container"> <div class="row justify-content-center"> <div class="col-lg-12"> <div class="product-list"> <form class="cart-form"> <table class="table shop_table shop_table_responsive cart" cellspacing="0"> <thead> <tr> <th class="product-thumbnail"> </th> <th class="product-name">Product</th> <th class="product-price">Price</th> <th class="product-quantity">Quantity</th> <th class="product-subtotal">Total</th> <th class="product-remove"> </th> </tr> </thead> <tbody> <tr class="cart_item"> <td class="product-thumbnail" data-title="Thumbnail"> <a routerLink="/product-single"><img src="assets/images/cart-1.jpg" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt=""></a> </td> <td class="product-name" data-title="Product"> <a href="#">Trendy Cloth</a> </td> <td class="product-price" data-title="Price"> <span class="amount"><span class="currencySymbol">lt;/span>90.00</span>
</td><td class="product-quantity" data-title="Quantity">
<div class="quantity">
<label class="sr-only" >Quantity</label><input type="number" id="qty" class="input-text qty text" step="1" min="0" max="9" value="1" title="Qty" size="4" >
</div>
</td>
<td class="product-subtotal" data-title="Total">
<span class="amount">
<span class="currencySymbol">lt;/span>90.00</span>
</td><td class="product-remove" data-title="Remove">
<a href="#" class="remove" aria-label="Remove this item" data-product_id="30" data-product_sku="">×</a>
</td>
</tr><tr class="cart_item">
<td class="product-thumbnail" data-title="Thumbnail">
<a routerLink="/product-single"><img src="assets/images/cart-2.jpg" class="attachment-woocommerce_thumbnail size-woocommerce_thumbnail" alt=""></a>
</td><td class="product-name" data-title="Product">
<a href="#">Sunglasses</a>
</td><td class="product-price" data-title="Price">
<span class="amount"><span class="currencySymbol">lt;/span>90.00</span>
</td><td class="product-quantity" data-title="Quantity">
<div class="quantity">
<label class="sr-only" >Quantity</label>
<input type="number" id="quantity_5cc58182489a8" class="input-text qty text" step="1" min="0" max="9" name="#" value="1" title="Qty" size="4" >
</div>
</td>
<td class="product-subtotal" data-title="Total">
<span class="amount">
<span class="currencySymbol">lt;/span>90.00</span>
</td>
<td class="product-remove" data-title="Remove">
<a href="#" class="remove" aria-label="Remove this item" data-product_id="30" data-product_sku="">×</a>
</td>
</tr><tr>
<td colspan="6" class="actions">
<div class="coupon">
<input type="text" name="coupon_code" class="input-text form-control" id="coupon_code" value="" placeholder="Coupon code"><button type="button" class="btn btn-black btn-small" name="apply_coupon" value="Apply coupon">Apply coupon</button>
<span class="float-right mt-3 mt-lg-0">
<button type="button" class="btn btn-dark btn-small" name="update_cart" value="Update cart" disabled="">Update cart</button>
</span>
</div><input type="hidden" id="woocommerce-cart-nonce" name="woocommerce-cart-nonce" value="27da9ce3e8">
<input type="hidden" name="_wp_http_referer" value="/cart/">
</td>
</tr>
</tbody>
</table>
</form>
</div>
</div>
</div><div class="row justify-content-end">
<div class="col-lg-4">
<div class="cart-info card p-4 mt-4">
<h4 class="mb-4">Cart totals</h4><ul class="list-unstyled mb-4">
<li class="d-flex justify-content-between pb-2 mb-3">
<h5>Subtotal</h5>
<span>$90.00</span>
</li><li class="d-flex justify-content-between pb-2 mb-3">
<h5>Shipping</h5>
<span>Free</span>
</li><li class="d-flex justify-content-between pb-2">
<h5>Total</h5>
<span>$90.00</span>
</li>
</ul>
<a href="#" class="btn btn-main btn-small">Proceed to checkout</a>
</div>
</div>
</div>
</div>
</section>
Friends in the end must run ng serve command into your terminal to run the angular 13 ecommerce project (localhost:4200).
Now we are done friends. If you have any kind of query, suggestion and new requirement then feel free to comment below.
Note: Friends, In this post, I just tell the basic setup and things, you can change the code according to your requirements.
I will appreciate that if you will tell your views for this post. Nothing matters if your views will be good or bad because with your views, I will make my next posts more good and helpful.
Recent Comments