UNPKG

cart-utils

Version:

Shopping cart utilities for cart total, subtotal, and shipping cost

40 lines (32 loc) 924 B
const TAX_RATE = process.env.TAX_RATE || 0.06625 const SHIPPING_RATE = process.env.SHIPPING_RATE || 500 const FREE_SHIPPING_THRESHOLD = process.env.FREE_SHIPPING_THRESHOLD || 10000 const cartSubtotal = (cart) => { const subTotal = cart.reduce((counter, product) => { return counter + product.price_in_cent * product.qty }, 0) return subTotal } const cartTaxes = (cart) => { const subTotal = cartSubtotal(cart) return subTotal * TAX_RATE } const cartTotal = (cart) => { if (cart.length === 0) { return 0 } const subTotal = cartSubtotal(cart) const shipping = shouldPayShipping(cart) ? SHIPPING_RATE : 0 const total = subTotal + cartTaxes(cart) + shipping return Math.round(total) } const shouldPayShipping = (cart) => { const subTotal = cartSubtotal(cart) return subTotal < FREE_SHIPPING_THRESHOLD } module.exports = { cartSubtotal, cartTaxes, cartTotal, shouldPayShipping, }