import Link from "next/link"; import type { Metadata } from "next"; import { formatMoney } from "@salixcommerce/core"; import { CartLineControls } from "@/components/cart-line-controls"; import { CartLine } from "@/components/storefront"; import { EmptyState, Hero, Notification, PageContainer } from "@/components/ui"; import { applicationConfiguration } from "@/config/public"; import { loadCurrentCart } from "@/server/commerce/current-commerce"; export const metadata: Metadata = { title: "Cart" }; export const dynamic = "force-dynamic"; export default async function CartPage() { const cart = await loadCurrentCart(); if (cart === null || cart.lines.length === 0) { return ( Browse products } description="Add a product option to begin an order." title="Your cart is empty" /> ); } const canOrder = cart.lines.every((line) => line.purchasable); return (
{cart.lines.map((line) => ( } details={

{line.variantName} · Quantity {line.quantity} ·{" "} {line.availability.replaceAll("_", " ")}

} formattedPrice={formatMoney(line.lineTotal, applicationConfiguration.business.locale)} key={line.variantId} name={line.productName} /> ))}

Merchandise subtotal

{formatMoney(cart.merchandiseSubtotal, applicationConfiguration.business.locale)}

Tax and shipping are not calculated. SC07 certification uses the merchandise subtotal only.

Continue shopping {canOrder ? ( Continue to order details ) : null}
{canOrder ? null : (

Remove unavailable items before creating an order.

)}
); }