diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/product/ProductController.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/product/ProductController.java
index f3cb955a068789c1f27c597d9485fe5853d172dc..dbb511b39b3987bf994dc55b68db8f56b357b5ca 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/product/ProductController.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/product/ProductController.java
@@ -5,10 +5,7 @@ import ntnu.idatt2016.v233.SmartMat.dto.request.ProductRequest;
 import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
 import ntnu.idatt2016.v233.SmartMat.service.product.ProductService;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * The product controller is responsible for handling requests related to products.
@@ -47,4 +44,18 @@ public class ProductController {
 
     }
 
+    /**
+     * Returns a product with the given ean.
+     * @param ean The ean of the product to be returned.
+     * @return The product with the given ean.
+     */
+    @GetMapping("ean/{ean}")
+    public ResponseEntity<Product> getProduct(@PathVariable long ean) {
+        return productService.getProductById(ean)
+                .map(ResponseEntity::ok)
+                .orElse(ResponseEntity.notFound().build());
+    }
+
+
+
 }
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductService.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductService.java
index e668812f2caab46bcd4e121be3c6cc979bf517a4..1e8c53a791c6f2a19dd19ca0ed993324b87042e2 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductService.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductService.java
@@ -76,7 +76,7 @@ public class ProductService {
      * @param id The id of the product to get the volume from
      * @return The volume of the product, if it exists
      */
-    public Optional<String> getProductVolume(long id) {
+    public Optional<List<String>> getProductVolume(long id) {
         if(productRepository.findById(id).isEmpty())
             return Optional.empty();
 
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtil.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtil.java
index 6aa4a7062447f2d514ee41d811716d7ed8a7056a..c77016523dfd1161343e576eb1ff5493963f951e 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtil.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtil.java
@@ -5,6 +5,7 @@ import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
+import java.util.regex.Pattern;
 
 /**
  * Utility class for products
@@ -26,7 +27,7 @@ public class ProductUtil {
      * @param product The product to get the volume from
      * @return The volume of the product, if it exists
      */
-    public static Optional<String> getVolumeFromProduct(Product product) {
+    public static Optional<List<String>> getVolumeFromProduct(Product product) {
         for (String desc : Arrays.asList(product.getName(), product.getDescription())) {
             List<String> words = List.of(desc.split(" "));
             if (words.size() > 1) {
@@ -34,16 +35,25 @@ public class ProductUtil {
                 for (String unit : VOLUME_UNITS) {
                     int i = words.indexOf(unit);
                     if (i != -1) {
-                        return Optional.of(words.get(i - 1) + unit);
+                        return Optional.of(List.of(words.get(i - 1), unit));
                     }
                 }
 
-                volume = words.stream().filter(word -> Arrays.stream(VOLUME_UNITS).anyMatch(word::contains))
+                volume = words.stream().map(word -> Arrays.stream(VOLUME_UNITS).map(unit -> {
+                                    int index = word.indexOf(unit);
+                                    if (index == -1) {
+                                        if (!Pattern.matches("[a-zA-Z]+", word) && ProductUtil.hasNumbers(word)) {
+                                            return word;
+                                        }
+                                        return "";
+                                    }
+                                    return word.substring(0, index) + " " + word.substring(index);
+                                }).findAny().orElse(""))
                         .filter(ProductUtil::hasNumbers)
                         .findAny()
                         .orElse("");
                 if (!volume.equals("")){
-                    return Optional.of(volume);
+                    return Optional.of(List.of(volume.split(" ")));
                 }
             }
         }
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductServiceTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductServiceTest.java
index e73b0826625ecf46065283f6f74c3a2840323261..c9a580871f06b0dc6a7f0d5c01340c3023d05292 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductServiceTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/service/product/ProductServiceTest.java
@@ -133,9 +133,9 @@ public class ProductServiceTest {
         ProductService productService = new ProductService(mockRepository);
 
         // Verify that the service returns the correct volume
-        Optional<String> returnedVolume = productService.getProductVolume(productId);
+        Optional<List<String>> returnedVolume = productService.getProductVolume(productId);
         assertTrue(returnedVolume.isPresent());
-        assertEquals("500ml", returnedVolume.get());
+        assertEquals(List.of("500", "ml"), returnedVolume.get());
     }
 
     @Test
@@ -150,7 +150,7 @@ public class ProductServiceTest {
         ProductService productService = new ProductService(mockRepository);
 
         // Verify that the service returns an empty optional
-        Optional<String> returnedVolume = productService.getProductVolume(productId);
+        Optional<List<String>> returnedVolume = productService.getProductVolume(productId);
         assertTrue(returnedVolume.isEmpty());
     }
 
diff --git a/src/test/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtilTest.java b/src/test/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtilTest.java
index 2eb3f4d6d5d323351c472703aa24d61351d9d214..0164ae29d869b4a85b47dab4cdd82d95c78d8b1e 100644
--- a/src/test/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtilTest.java
+++ b/src/test/java/ntnu/idatt2016/v233/SmartMat/util/ProductUtilTest.java
@@ -4,6 +4,8 @@ import ntnu.idatt2016.v233.SmartMat.entity.product.Product;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import java.util.List;
+
 import static org.junit.jupiter.api.Assertions.*;
 
 class ProductUtilTest {
@@ -20,7 +22,7 @@ class ProductUtilTest {
 
     @Test
     void getVolumeFromProduct() {
-        assertEquals("24x500ml", ProductUtil.getVolumeFromProduct(product).get());
+        assertEquals(List.of("24x500", "ml"), ProductUtil.getVolumeFromProduct(product).get());
 
         this.product = Product.builder()
                 .ean(123456789)
@@ -28,7 +30,7 @@ class ProductUtilTest {
                 .description("Pepsi Original 24x500 ml")
                 .build();
 
-        assertEquals("24x500ml", ProductUtil.getVolumeFromProduct(product).get());
+        assertEquals(List.of("24x500", "ml"), ProductUtil.getVolumeFromProduct(product).get());
 
         this.product = Product.builder()
                 .ean(123456789)
@@ -37,7 +39,7 @@ class ProductUtilTest {
                 .build();
 
 
-        assertEquals("24x500ml", ProductUtil.getVolumeFromProduct(product).get());
+        assertEquals(List.of("24x500", "ml"), ProductUtil.getVolumeFromProduct(product).get());
 
         this.product = Product.builder()
                 .ean(123456789)
@@ -46,6 +48,6 @@ class ProductUtilTest {
                 .build();
 
 
-        assertEquals("24x500ml", ProductUtil.getVolumeFromProduct(product).get());
+        assertEquals(List.of("24x500", "ml"), ProductUtil.getVolumeFromProduct(product).get());
     }
 }
\ No newline at end of file