For more information about our position regarding the invoice architecture, you can read: Invoice.
SonataInvoiceBundle manages everything related to the invoices: it basically implements the Invoice components by offering DB entities, and an Admin page to view the invoices in the Back end. It also offers the possibility to view a generated Invoice from the front office with a specific template.
The Invoice generation, however, is not processed by this specific bundle, but by the
PaymentBundle, as are all other entity transformations.
The bundle allows you to configure the entity classes; you’ll also need to register the Doctrine mapping.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
sonata_invoice: class: invoice: App\Sonata\InvoiceBundle\Entity\Invoice invoice_element: App\Sonata\InvoiceBundle\Entity\InvoiceElement order_element: App\Sonata\OrderBundle\Entity\OrderElement customer: App\Sonata\CustomerBundle\Entity\Customer # Enable Doctrine to map the provided entities doctrine: orm: entity_managers: default: mappings: ApplicationSonataInvoiceBundle: ~ SonataInvoiceBundle: ~
Default Order to Invoice transformer is provided in
Sonata\Component\Transformer\InvoiceTransformer::transformFromOrder; service id is
sonata.payment.transformer.invoice and you can override it by setting its class name parameter (
Currently, a raw HTML representation for invoices is provided; would you like to generate a PDF ? We encourage you to check out PDF generation bundles taking HTML as inputs.
The invoice rendering template is
SonataInvoiceBundle:Invoice:view.html.twig; you can override it by using Symfony bundle override rules.