diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py
index 3c820fa..3f73932 100644
--- a/erpnext/stock/get_item_details.py
+++ b/erpnext/stock/get_item_details.py
@@ -51,7 +51,7 @@
 	get_price_list_rate(args, item_doc, out)
 
 	if args.transaction_type == "selling" and cint(args.is_pos):
-		out.update(get_pos_settings_item_details(args.company, args))
+		out.update(get_pos_profiles_item_details(args.company, args))
 
 	# update args with out, if key or value not exists
 	for key, value in out.iteritems():
@@ -267,16 +267,16 @@
 		item_supplier = item_doc.get("supplier_items", {"supplier": args.supplier})
 		out.supplier_part_no = item_supplier[0].supplier_part_no if item_supplier else None
 
-def get_pos_settings_item_details(company, args, pos_settings=None):
+def get_pos_profiles_item_details(company, args, pos_profiles=None):
 	res = frappe._dict()
 
-	if not pos_settings:
-		pos_settings = get_pos_settings(company)
+	if not pos_profiles:
+		pos_profiles = get_pos_profiles(company)
 
-	if pos_settings:
+	if pos_profiles:
 		for fieldname in ("income_account", "cost_center", "warehouse", "expense_account"):
-			if not args.get(fieldname) and pos_settings.get(fieldname):
-				res[fieldname] = pos_settings.get(fieldname)
+			if not args.get(fieldname) and pos_profiles.get(fieldname):
+				res[fieldname] = pos_profiles.get(fieldname)
 
 		if res.get("warehouse"):
 			res.actual_qty = get_available_qty(args.item_code,
@@ -284,15 +284,15 @@
 
 	return res
 
-def get_pos_settings(company):
-	pos_settings = frappe.db.sql("""select * from `tabPOS Setting` where user = %s
+def get_pos_profiles(company):
+	pos_profiles = frappe.db.sql("""select * from `tabPOS Profile` where user = %s
 		and company = %s""", (frappe.session['user'], company), as_dict=1)
 
-	if not pos_settings:
-		pos_settings = frappe.db.sql("""select * from `tabPOS Setting`
+	if not pos_profiles:
+		pos_profiles = frappe.db.sql("""select * from `tabPOS Profile`
 			where ifnull(user,'') = '' and company = %s""", company, as_dict=1)
 
-	return pos_settings and pos_settings[0] or None
+	return pos_profiles and pos_profiles[0] or None
 
 
 def get_serial_nos_by_fifo(args, item_doc):
