Changelogs
Latest updates, improvements, and fixes to Vend POS.
Vend POS Update - Checkout & Access Refinements
1. Vend It Delivery Improvements
- Upgraded the "Save Sale & Vend It" functionality to explicitly format precise receipt data with line items.
- Enhanced API error handling to catch local delivery failures without silently marking the receipt as sent, ensuring accurate user feedback.
2. Smart Checkout Context
- Added clean, non-intrusive tooltip icons to checkout buttons indicating the exact behavior of "Vend It" vs "Pending Payment."
3. unified Subscription Architecture
- Centralized the get_subscription_state function inside \ootstrap.php\ to govern the single source of truth for both the active SaaS billing module and core API permission gatekeeping.
- Solved the persistent "Admin says active, Store says upgrade" loop by gracefully integrating ctivated_at calculations for extended or manual grants.
- Restructured enderBillingPanel in \pp.js\ to flawlessly digest the unified response from store-status.
4. Public Web Parity
- Re-engineered \changelogs.php\ to act as a lightweight parser mapping directly to \CHANGES.md\.
- Harmonized relative landing page navigation loops in auxiliary pages (\changelogs.php\, \privacy-policy.php\) to consistently feature the unified Vend Footer and valid responsive Hamiltonian navigation.
[Unreleased] - 2026-09-09 QA Pass
Changed
- Refactored changelogs.php from regex to a tokenized markdown parser to resolve HTML leakage and structural failure.
- Updated pi/mailer.php to consistently strip HTML into a robust AltBody to solve raw markup leaking into non-HTML email clients.
- Polished POS UI success modal in ssets/app.js to correctly display the confetti emoji instead of a corrupted character entity.
- Reworded Pending Payments tooltip copy in cart modal to strictly align with intended business language.
- Added Terms of Service page ( erms-of-service.php) modeled off privacy-policy.php.
- Formally marked and explicitly required the 'Customer Email' field in ssets/app.js customer creation modals. Intercepted silent email failures within emindCustomer flow to enforce data completeness.
- Overhauled startCheckout billing calculations in ssets/app.js to correctly route USD plans via an internal price boundary, preventing Nigerian discount inflation anomalies for International stores.
- Implemented robust error handling callbacks around PayPal Button mounting to prevent infinite UI loader hang upon blocked initialization or invalid Credentials.
- Replaced hardcoded Naira symbol ? in pi/vend_receipt.php with $currency_sym dynamic variable.
- Replaced non-configurable generic Nigerian bank entity terms (OPAY) with localized 'Bank' nomenclature inside ssets/app.js transaction log.