loadCartPayload now includes ItemName, ItemParentName, and
ItemIsCheckedByDefault so the cart displays proper breadcrumbs
immediately after adding items.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- setLineItem.cfm: Attach default children from ItemTemplateLinks
(fixes drink choices not being saved for combos)
- listForKDS.cfm: Include ItemParentName for modifier categories
- kds.js: Display modifiers as "Category: Selection" format
- Various other accumulated fixes for menu builder, orders, and admin
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add avatar.cfm: GET/POST for user profile photos with multi-extension support
- Add profile.cfm: GET/POST for user profile (name, email, phone)
- Add history.cfm: Order history endpoint with pagination
- Add addresses/list.cfm and add.cfm: Delivery address management
- Add setOrderType.cfm: Set delivery/takeaway type on orders
- Add checkToken.cfm: Debug endpoint for token validation
- Fix headerValue() in Application.cfm to use servlet request object
(Lucee CGI scope doesn't expose custom HTTP headers like X-User-Token)
- Update public allowlist for new endpoints
- Add privacy.html page
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Cart management improvements:
- Added cart endpoints to public API allowlist (getOrCreateCart, setLineItem, getCart, submit)
- Fixed setLineItem null parameter handling for remarks
- Standardized API responses to use uppercase keys (ORDER, ORDERLINEITEMS)
- Updated getCart to match response format consistency
- Added CategoryName to menu items endpoint
These changes enable the mobile app to browse menu with categories and manage cart operations without authentication.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>