Stripe-Produkt mit Produktbild; Portal-Konfiguration exportiert
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
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 |
@@ -63,6 +63,7 @@ export const config = {
|
|||||||
productDescription:
|
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.',
|
'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',
|
statementDescriptor: 'WEBKLAR WARTUNG',
|
||||||
|
productImage: 'https://project.webklar.com/img/wartungs-abo-produkt.png',
|
||||||
// Kleinunternehmer: Pflichthinweis auf jeder Stripe-Rechnung
|
// Kleinunternehmer: Pflichthinweis auf jeder Stripe-Rechnung
|
||||||
invoiceFooter:
|
invoiceFooter:
|
||||||
process.env.STRIPE_INVOICE_FOOTER ||
|
process.env.STRIPE_INVOICE_FOOTER ||
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ export async function ensureAboPrice() {
|
|||||||
name: config.stripe.productName,
|
name: config.stripe.productName,
|
||||||
description: config.stripe.productDescription,
|
description: config.stripe.productDescription,
|
||||||
statement_descriptor: config.stripe.statementDescriptor,
|
statement_descriptor: config.stripe.statementDescriptor,
|
||||||
|
images: [config.stripe.productImage],
|
||||||
metadata: { webklar: 'wartungs-abo' },
|
metadata: { webklar: 'wartungs-abo' },
|
||||||
})
|
})
|
||||||
const price = await stripe.prices.create({
|
const price = await stripe.prices.create({
|
||||||
@@ -73,7 +74,7 @@ export async function ensureAboPrice() {
|
|||||||
|
|
||||||
let cachedPortalConfigId = null
|
let cachedPortalConfigId = null
|
||||||
/** Kundenportal-Konfiguration (Zahlungsmittel, Rechnungen, Kuendigung zum Periodenende). */
|
/** Kundenportal-Konfiguration (Zahlungsmittel, Rechnungen, Kuendigung zum Periodenende). */
|
||||||
async function ensurePortalConfiguration() {
|
export async function ensurePortalConfiguration() {
|
||||||
if (cachedPortalConfigId) return cachedPortalConfigId
|
if (cachedPortalConfigId) return cachedPortalConfigId
|
||||||
const stripe = getStripe()
|
const stripe = getStripe()
|
||||||
const { data } = await stripe.billingPortal.configurations.list({ active: true, limit: 20 })
|
const { data } = await stripe.billingPortal.configurations.list({ active: true, limit: 20 })
|
||||||
|
|||||||
Reference in new issue
Block a user