diff --git a/store/models.py b/store/models.py
index ce39bbdb4be2a9a1a177d0671ccd9cb682e0a837..de0a120379f1ea2972d764cd9faae638e24c677c 100644
--- a/store/models.py
+++ b/store/models.py
@@ -74,7 +74,7 @@ class ItemSet(db.Model):
         return len(self.items)
 
     def __repr__(self):
-        return f"id: {self.id}, description: {self.description}, items: {self.items}, quantity: {self.price}, price: { self.calculate_price() }"  # TODO: Rename price to quantity
+        return f"id: {self.id}, description: {self.description}, items: {self.items}, quantity: {self.price}, price: { self.price() }"  # TODO: Rename price to quantity
 
 
 class User(db.Model, UserMixin):
diff --git a/store/routes.py b/store/routes.py
index e28e5edd42fb51d01776c7e17aef0f84774fe689..3597e5f00bab99de0de2ae00a429edafcdd8ee5e 100644
--- a/store/routes.py
+++ b/store/routes.py
@@ -559,12 +559,19 @@ def add_to_basket():
         "price": item_obj.price,
         "is_item_set": False,
     }
+
     if "basket" not in session:
         session["basket"] = {}
+    item_sets = get_itemsets_by_item_id(item_id)
+    is_in_basket = False
+    for item_set in item_sets:
+        if item_set.id in session["basket"]:
+            is_in_basket = True
+            flash("Item already in basket in set")
 
     if item_id in session["basket"]:
         flash("Item already in basket")
-    else:
+    elif not is_in_basket:
         session["basket"][item_id] = item_dict
         flash("Item added to basket: " + item_obj.description)
 
@@ -574,7 +581,6 @@ def add_to_basket():
 @app.route("/add_to_basket_set", methods=["POST"])
 def add_to_basket_set():
     item_id = request.form["item_id"]
-
     item_obj = get_item_set_by_id(item_id)
 
     item_dict = {
@@ -585,11 +591,14 @@ def add_to_basket_set():
     }
     if "basket" not in session:
         session["basket"] = {}
-
+    is_in_basket = False
+    for item in item_obj.items:
+        if item.id in session["basket"]:
+            is_in_basket = True
+            flash("Item already in basket in item set.")
     if item_id in session["basket"]:
         flash("Item already in basket")
-
-    else:
+    elif not is_in_basket:
         session["basket"][item_id] = item_dict
         flash("Item added to basket: " + item_obj.description)
         print(session["basket"])
diff --git a/store/utility.py b/store/utility.py
index 8c7d8bbbe252e08ca405e18715395f9195dca98f..6f3ec9a8f5b20d72d9206b1b4e09f4279b35aa04 100644
--- a/store/utility.py
+++ b/store/utility.py
@@ -103,6 +103,12 @@ def get_item_by_id(id):
     return Item.query.get(id)
 
 
+def get_items_by_itemset_id(item_set_id):
+    item_set = get_item_set_by_id(item_set_id)
+    items = item_set.items
+    return items
+
+
 def add_item(description, price, date_sold=None):
     item = Item(description=description, price=price, date_sold=date_sold)
     db.session.add(item)