demo-app/pages/api/cart/checkout.js (34 lines of code) (raw):
import { getProduct, getRecommendedProducts } from "../";
const ORDER = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";
const TRACKING = "xx-xxxxxx-xxyxxx";
const createUniqueId = (str) => {
return str.replace(/[xy]/g, (c) => {
var r = (Math.random() * 16) | 0,
v = c == "x" ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
};
export default async function handler(req, res) {
const itemsInSession = req.body;
const recommendations = getRecommendedProducts(null).slice(0, 4);
const order_id = createUniqueId(ORDER);
const tracking_id = createUniqueId(TRACKING);
if (!itemsInSession) {
return res.json({
items: [],
order_id,
tracking_id,
recommendations,
});
}
const items = itemsInSession.map((item) => ({
...getProduct(item.id),
quantity: item.quantity,
}));
res.json({
items,
order_id,
tracking_id,
recommendations,
});
}