Dynamic AGB address, real shipping costs on /versand instead of hardcoded constants

- AGB: name/address/email now come from company-settings via new
  VertragspartnerBlock (mid-document, see LegalPages.ts's contentPart2).
- VersandSections/VersandModal/CartContent/CheckoutContent/versand page:
  shipping cost and free-shipping threshold now come from the real
  ShippingMethods data (already fetched elsewhere for checkout), not the
  hardcoded lib/shipping.ts constants — those had already drifted from
  the real Payload values once. lib/shipping.ts deleted, nothing left to
  export.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Marco
2026-08-02 06:53:12 +00:00
parent 9617478b0d
commit c8f231baa6
9 changed files with 137 additions and 29 deletions
+8 -3
View File
@@ -4,7 +4,7 @@ import { Reveal } from "../components/Reveal";
import { Footer } from "../components/Footer";
import { VersandSections } from "./components/VersandSections";
import { VersandTOC, MobileVersandTOC } from "./components/VersandTOC";
import { getShippingSettings } from "../lib/payload";
import { getShippingSettings, getShippingMethods } from "../lib/payload";
export const metadata: Metadata = {
title: "Versand",
@@ -14,7 +14,12 @@ export const metadata: Metadata = {
};
export default async function VersandPage() {
const shipping = await getShippingSettings();
const [shipping, shippingMethods] = await Promise.all([getShippingSettings(), getShippingMethods()]);
// Same "first active method / lowest threshold among active methods"
// convention as CartContent.tsx/getTrustBadges() — see VersandSections.tsx.
const shippingCost = shippingMethods[0]?.price ?? 0;
const shippingMethodThresholds = shippingMethods.map((m) => m.freeShippingThreshold).filter((t): t is number => t !== null);
const freeShippingThreshold = shippingMethodThresholds.length > 0 ? Math.min(...shippingMethodThresholds) : null;
return (
<>
@@ -47,7 +52,7 @@ export default async function VersandPage() {
<VersandTOC />
</div>
<div className="w-full lg:flex-1 max-w-[45rem]">
<VersandSections withAnchors shipping={shipping} />
<VersandSections withAnchors shipping={shipping} shippingCost={shippingCost} freeShippingThreshold={freeShippingThreshold} />
</div>
</div>
</main>