Profile: Rechnungsadresse is always a street address, no Packstation toggle
Matches /checkout's own billing card exactly (an invoice needs a real postal address) — the profile form previously offered a Lieferart/ Packstation choice for what's actually always used as the billing address, inconsistent now that a separate "Lieferadresse" section exists.
This commit is contained in:
@@ -1999,6 +1999,43 @@ field-lock security logic is still tested in the **Payload backend's**
|
||||
own `test:unit` — see that repo's README's own "Tests" section, since
|
||||
that's where that logic actually lives.
|
||||
|
||||
## 2026-07-30 changes
|
||||
|
||||
**Blog posts can have multiple categories.** `BlogPost.categories` is now
|
||||
`string[]` (was a single `category: string`), joined with `", "` wherever
|
||||
a single category used to render (`/blog`, `/blog/[slug]`,
|
||||
`LivePostContent.tsx`, `components/Blog.tsx`). Backend field is
|
||||
`Posts.categories`, a `hasMany` relationship — see the Payload backend's
|
||||
own README.
|
||||
|
||||
**Checkout's "Abweichende Lieferadresse" gained Firma + Kontakt-E-Mail/
|
||||
Telefon** (all optional) — handed to the shipping carrier, not used for
|
||||
any customer communication (that stays the account email above). Backed
|
||||
by new `Orders.shipping*` fields with no shipping-side `vatId` (billing-
|
||||
only concept, deliberately not mirrored).
|
||||
|
||||
**The customer profile (`/konto/profil`) can now store its own shipping
|
||||
address**, mirroring the checkout's own "Abweichende Lieferadresse"
|
||||
section field-for-field (same checkbox pattern, same fields incl. the new
|
||||
Firma/Kontakt fields above) — prefills the checkout section for a
|
||||
returning customer instead of always starting blank. Backed by
|
||||
`Customers`' new "Lieferadresse" tab in the Payload backend.
|
||||
|
||||
**Products can have an optional SKU** even without variants
|
||||
(`Products.sku` — variants already had their own). Snapshotted onto each
|
||||
order item at checkout (`app/api/checkout/route.ts` — variant SKU takes
|
||||
precedence over the product's own) and shown as "Art.-Nr." on the invoice
|
||||
PDF, the order-confirmation email, and `/konto/bestellungen/[orderNumber]`.
|
||||
|
||||
**`@einfach-produktiv/invoicing` bumped to 0.2.7** for the SKU +
|
||||
shipping-contact rendering above — re-run `npm install
|
||||
@einfach-produktiv/invoicing` after pulling if your local `node_modules`
|
||||
predates this.
|
||||
|
||||
Full plan for an n8n-driven blog-post content-automation pipeline (not yet
|
||||
built) lives in the Payload backend repo's `docs/blog-automation-plan.md`,
|
||||
not duplicated here since it changes independently of this frontend.
|
||||
|
||||
## Deployment
|
||||
|
||||
- **Dockerfile**: 3-stage build (`deps` → `builder` → `runner`) with
|
||||
|
||||
Reference in New Issue
Block a user