From 5ca8921dae29504cf8cc65eb2adb983fa8ceb3ab Mon Sep 17 00:00:00 2001 From: greptile-bot Date: Wed, 19 Aug 2026 10:08:24 -0400 Subject: [PATCH] Support stacking multiple discount codes --- src/discounts.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/discounts.ts diff --git a/src/discounts.ts b/src/discounts.ts new file mode 100644 index 0000000..8c9e896 --- /dev/null +++ b/src/discounts.ts @@ -0,0 +1,10 @@ +import type { Discount } from './cart' + +/** Combine multiple discount codes into one effective factor. */ +export function applyDiscounts(subtotalCents: number, discounts: Discount[]): number { + let totalPercentOff = 0 + for (const discount of discounts) { + totalPercentOff += discount.percentOff + } + return Math.round(subtotalCents * (1 - totalPercentOff / 100)) +}