diff --git a/erpnext/hub_node/api.py b/erpnext/hub_node/api.py
index 86ad031..0c9af1a 100644
--- a/erpnext/hub_node/api.py
+++ b/erpnext/hub_node/api.py
@@ -2,6 +2,7 @@
 import frappe, requests, json
 from frappe.utils import now
 from frappe.frappeclient import FrappeClient
+from frappe.desk.form.load import get_attachments
 
 @frappe.whitelist()
 def call_hub_method(method, params=None):
@@ -31,11 +32,13 @@
 
 	valid_items = filter(lambda x: x.image and x.description, items)
 
-	def attach_source_type(item):
+	def prepare_item(item):
 		item.source_type = "local"
+		item.attachments = get_attachments('Item', item.item_code)
 		return item
 
-	valid_items = map(lambda x: attach_source_type(x), valid_items)
+	valid_items = map(lambda x: prepare_item(x), valid_items)
+
 	return valid_items
 
 @frappe.whitelist()
@@ -52,7 +55,7 @@
 			'doctype': 'Hub Tracked Item',
 			'item_code': item_code,
 			'hub_category': item.get('hub_category'),
-			# 'images': item.get('images')
+			'image_list': item.get('image_list')
 		}).insert()
 
 	try:
diff --git a/erpnext/hub_node/data_migration_mapping/item_to_hub_item/__init__.py b/erpnext/hub_node/data_migration_mapping/item_to_hub_item/__init__.py
index 3f13520..0b6b2bc 100644
--- a/erpnext/hub_node/data_migration_mapping/item_to_hub_item/__init__.py
+++ b/erpnext/hub_node/data_migration_mapping/item_to_hub_item/__init__.py
@@ -19,6 +19,7 @@
 
 	if cached_details:
 		doc.hub_category = cached_details.hub_category
+		doc.image_list = cached_details.image_list
 
 	return doc
 
diff --git a/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json b/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json
index 3ace088..bcece69 100644
--- a/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json
+++ b/erpnext/hub_node/data_migration_mapping/item_to_hub_item/item_to_hub_item.json
@@ -26,8 +26,18 @@
   }, 
   {
    "is_child_table": 0, 
+   "local_fieldname": "image_list", 
+   "remote_fieldname": "image_list"
+  }, 
+  {
+   "is_child_table": 0, 
    "local_fieldname": "item_group", 
    "remote_fieldname": "item_group"
+  }, 
+  {
+   "is_child_table": 0, 
+   "local_fieldname": "hub_category", 
+   "remote_fieldname": "hub_category"
   }
  ], 
  "idx": 1, 
@@ -35,7 +45,7 @@
  "mapping_name": "Item to Hub Item", 
  "mapping_type": "Push", 
  "migration_id_field": "hub_sync_id", 
- "modified": "2018-08-01 16:37:09.170546", 
+ "modified": "2018-08-19 22:20:25.727581", 
  "modified_by": "Administrator", 
  "name": "Item to Hub Item", 
  "owner": "Administrator", 
diff --git a/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json b/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json
index 1f772b6..e90b1dd 100644
--- a/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json
+++ b/erpnext/hub_node/data_migration_plan/hub_sync/hub_sync.json
@@ -9,7 +9,7 @@
    "mapping": "Item to Hub Item"
   }
  ], 
- "modified": "2018-08-01 16:37:09.027512", 
+ "modified": "2018-08-19 22:20:25.644602", 
  "modified_by": "Administrator", 
  "module": "Hub Node", 
  "name": "Hub Sync", 
diff --git a/erpnext/hub_node/doctype/hub_tracked_item/hub_tracked_item.json b/erpnext/hub_node/doctype/hub_tracked_item/hub_tracked_item.json
index 7a0bc2a..9384adb 100644
--- a/erpnext/hub_node/doctype/hub_tracked_item/hub_tracked_item.json
+++ b/erpnext/hub_node/doctype/hub_tracked_item/hub_tracked_item.json
@@ -84,7 +84,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
-   "fieldname": "images", 
+   "fieldname": "image_list", 
    "fieldtype": "Long Text", 
    "hidden": 0, 
    "ignore_user_permissions": 0, 
@@ -93,7 +93,7 @@
    "in_global_search": 0, 
    "in_list_view": 0, 
    "in_standard_filter": 0, 
-   "label": "Images", 
+   "label": "Image List", 
    "length": 0, 
    "no_copy": 0, 
    "permlevel": 0, 
@@ -120,7 +120,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 0, 
- "modified": "2018-08-19 19:30:01.449904", 
+ "modified": "2018-08-19 22:24:06.207307", 
  "modified_by": "Administrator", 
  "module": "Hub Node", 
  "name": "Hub Tracked Item", 
diff --git a/erpnext/public/js/hub/pages/publish.js b/erpnext/public/js/hub/pages/publish.js
index 035278b..fcbd0f8 100644
--- a/erpnext/public/js/hub/pages/publish.js
+++ b/erpnext/public/js/hub/pages/publish.js
@@ -10,6 +10,7 @@
 		this.items_to_publish = {};
 		this.unpublished_items = [];
 		this.fetched_items = [];
+		this.fetched_items_dict = {};
 
 		this.cache = erpnext.hub.cache.items_to_publish;
 		this.cache = [];
@@ -132,6 +133,13 @@
 						"Sports", "Transportation"
 					],
 					"reqd": 1
+				},
+				{
+					"label": "Images",
+					"fieldname": "image_list",
+					"fieldtype": "MultiSelect",
+					"options": [],
+					"reqd": 1
 				}
 			],
 			primary_action_label: __('Set Details'),
@@ -154,9 +162,17 @@
 	show_publishing_dialog_for_item(item_code) {
 		let item_data = this.items_to_publish[item_code];
 
-		if(!item_data) { item_data = { item_code }; }
+		if(!item_data) { item_data = { item_code }; };
 
 		this.publishing_dialog.clear();
+
+		const item_doc = this.fetched_items_dict[item_code];
+		if(item_doc) {
+			this.publishing_dialog.fields_dict.image_list.set_data(
+				item_doc.attachments.map(attachment => attachment.file_url)
+			);
+		}
+
 		this.publishing_dialog.set_values(item_data);
 		this.publishing_dialog.show();
 	}
@@ -268,6 +284,10 @@
 		const items_container = $(get_item_card_container_html(items, '', get_local_item_card_html));
 		items_container.addClass('results');
 		wrapper.append(items_container);
+
+		items.map(item => {
+			this.fetched_items_dict[item.item_code] = item;
+		})
 	}
 
 	get_valid_items() {
