diff --git a/erpnext/hub_node/__init__.py b/erpnext/hub_node/__init__.py
index 61676ad..f3a0098 100644
--- a/erpnext/hub_node/__init__.py
+++ b/erpnext/hub_node/__init__.py
@@ -73,18 +73,14 @@
 	if not len(items_to_publish):
 		return
 
-	# TODO: sync
-	# for item_code in items_to_publish:
-	# 	frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
-
-	# hub_settings = frappe.get_doc('Hub Settings')
-	# remote_id = item_sync_preprocess()
-	# hub_settings.sync(remote_id)
-
-	# return remote_id
+	for item_code in items_to_publish:
+		frappe.db.set_value('Item', item_code, 'publish_in_hub', 1)
 
 	hub_settings = frappe.get_doc('Hub Settings')
-	hub_settings.sync('TEST')
+	remote_id = item_sync_preprocess()
+	hub_settings.sync(remote_id)
+
+	return remote_id
 
 def item_sync_preprocess():
 	# Call Hub to make a new activity
diff --git a/erpnext/hub_node/doctype/hub_settings/hub_settings.py b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
index 727ad62..81264dd 100644
--- a/erpnext/hub_node/doctype/hub_settings/hub_settings.py
+++ b/erpnext/hub_node/doctype/hub_settings/hub_settings.py
@@ -41,27 +41,8 @@
 				'trigger_name': 'items-sync'
 			}).insert()
 
-			time.sleep(2)
-			frappe.publish_realtime('items-sync', {"progress_percent": 20})
-			print("=======================")
-
-			time.sleep(2)
-			frappe.publish_realtime('items-sync', {"progress_percent": 40})
-			print("=======================")
-
-			time.sleep(1)
-			frappe.publish_realtime('items-sync', {"progress_percent": 80})
-			print("=======================")
-
-			time.sleep(2)
-			frappe.publish_realtime('items-sync', {"progress_percent": 100})
-			print("=======================")
-
-			frappe.db.set_value('Hub Settings', 'Hub Settings', 'last_sync_datetime', frappe.utils.now())
-
-			# TODO: sync
-			# self.sync_in_progress = 1
-			# doc.run()
+			self.sync_in_progress = 1
+			doc.run()
 		else:
 			frappe.throw("No remote ID specified")
 
diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js
index 703da1f..543a0b3 100644
--- a/erpnext/public/js/hub/marketplace.js
+++ b/erpnext/public/js/hub/marketplace.js
@@ -832,7 +832,7 @@
 		frappe.realtime.on("items-sync", (data) => {
 			this.$wrapper.find('.progress-bar').css('width', data.progress_percent+'%');
 
-			if(data.progress_percent === 100) {
+			if(data.progress_percent === 100 || data.progress_percent === '100') {
 				setTimeout(() => {
 					hub.settings.sync_in_progress = 0;
 					frappe.db.get_doc('Hub Settings')
@@ -1039,13 +1039,7 @@
 		});
 		this.items_to_publish = items_to_publish;
 
-		return frappe.db.set_value("Hub Settings", "Hub Settings", {
-			custom_data: JSON.stringify(items_to_publish),
-			// TODO: sync
-			// sync_in_progress: 1
-		}).then(() => {
-			hub.settings.sync_in_progress = 1;
-		})
+		return this.set_sync(items_to_publish)
 		.then(frappe.call(
 			'erpnext.hub_node.publish_selected_items',
 			{
@@ -1053,6 +1047,22 @@
 			}
 		));
 	}
+
+	set_sync(items_to_publish) {
+		hub.settings.sync_in_progress = 1;
+		return frappe.db.set_value("Hub Settings", "Hub Settings", {
+			custom_data: JSON.stringify(items_to_publish),
+			sync_in_progress: 1
+		})
+	}
+
+	reset_sync()  {
+		hub.settings.sync_in_progress = 0;
+		return frappe.db.set_value("Hub Settings", "Hub Settings", {
+			custom_data: '',
+			sync_in_progress: 0
+		})
+	}
 }
 
 erpnext.hub.PublishedProducts = class PublishedProducts extends SubPage {
