Orders

An Order is the source of truth for a transaction in Floatless.

Why Orders First?

Unlike simple invoicing tools where you type directly onto the bill, Floatless requires an Order first. This ensures data integrity:

  1. Inventory/Provisioning: An Order triggers internal workflows (like "Ship the T-Shirt" or "Provision the API Key").
  2. Audit Trail: The Order is the legal agreement; the Invoice is just the request for payment.
  3. Revenue Recognition: Bookings are recognized when the Order is placed, not just when the bill is sent.

The Order Lifecycle

An order moves through strict stages to ensure accurate accounting.

Stage Description Editable?
Draft Being built by sales. Not visible to customer. ✅ Yes
Confirmed Customer has agreed. Provisioning starts. ❌ No
Invoiced Converted into a formal bill. ❌ No
Paid Money has been received. Transaction closed. ❌ No
Cancelled Voided before payment. ❌ No
🔒
**Immutability**: Once an order is **Confirmed** or **Invoiced**, it cannot be edited. If you made a mistake, you must Void the order and create a new one. This preserves the audit trail.
## Relationship to Invoices * **1 Order → 1 Invoice**: The standard workflow. * **1 Order → 0 Invoices**: If the order is "100% Discounted" or "Free Trial". * **Subscription Orders**: A special order type that generates *recurring* invoices over time.