Skip to main content

Order Management & Fulfillment

O.D.I.N. handles the full production workflow from product catalog through order fulfillment and shipping. Products have a Bill of Materials (BOM), orders generate jobs automatically, and each order gets a per-order P&L calculation and a downloadable PDF invoice.


End-to-End Workflow Overview​

Product Catalog (BOM) → Order Created → Schedule Jobs → Jobs Generated → Fulfilled → Shipped
  1. Define products with printed components and consumables in the BOM
  2. Create an order with customer info and line items referencing products
  3. Click "Schedule Jobs" to auto-generate print jobs from the BOM and deduct consumable stock; running the scheduler then assigns them to printers with color-match scoring
  4. Monitor jobs in the Job Scheduler until all jobs are complete
  5. Mark Fulfilled when all jobs finish; Mark Shipped with a tracking number
Configure Filament Pricing Before Creating Orders

COGS calculations rely on per-material cost rates. Set these from Tools → Calculator (admin-only, saved via PUT /api/pricing-config) before creating orders, or cost data will be missing from your P&L reports.


Products & Bill of Materials​

Product Catalog​

Navigate to Commerce → Products to create and manage products.

FieldDescription
NameProduct display name
SKUYour stock-keeping unit identifier
Sale PricePer-unit revenue (used in P&L)
DescriptionOptional notes

Bill of Materials​

Each product has a BOM with two component types:

Printed Components — models from your Model Library

  • Select a model
  • Set quantity per product
  • COGS: the model's entered cost per item, or one derived from its filament usage when none is entered

Consumables — non-printed supplies (screws, magnets, packaging, labels, glue)

  • Select from the Consumables inventory
  • Set quantity per product
  • COGS: quantity × cost per unit

COGS is auto-calculated from the BOM whenever filament pricing or consumable costs change.


Consumables Inventory​

Navigate to Inventory → Consumables to manage non-printed supplies.

  • Full CRUD with stock levels, SKU, unit cost, vendor, and notes
  • Low-stock alerts when stock drops below the minimum threshold
  • Consumable stock is automatically deducted when "Schedule Jobs" is clicked on an order

Creating an Order​

  1. Go to Commerce → Orders → New Order
  2. Fill in:
    • Platform Source — Etsy, Amazon, Wholesale, Direct, or other
    • Customer Name and Order Reference
    • Line Items — select a product and quantity for each line
  3. Click Save

Order Lifecycle States​

StatusMeaningTrigger
PendingOrder received, not yet startedOrder created
In ProgressJobs generated and running"Schedule Jobs" clicked
PartialSome jobs complete, others still runningAutomatic on job completion
FulfilledAll jobs complete, ready to shipAutomatic when all jobs finish
ShippedTracking number recordedAdmin/operator marks shipped
CancelledOrder cancelledManual action

Per-Order P&L​

The order detail modal shows:

MetricCalculation
RevenueThe order total entered on the order; each line item also shows its sale price × quantity subtotal
Estimated COGSEach BOM model's cost per item plus consumable cost, for all BOM components and line items
Estimated profitRevenue − estimated BOM COGS − recorded fees
MarginEstimated profit / Revenue × 100%

PDF Invoice Export​

Download a branded PDF invoice for any order:

GET /api/orders/{id}/invoice.pdf

The invoice includes:

  • Your branding (logo, primary color, app name and footer text)
  • Order reference, customer name, platform source
  • Line items with unit prices and quantities
  • Subtotal, taxes (if configured), and total

The Download Invoice button is available in the order detail modal.


Shipping​

When an order is ready to ship:

  1. Open the order detail modal
  2. Click Mark as Shipped
  3. Enter the tracking number
  4. The order status changes to Shipped and the tracking number is saved

See Also​