diff --git a/erpnext/hub_node/api.py b/erpnext/hub_node/api.py
index af34844..12a564a3 100644
--- a/erpnext/hub_node/api.py
+++ b/erpnext/hub_node/api.py
@@ -17,31 +17,27 @@
 
 
 @frappe.whitelist()
-def register_marketplace(**kwargs):
-	settings = frappe.get_single('Marketplace Settings')
-	settings.update(kwargs)
-	settings.users = []
-
+def register_marketplace(company, company_description):
 	validate_registerer()
+
+	settings = frappe.get_single('Marketplace Settings')
+	country, currency = frappe.db.get_value('Company', company, ['country', 'default_currency'])
+
+	settings.company = company
+	settings.country = country
+	settings.currency = currency
+	settings.company_description = company_description
+
 	message = settings.register()
 
-	if message.get('email'):
+	if message.get('hub_seller_name'):
 		settings.registered = 1
+		settings.hub_seller_name = message.get('hub_seller_name')
+		settings.save()
 
-		settings.append('users', {
-			'user': current_user,
-			'name': current_user,
-			'username': kwargs.get('username'),
-			'password': message.get('password')
-		})
+		settings.add_user(frappe.session.user)
 
-		user_emails = kwargs.get('users').strip()[:-1].split(', ')
-		for email in user_emails:
-			settings.append('users', {'user': email, 'name': email})
-
-		settings.insert()
-
-	return message
+	return { 'ok': 1 }
 
 
 @frappe.whitelist()
@@ -53,8 +49,11 @@
 	if current_user == 'Administrator':
 		frappe.throw(_('Please login as another user to register on Marketplace'))
 
-	if 'System Manager' not in frappe.get_roles():
-		frappe.throw(_('Only users with System Manager role can register on Marketplace'), frappe.PermissionError)
+	valid_roles = ['System Manager', 'Item Manager']
+
+	if not frappe.utils.is_subset(valid_roles, frappe.get_roles()):
+		frappe.throw(_('Only users with {0} role can register on Marketplace').format(', '.join(valid_roles)),
+			frappe.PermissionError)
 
 
 @frappe.whitelist()
diff --git a/erpnext/hub_node/doctype/hub_user/hub_user.json b/erpnext/hub_node/doctype/hub_user/hub_user.json
index 08a59c6..a660022 100644
--- a/erpnext/hub_node/doctype/hub_user/hub_user.json
+++ b/erpnext/hub_node/doctype/hub_user/hub_user.json
@@ -3,7 +3,7 @@
  "allow_guest_to_view": 0, 
  "allow_import": 0, 
  "allow_rename": 0, 
- "autoname": "field:user", 
+ "autoname": "", 
  "beta": 0, 
  "creation": "2018-08-31 12:36:45.627531", 
  "custom": 0, 
@@ -53,7 +53,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "username", 
+   "fieldname": "hub_user_name", 
    "fieldtype": "Data", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -62,7 +62,7 @@
    "in_global_search": 0, 
    "in_list_view": 1, 
    "in_standard_filter": 0, 
-   "label": "Hub Username", 
+   "label": "Hub User", 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -121,8 +121,8 @@
  "issingle": 0, 
  "istable": 1, 
  "max_attachments": 0, 
- "modified": "2018-09-01 09:46:54.327880", 
- "modified_by": "cave@aperture.com", 
+ "modified": "2018-09-01 13:56:07.816894", 
+ "modified_by": "netchamp@rawcoderz.com", 
  "module": "Hub Node", 
  "name": "Hub User", 
  "name_case": "", 
diff --git a/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.json b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.json
index 066202a..f2d8b05 100644
--- a/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.json
+++ b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.json
@@ -215,6 +215,38 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fieldname": "hub_seller_name", 
+   "fieldtype": "Data", 
+   "hidden": 1, 
+   "ignore_user_permissions": 0, 
+   "ignore_xss_filter": 0, 
+   "in_filter": 0, 
+   "in_global_search": 0, 
+   "in_list_view": 0, 
+   "in_standard_filter": 0, 
+   "label": "Hub Seller Name", 
+   "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, 
    "fieldname": "company_logo", 
    "fieldtype": "Attach Image", 
    "hidden": 0, 
@@ -480,8 +512,8 @@
  "issingle": 1, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-08-31 22:14:59.497780", 
- "modified_by": "cave@aperture.com", 
+ "modified": "2018-09-01 14:15:40.676256", 
+ "modified_by": "suraj@rawcoderz.com", 
  "module": "Hub Node", 
  "name": "Marketplace Settings", 
  "name_case": "", 
diff --git a/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.py b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.py
index f0046d0..cfb9ace 100644
--- a/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.py
+++ b/erpnext/hub_node/doctype/marketplace_settings/marketplace_settings.py
@@ -7,6 +7,7 @@
 from frappe.model.document import Document
 from frappe.utils import add_years, now, get_datetime, get_datetime_str
 from frappe import _
+from frappe.frappeclient import FrappeClient
 from erpnext.utilities.product import get_price, get_qty_in_stock
 from six import string_types
 
@@ -15,27 +16,45 @@
 	def validate(self):
 		self.site_name = frappe.utils.get_url()
 
-
-	def get_marketplace_url(self):
-		return self.marketplace_url
-
-
 	def register(self):
-		""" Create a User on hub.erpnext.org and return username/password """
+		""" Create a User on hubmarket.org and return username/password """
 		self.site_name = frappe.utils.get_url()
 
-		register_url = self.get_marketplace_url() + '/api/method/hub.hub.api.register'
-		data = {'profile': self.as_json(), 'email': frappe.session.user}
-		headers = {'accept': 'application/json'}
+		hub_connection = self.get_connection()
 
-		response = requests.post(register_url, data = data, headers = headers)
-		response.raise_for_status()
-		if response.ok:
-			message = response.json().get('message')
-		else:
-			frappe.throw(json.loads(response.text))
+		response = hub_connection.post_request({
+			'cmd': 'hub.hub.api.register',
+			'company_details': self.as_json()
+		})
 
-		return message or None
+		return response
+
+	def add_user(self, user_email):
+		if not self.registered:
+			return
+
+		hub_connection = self.get_connection()
+
+		first_name, last_name = frappe.db.get_value('User', user_email, ['first_name', 'last_name'])
+
+		hub_user = hub_connection.post_request({
+			'cmd': 'hub.hub.api.add_hub_user',
+			'user_email': user_email,
+			'first_name': first_name,
+			'last_name': last_name,
+			'hub_seller': self.hub_seller_name
+		})
+
+		self.append('users', {
+			'user': hub_user.get('user_email'),
+			'hub_user_name': hub_user.get('hub_user_name'),
+			'password': hub_user.get('password')
+		})
+
+		self.insert()
+
+	def get_connection(self):
+		return FrappeClient(self.marketplace_url)
 
 
 	def unregister(self):
diff --git a/erpnext/public/js/hub/components/profile_dialog.js b/erpnext/public/js/hub/components/profile_dialog.js
index 03e7f48..240df82 100644
--- a/erpnext/public/js/hub/components/profile_dialog.js
+++ b/erpnext/public/js/hub/components/profile_dialog.js
@@ -1,12 +1,6 @@
 const ProfileDialog = (title = __('Edit Profile'), action={}) => {
 	const fields = [
 		{
-			// TODO: add hub check for taken
-			fieldname: 'username',
-			label: __('Username'),
-			fieldtype: 'Data'
-		},
-		{
 			fieldtype: 'Link',
 			fieldname: 'company',
 			label: __('Company'),
@@ -31,21 +25,6 @@
 			fieldtype: 'Read Only'
 		},
 		{
-			fieldname: 'users',
-			label: __('Users'),
-			fieldtype: 'MultiSelect'
-		},
-		{
-			fieldname: 'country',
-			label: __('Country'),
-			fieldtype: 'Read Only'
-		},
-		{
-			fieldname: 'currency',
-			label: __('Currency'),
-			fieldtype: 'Read Only'
-		},
-		{
 			fieldtype: 'Text',
 			label: __('About your Company'),
 			fieldname: 'company_description'
@@ -72,14 +51,6 @@
 			action.on_submit(form_values);
 		}
 	});
-
-	frappe.db.get_list('User')
-		.then(result => {
-			const users = result.map(result => result.name)
-				.filter(user => !['Guest', 'Administrator', frappe.session.user].includes(user));
-			dialog.fields_dict.users.set_data(users);
-		});
-
 	// Post create
 	const default_company = frappe.defaults.get_default('company');
 	dialog.set_value('company', default_company);
diff --git a/erpnext/public/js/hub/marketplace.js b/erpnext/public/js/hub/marketplace.js
index bea30bd..2bd5552 100644
--- a/erpnext/public/js/hub/marketplace.js
+++ b/erpnext/public/js/hub/marketplace.js
@@ -99,15 +99,20 @@
 		this.register_dialog.show();
 	}
 
-	register_marketplace(form_values) {
+	register_marketplace({company, company_email, company_description}) {
 		frappe.call({
 		    method: 'erpnext.hub_node.api.register_marketplace',
-		    args: form_values
-		}).then(() => {
-			this.register_dialog.hide();
-			frappe.set_route('marketplace', 'publish');
-
-		    erpnext.hub.trigger('seller-registered');
+		    args: {
+				company,
+				company_email,
+				company_description
+			}
+		}).then((r) => {
+			if (r.message && r.message.ok) {
+				this.register_dialog.hide();
+				frappe.set_route('marketplace', 'publish');
+				erpnext.hub.trigger('seller-registered');
+			}
 		});
 	}
 
