JSON Data:
{
"shippingInfo":{
"address": "some address",
"city":"city 1",
"state": "state 1",
"country":"country 1",
"pinCode": 1123,
"phoneNo": 03212134345
},
"orderItems": [
{
"name": "product 1",
"price": 10,
"quantity": 2,
"product":"633016cec12d615871aa57a4"
},
{
"name": "product3",
"price": 30,
"quantity": 1,
"product":"6332010ae5524292cb59f58e"
}
],
"totalPrice":100
}
Model:
const orderSchema = new mongoose.Schema({
shippingInfo: {
address: {
type: String,
required: true,
},
city: {
type: String,
required: true,
},
state: {
type: String,
required: true,
},
country: {
type: String,
required: true,
},
pinCode: {
type: Number,
required: true,
},
phoneNo: {
type: Number,
required: true,
},
},
orderItems: [
{
name: {
type: String,
required: true,
},
price: {
type: Number,
required: true,
},
quantity: {
type: Number,
required: true,
},
product: {
type: mongoose.Schema.ObjectId,
ref: "Product",
required: true,
},
},
],
user: {
type: mongoose.Schema.ObjectId,
ref: "User",
required: true,
}
});
controller:
exports.newOrder = async (req, res, next) => {
try {
const {
shippingInfo,
orderItems,
totalPrice,
} = req.body;
const order = await Order.create({
shippingInfo,
orderItems,
totalPrice,
user: req.user._id,
});
res.status(201).json({
success: true,
order,
});
} catch (error) {
console.log(error);
}
};