Security: an invoice payment is recorded only once, even when the return page and the webhook arrive together, and a paid, cancelled or refunded invoice is left alone
Normalise billing customer addresses onto the core polymorphic addresses table and resolve customer display names from the linked user account
Migrated billing_customers.billing_address / shipping_address JSON columns into the core polymorphic addresses table (type = billing|shipping) and dropped the legacy JSON columns
BillingCustomer now exposes addresses() / billingAddress() / shippingAddress() relations backed by App\Models\Address instead of JSON blobs
Customer display name now resolves as company_name, then contact_name, then the linked user's name, fixing stale names copied at customer-creation time
Standardised inconsistent legacy address keys (address_line1 / line1 / street, country / country_code) onto the core address columns, fixing previously broken invoice / credit-note PDF address blocks
Made billing_customers.contact_name / contact_email nullable; when empty they fall back to the linked user's name / email / phone
Changed billing_invoices.issue_date from DATE to DATETIME so invoices capture the exact time of issue (existing rows default to 00:00:00); the create/edit forms now use a datetime-local picker normalized from the admin display timezone, and invoice lists show a relative issue date with the full datetime on hover
Auto-generate a paid invoice and email a PDF receipt whenever any payable add-on processes a successful payment
Added source_type / source_id columns and a (source_type, source_id) unique index to billing_invoices for webhook idempotency
Made billing_invoices.created_by nullable so invoices generated from webhooks (no authenticated user) can be persisted
Listens to App\Events\PaymentSucceeded dispatched by every Payable model and auto-generates a paid BillingInvoice with line items via the new BillableForInvoice contract
Added InvoicePaidReceiptNotification that emails the customer the invoice as a PDF attachment plus a link to the public invoice URL
Added two admin toggles on the billing settings page: 'Auto-Generate Invoices' (billing_auto_invoice_enabled) and 'Email PDF Receipt' (billing_auto_send_paid_invoice_pdf)
Re-seeded the billing permission set and granted it to the admin role to cover installs that may be missing entries
Se connecter
Nous sommes heureux de vous revoir ! Accédez à votre compte, profil et préférences.