Changelog — LogisticsRoute
[2026-05-22]
- Customers can install your portal as an app. On a phone, a customer can add your tracking portal to their home screen and open it full-screen like a native app — branded with your business name and colour. On Android the browser offers to install it; on iPhone it's "Add to Home Screen" in the share menu. Works from the track page and the customer dashboard.
Internal
- PWA:
views/public/customer.php + portal.php call the shared pwa_portal_head() helper; manifest/sw/icon are served by core from /p/{uuid}/logisticsroute/ (start route defaults to customer).
[2026-05-16]
- Fixed "Add staff" not submitting. The Add-staff form in Settings was opening but its fields and button were silently unclickable. The form is now fully interactive.
- Re-adding a revoked staff member with the same phone now works. Previously the database's unique-phone rule would block it with an opaque error; now the original record is revived with the new name, role, and PIN.
[2026-05-15]
Internal
- Fixed the per-app uninstall hook signature (
int $userId → string $userId) so order- and customer-attachment cleanup actually fires when an admin or cron purges the install.
[2026-05-14]
- Added a Watch/Read tab on the tutorial page — every lesson now has a written version alongside the video for users who prefer to read.
[2026-05-11]
- Pancho is no longer involved in your team's access. The "Staff & Invites" card in Settings is gone, along with the Pancho invite flow (phone invites, broadcast links, approval queue). Pancho now authenticates only you — the install owner.
- Coming next: an in-app Staff section where you add team members directly and they sign in with phone + PIN (no Pancho account needed). DryCleanPro has the reference build; the same pattern will land here next.
Internal
- All
require_tenant_member() / require_tenant_admin() gates rewritten to require_auth() as a placeholder. apps/logisticsroute/api/members.php and the members api-route removed.
- Schema:
tenant_members / tenant_invites CREATE TABLE statements stripped (comments remain). identity block removed from app.json.
[2026-05-09]
- Tracking link in Settings now reflects your custom domain. If you've connected a custom domain to LogisticsRoute on
/account/domains, the shareable tracking URL displays that domain instead of mypancho.com/p/.../logisticsroute/track. Falls back to the platform URL if no domain is connected.
[2026-05-07]
- Added a Staff & Invites section in Settings (admin only). Two ready-to-share invite links — one for staff, one for customers — plus an "Invite by phone" form. Copy a link, send it on WhatsApp/SMS, and the recipient signs up to Pancho once and lands here with the right role automatically. A "Rotate link" button under each one invalidates a leaked link.
Internal
- Added
tenant_invites table to schema.sql for phone-bound invite caching (additive — picked up by lazy-migrator on next request).
- Wired up the canonical members API via a one-line shim at
api/members.php plus a members entry in app.json api_routes. The Settings card markup is sourced from the shared core/views/partials/staff-invites-card.php partial.
[2026-04-29]
- Fixed "Invalid status." error when changing a shipment's status — the filter and the Change Status form now accept all configured statuses, not just Cancelled.
- Fixed the customer detail screen — opening a customer was throwing a server error because the API query still referenced columns that were removed during the identity migration. The page now loads customer info, recent shipments, projects, tickets, and notifications again.
Internal
- Added
pancho_user_id and portal_pin to customers in schema.sql (the lazy migrator picks them up on next open). Replaced the stale c.user_id reference in api/customers.php case 'get' with c.pancho_user_id.
[2026-04-20]
- Demo and subscribe now work out of the box — finished migrating the app to Pancho's UUID identity model so Try Demo no longer errors with 'We could not start the demo'.
Internal
- Added the
tenant_members table to schema.sql (backed by the platform's _per_user_app_bootstrap_owner() hook).
[2026-04-18] — Renamed
- Renamed from LogisticsPro to LogisticsRoute (slug
logisticspro → logisticsroute).
- Every display string, marketing copy, schema reference, code-comment, folder path, DB filename, and
subscriptions.app_id value now uses the new slug. Platform had not gone live yet, so old URLs are not preserved.
All notable changes to this app are recorded here. Newest entries on top.
[2026-04-17]
- Updated subscription price to $47/month (USD) and ₦25,000/month (NGN); setup fee is now $497 (USD) and ₦450,000 (NGN)
[Baseline] — 2026-04-16
- Existing feature set captured as the baseline. Subsequent changes will be prepended above this entry.