Skip to Content
DocumentationConfiguration

Configuration

Configuration minimale

cashier: key: '%env(STRIPE_KEY)%' secret: '%env(STRIPE_SECRET)%' path: cashier webhook: secret: '%env(STRIPE_WEBHOOK_SECRET)%' tolerance: 300 events: - customer.subscription.created - customer.subscription.updated - customer.subscription.deleted - invoice.payment_succeeded - invoice.payment_failed - checkout.session.completed currency: usd currency_locale: en default_subscription_type: default invoices: renderer: CashierBundle\Service\InvoiceRenderer\DompdfInvoiceRenderer default_locale: en supported_locales: ['en', 'fr'] storage: driver: local path: '%kernel.project_dir%/var/data/invoices' options: paper: letter remote_enabled: false

Doctrine

doctrine: orm: mappings: CashierBundle: type: attribute is_bundle: false dir: '%kernel.project_dir%/vendor/makfly/stripe-cashier-bundle/src/Entity' prefix: 'CashierBundle\Entity' alias: CashierBundle

Routes

cashier_webhooks: resource: '@CashierBundle/Resources/config/routes/webhook.yaml'

Options importantes

OptionDescription
cashier.pathPréfixe des routes du bundle. Défaut : cashier. La route webhook sera /cashier/webhook. Si modifié, le secret Stripe doit correspondre à la nouvelle URL.
cashier.webhook.secretSecret Stripe de vérification des signatures
cashier.webhook.eventsListe des événements Stripe à écouter (voir Webhooks)
cashier.currencyDevise par défaut (code ISO 4217 : usd, eur, etc.)
cashier.currency_localeLocale BCP 47 pour le formatage monétaire (fr, en, de, etc.)
cashier.default_subscription_typeType d’abonnement utilisé par défaut pour les webhooks customer.subscription.*. Si plusieurs types d’abonnements coexistent, ce paramètre détermine lequel est créé automatiquement.
cashier.invoices.default_localeLangue facture par défaut
cashier.invoices.supported_localesLangues supportées par le provider par défaut
cashier.invoices.storage.pathChemin absolu des PDF archivés

Options Dompdf

OptionValeur par défautDescription
paperletterFormat du papier (letter, a4, legal)
remote_enabledfalseAutorise le chargement d’images distantes (désactivé pour sécurité)

Politique intl

Le bundle ne force pas ext-intl.

Comportement:

  • avec intl: formatage monétaire et dates localisés
  • sans intl: fallback sûr sans crash runtime

Vous pouvez donc déployer le bundle sur un runtime minimal, puis améliorer le rendu PDF plus tard en installant l’extension.

Personnalisation des factures

Le rendu est personnalisable à trois niveaux:

  1. le template Twig templates/bundles/CashierBundle/invoice/default.html.twig
  2. le service configuré dans cashier.invoices.renderer
  3. les services de locale et de traduction:
    • CashierBundle\Contract\InvoiceLocaleResolverInterface
    • CashierBundle\Contract\InvoiceTranslationProviderInterface

Renderer alternatif

Pour utiliser Snappy (nécessite knp-snappy et wkhtmltopdf) :

cashier: invoices: renderer: CashierBundle\Service\InvoiceRenderer\SnappyInvoiceRenderer options: paper: letter encoding: UTF-8

Prérequis : composer require knp-snappy/wkhtmltopdf-binary

Clients →

Last updated on