diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 0bfecae..6b0e5ae 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -1197,6 +1197,28 @@
 
 				sl_entries.append(sle)
 
+	def make_serial_and_batch_bundle_for_transfer(self):
+		ids = frappe._dict(
+			frappe.get_all(
+				"Stock Entry Detail",
+				fields=["name", "serial_and_batch_bundle"],
+				filters={"parent": self.outgoing_stock_entry, "serial_and_batch_bundle": ("is", "set")},
+				as_list=1,
+			)
+		)
+
+		if not ids:
+			return
+
+		for d in self.get("items"):
+			serial_and_batch_bundle = ids.get(d.ste_detail)
+			if not serial_and_batch_bundle:
+				continue
+
+			d.serial_and_batch_bundle = self.make_package_for_transfer(
+				serial_and_batch_bundle, d.s_warehouse, "Outward", do_not_submit=True
+			)
+
 	def get_sle_for_target_warehouse(self, sl_entries, finished_item_row):
 		for d in self.get("items"):
 			if cstr(d.t_warehouse):
@@ -1218,11 +1240,11 @@
 				]
 
 				if self.purpose in allowed_types and d.serial_and_batch_bundle and self.docstatus == 1:
-					d.serial_and_batch_bundle = self.make_package_for_transfer(
+					sle.serial_and_batch_bundle = self.make_package_for_transfer(
 						d.serial_and_batch_bundle, d.t_warehouse
 					)
 
-				if d.serial_and_batch_bundle and self.docstatus == 2:
+				if sle.serial_and_batch_bundle and self.docstatus == 2:
 					bundle_id = frappe.get_cached_value(
 						"Serial and Batch Bundle",
 						{
@@ -1234,7 +1256,7 @@
 						"name",
 					)
 
-					if d.serial_and_batch_bundle != bundle_id:
+					if sle.serial_and_batch_bundle != bundle_id:
 						sle.serial_and_batch_bundle = bundle_id
 
 				sl_entries.append(sle)
@@ -2401,6 +2423,7 @@
 	def set_missing_values(source, target):
 		target.stock_entry_type = "Material Transfer"
 		target.set_missing_values()
+		target.make_serial_and_batch_bundle_for_transfer()
 
 	def update_item(source_doc, target_doc, source_parent):
 		target_doc.t_warehouse = ""
