patch fixes
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 6e15779..de51782 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -107,7 +107,6 @@
 erpnext.patches.v4_2.set_item_has_batch
 erpnext.patches.v4_2.update_stock_uom_for_dn_in_sle
 erpnext.patches.v5_0.recalculate_total_amount_in_jv
-erpnext.patches.v5_0.remove_shopping_cart_app
 erpnext.patches.v5_0.update_companywise_payment_account
 erpnext.patches.v5_0.remove_birthday_events
 erpnext.patches.v5_0.update_item_name_in_bom
diff --git a/erpnext/patches/v5_0/newsletter.py b/erpnext/patches/v5_0/newsletter.py
index 06580a7..1969c3c 100644
--- a/erpnext/patches/v5_0/newsletter.py
+++ b/erpnext/patches/v5_0/newsletter.py
@@ -5,7 +5,6 @@
 import frappe.permissions
 
 def execute():
-	frappe.reload_doc("core", "doctype", "block_module")
 	frappe.reload_doctype("User")
 	frappe.reload_doctype("Lead")
 	frappe.reload_doctype("Contact")
@@ -22,7 +21,12 @@
 	for userrole in frappe.get_all("UserRole", "parent", {"role": "Sales Manager"}):
 		if frappe.db.exists("User", userrole.parent):
 			user = frappe.get_doc("User", userrole.parent)
-			user.add_roles("Newsletter Manager")
+			user.append("user_roles", {
+				"doctype": "UserRole",
+				"role": "Newsletter Manager"
+			})
+			user.flags.ignore_mandatory = True
+			user.save()
 
 	# create default lists
 	general = frappe.new_doc("Newsletter List")
diff --git a/erpnext/patches/v5_0/remove_shopping_cart_app.py b/erpnext/patches/v5_0/remove_shopping_cart_app.py
deleted file mode 100644
index babde58..0000000
--- a/erpnext/patches/v5_0/remove_shopping_cart_app.py
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
-# License: GNU General Public License v3. See license.txt
-from __future__ import unicode_literals
-
-def execute():
-	from frappe.installer import remove_from_installed_apps
-	remove_from_installed_apps("shopping_cart")