You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Context\nInvoices are plain, unbranded documents. Enterprise merchants need customized invoices that match their brand.\n\n## Current Limitation/Problem\nInvoice generation uses a single template with no merchant customization.\n\n\n## Expected Outcome\nInvoice customization: merchant logo, colors, custom fields (PO number, VAT ID), legal text, and per-locale formatting.\n\n## Acceptance Criteria\n- [ ] Invoice branding: upload logo, pick primary/accent color\n- [ ] Custom fields: PO number, cost center, department\n- [ ] Legal text: footer notes, payment terms, late fee policy\n- [ ] Locale-specific: date format, currency symbol position, number format\n- [ ] PDF generation with WKHTMLTOPDF or Puppeteer\n- [ ] Invoice preview before sending\n- [ ] Edge case: long legal text overflows to second page\n- [ ] Edge case: custom field exceeds character limit\n\n## Technical Scope\n- - BrandingService, PDFGenerator\n- - branding configuration API\n- - invoice branding page\n- - base template with variable injection\n- - PDF rendering engine (Puppeteer)
Context\nInvoices are plain, unbranded documents. Enterprise merchants need customized invoices that match their brand.\n\n## Current Limitation/Problem\nInvoice generation uses a single template with no merchant customization.\n\n\n## Expected Outcome\nInvoice customization: merchant logo, colors, custom fields (PO number, VAT ID), legal text, and per-locale formatting.\n\n## Acceptance Criteria\n- [ ] Invoice branding: upload logo, pick primary/accent color\n- [ ] Custom fields: PO number, cost center, department\n- [ ] Legal text: footer notes, payment terms, late fee policy\n- [ ] Locale-specific: date format, currency symbol position, number format\n- [ ] PDF generation with WKHTMLTOPDF or Puppeteer\n- [ ] Invoice preview before sending\n- [ ] Edge case: long legal text overflows to second page\n- [ ] Edge case: custom field exceeds character limit\n\n## Technical Scope\n- - BrandingService, PDFGenerator\n- - branding configuration API\n- - invoice branding page\n- - base template with variable injection\n- - PDF rendering engine (Puppeteer)