fix: Default variant Based on
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index e28c53d..9dcb285 100755
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -589,3 +589,4 @@
 erpnext.patches.v10_0.item_barcode_childtable_migrate # 16-02-2019
 erpnext.patches.v11_0.make_italian_localization_fields # 26-03-2019
 erpnext.patches.v11_1.make_job_card_time_logs
+erpnext.patches.v11_1.set_variant_based_on
\ No newline at end of file
diff --git a/erpnext/patches/v11_1/set_variant_based_on.py b/erpnext/patches/v11_1/set_variant_based_on.py
new file mode 100644
index 0000000..019eefd
--- /dev/null
+++ b/erpnext/patches/v11_1/set_variant_based_on.py
@@ -0,0 +1,11 @@
+# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
+# License: GNU General Public License v3. See license.txt
+
+from __future__ import unicode_literals
+import frappe
+
+def execute():
+	frappe.db.sql("""update tabItem set variant_based_on = 'Item Attribute'
+		where ifnull(variant_based_on, '') = ''
+		and (has_variants=1 or ifnull(variant_of, '') != '')
+	""")
\ No newline at end of file
diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json
index 58c9077..2d9f6e9 100644
--- a/erpnext/stock/doctype/item/item.json
+++ b/erpnext/stock/doctype/item/item.json
@@ -23,6 +23,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "name_and_description_section", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -57,6 +58,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "naming_series", 
    "fieldtype": "Select", 
    "hidden": 0, 
@@ -91,6 +93,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "item_code", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -127,6 +130,7 @@
    "columns": 0, 
    "depends_on": "variant_of", 
    "description": "If item is a variant of another item then description, image, pricing, taxes etc will be set from the template unless explicitly specified", 
+   "fetch_if_empty": 0, 
    "fieldname": "variant_of", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -160,6 +164,7 @@
    "bold": 1, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "item_name", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -195,6 +200,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "item_group", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -230,6 +236,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "is_item_from_hub", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -263,6 +270,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "stock_uom", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -298,6 +306,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break0", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -329,6 +338,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "disabled", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -361,6 +371,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "allow_alternative_item", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -395,6 +406,7 @@
    "columns": 0, 
    "default": "1", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "is_stock_item", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -431,6 +443,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "1", 
+   "fetch_if_empty": 0, 
    "fieldname": "include_item_in_manufacturing", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -464,6 +477,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:(doc.__islocal&&doc.is_stock_item && !doc.has_serial_no && !doc.has_batch_no)", 
+   "fetch_if_empty": 0, 
    "fieldname": "opening_stock", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -497,6 +511,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "valuation_rate", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -530,6 +545,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:doc.__islocal", 
+   "fetch_if_empty": 0, 
    "fieldname": "standard_rate", 
    "fieldtype": "Currency", 
    "hidden": 0, 
@@ -562,6 +578,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "is_fixed_asset", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -595,6 +612,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "is_fixed_asset", 
+   "fetch_if_empty": 0, 
    "fieldname": "asset_category", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -629,6 +647,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "is_fixed_asset", 
+   "fetch_if_empty": 0, 
    "fieldname": "asset_naming_series", 
    "fieldtype": "Select", 
    "hidden": 0, 
@@ -663,6 +682,7 @@
    "columns": 0, 
    "depends_on": "eval:!doc.__islocal", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "tolerance", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -697,6 +717,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "image", 
    "fieldtype": "Attach Image", 
    "hidden": 1, 
@@ -730,6 +751,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "section_break_11", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -762,6 +784,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "brand", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -797,6 +820,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "description", 
    "fieldtype": "Text Editor", 
    "hidden": 0, 
@@ -831,6 +855,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "sb_barcodes", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -863,6 +888,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "barcodes", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -898,6 +924,7 @@
    "collapsible_depends_on": "is_stock_item", 
    "columns": 0, 
    "depends_on": "is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "inventory_section", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -932,6 +959,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "shelf_life_in_days", 
    "fieldtype": "Int", 
    "hidden": 0, 
@@ -966,6 +994,7 @@
    "columns": 0, 
    "default": "2099-12-31", 
    "depends_on": "is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "end_of_life", 
    "fieldtype": "Date", 
    "hidden": 0, 
@@ -1001,6 +1030,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "Purchase", 
+   "fetch_if_empty": 0, 
    "fieldname": "default_material_request_type", 
    "fieldtype": "Select", 
    "hidden": 0, 
@@ -1035,6 +1065,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "valuation_method", 
    "fieldtype": "Select", 
    "hidden": 0, 
@@ -1069,6 +1100,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break1", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -1103,6 +1135,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:doc.is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "warranty_period", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -1139,6 +1172,7 @@
    "columns": 0, 
    "depends_on": "is_stock_item", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "weight_per_unit", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -1172,6 +1206,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:doc.is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "weight_uom", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -1207,6 +1242,7 @@
    "columns": 0, 
    "depends_on": "is_stock_item", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "reorder_section", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -1242,6 +1278,7 @@
    "columns": 0, 
    "depends_on": "", 
    "description": "Will also apply for variants unless overrridden", 
+   "fetch_if_empty": 0, 
    "fieldname": "reorder_levels", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -1276,6 +1313,7 @@
    "collapsible": 1, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "unit_of_measure_conversion", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -1310,6 +1348,7 @@
    "columns": 0, 
    "depends_on": "", 
    "description": "Will also apply for variants", 
+   "fetch_if_empty": 0, 
    "fieldname": "uoms", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -1347,6 +1386,7 @@
    "collapsible_depends_on": "eval:doc.has_batch_no || doc.has_serial_no || doc.is_fixed_asset", 
    "columns": 0, 
    "depends_on": "eval:doc.is_stock_item || doc.is_fixed_asset", 
+   "fetch_if_empty": 0, 
    "fieldname": "serial_nos_and_batches", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -1381,6 +1421,7 @@
    "columns": 0, 
    "default": "", 
    "depends_on": "eval:doc.is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "has_batch_no", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -1418,6 +1459,7 @@
    "columns": 0, 
    "depends_on": "has_batch_no", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "create_new_batch", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -1452,6 +1494,7 @@
    "columns": 0, 
    "depends_on": "eval:doc.has_batch_no==1 && doc.create_new_batch==1", 
    "description": "Example: ABCD.#####. If series is set and Batch No is not mentioned in transactions,then automatic batch number will be created based on this series. If you always want to explicitly mention Batch No for this item,leave this blank. Note: this setting will take priority over the Naming Series Prefix in Stock Settings.", 
+   "fetch_if_empty": 0, 
    "fieldname": "batch_number_series", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -1485,6 +1528,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "has_batch_no", 
+   "fetch_if_empty": 0, 
    "fieldname": "has_expiry_date", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -1518,6 +1562,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "has_batch_no", 
+   "fetch_if_empty": 0, 
    "fieldname": "retain_sample", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -1552,6 +1597,7 @@
    "columns": 0, 
    "depends_on": "eval: (doc.retain_sample && doc.has_batch_no)", 
    "description": "Maximum sample quantity that can be retained", 
+   "fetch_if_empty": 0, 
    "fieldname": "sample_quantity", 
    "fieldtype": "Int", 
    "hidden": 0, 
@@ -1584,6 +1630,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break_37", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -1618,6 +1665,7 @@
    "default": "", 
    "depends_on": "eval:doc.is_stock_item || doc.is_fixed_asset", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "has_serial_no", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -1655,6 +1703,7 @@
    "columns": 0, 
    "depends_on": "eval:doc.is_stock_item || doc.is_fixed_asset", 
    "description": "Example: ABCD.#####\nIf series is set and Serial No is not mentioned in transactions,then automatic serial number will be created based on this series. If you always want to explicitly mention Serial Nos for this item. leave this blank.", 
+   "fetch_if_empty": 0, 
    "fieldname": "serial_no_series", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -1689,6 +1738,7 @@
    "collapsible_depends_on": "attributes", 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "variants_section", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -1724,6 +1774,7 @@
    "default": "0", 
    "depends_on": "eval:!doc.variant_of", 
    "description": "If this item has variants,then it cannot be selected in sales orders etc.", 
+   "fetch_if_empty": 0, 
    "fieldname": "has_variants", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -1759,6 +1810,7 @@
    "columns": 0, 
    "default": "Item Attribute", 
    "depends_on": "has_variants", 
+   "fetch_if_empty": 0, 
    "fieldname": "variant_based_on", 
    "fieldtype": "Select", 
    "hidden": 0, 
@@ -1781,7 +1833,7 @@
    "report_hide": 0, 
    "reqd": 0, 
    "search_index": 0, 
-   "set_only_once": 1, 
+   "set_only_once": 0, 
    "translatable": 0, 
    "unique": 0
   }, 
@@ -1793,6 +1845,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:(doc.has_variants || doc.variant_of) && doc.variant_based_on==='Item Attribute'", 
+   "fetch_if_empty": 0, 
    "fieldname": "attributes", 
    "fieldtype": "Table", 
    "hidden": 1, 
@@ -1826,6 +1879,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "defaults", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -1858,6 +1912,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "item_defaults", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -1891,6 +1946,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "purchase_details", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -1926,6 +1982,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "1", 
+   "fetch_if_empty": 0, 
    "fieldname": "is_purchase_item", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -1958,6 +2015,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "purchase_uom", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -1994,6 +2052,7 @@
    "default": "0.00", 
    "depends_on": "is_stock_item", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "min_order_qty", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -2028,6 +2087,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "safety_stock", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -2060,6 +2120,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "purchase_details_cb", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -2094,6 +2155,7 @@
    "columns": 0, 
    "depends_on": "", 
    "description": "Average time taken by the supplier to deliver", 
+   "fetch_if_empty": 0, 
    "fieldname": "lead_time_days", 
    "fieldtype": "Int", 
    "hidden": 0, 
@@ -2129,6 +2191,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "last_purchase_rate", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -2164,6 +2227,7 @@
    "collapsible": 1, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "supplier_details", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -2196,6 +2260,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "delivered_by_supplier", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -2229,6 +2294,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "manufacturer", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -2263,6 +2329,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "manufacturer_part_no", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -2296,6 +2363,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break2", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -2331,6 +2399,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "supplier_items", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -2364,6 +2433,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "foreign_trade_details", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -2396,6 +2466,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "country_of_origin", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -2429,6 +2500,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break_59", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -2460,6 +2532,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "customs_tariff_number", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -2493,6 +2566,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "sales_details", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -2527,6 +2601,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "sales_uom", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -2561,6 +2636,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "1", 
+   "fetch_if_empty": 0, 
    "fieldname": "is_sales_item", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -2594,6 +2670,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break3", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -2629,6 +2706,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "max_discount", 
    "fieldtype": "Float", 
    "hidden": 0, 
@@ -2663,6 +2741,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "deferred_revenue", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -2696,6 +2775,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "enable_deferred_revenue", 
+   "fetch_if_empty": 0, 
    "fieldname": "deferred_revenue_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -2729,6 +2809,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "enable_deferred_revenue", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -2761,6 +2842,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break_85", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -2793,6 +2875,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "enable_deferred_revenue", 
+   "fetch_if_empty": 0, 
    "fieldname": "no_of_months", 
    "fieldtype": "Int", 
    "hidden": 0, 
@@ -2825,6 +2908,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "deferred_expense_section", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -2858,6 +2942,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "enable_deferred_expense", 
+   "fetch_if_empty": 0, 
    "fieldname": "deferred_expense_account", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -2891,6 +2976,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "enable_deferred_expense", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -2923,6 +3009,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break_88", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -2955,6 +3042,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "enable_deferred_expense", 
+   "fetch_if_empty": 0, 
    "fieldname": "no_of_months_exp", 
    "fieldtype": "Int", 
    "hidden": 0, 
@@ -2987,6 +3075,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "customer_details", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -3021,6 +3110,7 @@
    "columns": 0, 
    "depends_on": "", 
    "description": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "customer_items", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -3054,6 +3144,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "item_tax_section_break", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -3089,6 +3180,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "Will also apply for variants", 
+   "fetch_if_empty": 0, 
    "fieldname": "taxes", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -3124,6 +3216,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "inspection_criteria", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -3159,6 +3252,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "inspection_required_before_purchase", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -3194,6 +3288,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "inspection_required_before_delivery", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -3227,6 +3322,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:(doc.inspection_required_before_purchase || doc.inspection_required_before_delivery)", 
+   "fetch_if_empty": 0, 
    "fieldname": "quality_inspection_template", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -3261,6 +3357,7 @@
    "collapsible": 1, 
    "columns": 0, 
    "depends_on": "is_stock_item", 
+   "fetch_if_empty": 0, 
    "fieldname": "manufacturing", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -3296,6 +3393,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "", 
+   "fetch_if_empty": 0, 
    "fieldname": "default_bom", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -3333,6 +3431,7 @@
    "columns": 0, 
    "default": "", 
    "description": "If subcontracted to a vendor", 
+   "fetch_if_empty": 0, 
    "fieldname": "is_sub_contracted_item", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -3368,6 +3467,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "column_break_74", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -3399,6 +3499,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "customer_code", 
    "fieldtype": "Data", 
    "hidden": 1, 
@@ -3431,6 +3532,7 @@
    "bold": 0, 
    "collapsible": 1, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "website_section", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -3465,6 +3567,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:!doc.variant_of", 
+   "fetch_if_empty": 0, 
    "fieldname": "show_in_website", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -3498,6 +3601,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "variant_of", 
+   "fetch_if_empty": 0, 
    "fieldname": "show_variant_in_website", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -3531,6 +3635,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
+   "fetch_if_empty": 0, 
    "fieldname": "route", 
    "fieldtype": "Small Text", 
    "hidden": 0, 
@@ -3565,6 +3670,7 @@
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
    "description": "Items with higher weightage will be shown higher", 
+   "fetch_if_empty": 0, 
    "fieldname": "weightage", 
    "fieldtype": "Int", 
    "hidden": 0, 
@@ -3599,6 +3705,7 @@
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
    "description": "Show a slideshow at the top of the page", 
+   "fetch_if_empty": 0, 
    "fieldname": "slideshow", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -3634,6 +3741,7 @@
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
    "description": "Item Image (if not slideshow)", 
+   "fetch_if_empty": 0, 
    "fieldname": "website_image", 
    "fieldtype": "Attach", 
    "hidden": 0, 
@@ -3667,6 +3775,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "thumbnail", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -3699,6 +3808,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "cb72", 
    "fieldtype": "Column Break", 
    "hidden": 0, 
@@ -3732,6 +3842,7 @@
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
    "description": "Show \"In Stock\" or \"Not in Stock\" based on stock available in this warehouse.", 
+   "fetch_if_empty": 0, 
    "fieldname": "website_warehouse", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -3767,6 +3878,7 @@
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
    "description": "List this Item in multiple groups on the website.", 
+   "fetch_if_empty": 0, 
    "fieldname": "website_item_groups", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -3802,6 +3914,7 @@
    "collapsible_depends_on": "website_specifications", 
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
+   "fetch_if_empty": 0, 
    "fieldname": "sb72", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -3835,6 +3948,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
+   "fetch_if_empty": 0, 
    "fieldname": "copy_from_item_group", 
    "fieldtype": "Button", 
    "hidden": 0, 
@@ -3868,6 +3982,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
+   "fetch_if_empty": 0, 
    "fieldname": "website_specifications", 
    "fieldtype": "Table", 
    "hidden": 0, 
@@ -3902,6 +4017,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval: doc.show_in_website || doc.show_variant_in_website", 
+   "fetch_if_empty": 0, 
    "fieldname": "web_long_description", 
    "fieldtype": "Text Editor", 
    "hidden": 0, 
@@ -3934,6 +4050,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "total_projected_qty", 
    "fieldtype": "Float", 
    "hidden": 1, 
@@ -3967,6 +4084,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "depends_on": "eval:(!doc.is_item_from_hub)", 
+   "fetch_if_empty": 0, 
    "fieldname": "hub_publishing_sb", 
    "fieldtype": "Section Break", 
    "hidden": 0, 
@@ -4001,6 +4119,7 @@
    "columns": 0, 
    "default": "0", 
    "description": "Publish Item to hub.erpnext.com", 
+   "fetch_if_empty": 0, 
    "fieldname": "publish_in_hub", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -4033,6 +4152,7 @@
    "bold": 0, 
    "collapsible": 0, 
    "columns": 0, 
+   "fetch_if_empty": 0, 
    "fieldname": "hub_category_to_publish", 
    "fieldtype": "Data", 
    "hidden": 0, 
@@ -4067,6 +4187,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "description": "Publish \"In Stock\" or \"Not in Stock\" on Hub based on stock available in this warehouse.", 
+   "fetch_if_empty": 0, 
    "fieldname": "hub_warehouse", 
    "fieldtype": "Link", 
    "hidden": 0, 
@@ -4101,6 +4222,7 @@
    "collapsible": 0, 
    "columns": 0, 
    "default": "0", 
+   "fetch_if_empty": 0, 
    "fieldname": "synced_with_hub", 
    "fieldtype": "Check", 
    "hidden": 0, 
@@ -4139,7 +4261,7 @@
  "issingle": 0, 
  "istable": 0, 
  "max_attachments": 1, 
- "modified": "2019-02-16 17:43:56.039611", 
+ "modified": "2019-04-05 12:03:24.530849", 
  "modified_by": "Administrator", 
  "module": "Stock", 
  "name": "Item", 
diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py
index ca22aeb..7e480da 100644
--- a/erpnext/stock/doctype/item/item.py
+++ b/erpnext/stock/doctype/item/item.py
@@ -121,6 +121,7 @@
 		self.validate_asset_exists_for_serialized_asset()
 		self.validate_attributes()
 		self.validate_variant_attributes()
+		self.validate_variant_based_on_change()
 		self.validate_website_image()
 		self.make_thumbnail()
 		self.validate_fixed_asset()
@@ -726,6 +727,11 @@
 					frappe.throw(
 						_('Cannot change Attributes after stock transaction. Make a new Item and transfer stock to the new Item'))
 
+	def validate_variant_based_on_change(self):
+		if self.variant_of or (self.has_variants and frappe.get_all("Item", {"variant_of": self.name})):
+			if self.variant_based_on != frappe.db.get_value("Item", self.name, "variant_based_on"):
+				frappe.throw(_("Variant Based On cannot be changed"))
+
 	def validate_asset_exists_for_serialized_asset(self):
 		if (not self.get("__islocal") and self.asset_exists() and
 			cint(self.has_serial_no) != cint(frappe.db.get_value('Item', self.name, 'has_serial_no'))):
@@ -758,10 +764,13 @@
 					d.conversion_factor = value
 
 	def validate_attributes(self):
+		if not (self.has_variants or self.variant_of):
+			return
+
 		if not self.variant_based_on:
 			self.variant_based_on = 'Item Attribute'
 
-		if (self.has_variants or self.variant_of) and self.variant_based_on == 'Item Attribute':
+		if self.variant_based_on == 'Item Attribute':
 			attributes = []
 			if not self.attributes:
 				frappe.throw(_("Attribute table is mandatory"))