Appearance
Quotes Module
The Quotes module allows you to create dynamic quote forms, manage quotes, and handle quote workflows. This comprehensive guide covers all quote management features including the form builder and custom fields.
Table of Contents
- Overview
- Accessing Quotes
- Quote Form Builder
- Custom Fields Management
- Creating Quotes
- Managing Quotes
- Quote Workflow
- Frontend Quote System
- API Integration
- Best Practices
Overview
Features
- ✅ Visual form builder for quote requests
- ✅ Dynamic custom fields
- ✅ Quote management and tracking
- ✅ Quote status workflow
- ✅ PDF generation
- ✅ Email notifications
- ✅ Quote approval process
- ✅ Frontend quote submission
- ✅ API endpoints for quotes
Admin Routes
- Quote List:
/admin/quotes - Create Quote:
/admin/quotes/create - Edit Quote:
/admin/quotes/{id}/edit - Form Builder:
/admin/quotes/builder - Quote Fields:
/admin/quote-fields - Custom Fields:
/admin/{model}/custom-fields
Frontend Routes
- Request Quote:
/quotes/request - View Quote:
/quotes/{reference}
API Routes
- List Quotes:
/api/quotes - Create Quote:
/api/quotes(POST) - View Quote:
/api/quotes/{quote} - Get Fields:
/api/quotes/fields/list
Accessing Quotes
From Admin Panel
- Log in to admin panel
- Navigate to Business → Quotes
- Or go directly to:
/admin/quotes
Permissions Required
- View Quotes:
view quotespermission - Create Quotes:
create quotespermission - Edit Quotes:
edit quotespermission - Delete Quotes:
delete quotespermission - Manage Quotes:
manage quotespermission
Quote Form Builder
Accessing Form Builder
- Go to Quotes → Form Builder
- Or navigate to:
/admin/quotes/builder
Form Builder Interface
Features:
- Drag-and-drop field arrangement
- Visual field editor
- Real-time preview
- Field validation rules
- Conditional logic support
Adding Fields to Form
Available Field Types
Text Fields:
- Text: Single-line text input
- Textarea: Multi-line text input
- Email: Email address input
- Phone: Phone number input
- URL: Website URL input
Number Fields:
- Number: Numeric input
- Currency: Money input with formatting
Date/Time Fields:
- Date: Date picker
- Time: Time picker
- DateTime: Date and time picker
Selection Fields:
- Select: Dropdown selection
- Radio: Radio button group
- Checkbox: Checkbox group
- Multi-select: Multiple selection
File Fields:
- File Upload: Single file upload
- Multiple Files: Multiple file uploads
Other Fields:
- Hidden: Hidden field (for internal use)
- HTML: Custom HTML content
- Section: Section divider/heading
Creating a Field
Click "Add Field"
Select Field Type:
- Choose from available types
- Field appears in builder
Configure Field:
- Label: Field label (shown to users)
- Name: Field name (internal, auto-generated)
- Placeholder: Placeholder text
- Help Text: Instructions for users
- Required: Make field mandatory
- Default Value: Pre-filled value
Field-Specific Settings:
- Options: For select/radio/checkbox fields
- Min/Max: For number fields
- File Types: For file upload fields
- Date Format: For date fields
Validation Rules:
- Required: Field must be filled
- Min Length: Minimum characters
- Max Length: Maximum characters
- Pattern: Custom regex pattern
- Custom Validation: Custom rules
Save Field:
- Click Save
- Field added to form
Arranging Fields
Drag and Drop
- Click and hold field
- Drag to desired position
- Drop in new location
- Order saved automatically
Field Ordering
- Fields appear in order added
- Reorder by dragging
- Order affects form display
- Order affects data collection
Field Settings
Edit Field
- Click Edit on field
- Modify settings
- Click Update
- Changes saved
Delete Field
- Click Delete on field
- Confirm deletion
- Field removed from form
- Existing quote data preserved
Custom Fields Management
Model-Agnostic Custom Fields
Route: /admin/{model}/custom-fields
Supported Models:
- Quotes
- Products
- Services
- And more...
Creating Custom Fields
- Go to Quotes → Custom Fields
- Or navigate to:
/admin/quotes/custom-fields - Click Create Field
- Configure field (same as form builder)
- Click Save
Managing Custom Fields
- Edit: Modify field settings
- Delete: Remove field
- Reorder: Change display order
Creating Quotes
Step 1: Access Create Page
- Go to Quotes → Create New Quote
- Or navigate to:
/admin/quotes/create
Step 2: Quote Information
Quote Reference
- Auto-generated unique reference
- Format:
QT-YYYYMMDD-XXXX - Used for tracking
- Shown to customers
Client Information
Customer Selection:
- Existing Customer: Select from list
- New Customer: Enter details
Required Information:
- Company Name
- Contact Name
- Email Address
- Phone Number
- Address (optional)
Step 3: Quote Details
Quote Items
Adding Items:
- Click Add Item
- Enter:
- Description: Item description
- Quantity: Number of items
- Unit Price: Price per unit
- Total: Auto-calculated
- Click Add
- Repeat for all items
Pricing
Subtotal:
- Sum of all items
- Auto-calculated
Tax:
- Tax rate (percentage)
- Tax amount (auto-calculated)
- Can be disabled
Discount:
- Discount amount or percentage
- Applied to subtotal
- Optional
Total:
- Final quote amount
- Auto-calculated
- Includes tax and discount
Step 4: Quote Settings
Status
- Draft: Not sent to client
- Sent: Sent to client
- Viewed: Client viewed quote
- Approved: Client approved
- Rejected: Client rejected
- Expired: Quote expired
Validity Period
- Valid Until: Expiration date
- Quotes expire after this date
- Can be extended
Terms and Conditions
- Payment terms
- Delivery terms
- Warranty information
- Other conditions
Step 5: Additional Information
Notes
- Internal notes (not visible to client)
- Client-facing notes
- Special instructions
Attachments
- Upload files
- Documents, images, etc.
- Shared with client
Step 6: Save Quote
- Save Draft: Save without sending
- Save & Send: Save and email to client
- Save & Generate PDF: Save and create PDF
Managing Quotes
Quote List View
Access at: /admin/quotes
List Features
Search:
- Search by reference
- Search by client name
- Search by company
- Real-time results
Filters:
- Status: Draft/Sent/Approved/etc.
- Date Range: Creation date
- Client: Filter by client
- Amount: Price range
Sorting:
- By Date (Newest/Oldest)
- By Reference
- By Client
- By Amount (High/Low)
- By Status
Displayed Information
- Reference: Quote reference number
- Client: Client name/company
- Amount: Quote total
- Status: Current status
- Created: Creation date
- Valid Until: Expiration date
Quote Actions
View Quote
- Click on quote
- View full details:
- Client information
- Quote items
- Pricing breakdown
- Status history
- Notes and attachments
Edit Quote
- Click Edit on quote
- Make changes
- Click Update
- Changes saved
Delete Quote
- Click Delete on quote
- Confirm deletion
- Warning: Cannot be undone
- Quote removed
Bulk Operations
Bulk Delete
- Select multiple quotes
- Click Bulk Actions → Delete
- Confirm deletion
- All selected quotes deleted
Quote Workflow
Typical Workflow
- Draft: Quote created, not sent
- Sent: Quote emailed to client
- Viewed: Client opened quote
- Approved: Client accepts quote
- Converted: Quote converted to order (if applicable) OR
- Rejected: Client declines quote OR
- Expired: Quote past expiration date
Status Management
Change Status
- Open quote
- Select new status
- Status updates
- Client notified (if enabled)
Approve Quote
- Click Approve button
- Quote status changes
- Client notified
- Can convert to order
Reject Quote
- Click Reject button
- Enter rejection reason (optional)
- Status updated
- Client notified
Quote Revision
Create Revision
- Open existing quote
- Click Create Revision
- New quote created
- Original quote preserved
- Revision linked to original
Frontend Quote System
Request Quote Form
URL: /quotes/request
Features:
- Dynamic form based on form builder
- All configured fields displayed
- Real-time validation
- File upload support
- Submission confirmation
Form Submission
- Customer fills form
- Validates all required fields
- Submits quote request
- Receives confirmation
- Quote reference provided
- Admin receives notification
View Quote
URL: /quotes/{reference}
Features:
- Quote details
- Items and pricing
- Terms and conditions
- Approve/Reject buttons
- Download PDF option
- Print option
API Integration
API Endpoints
List Quotes
GET /api/quotes
Response:
json
{
"data": [
{
"id": 1,
"reference": "QT-20240101-0001",
"client": "Company Name",
"total": 1500.00,
"status": "sent"
}
]
}Create Quote
POST /api/quotes
Request:
json
{
"client_name": "Company Name",
"email": "client@example.com",
"fields": {
"service_type": "Web Development",
"budget": "5000",
"timeline": "3 months"
}
}Get Quote Fields
GET /api/quotes/fields/list
Response:
json
{
"fields": [
{
"name": "service_type",
"label": "Service Type",
"type": "select",
"required": true,
"options": ["Web Design", "Development"]
}
]
}API Authentication
- Requires authentication token
- Use Sanctum for API access
- Rate limiting applied
Best Practices
Form Design
Keep It Simple:
- Only ask necessary information
- Group related fields
- Use clear labels
Validation:
- Validate all inputs
- Provide clear error messages
- Use appropriate field types
User Experience:
- Logical field order
- Clear instructions
- Progress indicators (if long form)
Quote Management
Quick Response:
- Respond to requests promptly
- Send quotes quickly
- Follow up on sent quotes
Clear Pricing:
- Itemize all costs
- Show calculations
- Include all fees
Professional Presentation:
- Use branded templates
- Include company logo
- Professional formatting
Troubleshooting
Form Not Displaying
Solutions:
- Verify form builder has fields
- Check form is published
- Clear cache
- Check frontend settings
Fields Not Saving
Solutions:
- Check field validation
- Verify required fields
- Check file permissions
- Review error logs
PDF Not Generating
Solutions:
- Verify PDF library installed
- Check template exists
- Verify permissions
- Check error logs
Related Documentation
Last Updated: [Date will be updated during final review]