Skip to content

Add product catalog and quote builder improvements #38

@jusso-dev

Description

@jusso-dev

Context

ScopeStack supports document line items, pricing modes, tax, discounts, payment terms, and Xero invoicing. PandaDoc-style tools go further with quote builders, catalogs, optional add-ons, and CRM/product-data driven pricing.

Goal

Build a product/service catalog and stronger quote builder experience for reusable pricing and optional client choices.

Scope

  • Add product/service catalog items.
  • Support default unit price, tax rate, billing frequency, description, SKU/code, and category.
  • Allow adding catalog items to document line items.
  • Support optional add-ons in a quote.
  • Support quote variants/options for client selection where appropriate.
  • Add discount/margin guardrails or approval hooks as a later stage.
  • Keep Xero invoice generation compatible with catalog-backed line items.

UX Notes

  • In the document editor, adding a line item should allow searching the catalog.
  • Users should still be able to create ad hoc line items.
  • Optional add-ons should be clear in the client-facing document.
  • Avoid overbuilding CPQ rules in v1. Start with reusable catalog items and optional choices.

Data/Architecture Notes

Potential models:

  • CatalogItem
    • organisationId
    • name
    • description
    • sku
    • category
    • unitPrice
    • taxRate
    • billingFrequency
    • active
  • Extend DocumentLineItem with optional catalogItemId, isOptional, selectedByClient.

Acceptance Criteria

  • Users can manage catalog items.
  • Users can add catalog items to documents.
  • Ad hoc line items still work.
  • Optional add-ons can be shown and selected/confirmed before acceptance.
  • Totals correctly reflect selected required and optional items.
  • Xero invoice creation handles catalog-backed line items.
  • Tests cover totals, optional items, and Xero payload compatibility.

Dependencies

  • Payments issue may depend on final accepted totals.
  • Client portal UX will need to show optional selections clearly.

Priority

P1. Important for PandaDoc-style proposal value and faster quote creation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions