diff --git a/entity/Orderitem_entity/Orderitem_entity.aod b/entity/Orderitem_entity/Orderitem_entity.aod
index a4e328e26d2589f1a36add6b6109a0b94acd32c6..da6218d0b5296177dbd061e7e3c4222128d21b0d 100644
--- a/entity/Orderitem_entity/Orderitem_entity.aod
+++ b/entity/Orderitem_entity/Orderitem_entity.aod
@@ -73,6 +73,7 @@
       <consumer>Products</consumer>
       <linkedContext>Product</linkedContext>
       <mandatory v="true" />
+      <stateProcess>%aditoprj%/entity/Orderitem_entity/entityfields/product_id/stateProcess.js</stateProcess>
       <valueProcess>%aditoprj%/entity/Orderitem_entity/entityfields/product_id/valueProcess.js</valueProcess>
       <onValueChange>%aditoprj%/entity/Orderitem_entity/entityfields/product_id/onValueChange.js</onValueChange>
       <onValueChangeTypes>
diff --git a/entity/Orderitem_entity/entityfields/product_id/stateProcess.js b/entity/Orderitem_entity/entityfields/product_id/stateProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..d4ab30958b8f234408d03764ffba47d7264cf491
--- /dev/null
+++ b/entity/Orderitem_entity/entityfields/product_id/stateProcess.js
@@ -0,0 +1,12 @@
+import("system.result");
+import("system.neon");
+import("system.vars");
+
+if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) 
+{
+    result.string(neon.COMPONENTSTATE_EDITABLE);
+}
+else
+{
+    result.string(neon.COMPONENTSTATE_READONLY);
+}