diff --git a/py/jon/db/create_correction.sql b/py/jon/db/create_correction.sql
new file mode 100644
index 0000000..161a0e4
--- /dev/null
+++ b/py/jon/db/create_correction.sql
@@ -0,0 +1,3 @@
+INSERT INTO garfield.inventory_correction (item_id, delta, correction_comment)
+VALUES (%(item_id)s, %(correction_delta)s, %(correction_comment)s)
+
diff --git a/py/jon/db/deactivate_item.sql b/py/jon/db/deactivate_item.sql
new file mode 100644
index 0000000..25d6d32
--- /dev/null
+++ b/py/jon/db/deactivate_item.sql
@@ -0,0 +1,9 @@
+UPDATE garfield.inventory_items
+SET available = FALSE
+WHERE item_id = %(item_id)s;
+
+-- Call garfield.snack_delete for every snack entry associated with this item.
+SELECT snack_id
+FROM garfield.inventory_map,
+     LATERAL garfield.snack_delete(snack_id::integer)
+WHERE inventory_id = %(item_id)s
diff --git a/py/jon/inventory.py b/py/jon/inventory.py
index 42ad120..de47720 100644
--- a/py/jon/inventory.py
+++ b/py/jon/inventory.py
@@ -1,4 +1,4 @@
-from flask import Blueprint, render_template, session
+from flask import Blueprint, redirect, render_template, request, session
 
 from . import db
 
@@ -18,7 +18,7 @@ def index():
     })
 
 
-@bp.get("/<item_id>")
+@bp.get("/item/<item_id>")
 def read_item(item_id: int):
     item = db.run_query("get_item_by_id.sql", {
         "item_id": item_id
@@ -38,3 +38,45 @@ def read_item(item_id: int):
         "snacks": snacks,
         "same_barcode_items": same_barcode_items
     })
+
+
+@bp.post("/item/<item_id>/deactivate")
+def deactivate_item(item_id: int):
+    item = db.run_query("get_item_by_id.sql", {
+        "item_id": item_id
+    }).fetchone()
+
+    if item["units_left"] != 0:
+        return "Only items without stock can be deactivated", 400
+
+    db.run_query("deactivate_item.sql", {
+        "item_id": item_id
+    })
+    db.get_db().commit()
+
+    return redirect(request.referrer)
+
+
+@bp.post("/correction")
+def create_correction():
+    try:
+        item_id = int(request.form.get("item_id"))
+        correction_delta = int(request.form.get("correction_delta"))
+        correction_comment = request.form.get("correction_comment")
+    except:
+        return "Incomplete or mistyped form", 400
+
+    if correction_delta == 0:
+        return "Correction delta may not be 0", 400
+
+    if correction_comment == "":
+        return "Correction comment may not be empty", 400
+
+    db.run_query("create_correction.sql", {
+        "item_id": item_id,
+        "correction_delta": correction_delta,
+        "correction_comment": correction_comment
+    })
+    db.get_db().commit()
+
+    return redirect(request.referrer)
diff --git a/py/jon/templates/inventory/index.html b/py/jon/templates/inventory/index.html
index bbcfd52..f87e979 100644
--- a/py/jon/templates/inventory/index.html
+++ b/py/jon/templates/inventory/index.html
@@ -17,7 +17,7 @@
   </tr>
 {% for item in items %}
   <tr>
-    <td><a href="/inventory/{{ item.item_id }}">{{ item.item_id }}</a></td>
+    <td><a href="/inventory/item/{{ item.item_id }}">{{ item.item_id }}</a></td>
     <td><code>{{ item.item_barcode }}</code></td>
     <td>{{ item.name }}</td>
     <td class="--align-right">{{ format_currency(item.unit_price) }}</td>
diff --git a/py/jon/templates/inventory/read_item.html b/py/jon/templates/inventory/read_item.html
index 8170309..a545199 100644
--- a/py/jon/templates/inventory/read_item.html
+++ b/py/jon/templates/inventory/read_item.html
@@ -53,6 +53,28 @@
   </table>
 </fieldset>
 
+<fieldset>
+  <legend>Aktionen</legend>
+  
+  <form method="POST" action="/inventory/correction">
+    <input name="item_id" type="hidden" value="{{ item.item_id }}">
+    <input name="correction_comment" type="hidden" value="Verlust">
+    <input name="correction_delta" type="hidden" value="{{ -item.units_left }}">
+    <button{% if item.units_left == 0 %} disabled{% endif %}>Inventar zu 0 korrigieren</button>
+  </form>
+  
+  <form method="POST" action="/inventory/correction">
+    <input name="item_id" type="hidden" value="{{ item.item_id }}">
+    <input name="correction_comment" type="text" value="" placeholder="Kommentar">
+    <input name="correction_delta" type="number" value="" placeholder="Delta">
+    <button>Inventar korrigieren</button>
+  </form>
+
+  <form method="POST" action="/inventory/item/{{ item.item_id }}/deactivate">
+    <button{% if item.units_left != 0 %} disabled{% endif %}>Inventar- und Snackeintrag deaktivieren</button>
+  </form>
+</fieldset>
+
 <fieldset>
   <legend>Snackeinträge für {{ item.item_id }}</legend>
 
@@ -101,7 +123,7 @@
     </tr>
     {% for item in same_barcode_items %}
     <tr>
-      <td><a href="/inventory/{{ item.item_id }}">{{ item.item_id }}</a></td>
+      <td><a href="/inventory/item/{{ item.item_id }}">{{ item.item_id }}</a></td>
       <td><code>{{ item.item_barcode }}</code></td>
       <td>{{ item.name }}</td>
       <td class="--align-right">{{ format_currency(item.unit_price) }}</td>