diff --git a/app/backend/dummy_data.py b/app/backend/dummy_data.py
index 07fa31d7735a17e6ff45807f093b98ceb1925ad3..0cfe6e282477c65528fe19ebac5087f385ab7d61 100644
--- a/app/backend/dummy_data.py
+++ b/app/backend/dummy_data.py
@@ -44,37 +44,44 @@ def insert_dummy_data(session: Session):
         session.commit()
         print("Default admin user created successfully!")
 
-    if not session.exec(select(User)).first():
-        users = [
-            User(
-                username="string",
-                email="user@example.com",
-                password=hash_password("string"),
-                phone_number="1234567890",
-                role="customer",
-            ),
-            User(
-                username="shop_owner",
-                email="owner@example.com",
-                password=hash_password("string"),
-                phone_number="0987654321",
-                role="shop_owner",
-            ),
-        ]
-        session.add_all(users)
+    # Create regular users
+    users = {}
+    if not session.exec(select(User).where(User.email == "user@example.com")).first():
+        customer = User(
+            username="string",
+            email="user@example.com",
+            password=hash_password("string"),
+            phone_number="1234567890",
+            role="customer",
+        )
+        session.add(customer)
         session.commit()
+        users["customer"] = customer
 
+    if not session.exec(select(User).where(User.email == "owner@example.com")).first():
+        owner = User(
+            username="shop_owner",
+            email="owner@example.com",
+            password=hash_password("string"),
+            phone_number="0987654321",
+            role="shop_owner",
+        )
+        session.add(owner)
+        session.commit()
+        users["owner"] = owner
+
+    # Create payments after users
     if not session.exec(select(Payment)).first():
         payments = [
             Payment(
-                user_id=1,
+                user_id=users["customer"].id,
                 payment_method="Visa",
                 card_number="**** **** **** 1234",
                 cvv="123",
                 expiry_date="12/25",
             ),
             Payment(
-                user_id=1,
+                user_id=users["customer"].id,
                 payment_method="MasterCard",
                 card_number="**** **** **** 5678",
                 cvv="456",
@@ -84,10 +91,11 @@ def insert_dummy_data(session: Session):
         session.add_all(payments)
         session.commit()
 
-    if not session.exec(select(Shop)).first():
+    # Create shops with valid owner_id
+    if not session.exec(select(Shop)).first() and "owner" in users:
         shops = [
             Shop(
-                owner_id=2,
+                owner_id=users["owner"].id,
                 name="Google HQ",
                 description="Google Headquarters",
                 image_url="app/static/default/default_shop.png",
@@ -161,6 +169,7 @@ def insert_dummy_data(session: Session):
         ]
         session.add_all(shops)
         session.commit()
+        print("Dummy shops created successfully!")
 
     if not session.exec(select(Category)).first():
         categories = [Category(name=f"Category{i}") for i in range(1, 6)]