GK.Gergely Kovács
← Projects
Full-stack owner2025

Checkout-Status Workflow — Full-Stack Rewrite

Rebuilding the status lifecycle behind every customer transaction so operators could finally trust what the screen told them.

01The problem

The checkout-status workflow is the surface that touches every customer transaction. It got stuck on "Creating" whenever creation failed, and reported "Success with warning" in cases that were really failures. Operators couldn't tell a genuine partial success from a silent failure — and this is a platform where a misread status has real downstream consequences.

02The elegant solution
  1. 01

    Treated the root cause as a modelling problem, not a display bug: introduced a genuine "Success with warning" state — distinct from Failed, a real category for partial-success operations — in the checkout-state enum across all four operation types (create, update, check-in, delete).

  2. 02

    Validated the whole lifecycle against a fault-injection test harness, deliberately failing each operation type to confirm the state transitions held under error.

  3. 03

    Shipped a parallel improvement to the existing ExtJS frontend so the older UI could surface the new states immediately, without waiting for the in-flight Angular rewrite to catch up.

  4. 04

    Renamed the confusing "Completed with Errors" statuses to "Successful" across every operation type — a clarity win delivered with no database migration.

  5. 05

    Carried it through ten months and eight versions, absorbing repeated deployment-step failures rather than shipping something that only half-worked.

03The outcome

The rewritten lifecycle shipped to production. Status now means what it says — partial success is a first-class state, not a guess — across the surface that every transaction passes through.

Stack
  • Python
  • SQLObject
  • ExtJS
  • Angular
  • PostgreSQL
Evidence

RM#8860 (lifecycle rewrite, shipped v9.3), RM#8991 (ExtJS UI improvement), RM#9287 (status-label clarity), RM#8717 (Checkout Manager / jobadmin display).