diff --git a/client/js/cart.js b/client/js/cart.js
index 2c564ec321ca6cb831c3700a34a8e3951bad05c4..30454e6413c7872dabd19f00d72d0ff8b606ce54 100644
--- a/client/js/cart.js
+++ b/client/js/cart.js
@@ -1,3 +1,4 @@
+var cartDataArray;
 cartList = () => {
     var cartListItems = document.getElementById("cart-list");
     const xhr = new XMLHttpRequest();
@@ -37,4 +38,32 @@ cartList = () => {
             console.log(responseData.message);
         }
     };
+}
+
+submitCheckout = () => {
+    // send cartDataArray back as post method
+    const cartData = new FormData();
+    cartData.append("data", cartDataArray);
+    const xhr = new XMLHttpRequest();
+    xhr.open('POST', '../../server/controllers/transaction.php', true);
+    xhr.send(cartData);
+    xhr.onreadystatechange = function () {
+        if (xhr.readyState === 4 && xhr.status === 200) {
+            try {
+                // Process the response data here
+                var responseData = JSON.parse(xhr.responseText);
+                if (responseData.success) {
+                    alert("Check out success")
+                    location.reload();
+                } else {
+                    alert("error: " + responseData.message)
+                }
+            } catch (error) {
+                alert(error)
+            }
+        } else if (xhr.status === 404) {
+            var responseData = JSON.parse(xhr.responseText);
+            console.log(responseData.message);
+        }
+    };
 }
\ No newline at end of file
diff --git a/server/controllers/transaction.php b/server/controllers/transaction.php
new file mode 100644
index 0000000000000000000000000000000000000000..69007d508c2f05fcc64662cfad92748a7b8bc7bc
--- /dev/null
+++ b/server/controllers/transaction.php
@@ -0,0 +1,3 @@
+<?php
+    
+?>
\ No newline at end of file