feat: Add new registration flow
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()