Quotes belong to leads, configured per market

Featurekamo-shared-library
Shipped
August 4, 2026 at 9:31 PM UTC
Author
Kamo
Commit
2775e20

Quotes were a commerce-pipeline artifact, which put them beside orders and carts rather than beside the client they are for. They now hang off the lead: the market decides whether its leads can carry quotes at all, and the default terms every quote in that market starts with. Per market rather than per org because a mortgage desk issues Loan Estimates under TRID and has no use for a generic quote, while a services market lives on them. Terms carry the org's legal commitment, so departing from the market wording on a single quote is its own grant — EDIT_QUOTE_TERMS. A null terms field already meant "leave unchanged" on update, which is what lets the controller strip it for callers without the right. Also drops the quote's own recipient name/address/phone: the lead already holds the client's details, and snapshotting them duplicated a record edited elsewhere that would drift from it. Schema applied by KamoInitializer ahead of this commit; columns verified.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing