Langkah 6 dari 12
Membuat modul transaksi dan meja
Keranjang disimpan dalam array. Jika produk yang sama dipilih lagi, jumlahnya ditambah tanpa membuat baris baru.
let cart = [];
let discount = 0;
function addItem(id) {
const product = products.find(item => item.id === id);
const selected = cart.find(item => item.id === id);
if (selected) {
selected.qty++;
} else {
cart.push({ ...product, qty: 1 });
}
renderCart();
}
function totals() {
const subtotal = cart.reduce(
(result, item) => result + item.price * item.qty,
0
);
const tax = subtotal * 0.1;
return {
subtotal,
tax,
total: subtotal + tax - discount
};
}
Dalam sistem produksi, aturan pajak dan diskon sebaiknya berasal dari pengaturan backend. Jangan menanam nilai pajak secara permanen di JavaScript karena kebutuhan setiap usaha bisa berbeda.
