Area: mobieusMarket / BBS (audit p3) · Surface: /market (Listing::paginate) · Dimension: existing-feature-improvement · Severity: major
Every shopping surface our competitors ship — eBay, Facebook Marketplace, plus the storefronts inside Thinkific/LearnWorlds — lets the buyer sort by Price: low→high, Price: high→low, and (for relevance) best match. A buyer with a budget literally cannot say 'show me the cheapest first'; they must page through newest-first and eyeball prices. This is a one-line UX miss that makes the catalog feel broken for price-sensitive browsing, which is most of marketplace traffic.
Evidence
Listing::paginate hardcodes `ORDER BY l.created_at DESC` (platform/src/Models/Listing.php:240) and reads no sort parameter — `grep -n 'sort|\$_GET' Listing.php` shows only the paginate signature, no $_GET['sort']. The filter rail in templates/marketplace/index.php:102-168 has selects for category/type/platform/condition/availability/date and price-min/max inputs but no `name="sort"` select anywhere.
Suggested fix. Add a whitelisted `sort` param to Listing::paginate ('newest'|'price_asc'|'price_desc'|'ending_soon' using expires_at) and a sort <select> in the index filter rail that submits with the existing AJAX filter-swap. Keep created_at DESC as the default.
Filed by the automated tenant-app audit and adversarially evidence-verified. Status: verified. Open — not yet actioned.
Patrick Bass
@mobieus