<template>
<div>
<h1>Checkout</h1>
<div v-for="item in cart" :key="item.id">
<h2>{{ item.name }}</h2>
<p>Quantity: {{ item.quantity }}</p>
<p>Total Price: {{ item.quantity * item.price }}</p>
</div>
<h3>Total: {{ cartTotal }}</h3>
<button @click="placeOrder">Place Order</button>
</div>
</template>
<script>
export default {
computed: {
cart() {
return this.$store.getters.cartItems;
},
cartTotal() {
return this.$store.getters.cartTotal;
},
},
methods: {
placeOrder() {
axios.post('/api/orders', {
user_id: this.$store.state.user.id, // Assuming user info is stored in Vuex
items: this.cart,
total_price: this.cartTotal,
}).then(() => {
this.$router.push('/orders');
});
},
},
};
</script>
This component allows users to review their cart and place an order. Upon clicking "Place Order," the order is submitted to the backend.