Twig
Le bundle expose un filtre stripe_amount pour afficher des montants Stripe dans vos templates.
Usage
{{ 1999|stripe_amount('eur') }}
{{ order.total|stripe_amount(order.currency) }}Formatage en PHP
Vous pouvez également utiliser le formatage directement en PHP:
use CashierBundle\Cashier;
$formatted = Cashier::formatAmount(1999, 'eur', 'fr'); // "19,99 €"Comportement
Le filtre s’appuie sur Cashier::formatAmount().
- avec
ext-intl: formatage monétaire localisé - sans
ext-intl: fallback sûr sans erreur runtime
Surcharger le template de facture
Pour personaliser le template de facture par défaut:
templates/bundles/CashierBundle/invoice/default.html.twigLe bundle utilisera automatiquement ce fichier s’il existe.
Variables disponibles dans le template
Les variables transmises au template (via InvoiceViewFactory::create()):
| Variable | Description |
|---|---|
meta | Locale et labels de traduction |
invoice | ID, number, status, dates, montants, items, discounts, taxes |
customer | name, email, adresse |
company | name, address, email, phone |
footer | Texte de pied de page |
Locales supportées
Le bundle supporte en et fr par défaut.
Pour ajouter une locale, implémentez InvoiceTranslationProviderInterface:
use CashierBundle\Contract\InvoiceTranslationProviderInterface;
final class MyTranslationProvider implements InvoiceTranslationProviderInterface
{
public function getTranslations(string $locale): array
{
// Retourne les labels traduits pour la locale
}
}Exemple
<div class="invoice-total">
<strong>Total:</strong>
{{ invoice.total|stripe_amount(invoice.currency) }}
</div>Conseil
Si votre application doit afficher une facture HTML custom avant PDF, réutilisez la même stratégie de locale que le bundle pour éviter des divergences visuelles entre l’écran et le PDF.
Last updated on