Index: kupi-mk/backend/routes/reviews.js
===================================================================
--- kupi-mk/backend/routes/reviews.js	(revision 737b1eda40c1dd27e47d79b1d5c1ff07d1dbdea8)
+++ kupi-mk/backend/routes/reviews.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -90,5 +90,5 @@
 router.post('/add', auth, async (req, res) => {
     try {
-        const userId = req.user.id;
+        const userId = req.user.userId;
         const { productId, rating, title, comment } = req.body;
         
@@ -159,5 +159,5 @@
 router.put('/:reviewId', auth, async (req, res) => {
     try {
-        const userId = req.user.id;
+        const userId = req.user.userId;
         const reviewId = req.params.reviewId;
         const { rating, title, comment } = req.body;
@@ -205,5 +205,5 @@
 router.delete('/:reviewId', auth, async (req, res) => {
     try {
-        const userId = req.user.id;
+        const userId = req.user.userId;
         const reviewId = req.params.reviewId;
         
@@ -233,5 +233,5 @@
 router.post('/:reviewId/helpful', auth, async (req, res) => {
     try {
-        const userId = req.user.id;
+        const userId = req.user.userId;
         const reviewId = req.params.reviewId;
         const { isHelpful } = req.body; // true or false
@@ -307,5 +307,5 @@
 router.get('/user/my-reviews', auth, async (req, res) => {
     try {
-        const userId = req.user.id;
+        const userId = req.user.userId;
         const page = parseInt(req.query.page) || 1;
         const limit = parseInt(req.query.limit) || 10;
@@ -348,5 +348,5 @@
 router.get('/can-review/:productId', auth, async (req, res) => {
     try {
-        const userId = req.user.id;
+        const userId = req.user.userId;
         const productId = req.params.productId;
         
Index: kupi-mk/frontend/src/App.js
===================================================================
--- kupi-mk/frontend/src/App.js	(revision 737b1eda40c1dd27e47d79b1d5c1ff07d1dbdea8)
+++ kupi-mk/frontend/src/App.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -18,4 +18,5 @@
 import SellerDashboard from './pages/SellerDashboard';
 import ProtectedRoute from './components/ProtectedRoute';
+import SellerRoute from './components/SellerRoute';
 
 function App() {
@@ -36,7 +37,7 @@
                   path="/create-product" 
                   element={
-                    <ProtectedRoute>
+                    <SellerRoute>
                       <CreateProduct />
-                    </ProtectedRoute>
+                    </SellerRoute>
                   } 
                 />
@@ -44,7 +45,7 @@
                   path="/edit-product/:id" 
                   element={
-                    <ProtectedRoute>
+                    <SellerRoute>
                       <EditProduct />
-                    </ProtectedRoute>
+                    </SellerRoute>
                   } 
                 />
@@ -76,7 +77,7 @@
                   path="/seller-dashboard" 
                   element={
-                    <ProtectedRoute>
+                    <SellerRoute>
                       <SellerDashboard />
-                    </ProtectedRoute>
+                    </SellerRoute>
                   } 
                 />
Index: kupi-mk/frontend/src/components/Navbar.js
===================================================================
--- kupi-mk/frontend/src/components/Navbar.js	(revision 737b1eda40c1dd27e47d79b1d5c1ff07d1dbdea8)
+++ kupi-mk/frontend/src/components/Navbar.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -58,10 +58,14 @@
                 <CartIcon onClick={() => setIsCartOpen(true)} />
                 
-                <Link
-                  to="/create-product"
-                  className="btn-primary text-sm"
-                >
-                  + Додај производ
-                </Link>
+                {/* Seller-only features: Add Product button */}
+                {user?.is_seller && (
+                  <Link
+                    to="/create-product"
+                    className="btn-primary text-sm"
+                  >
+                    + Додај производ
+                  </Link>
+                )}
+                
                 <div className="relative group">
                   <button className="flex items-center space-x-2 text-gray-700 hover:text-primary-600">
@@ -94,11 +98,13 @@
                       Мои нарачки
                     </Link>
-                    <Link
-                      to="/seller-dashboard"
-                      className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100"
-                    >
-                      Продавач панел
-                    </Link>
-                    {/* Seller Dashboard: visible when logged in; shows seller-specific order management */}
+                    {/* Seller Dashboard: only show for sellers */}
+                    {user?.is_seller && (
+                      <Link
+                        to="/seller-dashboard"
+                        className="block px-4 py-2 text-sm text-gray-700 hover:bg-gray-100"
+                      >
+                        Продавач панел
+                      </Link>
+                    )}
                     <button
                       onClick={handleLogout}
Index: kupi-mk/frontend/src/components/ReviewForm.js
===================================================================
--- kupi-mk/frontend/src/components/ReviewForm.js	(revision 737b1eda40c1dd27e47d79b1d5c1ff07d1dbdea8)
+++ kupi-mk/frontend/src/components/ReviewForm.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -30,6 +30,6 @@
 
         try {
-            const response = await api.post('/reviews', {
-                product_id: productId,
+            const response = await api.post('/reviews/add', {
+                productId: productId,
                 rating: formData.rating,
                 comment: formData.comment.trim()
Index: kupi-mk/frontend/src/components/SellerRoute.js
===================================================================
--- kupi-mk/frontend/src/components/SellerRoute.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
+++ kupi-mk/frontend/src/components/SellerRoute.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -0,0 +1,33 @@
+// Seller Route Protection Component
+// - Purpose: protect seller-only pages from non-seller users
+// - Redirects non-sellers to home page with message
+
+import React from 'react';
+import { Navigate } from 'react-router-dom';
+import { useAuth } from '../context/AuthContext';
+
+const SellerRoute = ({ children }) => {
+    const { user, isAuthenticated, loading } = useAuth();
+
+    if (loading) {
+        return (
+            <div className="min-h-screen flex items-center justify-center">
+                <div className="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600"></div>
+            </div>
+        );
+    }
+
+    if (!isAuthenticated()) {
+        return <Navigate to="/login" replace />;
+    }
+
+    if (!user?.is_seller) {
+        // Redirect non-sellers to home page
+        alert('Оваа страница е достапна само за продавачи. Регистрирајте се како продавач за да добиете пристап.');
+        return <Navigate to="/" replace />;
+    }
+
+    return children;
+};
+
+export default SellerRoute;
Index: kupi-mk/frontend/src/pages/CreateProduct.js
===================================================================
--- kupi-mk/frontend/src/pages/CreateProduct.js	(revision 737b1eda40c1dd27e47d79b1d5c1ff07d1dbdea8)
+++ kupi-mk/frontend/src/pages/CreateProduct.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -71,5 +71,9 @@
       navigate(`/product/${result.data.product.id}`);
     } else {
-      setErrors(result.errors || [result.message]);
+      // Handle different error formats: simple strings or validation error objects
+      const errorMessages = result.errors 
+        ? result.errors.map(err => typeof err === 'string' ? err : err.msg || err.message || 'Validation error')
+        : [result.message];
+      setErrors(errorMessages);
     }
     
Index: kupi-mk/frontend/src/pages/EditProduct.js
===================================================================
--- kupi-mk/frontend/src/pages/EditProduct.js	(revision 737b1eda40c1dd27e47d79b1d5c1ff07d1dbdea8)
+++ kupi-mk/frontend/src/pages/EditProduct.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -123,5 +123,9 @@
       }
     } catch (error) {
-      setErrors(error.response?.data?.errors || [error.response?.data?.message || 'Failed to update product']);
+      // Handle different error formats: simple strings or validation error objects
+      const errorMessages = error.response?.data?.errors 
+        ? error.response.data.errors.map(err => typeof err === 'string' ? err : err.msg || err.message || 'Validation error')
+        : [error.response?.data?.message || 'Failed to update product'];
+      setErrors(errorMessages);
     } finally {
       setLoading(false);
Index: kupi-mk/frontend/src/pages/Register.js
===================================================================
--- kupi-mk/frontend/src/pages/Register.js	(revision 737b1eda40c1dd27e47d79b1d5c1ff07d1dbdea8)
+++ kupi-mk/frontend/src/pages/Register.js	(revision 2e26092d5424a63ee219fe97fd85f2ee4d611c00)
@@ -46,5 +46,9 @@
       navigate('/');
     } else {
-      setErrors(result.errors || [result.message]);
+      // Handle different error formats: simple strings or validation error objects
+      const errorMessages = result.errors 
+        ? result.errors.map(err => typeof err === 'string' ? err : err.msg || err.message || 'Validation error')
+        : [result.message];
+      setErrors(errorMessages);
     }
     
