How livenormad/livenormad-quote-engine works
LiveNormad Pricing API turns submitted product orders into supplier-informed quotes, with both custom-product and catalogue/flipbook entry paths. The main workflow parses orders, resolves catalogue data where applicable, searches for supplier offers, calculates line and package pricing, renders a PDF, and stores quote history. Background Celery tasks support asynchronous processing; API routes also expose synchronous paths and retrieval. Bedroom qualification and partial-order pricing are distinct pricing rules. Several source excerpts are partial, so uncertain internal wiring is omitted; documented capabilities are represented where their implementation was not sampled.
Main entry points: pipeline.py Shared Pipeline · quotes.py Quote Endpoints · quote_tasks.py Quote Tasks · main.py FastAPI Application
Components 22
API and Intake
- FastAPI Application
app/main.py - Quote Endpoints
app/routers/quotes.py - Flipbook Endpoints
app/routers/flipbook.py
Order Processing
- Quote Tasks
app/tasks/quote_tasks.py - Flipbook Tasks
app/tasks/flipbook_tasks.py - Shared Pipeline
app/services/pipeline.py - CSV Parser
app/services/csv_parser.py - Order and Quote Models
app/models/schemas.py
Sourcing and Pricing
- Supplier Search
app/services/scraper.py - Supplier Cache
app/services/supplier_cache.py - Line Pricing
app/services/pricing_engine.py - Package Pricing
app/services/package_pricing.py - Bedroom Categories
app/services/catalogue_categories.py
Quote Outputs
- Quote PDF
app/services/pdf_generator.py - Quote Template
app/templates/quote_template.html - Quote History
app/database.py
Catalogue Data
- Flipbook Lookups
app/services/flipbook_service.py
Other components
- Order Submitter
- Supplier Search Services
- Exchange Rate Services
- Supabase
- Celery Queue
Connections 27
- Order Submitter → FastAPI Application: submits order
- FastAPI Application → Quote Endpoints: routes requests
- FastAPI Application → Flipbook Endpoints: routes requests
- Quote Endpoints → Quote Tasks: queues processing
- Quote Endpoints → Shared Pipeline: runs sync pipeline
- Quote Endpoints → Quote History: retrieves quotes
- Flipbook Endpoints → Flipbook Tasks: queues processing
- Flipbook Endpoints → Shared Pipeline: runs pipeline
- Quote Tasks → CSV Parser: parses CSV
- Quote Tasks → Shared Pipeline: runs order pipeline
- Flipbook Tasks → Shared Pipeline: runs flipbook pipeline
- Quote Tasks → Celery Queue: updates task state
- Flipbook Tasks → Celery Queue: updates task state
- Shared Pipeline → Flipbook Lookups: looks up catalogue
- Shared Pipeline → Supplier Search: searches suppliers
- Shared Pipeline → Line Pricing: builds line prices
- Shared Pipeline → Package Pricing: prices packages
- Shared Pipeline → Bedroom Categories: qualifies bedrooms
- Shared Pipeline → Quote PDF: renders quote
- Shared Pipeline → Quote History: saves quote
- Supplier Search → Supplier Search Services: searches offers
- Supplier Search → Supplier Cache: uses cached data
- Line Pricing → Exchange Rate Services: converts currency
- Quote PDF → Quote Template: renders template
- Flipbook Lookups → Supabase: reads catalogue
- Flipbook Lookups → Supabase: updates prices
- Quote History → Supabase: reads and writes