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: falseDoctrine
doctrine:
orm:
mappings:
CashierBundle:
type: attribute
is_bundle: false
dir: '%kernel.project_dir%/vendor/makfly/stripe-cashier-bundle/src/Entity'
prefix: 'CashierBundle\Entity'
alias: CashierBundleRoutes
cashier_webhooks:
resource: '@CashierBundle/Resources/config/routes/webhook.yaml'Options importantes
| Option | Description |
|---|---|
cashier.path | Pré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.secret | Secret Stripe de vérification des signatures |
cashier.webhook.events | Liste des événements Stripe à écouter (voir Webhooks) |
cashier.currency | Devise par défaut (code ISO 4217 : usd, eur, etc.) |
cashier.currency_locale | Locale BCP 47 pour le formatage monétaire (fr, en, de, etc.) |
cashier.default_subscription_type | Type 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_locale | Langue facture par défaut |
cashier.invoices.supported_locales | Langues supportées par le provider par défaut |
cashier.invoices.storage.path | Chemin absolu des PDF archivés |
Options Dompdf
| Option | Valeur par défaut | Description |
|---|---|---|
paper | letter | Format du papier (letter, a4, legal) |
remote_enabled | false | Autorise 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:
- le template Twig
templates/bundles/CashierBundle/invoice/default.html.twig - le service configuré dans
cashier.invoices.renderer - les services de locale et de traduction:
CashierBundle\Contract\InvoiceLocaleResolverInterfaceCashierBundle\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-8Prérequis :
composer require knp-snappy/wkhtmltopdf-binary
Last updated on