diff --git a/erpnext/e_commerce/product_grid.js b/erpnext/e_commerce/product_grid.js
index d29f62f..b46e0d9 100644
--- a/erpnext/e_commerce/product_grid.js
+++ b/erpnext/e_commerce/product_grid.js
@@ -61,7 +61,7 @@
 	get_card_body_html(item, title, settings) {
 		let body_html = `
 			<div class="card-body text-left card-body-flex" style="width:100%">
-				<div style="margin-top: 16px; display: flex;">
+				<div style="margin-top: 1rem; display: flex;">
 		`;
 		body_html += this.get_title(item, title);
 
@@ -76,7 +76,7 @@
 
 		}
 
-		body_html += `</div>`; // close div on line 50
+		body_html += `</div>`;
 		body_html += `<div class="product-category">${ item.item_group || '' }</div>`;
 
 		if (item.formatted_price) {
@@ -145,7 +145,7 @@
 
 	get_stock_availability(item, settings) {
 		if (!item.has_variants && !item.in_stock && settings.show_stock_availability) {
-			return `<span class="out-of-stock">Out of stock</span>`;
+			return `<span class="out-of-stock">${ __("Out of stock") }</span>`;
 		}
 		return ``;
 	}
diff --git a/erpnext/e_commerce/product_list.js b/erpnext/e_commerce/product_list.js
index 03cef60..822a9ef 100644
--- a/erpnext/e_commerce/product_list.js
+++ b/erpnext/e_commerce/product_list.js
@@ -126,7 +126,10 @@
 
 	get_stock_availability(item, settings) {
 		if (!item.has_variants && !item.in_stock && settings.show_stock_availability) {
-			return `<br><span class="out-of-stock mt-2">Out of stock</span>`;
+			return `
+				<br>
+				<span class="out-of-stock mt-2">${ __("Out of stock") }</span>
+			`;
 		}
 		return ``;
 	}
diff --git a/erpnext/public/scss/shopping_cart.scss b/erpnext/public/scss/shopping_cart.scss
index 0130e70..e25de9a 100644
--- a/erpnext/public/scss/shopping_cart.scss
+++ b/erpnext/public/scss/shopping_cart.scss
@@ -203,6 +203,10 @@
 	.wishlist-card {
 		padding: var(--padding-sm);
 		min-width: 260px;
+		.card-body-flex {
+			display: flex;
+			flex-direction: column;
+		}
 	}
 }
 
@@ -984,30 +988,18 @@
 	float: right;
 }
 
-.wishlist-cart-not-added {
-	color: var(--blue-500);
-	background-color: white;
-	border: 1px solid var(--blue-500);
-	--icon-stroke: var(--blue-500);
-	font-size: 14px;
-
-	&:hover {
-		background-color: var(--blue-500);
-		color: white;
-		--icon-stroke: white;
-	}
-}
-
 .remove-wish {
-	background-color: var(--gray-200);
+	background-color: white;
 	position: absolute;
 	cursor: pointer;
 	top:10px;
 	right: 20px;
+	width: 32px;
+	height: 32px;
+
 	border-radius: 50%;
 	border: 1px solid var(--gray-100);
-	width: 25px;
-	height: 25px;
+	box-shadow: 0px 2px 6px rgba(17, 43, 66, 0.08), 0px 1px 4px rgba(17, 43, 66, 0.1);
 }
 
 .wish-removed {
diff --git a/erpnext/templates/includes/macros.html b/erpnext/templates/includes/macros.html
index 2863e15..99b7154 100644
--- a/erpnext/templates/includes/macros.html
+++ b/erpnext/templates/includes/macros.html
@@ -145,9 +145,9 @@
 
 {%- macro wishlist_card(item, settings) %}
 {%- set title = item.web_item_name or ''-%}
-{%- set title = title[:50] + "..." if title|len > 50 else title -%}
+{%- set title = title[:90] + "..." if title|len > 90 else title -%}
 <div class="col-sm-3 wishlist-card">
-	<div class="card text-center" style="height: 100%">
+	<div class="card text-center">
 		<div class="card-img-container">
 			<a href="/{{ item.route or '#' }}" style="text-decoration: none;">
 				{% if item.image %}
@@ -159,11 +159,9 @@
 				{% endif %}
 			</a>
 			<div class="remove-wish" data-item-code="{{ item.item_code }}">
-				<span style="padding-bottom: 2px;">
-					<svg class="icon sm remove-wish-icon" style="margin-bottom: 4px; margin-left: 0.5px;">
-						<use class="close" href="#icon-close"></use>
-					</svg>
-				</span>
+				<svg class="icon icon-md remove-wish-icon">
+					<use class="close" href="#icon-delete"></use>
+				</svg>
 			</div>
 		</div>
 
@@ -173,18 +171,19 @@
 {%- endmacro -%}
 
 {%- macro wishlist_card_body(item, title, settings) %}
-<div class="card-body text-center" style="width: 100%;">
-	<div style="margin-top: 16px;">
+<div class="card-body card-body-flex text-left" style="width: 100%;">
+	<div class="mt-4">
 		<div class="product-title">{{ title or ''}}</div>
+		<div class="product-category">{{ item.item_group or '' }}</div>
 	</div>
 	<div class="product-price">
-		{{ item.formatted_price or '' }}
+		{{ item.get("formatted_price") or '' }}
 
 		{% if item.get("formatted_mrp") %}
-			<small class="ml-1 text-muted">
+			<small class="ml-1 striked-price">
 				<s>{{ item.formatted_mrp }}</s>
 			</small>
-			<small class="ml-1" style="color: #F47A7A; font-weight: 500;">
+			<small class="ml-1 product-info-green" >
 				{{ item.discount }} OFF
 			</small>
 		{% endif %}
@@ -192,7 +191,8 @@
 
 	{% if (item.available and settings.show_stock_availability) or (not settings.show_stock_availability) %}
 		<!-- Show move to cart button if in stock or if showing stock availability is disabled -->
-		<button data-item-code="{{ item.item_code}}" class="btn btn-add-to-cart w-100 wishlist-cart-not-added mt-2">
+		<button data-item-code="{{ item.item_code}}"
+			class="btn btn-primary btn-add-to-cart-list btn-add-to-cart mt-2 w-100">
 			<span class="mr-2">
 				<svg class="icon icon-md">
 					<use href="#icon-assets"></use>
@@ -201,8 +201,8 @@
 			{{ _("Move to Cart") }}
 		</button>
 	{% else %}
-		<div class="mt-4" style="color: #F47A7A; width: 100%;">
-			{{ _("Not in Stock") }}
+		<div class="out-of-stock">
+			{{ _("Out of stock") }}
 		</div>
 	{% endif %}
 </div>
diff --git a/erpnext/templates/pages/wishlist.py b/erpnext/templates/pages/wishlist.py
index 5992863..dfd60f5 100644
--- a/erpnext/templates/pages/wishlist.py
+++ b/erpnext/templates/pages/wishlist.py
@@ -21,6 +21,7 @@
 		)
 
 		if price_details:
+			item.formatted_price = price_details.get('formatted_price')
 			item.formatted_mrp = price_details.get('formatted_mrp')
 			if item.formatted_mrp:
 				item.discount = price_details.get('formatted_discount_percent') or \
@@ -42,13 +43,16 @@
 	return bool(stock_qty)
 
 def get_wishlist_items():
-	if frappe.db.exists("Wishlist", frappe.session.user):
-		return frappe.db.sql("""
-			Select
-				web_item_name, item_code, item_name, website_item, price,
-				warehouse, image, item_group, route, formatted_price
-			from
-				`tabWishlist Item`
-			where
-				parent=%(user)s""", {"user": frappe.session.user}, as_dict=1)
-	return
\ No newline at end of file
+	if not frappe.db.exists("Wishlist", frappe.session.user):
+		return []
+
+	return frappe.db.get_all(
+		"Wishlist Item",
+		filters={
+			"parent": frappe.session.user
+		},
+		fields=[
+			"web_item_name", "item_code", "item_name",
+			"website_item", "price", "warehouse",
+			"image", "item_group", "route"
+		])
