diff --git a/erpnext/public/js/hub/components/edit_details_dialog.js b/erpnext/public/js/hub/components/edit_details_dialog.js
new file mode 100644
index 0000000..b341901
--- /dev/null
+++ b/erpnext/public/js/hub/components/edit_details_dialog.js
@@ -0,0 +1,45 @@
+function EditDetailsDialog(primary_action, defaults) {
+	let dialog = new frappe.ui.Dialog({
+		title: __('Update Details'),
+		fields: [
+			{
+				"label": "Item Name",
+				"fieldname": "item_name",
+				"fieldtype": "Data",
+				"default": defaults.item_name,
+				"reqd": 1
+			},
+			{
+				"label": "Hub Category",
+				"fieldname": "hub_category",
+				"fieldtype": "Autocomplete",
+				"default": defaults.hub_category,
+				"options": [],
+				"reqd": 1
+			},
+			{
+				"label": "Description",
+				"fieldname": "description",
+				"fieldtype": "Text",
+				"default": defaults.description,
+				"options": [],
+				"reqd": 1
+			}
+		],
+		primary_action_label: primary_action.label || __('Update Details'),
+		primary_action: primary_action.fn,
+	});
+
+	hub.call('get_categories')
+		.then(categories => {
+			categories = categories.map(d => d.name);
+			dialog.fields_dict.hub_category.df.options = categories;
+			dialog.fields_dict.hub_category.set_options();
+		});
+
+	return dialog;
+}
+
+export {
+	EditDetailsDialog
+};
\ No newline at end of file
diff --git a/erpnext/public/js/hub/pages/Item.vue b/erpnext/public/js/hub/pages/Item.vue
index 841d004..b8399e3 100644
--- a/erpnext/public/js/hub/pages/Item.vue
+++ b/erpnext/public/js/hub/pages/Item.vue
@@ -35,6 +35,7 @@
 <script>
 import ReviewArea from '../components/ReviewArea.vue';
 import { get_rating_html } from '../components/reviews';
+import { EditDetailsDialog } from '../components/edit_details_dialog';
 
 export default {
 	name: 'item-page',
@@ -200,6 +201,7 @@
 		make_dialogs() {
 			this.make_contact_seller_dialog();
 			this.make_report_item_dialog();
+			this.make_editing_dialog();
 		},
 
 		add_to_saved_items() {
@@ -284,6 +286,36 @@
 			});
 		},
 
+		make_editing_dialog() {
+			this.edit_details_dialog = EditDetailsDialog(
+				{
+					fn: (values) => {
+						this.update_details(values);
+						this.edit_details_dialog.hide();
+					}
+				}, {
+						'item_name': this.item.item_name,
+						'hub_category': this.item.hub_category,
+						'description': this.item.description,
+				}
+			);
+		},
+
+		update_details(values) {
+			frappe.call(
+				'erpnext.hub_node.api.update_item',
+				{
+					ref_doctype: 'Hub Item',
+					ref_doc: this.item.name,
+					data: values
+				}
+			)
+			.then((r) => {
+				this.get_item_details();
+				frappe.show_alert(__(`${this.item.item_name} Updated`));
+			})
+		},
+
 		contact_seller() {
 			this.contact_seller_dialog.show();
 		},
@@ -296,7 +328,10 @@
 		},
 
 		edit_details() {
-			frappe.msgprint(__('This feature is under development...'));
+			if (!hub.is_seller_registered()) {
+				frappe.throw(__('Please login as a Marketplace User to edit this item.'));
+			}
+			this.edit_details_dialog.show();
 		},
 
 		unpublish_item() {
