Checkout
What it does: Guides the customer from cart to placed order β collecting delivery details, validating everything, and submitting the order intent.
Why it matters: Checkout is the highest-stakes step. Any failure here means a lost sale. Checkout must handle guest users, delivery vs. collection differences, and be resilient to submission errors.
Feature Tableβ
| Feature | Problem It Solves | What It Does | How It Works | Dependencies | Prerequisites | Limitations | Impacted Metrics |
|---|---|---|---|---|---|---|---|
| Guest Checkout | Not every customer wants to create an account | Lets customers place an order without signing in | Session-based checkout: OTP email or anonymous session used; cart tied to session | Checkout Orchestrator, Address service | Valid cart with items | No order history or loyalty for guest sessions; addresses not saved | Guest checkout conversion rate |
| Checkout β Delivery | Customer wants food delivered to their address | Collects delivery address, shows fees, submits order | Address validated β delivery fees quoted β order submitted with delivery info attached | Checkout Orchestrator, Address service, Geo service | Delivery mode set; store with delivery coverage active | Address must be within coverage zone; fees are backend-calculated (not Byte Helium-owned) | Delivery checkout rate |
| Checkout β Collection | Customer picking up in store | Simplified checkout with store selection and pickup time | Store confirmed β no address needed β order submitted | Checkout Orchestrator | Collection mode set; store open | Store must be in open state; throttling policies may limit orders | Collection checkout rate |
| Checkout Delivery Variants | Different markets/scenarios have different checkout flows | Supports market-specific checkout step configurations | Orchestrator manages variant-aware checkout sessions; steps vary by context | Checkout Orchestrator | Market variant configured | Variants must be configured by the market team β not self-serve from Byte Helium | Checkout completion rate by variant |
| Order Again | Customer wants to repeat a previous order | Repopulates cart with items from a past order | Previous order detail fetched β items added back to cart β checkout resumed | Orders service, Cart Service | Customer must be signed in; previous orders must exist | Items unavailable in current menu will be excluded with a warning | Reorder rate |
Technical Sourcesβ
π Technical Source: Guest Checkout / Delivery Checkout
- FRD References: FRD-HEL-012, FRD-HEL-013, FRD-HEL-014, FRD-HEL-015
- TRD Domain: Checkout (Core)
- Key Interfaces / APIs: Start/Resume Checkout, Address Create/Validate, Fees & Taxes Quote, Submit Order
- Data Contracts: CheckoutSession (id, cartRef, mode, steps); OrderIntent (totals, tenders, deliveryInfo β with idempotency keys)
- Source Summary:
- Checkout submission p99: β₯99.5% success
- Idempotency keys prevent duplicate orders on resubmit (409 replay returns original orderRef)
- Fees and taxes calculated by backend β Byte Helium displays only
- Orchestrator APIs: additive changes only, 120-day deprecation
- Correlation IDs tracked for all submission events
See it in the wiki
- How customers experience checkout in the front-end β Order and Get: Checkout