Introduction
Developer-facing documentation for the Nova Print monorepo: how the five apps fit together, which Django apps own which domain, and where to look next for architecture, models, and order flows.
Architecture Overview
Nova Print is a multi-frontend, single-backend system. Four client apps call one Django REST API under /api/. Orders from POS and ecommerce both land as POSOrder rows; customer-facing shareable flows go through customerlink and the checkout app.
Domain Model
Core entities developers touch when extending catalog, stock, POS, ecommerce checkout, or shareable customer links. Source of truth: Django models under backend-main/.
Order Lifecycle
All sales funnel into POSOrder (backend-main/pos/models.py), distinguished by ordersource and payment fields. Status changes go through pos/status.py (backend-main/pos/status.py) (applyorder_status) so archive timestamps and linked customer links stay consistent.
Customer Link Lifecycle
Customer links let a POS operator share a checkout URL. The customer fills products/shipping (and optionally chats), then the store converts the submission into a POSOrder. Catalog links are a one-shot picker that creates a customer link already in Submitted.