Index: src/main/java/mk/ukim/finki/synergymed/models/Clientorder.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/models/Clientorder.java	(revision 66bed6556e6b5b91cffe47c87617cb522bf85759)
+++ src/main/java/mk/ukim/finki/synergymed/models/Clientorder.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -6,4 +6,6 @@
 
 import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
 
 @Getter
@@ -41,3 +43,5 @@
     private Integer totalPrice;
 
+    @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true)
+    private List<ClientorderBrandedmedicine> items = new ArrayList<>();
 }
Index: src/main/java/mk/ukim/finki/synergymed/models/ClientorderBrandedmedicineId.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/models/ClientorderBrandedmedicineId.java	(revision 66bed6556e6b5b91cffe47c87617cb522bf85759)
+++ src/main/java/mk/ukim/finki/synergymed/models/ClientorderBrandedmedicineId.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -3,5 +3,7 @@
 import jakarta.persistence.Column;
 import jakarta.persistence.Embeddable;
+import lombok.AllArgsConstructor;
 import lombok.Getter;
+import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.hibernate.Hibernate;
@@ -9,10 +11,39 @@
 import java.io.Serializable;
 import java.util.Objects;
+//
+//@Getter
+//@Setter
+//@Embeddable
+//public class ClientorderBrandedmedicineId implements Serializable {
+//    private static final long serialVersionUID = 4967247143893490519L;
+//    @Column(name = "order_id", nullable = false)
+//    private Integer orderId;
+//
+//    @Column(name = "branded_medicine_id", nullable = false)
+//    private Integer brandedMedicineId;
+//
+//    @Override
+//    public boolean equals(Object o) {
+//        if (this == o) return true;
+//        if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
+//        ClientorderBrandedmedicineId entity = (ClientorderBrandedmedicineId) o;
+//        return Objects.equals(this.brandedMedicineId, entity.brandedMedicineId) &&
+//                Objects.equals(this.orderId, entity.orderId);
+//    }
+//
+//    @Override
+//    public int hashCode() {
+//        return Objects.hash(brandedMedicineId, orderId);
+//    }
+//
+//}
 
+@Embeddable
 @Getter
 @Setter
-@Embeddable
+@NoArgsConstructor
+@AllArgsConstructor
 public class ClientorderBrandedmedicineId implements Serializable {
-    private static final long serialVersionUID = 4967247143893490519L;
+
     @Column(name = "order_id", nullable = false)
     private Integer orderId;
@@ -24,14 +55,13 @@
     public boolean equals(Object o) {
         if (this == o) return true;
-        if (o == null || Hibernate.getClass(this) != Hibernate.getClass(o)) return false;
-        ClientorderBrandedmedicineId entity = (ClientorderBrandedmedicineId) o;
-        return Objects.equals(this.brandedMedicineId, entity.brandedMedicineId) &&
-                Objects.equals(this.orderId, entity.orderId);
+        if (!(o instanceof ClientorderBrandedmedicineId)) return false;
+        ClientorderBrandedmedicineId that = (ClientorderBrandedmedicineId) o;
+        return Objects.equals(orderId, that.orderId) &&
+                Objects.equals(brandedMedicineId, that.brandedMedicineId);
     }
 
     @Override
     public int hashCode() {
-        return Objects.hash(brandedMedicineId, orderId);
+        return Objects.hash(orderId, brandedMedicineId);
     }
-
 }
Index: src/main/java/mk/ukim/finki/synergymed/service/PaymentMethodService.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/PaymentMethodService.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
+++ src/main/java/mk/ukim/finki/synergymed/service/PaymentMethodService.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -0,0 +1,11 @@
+package mk.ukim.finki.synergymed.service;
+
+import mk.ukim.finki.synergymed.models.Paymentmethod;
+
+import java.util.List;
+import java.util.Optional;
+
+public interface PaymentMethodService {
+    List<Paymentmethod> findAll();
+    Optional<Paymentmethod> findById(Integer id);
+}
Index: src/main/java/mk/ukim/finki/synergymed/service/PaymentService.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/PaymentService.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
+++ src/main/java/mk/ukim/finki/synergymed/service/PaymentService.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -0,0 +1,9 @@
+package mk.ukim.finki.synergymed.service;
+
+import mk.ukim.finki.synergymed.models.Client;
+import mk.ukim.finki.synergymed.models.Clientorder;
+import mk.ukim.finki.synergymed.models.Shoppingcart;
+
+public interface PaymentService {
+    Clientorder checkout(Client client, Shoppingcart cart, Integer paymentMethodId, Integer deliveryCompanyId);
+}
Index: src/main/java/mk/ukim/finki/synergymed/service/ShoppingCartService.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/ShoppingCartService.java	(revision 66bed6556e6b5b91cffe47c87617cb522bf85759)
+++ src/main/java/mk/ukim/finki/synergymed/service/ShoppingCartService.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -2,4 +2,5 @@
 
 import mk.ukim.finki.synergymed.models.Brandedmedicine;
+import mk.ukim.finki.synergymed.models.Client;
 import mk.ukim.finki.synergymed.models.Shoppingcart;
 
@@ -14,3 +15,4 @@
     void clearCart(Shoppingcart cart);
     public void decreaseMedicine(Shoppingcart cart, Brandedmedicine medicine);
+    Shoppingcart getOrCreateCart(Client client);
 }
Index: src/main/java/mk/ukim/finki/synergymed/service/impl/PaymentMethodServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/impl/PaymentMethodServiceImpl.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
+++ src/main/java/mk/ukim/finki/synergymed/service/impl/PaymentMethodServiceImpl.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -0,0 +1,28 @@
+package mk.ukim.finki.synergymed.service.impl;
+
+import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.synergymed.models.Paymentmethod;
+import mk.ukim.finki.synergymed.repositories.PaymentmethodRepository;
+import mk.ukim.finki.synergymed.service.PaymentMethodService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Optional;
+
+@Service
+@RequiredArgsConstructor
+public class PaymentMethodServiceImpl implements PaymentMethodService {
+    private final PaymentmethodRepository paymentmethodRepository;
+
+    @Override
+    public List<Paymentmethod> findAll() {
+        return paymentmethodRepository
+                .findAll();
+    }
+
+    @Override
+    public Optional<Paymentmethod> findById(Integer id) {
+        return paymentmethodRepository
+                .findById(id);
+    }
+}
Index: src/main/java/mk/ukim/finki/synergymed/service/impl/PaymentServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/impl/PaymentServiceImpl.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
+++ src/main/java/mk/ukim/finki/synergymed/service/impl/PaymentServiceImpl.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -0,0 +1,77 @@
+package mk.ukim.finki.synergymed.service.impl;
+
+import jakarta.transaction.Transactional;
+import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.synergymed.models.*;
+import mk.ukim.finki.synergymed.repositories.*;
+import mk.ukim.finki.synergymed.service.PaymentService;
+import mk.ukim.finki.synergymed.service.ShoppingCartService;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+
+@Service
+@RequiredArgsConstructor
+@Transactional
+public class PaymentServiceImpl implements PaymentService {
+
+    private final ShoppingCartService shoppingCartService;
+    private final ClientorderRepository orderRepo;
+    private final PaymentRepository paymentRepo;
+    private final PaymentmethodRepository paymentmethodRepo;
+    private final DeliverycompanyRepository deliveryRepo;
+
+    @Override
+    public Clientorder checkout(Client client, Shoppingcart cart, Integer paymentMethodId, Integer deliveryCompanyId) {
+
+        BigDecimal total = shoppingCartService.getTotal(cart);
+
+        Paymentmethod method = paymentmethodRepo.findById(paymentMethodId)
+                .orElseThrow(() -> new IllegalArgumentException("Payment method not found"));
+
+        Payment payment = new Payment();
+        payment.setClient(client);
+        payment.setPaymentMethod(method);
+        payment.setPaymentDate(LocalDate.now());
+        payment.setAmount(total.intValue());
+        payment.setStatus("PENDING");
+        paymentRepo.save(payment);
+
+
+        Deliverycompany deliveryCompany = deliveryRepo.findById(deliveryCompanyId)
+                .orElseThrow(() -> new IllegalArgumentException("Delivery company not found"));
+
+
+        Clientorder order = new Clientorder();
+        order.setClient(client);
+        order.setDeliveryCompany(deliveryCompany);
+        order.setPayment(payment);
+        order.setOrderDate(LocalDate.now());
+        order.setExpectedArrivalDate(LocalDate.now().plusDays(3));
+        order.setStatus("PROCESSING");
+        order.setTotalPrice(total.intValue());
+
+        shoppingCartService.getMedicinesInCart(cart).forEach((medicine, qty) -> {
+            ClientorderBrandedmedicine line = new ClientorderBrandedmedicine();
+            ClientorderBrandedmedicineId id = new ClientorderBrandedmedicineId();
+            id.setBrandedMedicineId(medicine.getId());
+
+            line.setId(id);
+            line.setOrder(order);
+            line.setBrandedMedicine(medicine);
+            line.setQuantity(qty);
+
+            order.getItems().add(line);
+        });
+
+        orderRepo.save(order);
+
+        payment.setStatus("COMPLETED");
+        paymentRepo.save(payment);
+
+        shoppingCartService.clearCart(cart);
+
+        return order;
+    }
+}
Index: src/main/java/mk/ukim/finki/synergymed/service/impl/ShoppingCartServiceImpl.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/service/impl/ShoppingCartServiceImpl.java	(revision 66bed6556e6b5b91cffe47c87617cb522bf85759)
+++ src/main/java/mk/ukim/finki/synergymed/service/impl/ShoppingCartServiceImpl.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -3,9 +3,7 @@
 import jakarta.transaction.Transactional;
 import lombok.RequiredArgsConstructor;
-import mk.ukim.finki.synergymed.models.Brandedmedicine;
-import mk.ukim.finki.synergymed.models.Shoppingcart;
-import mk.ukim.finki.synergymed.models.ShoppingcartBrandedmedicine;
-import mk.ukim.finki.synergymed.models.ShoppingcartBrandedmedicineId;
+import mk.ukim.finki.synergymed.models.*;
 import mk.ukim.finki.synergymed.repositories.ShoppingcartBrandedmedicineRepository;
+import mk.ukim.finki.synergymed.repositories.ShoppingcartRepository;
 import mk.ukim.finki.synergymed.service.ShoppingCartService;
 import org.springframework.stereotype.Service;
@@ -22,4 +20,5 @@
 
     private final ShoppingcartBrandedmedicineRepository cartMedicineRepo;
+    private final ShoppingcartRepository shoppingcartRepo;
 
     @Override
@@ -85,4 +84,14 @@
 
     @Override
+    public Shoppingcart getOrCreateCart(Client client) {
+        return shoppingcartRepo.findByClient(client)
+                .orElseGet(() -> {
+                    Shoppingcart cart = new Shoppingcart();
+                    cart.setClient(client);
+                    return shoppingcartRepo.save(cart);
+                });
+    }
+
+    @Override
     public void clearCart(Shoppingcart cart) {
         cartMedicineRepo.deleteAllByShoppingCart(cart);
Index: src/main/java/mk/ukim/finki/synergymed/web/PaymentController.java
===================================================================
--- src/main/java/mk/ukim/finki/synergymed/web/PaymentController.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
+++ src/main/java/mk/ukim/finki/synergymed/web/PaymentController.java	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -0,0 +1,71 @@
+package mk.ukim.finki.synergymed.web;
+
+import jakarta.servlet.http.HttpSession;
+import lombok.RequiredArgsConstructor;
+import mk.ukim.finki.synergymed.models.Client;
+import mk.ukim.finki.synergymed.models.Clientorder;
+import mk.ukim.finki.synergymed.models.Shoppingcart;
+import mk.ukim.finki.synergymed.models.User;
+import mk.ukim.finki.synergymed.service.ClientService;
+import mk.ukim.finki.synergymed.service.DeliveryCompanyService;
+import mk.ukim.finki.synergymed.service.PaymentMethodService;
+import mk.ukim.finki.synergymed.service.PaymentService;
+import mk.ukim.finki.synergymed.service.ShoppingCartService;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@Controller
+@RequestMapping("/payment")
+@RequiredArgsConstructor
+public class PaymentController {
+
+    private final PaymentService paymentService;
+    private final ShoppingCartService shoppingCartService;
+    private final PaymentMethodService paymentMethodService;
+    private final DeliveryCompanyService deliveryCompanyService;
+    private final ClientService clientService;
+
+    @GetMapping
+    public String getPaymentPage(Model model, HttpSession session) {
+
+        model.addAttribute("methods", paymentMethodService.findAll());
+        model.addAttribute("deliveryCompanies", deliveryCompanyService.findAll());
+
+        Client client = getClientFromSession(session);
+        Shoppingcart cart = shoppingCartService.getOrCreateCart(client);
+
+        model.addAttribute("total", shoppingCartService.getTotal(cart));
+
+        return "payment";
+    }
+
+    @PostMapping
+    public String processPayment(@RequestParam Integer paymentMethodId,
+                                 @RequestParam Integer deliveryCompanyId,
+                                 HttpSession session,
+                                 Model model) {
+        Client client = getClientFromSession(session);
+        Shoppingcart cart = shoppingCartService.getOrCreateCart(client);
+
+        Clientorder order = paymentService.checkout(client, cart, paymentMethodId, deliveryCompanyId);
+
+        model.addAttribute("order", order);
+        model.addAttribute("payment", order.getPayment());
+        return "payment-success";
+    }
+
+    private Client getClientFromSession(HttpSession session) {
+        User user = (User) session.getAttribute("user");
+        String username = (String) session.getAttribute("username");
+
+        if (user == null || username == null) {
+            throw new IllegalStateException("No user in session. Please login first.");
+        }
+
+        return clientService.findClientById(user.getId());
+    }
+}
Index: src/main/resources/templates/manage-allergies.html
===================================================================
--- src/main/resources/templates/manage-allergies.html	(revision 66bed6556e6b5b91cffe47c87617cb522bf85759)
+++ src/main/resources/templates/manage-allergies.html	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -4,7 +4,6 @@
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>SynergyMed - Manage Allergies</title>
+  <title>SynergyMed - Checkout</title>
 
-  <!-- Shared header styles -->
   <th:block th:replace="fragments/header :: headerStyles"></th:block>
 
@@ -31,10 +30,4 @@
     .header-content p { font-size:1.1rem; opacity:.9; }
 
-    .nav-bar { background:white; border-radius:15px; box-shadow:0 5px 15px rgba(0,0,0,.1); margin-bottom:30px; padding:20px 30px; }
-    .nav-links { display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
-    .nav-link { color:#20b2aa; text-decoration:none; padding:10px 20px; border-radius:25px; transition:all .3s ease; font-weight:500; }
-    .nav-link:hover, .nav-link.active { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; }
-    .back-btn { margin-left:auto; background:linear-gradient(135deg,#6c757d,#495057); color:white; }
-
     .card { background:white; border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.1); overflow:hidden; margin-bottom:30px; }
     .card-header { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; padding:25px 30px; font-size:1.3rem; font-weight:600; }
@@ -46,13 +39,10 @@
     .form-control:focus { outline:none; border-color:#20b2aa; background:white; box-shadow:0 0 0 3px rgba(32,178,170,.1); }
     select.form-control { cursor:pointer; }
-    textarea.form-control { resize:vertical; min-height:100px; }
 
-    .severity-options { display:flex; gap:15px; margin-top:10px; }
-    .severity-option { flex:1; }
-    .severity-option input[type="radio"] { display:none; }
-    .severity-label { display:block; padding:12px 20px; border:2px solid #e1e5e9; border-radius:10px; text-align:center; cursor:pointer; transition:all .3s ease; font-weight:500; }
-    .severity-option input[type="radio"]:checked + .severity-label.low { background:#d1ecf1; border-color:#0c5460; color:#0c5460; }
-    .severity-option input[type="radio"]:checked + .severity-label.medium { background:#fff3cd; border-color:#856404; color:#856404; }
-    .severity-option input[type="radio"]:checked + .severity-label.high { background:#fee; border-color:#c33; color:#c33; }
+    .payment-methods { display:flex; gap:15px; flex-wrap:wrap; }
+    .payment-option { flex:1; }
+    .payment-option input[type="radio"] { display:none; }
+    .payment-label { display:block; padding:15px; border:2px solid #e1e5e9; border-radius:12px; text-align:center; cursor:pointer; transition:all .3s ease; font-weight:500; background:#f8f9fa; }
+    .payment-option input[type="radio"]:checked + .payment-label { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; border-color:#20b2aa; box-shadow:0 8px 20px rgba(32,178,170,.3); }
 
     .btn-submit { width:100%; padding:15px; background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; border:none; border-radius:12px; font-size:1rem; font-weight:600; cursor:pointer; transition:.3s; text-transform:uppercase; letter-spacing:1px; }
@@ -60,29 +50,9 @@
     .btn-submit:active { transform:translateY(0); }
 
-    .alert { padding:15px; border-radius:8px; margin-bottom:20px; font-size:.9rem; }
-    .alert-danger { background-color:#fee; color:#c33; border:1px solid #fcc; }
-    .alert-success { background-color:#efe; color:#363; border:1px solid #cfc; }
-
-    .allergy-item { background:white; border-radius:10px; padding:15px; margin-bottom:10px; border-left:4px solid #20b2aa; display:flex; justify-content:space-between; align-items:center; }
-    .allergy-info { flex:1; }
-    .medicine-name { font-weight:600; color:#333; margin-bottom:5px; }
-    .allergy-description { color:#666; font-size:.9rem; }
-    .severity-badge { padding:4px 12px; border-radius:15px; font-size:.8rem; font-weight:600; text-transform:uppercase; }
-    .severity-badge.high { background:#fee; color:#c33; }
-    .severity-badge.medium { background:#fff3cd; color:#856404; }
-    .severity-badge.low { background:#d1ecf1; color:#0c5460; }
-
-    .no-allergies { text-align:center; color:#888; font-style:italic; }
-
-    @media (max-width:768px){
-      .severity-options{flex-direction:column;}
-      .nav-links{flex-wrap:wrap;}
-      .allergy-item{flex-direction:column; align-items:flex-start; gap:10px;}
-    }
+    .summary { margin-top:20px; font-size:1.2rem; font-weight:600; text-align:right; }
   </style>
 </head>
 <body>
 
-<!-- Full-width global header -->
 <th:block th:replace="fragments/header :: siteHeader(${null}, ${username})"></th:block>
 
@@ -91,93 +61,42 @@
   <div class="header">
     <div class="header-content">
-      <h1>Manage Allergies</h1>
-      <p th:text="${'Managing allergic reactions for ' + user.firstName + ' ' + user.lastName}">
-        Managing allergic reactions for John Doe
-      </p>
+      <h1>Checkout</h1>
+      <p>Complete your order securely</p>
     </div>
   </div>
 
-  <!-- Navigation -->
-  <div class="nav-bar">
-    <div class="nav-links">
-      <a th:href="@{/profile}" class="nav-link">Profile</a>
-      <a href="#" class="nav-link active">Manage Allergies</a>
-      <a th:href="@{/profile}" class="nav-link back-btn">Back to Profile</a>
-    </div>
-  </div>
+  <!-- Payment Form -->
+  <div class="card">
+    <div class="card-header">Payment Details</div>
+    <div class="card-body">
+      <form th:action="@{/payment}" method="post">
 
-  <!-- Current Allergies -->
-  <div class="card">
-    <div class="card-header">Current Allergic Reactions</div>
-    <div class="card-body">
-      <div th:if="${healthProfile.allergicReactions != null and not #lists.isEmpty(healthProfile.allergicReactions)}">
-        <div th:each="allergy : ${healthProfile.allergicReactions}" class="allergy-item">
-          <div class="allergy-info">
-            <div class="medicine-name" th:text="${allergy.medicine.medicineName}">Aspirin</div>
-            <div class="allergy-description" th:text="${allergy.description}">Causes severe skin reactions</div>
-          </div>
-          <span th:class="${'severity-badge ' + #strings.toLowerCase(allergy.severity)}"
-                th:text="${allergy.severity}">HIGH</span>
-        </div>
-      </div>
-      <div th:unless="${healthProfile.allergicReactions != null and not #lists.isEmpty(healthProfile.allergicReactions)}" class="no-allergies">
-        No allergic reactions recorded yet.
-      </div>
-    </div>
-  </div>
-
-  <!-- Add New Allergy Form -->
-  <div class="card">
-    <div class="card-header">Add New Allergic Reaction</div>
-    <div class="card-body">
-      <!-- Messages -->
-      <div th:if="${error}" class="alert alert-danger"><span th:text="${error}">Error message</span></div>
-      <div th:if="${success}" class="alert alert-success"><span th:text="${success}">Success message</span></div>
-
-      <form th:action="@{/allergies/add}" method="post" id="allergyForm">
+        <!-- Payment Methods -->
         <div class="form-group">
-          <label for="medicineId">Medicine</label>
-          <select id="medicineId" name="medicineId" class="form-control" required>
-            <option value="">Select a medicine...</option>
-            <option th:each="medicine : ${medicines}"
-                    th:value="${medicine.id}"
-                    th:text="${medicine.medicineName + ' (' + medicine.activeIngredient + ')'}">
-              Aspirin (Acetylsalicylic acid)
-            </option>
-          </select>
-        </div>
-
-        <div class="form-group">
-          <label for="dateDiagnosed">Date Diagnosed</label>
-          <input type="date" id="dateDiagnosed" name="dateDiagnosed" class="form-control"
-                 th:max="${#temporals.format(#temporals.createNow(), 'yyyy-MM-dd')}" required>
-        </div>
-
-        <div class="form-group">
-          <label for="description">Description</label>
-          <textarea id="description" name="description" class="form-control"
-                    placeholder="Describe the allergic reaction symptoms, triggers, and any additional details..."
-                    required></textarea>
-        </div>
-
-        <div class="form-group">
-          <label>Severity Level</label>
-          <div class="severity-options">
-            <div class="severity-option">
-              <input type="radio" id="low" name="severity" value="LOW" required>
-              <label for="low" class="severity-label low">Low</label>
-            </div>
-            <div class="severity-option">
-              <input type="radio" id="medium" name="severity" value="MEDIUM" required>
-              <label for="medium" class="severity-label medium">Medium</label>
-            </div>
-            <div class="severity-option">
-              <input type="radio" id="high" name="severity" value="HIGH" required>
-              <label for="high" class="severity-label high">High</label>
+          <label>Choose Payment Method</label>
+          <div class="payment-methods">
+            <div th:each="method : ${methods}" class="payment-option">
+              <input type="radio" th:id="${'method-' + method.id}" name="paymentMethodId" th:value="${method.id}" required>
+              <label th:for="${'method-' + method.id}" class="payment-label" th:text="${method.methodName}">Card</label>
             </div>
           </div>
         </div>
 
-        <button type="submit" class="btn-submit">Add Allergic Reaction</button>
+        <!-- Delivery Company -->
+        <div class="form-group">
+          <label for="deliveryCompanyId">Choose Delivery Company</label>
+          <select id="deliveryCompanyId" name="deliveryCompanyId" class="form-control" required>
+            <option value="">Select a delivery company...</option>
+            <option th:each="dc : ${deliveryCompanies}" th:value="${dc.id}" th:text="${dc.name}">DHL</option>
+          </select>
+        </div>
+
+        <!-- Total Summary -->
+        <div class="summary">
+          Total: <span th:text="${#numbers.formatDecimal(total,1,'COMMA',2,'POINT')} + ' ден.'">0.00 ден.</span>
+        </div>
+
+        <br>
+        <button type="submit" class="btn-submit">Confirm & Pay</button>
       </form>
     </div>
@@ -187,17 +106,4 @@
 <th:block th:replace="fragments/header :: headerScripts"></th:block>
 
-<script>
-  document.getElementById('allergyForm').addEventListener('submit', function() {
-    const btn = this.querySelector('.btn-submit');
-    btn.textContent = 'Adding...';
-    btn.disabled = true;
-  });
-  document.querySelectorAll('input[name="severity"]').forEach(radio => {
-    radio.addEventListener('change', function() {
-      document.querySelectorAll('.severity-label').forEach(label => { label.style.transform = 'scale(1)'; });
-      if (this.checked) this.nextElementSibling.style.transform = 'scale(1.05)';
-    });
-  });
-</script>
 </body>
 </html>
Index: src/main/resources/templates/payment-success.html
===================================================================
--- src/main/resources/templates/payment-success.html	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
+++ src/main/resources/templates/payment-success.html	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -0,0 +1,61 @@
+<!DOCTYPE html>
+<html lang="en" xmlns:th="http://www.thymeleaf.org">
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>SynergyMed - Payment Success</title>
+
+    <th:block th:replace="fragments/header :: headerStyles"></th:block>
+
+    <style>
+        * { margin:0; padding:0; box-sizing:border-box; }
+        body {
+            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+            background: linear-gradient(135deg, #a4ecba 0%, #f7f7f8 100%);
+            min-height:100vh;
+        }
+
+        .site-header {
+            position: sticky; top:0; left:0; right:0;
+            width: 100%;
+            border-radius: 0;
+            z-index: 1000;
+        }
+
+        .container { max-width:800px; margin:0 auto; padding:20px; }
+
+        .card { background:white; border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.1); overflow:hidden; margin-top:50px; text-align:center; }
+        .card-header { background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; padding:30px; font-size:1.8rem; font-weight:600; }
+        .card-body { padding:40px 30px; }
+        .card-body p { margin-bottom:15px; font-size:1rem; color:#333; }
+
+        .success-icon { font-size:4rem; color:#20b2aa; margin-bottom:20px; }
+
+        .btn-back { display:inline-block; margin-top:25px; padding:12px 25px; background:linear-gradient(135deg,#20b2aa,#48d1cc); color:white; border-radius:12px; font-weight:600; text-decoration:none; transition:.3s; }
+        .btn-back:hover { transform:translateY(-2px); box-shadow:0 10px 20px rgba(32,178,170,.3); }
+    </style>
+</head>
+<body>
+
+<th:block th:replace="fragments/header :: siteHeader(${null}, ${username})"></th:block>
+
+<div class="container">
+    <div class="card">
+        <div class="card-header">Payment Successful 🎉</div>
+        <div class="card-body">
+            <div class="success-icon">✔</div>
+            <p>Thank you! Your payment has been processed successfully.</p>
+            <p>Order ID: <span th:text="${order.id}">123</span></p>
+            <p>Amount Paid: <span th:text="${payment.amount} + ' ден.'">0.00 ден.</span></p>
+            <p>Status: <span th:text="${payment.status}">COMPLETED</span></p>
+            <p>Expected Arrival: <span th:text="${order.expectedArrivalDate}">2025-09-05</span></p>
+
+            <a th:href="@{/branded-medicines}" class="btn-back">Continue Shopping</a>
+        </div>
+    </div>
+</div>
+
+<th:block th:replace="fragments/header :: headerScripts"></th:block>
+
+</body>
+</html>
Index: src/main/resources/templates/payment.html
===================================================================
--- src/main/resources/templates/payment.html	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
+++ src/main/resources/templates/payment.html	(revision 95f6078f5bf3d572990680fc7e27085a3edf2662)
@@ -0,0 +1,106 @@
+<!DOCTYPE html>
+<html xmlns:th="http://www.thymeleaf.org" lang="en">
+<head>
+  <meta charset="UTF-8">
+  <title>SynergyMed – Payment</title>
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+  <th:block th:replace="fragments/header :: headerStyles"></th:block>
+
+  <style>
+    * { margin:0; padding:0; box-sizing:border-box; }
+    body {
+      font-family:'Segoe UI',Tahoma,Geneva,Verdana,sans-serif;
+      background:linear-gradient(135deg,#a4ecba 0%,#f7f7f8 100%);
+      min-height:100vh;
+      color:#1f2937;
+    }
+
+    .site-header {
+      position: sticky; top:0; left:0; right:0;
+      width:100%; border-radius:0; z-index:1000;
+      background:white !important; box-shadow:0 2px 10px rgba(0,0,0,0.1);
+    }
+
+    .container { max-width:800px; margin:40px auto; padding:20px; }
+
+    .card {
+      background:white; border-radius:20px; box-shadow:0 10px 30px rgba(0,0,0,.1);
+      overflow:hidden; margin-bottom:30px;
+    }
+    .card-header {
+      background:linear-gradient(135deg,#20b2aa,#48d1cc);
+      color:white; padding:25px 30px; font-size:1.3rem; font-weight:600;
+    }
+    .card-body { padding:30px; }
+
+    .form-group { margin-bottom:25px; }
+    .form-group label { display:block; margin-bottom:8px; color:#555; font-weight:500; font-size:.9rem; }
+    .form-control {
+      width:100%; padding:15px 20px; border:2px solid #e1e5e9; border-radius:12px;
+      font-size:1rem; transition:all .3s ease; background:#f8f9fa;
+    }
+    .form-control:focus {
+      outline:none; border-color:#20b2aa; background:white;
+      box-shadow:0 0 0 3px rgba(32,178,170,.1);
+    }
+
+    .btn-submit {
+      width:100%; padding:15px; background:linear-gradient(135deg,#20b2aa,#48d1cc);
+      color:white; border:none; border-radius:12px;
+      font-size:1rem; font-weight:600; cursor:pointer; transition:.3s;
+      text-transform:uppercase; letter-spacing:1px;
+    }
+    .btn-submit:hover { transform:translateY(-2px); box-shadow:0 10px 20px rgba(32,178,170,.3); }
+
+    .cart-total {
+      text-align:right; font-size:1.3rem; font-weight:700;
+      margin-top:20px; color:#20b2aa;
+    }
+  </style>
+</head>
+<body>
+<th:block th:replace="fragments/header :: siteHeader('payment', ${username})"></th:block>
+
+<div class="container">
+  <div class="card">
+    <div class="card-header">Complete Your Payment</div>
+    <div class="card-body">
+      <form th:action="@{/payment}" method="post">
+        <!-- Payment Method -->
+        <div class="form-group">
+          <label for="paymentMethodId">Select Payment Method</label>
+          <select id="paymentMethodId" name="paymentMethodId" class="form-control" required>
+            <option value="">Choose a payment method...</option>
+            <option th:each="pm : ${methods}"
+                    th:value="${pm.id}"
+                    th:text="${pm.methodName}">Credit Card</option>
+          </select>
+        </div>
+
+        <!-- Delivery Company -->
+        <div class="form-group">
+          <label for="deliveryCompanyId">Select Delivery Company</label>
+          <select id="deliveryCompanyId" name="deliveryCompanyId" class="form-control" required>
+            <option value="">Choose a delivery company...</option>
+            <option th:each="dc : ${deliveryCompanies}"
+                    th:value="${dc.id}"
+                    th:text="${dc.company.companyName}">FedEx</option>
+          </select>
+        </div>
+
+        <!-- Total -->
+        <div class="cart-total">
+          Total: <span th:text="${#numbers.formatDecimal(total, 1, 'COMMA', 2, 'POINT') + ' ден.'}">0.00 ден.</span>
+        </div>
+
+        <!-- Submit -->
+        <button type="submit" class="btn-submit">Pay Now</button>
+      </form>
+    </div>
+  </div>
+</div>
+
+<th:block th:replace="fragments/header :: headerScripts"></th:block>
+</body>
+</html>
