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
+15 -4
View File
@@ -1,5 +1,4 @@
import Link from "next/link";
import { SHIPPING_COST, FREE_SHIPPING_THRESHOLD } from "../../lib/shipping";
import { formatPrice } from "../../lib/format";
import type { ShippingSettings } from "../../lib/payload";
@@ -49,9 +48,21 @@ function Section({
export function VersandSections({
withAnchors = false,
shipping,
shippingCost,
freeShippingThreshold,
}: {
withAnchors?: boolean;
shipping: ShippingSettings;
/** Price of the default (first active, i.e. Standard) ShippingMethod —
* same value/estimate CartContent.tsx already computes for its own
* order-summary line, threaded down here instead of this component
* having its own hardcoded lib/shipping.ts constant, which is exactly
* what let this text drift from the real Payload ShippingMethods price
* (see lib/shipping.ts's own comment on this). */
shippingCost: number;
/** Lowest freeShippingThreshold among active ShippingMethods, or null if
* none has one — same rule CartContent.tsx/getTrustBadges() already use. */
freeShippingThreshold: number | null;
}) {
return (
<div className="flex flex-col gap-10 items-start w-full">
@@ -72,9 +83,9 @@ export function VersandSections({
<Section id="versandkosten" title="Versandkosten" withAnchor={withAnchors}>
<p>
Die Versandkosten innerhalb Deutschlands betragen pauschal {formatPrice(SHIPPING_COST)}{" "}
pro Bestellung. Ab einem Bestellwert von {formatPrice(FREE_SHIPPING_THRESHOLD)} versenden
wir kostenlos.
Die Versandkosten innerhalb Deutschlands betragen pauschal {formatPrice(shippingCost)}{" "}
pro Bestellung.
{freeShippingThreshold !== null && ` Ab einem Bestellwert von ${formatPrice(freeShippingThreshold)} versenden wir kostenlos.`}
</p>
<p>Alle angegebenen Preise verstehen sich inklusive der gesetzlichen Mehrwertsteuer.</p>
<p>