Case study 02

Advanced Sales & Inventory Customization

Verified on test databases
Advanced Sales & Inventory Customization — case study visual

The challenge

Field reps sell from stock carried in their own vehicles. Standard sales-to-delivery flows assume a central warehouse, so stock could go negative on paper. Goods, cash and returns then stopped reconciling. Separately, a project-based business needed to share scarce free stock fairly between projects.

My analysis and approach

  • I modelled each rep's vehicle as a custody stock location. "Stock the rep carries" then becomes a normal, queryable inventory fact.
  • I enforced each rule at the exact point where stock moves: order confirmation, picking validation and the stock move itself. That way no screen or import can bypass it.

Technical implementation

  • action_confirm override: a per-company credit-limit policy (block, supervisor approval, or log).
  • _action_confirm override: deliveries are routed to the rep's custody location and stock is re-reserved.
  • button_validate override: shipping is blocked until the order is released.
  • StockMove._action_done check: a custody location can never go negative. The user gets a clear message telling them what to load first.
  • Return constraint: you cannot return more than was delivered, counting other open returns.
  • GPS visit check-in with a haversine geofence; an OWL dashboard and stock-peek dialog.
  • POS: a negative-stock block at payment (OWL patch), with per-company switch; MTO and BoM products are excluded.
  • Stock allocation (team module; I contributed to its development): computed free, requested, allocated and shortage quantities, with a constraint so allocation never exceeds free stock.

Verified result

  • Rules are covered by the field-sales suite (217/217 passing on a staging copy) and by POS browser tours on a test database.
  • Not claimed: no business-impact numbers (e.g. stock accuracy %) are available, so none are stated.

← ERP Business Process CustomizationAccounting & Financial Workflows →