Stripe-Produkt mit Produktbild; Portal-Konfiguration exportiert

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-09-25 14:18:52 +00:00
1 parent 986ef9ebb9
commit 7237ec729d
3 files changed
+3 -1

No files matched your search

Binary file not shown.

After

Width:  |  Height:  |  Size: 428 KiB

+1
View File
@@ -63,6 +63,7 @@ export const config = {
productDescription:
'Betrieb und Pflege Ihrer Website bzw. Web-Anwendung auf unserem Server in Deutschland (Sicherheitsupdates, SSL, tägliche Datensicherung, Überwachung der Erreichbarkeit), 1 Domain inklusive Verwaltung, 1 E-Mail-Postfach (5 GB) und 1 Stunde Arbeitszeit pro Monat (12 Monate nutzbar). Keine Mindestlaufzeit, monatlich kündbar. Gemäß § 19 UStG ohne Umsatzsteuer.',
statementDescriptor: 'WEBKLAR WARTUNG',
productImage: 'https://project.webklar.com/img/wartungs-abo-produkt.png',
// Kleinunternehmer: Pflichthinweis auf jeder Stripe-Rechnung
invoiceFooter:
process.env.STRIPE_INVOICE_FOOTER ||
+2 -1
View File
@@ -56,6 +56,7 @@ export async function ensureAboPrice() {
name: config.stripe.productName,
description: config.stripe.productDescription,
statement_descriptor: config.stripe.statementDescriptor,
images: [config.stripe.productImage],
metadata: { webklar: 'wartungs-abo' },
})
const price = await stripe.prices.create({
@@ -73,7 +74,7 @@ export async function ensureAboPrice() {
let cachedPortalConfigId = null
/** Kundenportal-Konfiguration (Zahlungsmittel, Rechnungen, Kuendigung zum Periodenende). */
async function ensurePortalConfiguration() {
export async function ensurePortalConfiguration() {
if (cachedPortalConfigId) return cachedPortalConfigId
const stripe = getStripe()
const { data } = await stripe.billingPortal.configurations.list({ active: true, limit: 20 })