Understanding the Quotes Module in Konfiwear
The Quotes module is where every customer request lands. When a customer finalizes a design in the customizer and clicks "Request Quote", a quote is created with all the customization details — This guide covers how quotes work, the pipeline, revision.
What Is a Quote?
Konfiwear uses a two-level quote model:
Entity | What It Represents |
Quote Group | The business object — one per customer request. Carries the contact info, quote number, pipeline status, and source. |
Quote (Revision) | An immutable snapshot of the order details — product, design, colors, graphics, sizes, pricing, delivery preferences. Multiple revisions can exist per group. |
When a customer submits a request, a quote group is created with its first revision. If the customer requests changes, a new revision is created — the previous one is marked as superseded. Only one revision can be active at any time.
💡 Tip: Think of the quote group as the "folder" and revisions as "versions of the document inside it." The quote number stays the same across all revisions — what changes is the design and pricing snapshot.
Quote Numbers
Every quote group gets an auto-generated quote number in the format {prefix}-{year}-{sequence}, for example: QR-2026-0001.
The prefix is configurable in Settings → Global (default:
QR)Sequence numbers are unique per account and auto-increment within each year
Quote numbers are stable — they never change, even when revisions are created
The Quote Pipeline
Quote groups follow a seven-stage business workflow:
submitted → quoted → approved → confirmed → in_production → completed ↗ any non-terminal state → cancelledStatus | Badge | What It Means |
Submitted | — | Customer has submitted the request. Your team hasn't responded yet. |
Quoted | — | Your team has reviewed the request and sent a price quote back. |
Approved | — | The customer has approved the quote. |
Confirmed | — | Payment or contract is confirmed. Ready for production. |
In Production | — | The order is being manufactured. |
Completed | Green | Order fulfilled and delivered. Terminal state. |
Cancelled | Red | Cancelled from any non-terminal state. Terminal state. |
Status transitions are enforced server-side — you can only move forward in the pipeline or cancel. Skipping stages is not allowed.
⚠️ Important: Completed and Cancelled are terminal states. Once a quote reaches either, no further transitions are possible.
Quote Sources
Each quote group records where it originated:
Source | Description |
Customizer | Submitted through the public 3D customizer at |
Builder | Created from the builder interface |
Manual | Created manually by your team from the dashboard |
API | Submitted via the tenant API |
Teamstore | Submitted through a teamstore |
Navigating the Quotes Module
The Quotes List
Go to Quotes from the Leads section in the sidebar. The list page shows a data table of all quote groups with:
Search by quote number, contact name, company, or email
Status filter — filter by any combination of the seven statuses
Source filter — filter by origin (customizer, manual, API, etc.)
New Quote button — create a manual quote from the dashboard
Row actions — View Details, Copy ID, Delete
Each row shows the quote number, contact info, status badge, source label, total price and quantity, revision number, and creation date.
Caption: The Quotes list page with search, status filter, source filter, and quote rows.
The Quote Detail Page
Click any quote to open a three-column detail view:
Info banner (top) — Key stats at a glance: Quote ID, Status, Total, Quantity, Source, Created, Event Date.
Left column (tabs):
Customization — Color swatches, text items with font and placement, graphic thumbnails, pattern configurations
Sizing — Size breakdown chips, roster table with player number/name/size/quantity
Revisions — Table of all revisions with state badges (active, superseded, draft)
History — Append-only timeline of every status change with timestamps and notes
Right column (sidebar cards):
Preview & Files — Front/back preview images, product ID, design ID, techpack download link, print file link
Pricing — Unit price, quantity, total
Customer — Name, company, email, phone
Delivery — Method (standard/express/pickup), rush order badge, shipping address, estimated delivery date
Caption: The quote detail page with the info banner, customization tab, and sidebar cards.
Changing Quote Status
On the detail page, the Quote Header displays the current status badge and a Change Status dropdown. The dropdown only shows valid transitions from the current status — you can't skip stages or move backward.
Click the Change Status dropdown
Select the next status
Optionally add a note (e.g., "Pricing confirmed via email")
The status updates and a new entry is added to the History timeline
Revisions
Each quote group can have multiple revisions. Only one revision is active at a time — previous ones are marked as superseded.
Revision State | Meaning |
Draft | Being prepared, not yet active |
Active | The current version — shown in detail view and used for pricing |
Superseded | Replaced by a newer revision |
Expired | No longer valid (time-based) |
Cancelled | Revision was cancelled |
New revisions are created atomically via a database function that locks the group, copies the previous snapshot, sets the new revision as active, and supersedes the old one — all in a single transaction.
Creating a Manual Quote
Click the New Quote button on the Quotes list page. The creation dialog lets you enter:
Field | Description | Required |
Contact Name | Customer's name | No |
Contact Email | Customer's email | No |
Contact Phone | Phone number | No |
Company | Company name | No |
Product | Select a product from your catalog | No |
Design | Select a design | No |
Fabric | Select a fabric | No |
Quantity | Number of units | No |
Unit Price / Total | Pricing | No |
Currency | Three-letter code (default: USD) | No |
Notes | Customer notes and internal notes | No |
The quote is created with source manual and status submitted.
What a Quote Captures
Each quote revision stores a complete snapshot of the customer's configuration:
Data | What's Captured |
Product | Product ID reference |
Design | Design ID reference |
Fabric | Fabric ID reference |
Colors | Zone-by-zone color selections (JSONB) |
Graphics | Placed graphics with positions and transforms (JSONB) |
Texts | Text elements with fonts and placements (JSONB) |
Patterns | Pattern selections per zone (JSONB) |
Sizes | Size breakdown with per-size quantities (JSONB) |
Roster | Player name/number list (JSONB) |
Pricing | Unit price, total price, currency, price breakdown |
Delivery | Method, rush order flag, shipping/billing address, estimated delivery |
Previews | Front and back preview image URLs |
Production files | Techpack URL, print file URL |
Delete Behavior
Deleting a quote group is a hard delete — the group, all its revisions, and the status history are permanently removed. This cannot be undone.
⚠️ Important: Consider moving quotes to cancelled status instead of deleting them. Cancelled quotes preserve the full audit trail for your records.
Tips & Best Practices
Respond quickly to submitted quotes — move them to
quotedas soon as your team has reviewed the requestUse the History tab for audit trails — every status change is logged with a timestamp and optional note
Don't skip statuses — the pipeline enforces order for a reason. Each stage represents a distinct business milestone.
Use revisions for changes — when a customer wants modifications, create a new revision rather than editing the original
Check the Sizing tab for production details — the size breakdown and roster are critical for manufacturing