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
new file mode 100644
index 0000000000000000000000000000000000000000..f3cb955a068789c1f27c597d9485fe5853d172dc
--- /dev/null
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/controller/product/ProductController.java
@@ -0,0 +1,50 @@
+package ntnu.idatt2016.v233.SmartMat.controller.product;
+
+import lombok.AllArgsConstructor;
+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;
+
+/**
+ * The product controller is responsible for handling requests related to products.
+ * It uses the product service to handle the requests.
+ * @version 1.0
+ * @Author Birk
+ * @since 26.04.2023
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/api/product")
+public class ProductController {
+
+    private final ProductService productService;
+
+    /**
+     * Creates a product if it does not already exist.
+     * @param productRequest The product to be registered.
+     * @return The product that was registered.
+     */
+    @PostMapping("/")
+    public ResponseEntity<ProductRequest> createProduct(@RequestBody ProductRequest productRequest) {
+        Product product = Product.builder()
+                .ean(productRequest.ean())
+                .name(productRequest.name())
+                .description(productRequest.description())
+                .url(productRequest.image())
+                .build();
+
+        if(productService.getProductById(productRequest.ean()).isPresent())
+            return ResponseEntity.status(409).build();
+
+        productService.saveProduct(product);
+
+        return ResponseEntity.ok(productRequest);
+
+    }
+
+}
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/dto/request/ProductRequest.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/dto/request/ProductRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..109aa338e4320b8354bc1fbffba6765e8b3d4452
--- /dev/null
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/dto/request/ProductRequest.java
@@ -0,0 +1,7 @@
+package ntnu.idatt2016.v233.SmartMat.dto.request;
+
+import lombok.Builder;
+
+@Builder
+public record ProductRequest(long ean, String name, String description, String image, double price) {
+}
diff --git a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java
index 7c2f1bc6613d46d92c7da35fa185791267a6005d..ba2a2a1ebe3350f02a7532b6e8fb48f481d6f82a 100644
--- a/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java
+++ b/src/main/java/ntnu/idatt2016/v233/SmartMat/entity/product/Product.java
@@ -35,6 +35,7 @@ public class Product{
     @Column(name = "description")
     String description;
 
+
     @ManyToOne
     @JoinColumn(name = "category_name")
     @JsonIgnoreProperties({"products"})