Overview
Quotation-to-invoice features:- Create detailed quotations with pricing and terms
- Send quotations to customers for approval
- Convert approved quotations to invoices with one click
- Track quotation status (pending, approved, converted, cancelled)
- Maintain link between quotation and resulting invoice
Creating a Quotation
Navigate to Quotations
Go to Quotations → Create QuotationReference:
QuotationController::create() in app/Http/Controllers/QuotationController.php:49The quotation form is similar to invoice creation with these differences:- No payment recording (quotations aren’t paid)
- Document subtypes specific to quotations
- Different document numbering sequence
Select Document Subtype
Choose quotation document type:
- Standard quotation
- Proforma invoice
- Estimate
- Budget
Select Customer
Search and select the customer contact:
- Use searchable dropdown
- Create new contact if needed
- Customer information will transfer to invoice when converted
Add Quotation Items
Add products and services:
- Search Products: Find items to quote
- Set Quantities: Enter proposed quantities
- Adjust Pricing: Modify unit prices for quotations (e.g., discounted pricing)
- Add Discounts: Line-level or quote-wide discounts
- Configure Taxes: Select applicable taxes
Pricing in quotations can differ from standard product prices. This allows you to offer special pricing or negotiate with customers.
Set Quotation Details
Configure quotation information:
- Issue Date: Quotation date (defaults to today)
- Valid Until: Expiration date for quoted pricing
- Payment Terms: Proposed payment terms
- Notes: Quote-specific terms, conditions, or instructions
Review Totals
Review the quotation summary:
- Subtotal
- Discounts
- Taxes
- Total quoted amount
Save Quotation
Click Create QuotationThe system:
- Creates quotation record with status
Pending - Creates quotation items with taxes
- Generates quotation number
- Updates document subtype numerator
- No stock deduction (stock is deducted only when converted to invoice)
CreateQuotationAction (similar structure to CreateInvoiceAction)Quotation Statuses
Quotations progress through these statuses:| Status | Description | Next Actions |
|---|---|---|
Pending | Awaiting customer response | Send to customer, Convert, Edit, Cancel |
Approved | Customer accepted | Convert to Invoice |
Converted | Already converted to invoice | View only |
Cancelled | Quotation cancelled | Archive only |
Expired | Past valid until date | Renew or Cancel |
QuotationStatus enum
Sending Quotations to Customers
After creating a quotation:Generate PDF
- Navigate to quotation detail page
- Click Download PDF or Preview PDF
- System generates formatted quotation document
Send to Customer
Options for sending:Email (Recommended):
- Click Send via Email
- Email template pre-fills with quotation details
- PDF automatically attached
- Track when email was sent
- Download PDF
- Print and hand deliver, or
- Attach to your own email client
- Customer can view in their portal
- Direct link provided
- Customer can accept online
Converting Quotations to Invoices
When customer approves the quotation:Click Convert to Invoice
Click the Convert to Invoice buttonReference:
ConvertQuotationToInvoiceController in app/Http/Controllers/ConvertQuotationToInvoiceController.php:16Review Pre-filled Invoice
The invoice creation form opens with data from the quotation:Transferred Data:
- ✅ Customer contact
- ✅ All line items (products, quantities, prices)
- ✅ Discounts
- ✅ Tax configurations
- ✅ Notes and terms
- ✅ Salesmen assignments
- Invoice document subtype (quotation type doesn’t apply)
- Invoice number (NCF)
- Issue date (defaults to today)
- Due date
- Payment information (if collecting immediately)
The invoice form is pre-filled but fully editable. You can adjust quantities, pricing, or items before creating the invoice.
Adjust If Needed
Make any necessary changes:
- Modify quantities if partial delivery
- Update pricing if changed from quote
- Add or remove items
- Adjust payment terms
Create Invoice
Click Create InvoiceThe system:
- Creates the invoice with all items
- Updates quotation status to
Converted - Links invoice to quotation (for tracking)
- Deducts stock for products with inventory tracking
- Creates payment record if payment was collected
What Data Transfers
When converting a quotation to an invoice:Data That Transfers
✅ Contact Information: Customer and all contact details ✅ Line Items:- Products
- Quantities
- Unit prices (from quotation, not current product price)
- Descriptions
- Line-level discounts
- Discount amounts and percentages
- Tax selections per line item
- Tax rates (captured at quotation time)
Data That Doesn’t Transfer
❌ Document Number: New invoice number generated ❌ Document Type: Must select invoice document subtype ❌ Dates: New issue date and due date ❌ Status: Invoice starts asPendingPayment
❌ Quotation-Specific Data: Valid until date, quotation status
Handling Modifications
Partial Conversion
Scenario: Customer approves only part of the quotation Solution:- Convert the quotation to invoice
- In the pre-filled invoice form, remove or adjust items
- Reduce quantities as needed
- Save the invoice
- The original quotation remains marked as “Converted”
Currently, OptiFlow marks the entire quotation as converted even if you only invoiced part of it. Consider adding notes to track partial conversions.
Price Changes After Quotation
Scenario: Product prices changed since quotation was issued Behavior:- Quotation prices are preserved during conversion
- Invoice uses the quoted prices, not current product prices
- Manually update unit prices in the invoice form before saving
- Or create a fresh invoice instead of converting
Customer Requests Changes
Scenario: Customer wants modifications to the quotation Options: Option 1: Edit Quotation (if not yet converted)- Edit the quotation
- Update items, quantities, or pricing
- Regenerate and resend PDF
- Convert when approved
- Create new quotation version
- Reference original quotation number in notes
- Cancel old quotation
- Convert new quotation when approved
Quotation to Invoice Tracking
Finding Related Documents
From Quotation:- Open quotation detail page
- If converted, see “Converted to Invoice #XXX” link
- Click to view the resulting invoice
- Open invoice detail page
- If created from quotation, see “Created from Quotation #XXX”
- Click to view the original quotation
Reporting
Track quotation conversion rates:- Navigate to Reports → Sales Reports → Quotation Analysis
- View:
- Total quotations issued
- Conversion rate (quotations → invoices)
- Average time to conversion
- Quotations by status
- Win/loss analysis
Quotation Best Practices
Common Scenarios
Scenario 1: Standard Sales Quote
Create Quotation
- Add all 10 products
- Apply any volume discounts
- Set 30-day validity
- Include payment terms (Net 30)
Scenario 2: Project Estimate
Create Detailed Quotation
- Multiple line items for different project phases
- Service items and product items
- Milestone-based pricing
Scenario 3: Recurring Service Quote
Troubleshooting
Cannot Convert Quotation
Error: “La cotización ya ha sido convertida a factura” Cause: Quotation was already converted Solution:- View the quotation to find the link to the existing invoice
- Or create a new invoice manually if you need another invoice from the same items
Quotation Status Not Updating
Problem: Created invoice but quotation still shows “Pending” Cause: Invoice wasn’t created through the conversion workflow Solution:- Manually update quotation status to “Converted” if needed
- Or add a note linking to the related invoice
Stock Deducted Twice
Problem: Stock was deducted when quotation was created Investigation: Quotations should NOT deduct stock. Check stock movement history. Solution: If stock was incorrectly deducted, create a stock adjustment to add it back.Advanced Features
Quotation Approval Workflow
For organizations requiring approval:- Set up automation: “Quotation Created” → “Notify Manager”
- Manager reviews and approves in system
- Only approved quotations can be sent to customers
- Track approval history in activity log
Quotation Templates
For frequently quoted item sets:- Create a “template” quotation
- Clone it for new customers
- Adjust customer-specific details
- Saves time on complex quotations