diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.js b/erpnext/hub_node/doctype/hub_settings/hub_settings.js
index 089f499..445f5a8 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.js
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.js
@@ -1,3 +1,5 @@
 frappe.ui.form.on("Hub Settings", {
-	onload_post_render: function() {},
+	refresh: function(frm) {
+		$('#toolbar-user .marketplace-link').toggle(!frm.doc.disable_marketplace);
+	},
 });
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.json b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
index e230515..cd2c5e8 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.json
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.json
@@ -19,6 +19,71 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "disable_marketplace", 
+   "fieldtype": "Check", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Disable Marketplace", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "translatable": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
+   "depends_on": "eval:!doc.disable_marketplace", 
+   "fieldname": "marketplace_settings_section", 
+   "fieldtype": "Section Break", 
+   "hidden": 0, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Marketplace Settings", 
+   "length": 0, 
+   "no_copy": 0, 
+   "permlevel": 0, 
+   "precision": "", 
+   "print_hide": 0, 
+   "print_hide_if_no_value": 0, 
+   "read_only": 0, 
+   "remember_last_selected_value": 0, 
+   "report_hide": 0, 
+   "reqd": 0, 
+   "search_index": 0, 
+   "set_only_once": 0, 
+   "translatable": 0, 
+   "unique": 0
+  }, 
+  {
+   "allow_bulk_edit": 0, 
+   "allow_in_quick_entry": 0, 
+   "allow_on_submit": 0, 
+   "bold": 0, 
+   "collapsible": 0, 
+   "columns": 0, 
    "default": "https://hubmarket.org", 
    "fieldname": "hub_url", 
    "fieldtype": "Data", 
@@ -86,7 +151,7 @@
    "columns": 0, 
    "fieldname": "sync_in_progress", 
    "fieldtype": "Check", 
-   "hidden": 0, 
+   "hidden": 1, 
    "ignore_user_permissions": 0, 
    "ignore_xss_filter": 0, 
    "in_filter": 0, 
@@ -479,8 +544,8 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-08-29 17:46:30.413159", 
- "modified_by": "Administrator", 
+ "modified": "2018-08-31 02:40:41.244423", 
+ "modified_by": "ameya@coffee.com", 
  "module": "Hub Node", 
  "name": "Hub Settings", 
  "name_case": "", 
@@ -513,6 +578,5 @@
  "sort_field": "modified", 
  "sort_order": "DESC", 
  "track_changes": 1, 
- "track_seen": 0, 
- "track_views": 0
+ "track_seen": 0
 }
\ No newline at end of file
diff --git a/erpnext/public/js/hub/hub_factory.js b/erpnext/public/js/hub/hub_factory.js
index 57f27f9..5c9178f 100644
--- a/erpnext/public/js/hub/hub_factory.js
+++ b/erpnext/public/js/hub/hub_factory.js
@@ -2,12 +2,20 @@
 
 frappe.views.marketplaceFactory = class marketplaceFactory extends frappe.views.Factory {
 	show() {
-		if (frappe.pages.marketplace) {
-			frappe.container.change_to('marketplace');
-			erpnext.hub.marketplace.refresh();
-		} else {
-			this.make('marketplace');
-		}
+		is_marketplace_disabled()
+			.then(disabled => {
+				if (disabled) {
+					frappe.show_not_found('Marketplace');
+					return;
+				}
+
+				if (frappe.pages.marketplace) {
+					frappe.container.change_to('marketplace');
+					erpnext.hub.marketplace.refresh();
+				} else {
+					this.make('marketplace');
+				}
+			});
 	}
 
 	make(page_name) {
@@ -23,10 +31,22 @@
 	}
 };
 
+function is_marketplace_disabled() {
+	return frappe.model.with_doc('Hub Settings')
+		.then(doc => doc.disable_marketplace);
+}
+
 $(document).on('toolbar_setup', () => {
 	$('#toolbar-user .navbar-reload').after(`
 		<li>
-			<a href="#marketplace/home">${__('Marketplace')}
+			<a class="marketplace-link" href="#marketplace/home">${__('Marketplace')}
 		</li>
 	`);
+
+	is_marketplace_disabled()
+		.then(disabled => {
+			if (disabled) {
+				$('#toolbar-user .marketplace-link').hide();
+			}
+		});
 });
