Vollstaendige Next.js/Prisma-E-Commerce-Anwendung fuer eine Imkerei: Shop, Warenkorb, Stripe-Checkout, Kundenkonto mit 2FA, Admin-Bereich (Produkte, Ernten, Chargen, Bestellungen, Gutscheine, admin-editierbare Website-Inhalte), i18n (DE/EN), Rate-Limiting/CSP/Audit-Log-Haertung, PostgreSQL- und MySQL-Unterstuetzung ueber austauschbare Prisma- Treiber-Adapter, Unit-/Komponenten-/E2E-Tests.
14 lines
581 B
TypeScript
14 lines
581 B
TypeScript
import { prisma } from "@/lib/prisma";
|
|
import { resolveShippingCostCents } from "@/lib/shipping-calc";
|
|
import type { ShippingTier } from "@/generated/prisma/client";
|
|
|
|
export async function getShippingTiers(): Promise<ShippingTier[]> {
|
|
return prisma.shippingTier.findMany({ orderBy: { minQuantity: "asc" } });
|
|
}
|
|
|
|
/** Gesamtmenge = Summe aller Artikelmengen im Warenkorb, nicht pro Position. */
|
|
export async function getShippingCostCents(totalQuantity: number): Promise<number> {
|
|
const tiers = await getShippingTiers();
|
|
return resolveShippingCostCents(tiers, totalQuantity);
|
|
}
|