refactor: add form tour for stock module onboarding
diff --git a/erpnext/stock/doctype/delivery_note/delivery_note.js b/erpnext/stock/doctype/delivery_note/delivery_note.js
index 36dfa6d..b73ebd6 100644
--- a/erpnext/stock/doctype/delivery_note/delivery_note.js
+++ b/erpnext/stock/doctype/delivery_note/delivery_note.js
@@ -356,3 +356,23 @@
 			dn_fields['taxes'].print_hide = 0;
 	}
 }
+
+
+frappe.tour['Delivery Note'] = [
+	{
+		fieldname: "customer",
+		title: __("Customer"),
+		description: __("This field is used to set the 'Customer'.")
+	},
+	{
+		fieldname: "items",
+		title: __("Items"),
+		description: __("This table is used to set details about the 'Item', 'Qty', 'Basic Rate', etc. ") +
+		__("Different 'Source Warehouse' and 'Target Warehouse' can be set for each row.")
+	},
+	{
+		fieldname: "set_posting_time",
+		title: __("Edit Posting Date and Time"),
+		description: __("This option can be checked to edit the 'Posting Date' and 'Posting Time' fields.")
+	}
+]
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index c5bc9f1..6af14c9 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -793,3 +793,42 @@
 		}
 	}
 })
+
+
+frappe.tour['Item'] = [
+	{
+		fieldname: "item_name",
+		title: __("Item Name"),
+		description: __("This is the actual name of the product or service.")
+	},
+	{
+		fieldname: "item_code",
+		title: __("Item Code"),
+		description: __("The Item Code can be thought of as a short-form that refers to the item. ") +
+			__("For more information click here: ") +
+			"<a href='https://docs.erpnext.com/docs/user/manual/en/stock/articles/item-codification' target='_blank'>Item Codification</a>" +
+			__("."),
+	},
+	{
+		fieldname: "item_group",
+		title: __("Item Group"),
+		description: __("This is used for categorizing items under a common criteria. ") +
+			__("For more information click here: ") +
+			"<a href='https://docs.erpnext.com/docs/user/manual/en/stock/item-group' target='_blank'>Item Group</a>" +
+			__("."),
+	},
+	{
+		fieldname: "stock_uom",
+		title: __("Default Unit of Measure"),
+		description: __("The Item Code can be thought of as a short-form that refers to the item. ") +
+			__("For more information click here: ") +
+			"<a href='https://docs.erpnext.com/docs/user/manual/en/stock/uom' target='_blank'>Unit of Measure</a>" +
+			__("."),
+	},
+	{
+		fieldname: "is_stock_item",
+		title: __("Maintain Stock"),
+		description: __("Selecting this creates a stock item and 'Stock Ledger' entries are created for all transcations. ") +
+			__("Unselect this for a non-stock item such as a service.")
+	},
+]
diff --git a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
index 0182ed5..fd4be86 100644
--- a/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
+++ b/erpnext/stock/doctype/purchase_receipt/purchase_receipt.js
@@ -347,3 +347,23 @@
 		});
 	}
 };
+
+
+frappe.tour['Purchase Receipt'] = [
+	{
+		fieldname: "supplier",
+		title: __("Supplier"),
+		description: __("This field is used to set the 'Supplier'.")
+	},
+	{
+		fieldname: "items",
+		title: __("Items"),
+		description: __("This table is used to set details about the 'Item', 'Qty', 'Basic Rate', etc. ") +
+		__("Different 'Source Warehouse' and 'Target Warehouse' can be set for each row.")
+	},
+	{
+		fieldname: "set_posting_time",
+		title: __("Edit Posting Date and Time"),
+		description: __("This option can be checked to edit the 'Posting Date' and 'Posting Time' fields.")
+	}
+]
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js
index 908020d..8616a4c 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.js
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.js
@@ -1101,3 +1101,23 @@
 }
 
 $.extend(cur_frm.cscript, new erpnext.stock.StockEntry({frm: cur_frm}));
+
+frappe.tour['Stock Entry'] = [
+	{
+		fieldname: "stock_entry_type",
+		title: __("Stock Entry Type"),
+		description: __("There are multiple 'Stock Entry Type's you can even create your own. ") +
+		__("For moving material between warehouses you can select 'Material Transfer'")
+	},
+	{
+		fieldname: "items",
+		title: __("Items"),
+		description: __("This table is used to set details about the 'Item', 'Qty', 'Basic Rate', etc. ") +
+		__("Different 'Source Warehouse' and 'Target Warehouse' can be set for each row.")
+	},
+	{
+		fieldname: "set_posting_time",
+		title: __("Edit Posting Date and Time"),
+		description: __("This option can be checked to edit the 'Posting Date' and 'Posting Time' fields.")
+	}
+]
diff --git a/erpnext/stock/doctype/warehouse/warehouse.js b/erpnext/stock/doctype/warehouse/warehouse.js
index 1f17250..9b5f2bc 100644
--- a/erpnext/stock/doctype/warehouse/warehouse.js
+++ b/erpnext/stock/doctype/warehouse/warehouse.js
@@ -85,4 +85,27 @@
 		}
 		
 	})
-}
\ No newline at end of file
+}
+
+frappe.tour['Warehouse'] = [
+	{
+		fieldname: "warehouse_name",
+		title: __("Warehouse Name"),
+		description: __("A 'Warehouse Name' can be assigned to the warehouse. This should reflect the type of goods it contains.")
+	},
+	{
+		fieldname: "warehouse_type",
+		title: __("Warehouse Type"),
+		description: __("A 'Warehouse Type' can be set to classify warehouses.")
+	},
+	{
+		fieldname: "is_group",
+		title: __("Is Group"),
+		description: __("If you check 'Is Group', you can group warehouses under this warehouse.")
+	},
+	{
+		fieldname: "account",
+		title: __("Account"),
+		description: __("This field can be used to set a default account for all transactions with this warehouse.")
+	},
+]