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 All → 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 All" to auto-generate print jobs, assign to printers, and deduct consumable stock
  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 under Settings → System → Pricing 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: filament usage × cost per gram (from pricing config)

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 All" 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 All" 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
RevenueSale price × quantity per line item (summed across all lines)
COGSFilament cost + consumable cost for all BOM components
ProfitRevenue − COGS
MarginProfit / 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, app name, colors)
  • 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