perf: use cached single docs (#30536)

frappe.local is request specific thread local, hence is almost as good
as no caching.
diff --git a/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py b/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py
index b5cd067..881d833 100644
--- a/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py
+++ b/erpnext/e_commerce/doctype/e_commerce_settings/e_commerce_settings.py
@@ -146,12 +146,7 @@
 
 
 def get_shopping_cart_settings():
-	if not getattr(frappe.local, "shopping_cart_settings", None):
-		frappe.local.shopping_cart_settings = frappe.get_doc(
-			"E Commerce Settings", "E Commerce Settings"
-		)
-
-	return frappe.local.shopping_cart_settings
+	return frappe.get_cached_doc("E Commerce Settings")
 
 
 @frappe.whitelist(allow_guest=True)
diff --git a/erpnext/education/doctype/education_settings/education_settings.py b/erpnext/education/doctype/education_settings/education_settings.py
index cde5089..295aa3a 100644
--- a/erpnext/education/doctype/education_settings/education_settings.py
+++ b/erpnext/education/doctype/education_settings/education_settings.py
@@ -41,4 +41,4 @@
 
 
 def update_website_context(context):
-	context["lms_enabled"] = frappe.get_doc("Education Settings").enable_lms
+	context["lms_enabled"] = frappe.get_cached_doc("Education Settings").enable_lms
diff --git a/erpnext/templates/pages/home.py b/erpnext/templates/pages/home.py
index bca3e56..47fb89d 100644
--- a/erpnext/templates/pages/home.py
+++ b/erpnext/templates/pages/home.py
@@ -8,7 +8,7 @@
 
 
 def get_context(context):
-	homepage = frappe.get_doc("Homepage")
+	homepage = frappe.get_cached_doc("Homepage")
 
 	for item in homepage.products:
 		route = frappe.db.get_value("Website Item", {"item_code": item.item_code}, "route")
@@ -20,10 +20,10 @@
 	context.homepage = homepage
 
 	if homepage.hero_section_based_on == "Homepage Section" and homepage.hero_section:
-		homepage.hero_section_doc = frappe.get_doc("Homepage Section", homepage.hero_section)
+		homepage.hero_section_doc = frappe.get_cached_doc("Homepage Section", homepage.hero_section)
 
 	if homepage.slideshow:
-		doc = frappe.get_doc("Website Slideshow", homepage.slideshow)
+		doc = frappe.get_cached_doc("Website Slideshow", homepage.slideshow)
 		context.slideshow = homepage.slideshow
 		context.slideshow_header = doc.header
 		context.slides = doc.slideshow_items
@@ -46,7 +46,7 @@
 		order_by="section_order asc",
 	)
 	context.homepage_sections = [
-		frappe.get_doc("Homepage Section", name) for name in homepage_sections
+		frappe.get_cached_doc("Homepage Section", name) for name in homepage_sections
 	]
 
 	context.metatags = context.metatags or frappe._dict({})