PHPackages                             fleetbase/customer-portal-api - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. fleetbase/customer-portal-api

ActiveLibrary[API Development](/categories/api)

fleetbase/customer-portal-api
=============================

Extendable Customer Portal for Fleetbase

0.0.12(3w ago)0453↓63.6%AGPL-3.0-or-laterJavaScriptPHP ^8.0CI passing

Since Oct 2Pushed 3w ago1 watchersCompare

[ Source](https://github.com/fleetbase/customer-portal)[ Packagist](https://packagist.org/packages/fleetbase/customer-portal-api)[ RSS](/packages/fleetbase-customer-portal-api/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (20)Versions (13)Used By (0)

Fleetbase Customer Portal
=========================

[](#fleetbase-customer-portal)

 An extendable customer workspace for Fleetbase with self-service orders, billing, documents, support, account settings, and dashboard widgets.

 [![License](https://camo.githubusercontent.com/398898b5adf87bbb4595fa050c0881480ef4bdfb0dd23527fb62ba4ea29c6717/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4147504c2d2d332e302d2d6f722d2d6c617465722d626c75652e737667)](https://github.com/fleetbase/customer-portal/blob/main/LICENSE.md) [![npm package](https://camo.githubusercontent.com/abca37b3d8d7493fe8c86101317f16d1d78b2546d4d4eb9581ab4654275cc3d1/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f40666c656574626173652f637573746f6d65722d706f7274616c2d656e67696e652e737667)](https://www.npmjs.com/package/@fleetbase/customer-portal-engine) [![Packagist package](https://camo.githubusercontent.com/5e1a2f1f0e16449984771c2f4096b458006e5e12ac844076f4c7f0372b426ada/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f666c656574626173652f637573746f6d65722d706f7274616c2d6170692e737667)](https://packagist.org/packages/fleetbase/customer-portal-api) [![Node.js >= 22](https://camo.githubusercontent.com/b9beb1a0181caa5a77fef2641bd9c7824d4300c07eb5c8b8544bbf0e80470d0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6e6f64652d25334525334432322d3333393933332e737667)](https://camo.githubusercontent.com/b9beb1a0181caa5a77fef2641bd9c7824d4300c07eb5c8b8544bbf0e80470d0e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6e6f64652d25334525334432322d3333393933332e737667) [![Ember 5.4](https://camo.githubusercontent.com/ab66c50282b5abc8f0efe63b4f2c9fdb040c9a9ce99d2864a578be6e163db968/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f656d6265722d352e342d4530344533392e737667)](https://camo.githubusercontent.com/ab66c50282b5abc8f0efe63b4f2c9fdb040c9a9ce99d2864a578be6e163db968/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f656d6265722d352e342d4530344533392e737667) [![PHP ^8.0](https://camo.githubusercontent.com/fc4497a603befbbda4baa8c5111aec157b2e896f98b83ada63fb6949a353d57a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e302d3737374242342e737667)](https://camo.githubusercontent.com/fc4497a603befbbda4baa8c5111aec157b2e896f98b83ada63fb6949a353d57a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545382e302d3737374242342e737667)

 [![Fleetbase Customer Portal](https://camo.githubusercontent.com/08bffdd2734208eeef3cc73f9e02b23a94b2c1d7f2a42847992a91950c6d22a1/68747470733a2f2f7777772e666c656574626173652e696f2f696d616765732f73637265656e73686f74732f637573746f6d65722d706f7274616c2f637573746f6d65722d706f7274616c2d64617368626f6172642e77656270)](https://camo.githubusercontent.com/08bffdd2734208eeef3cc73f9e02b23a94b2c1d7f2a42847992a91950c6d22a1/68747470733a2f2f7777772e666c656574626173652e696f2f696d616765732f73637265656e73686f74732f637573746f6d65722d706f7274616c2f637573746f6d65722d706f7274616c2d64617368626f6172642e77656270)

Overview
--------

[](#overview)

Fleetbase Customer Portal is a first-party Fleetbase extension that gives customers a secure, self-service workspace connected to Fleetbase Console, FleetOps, and Ledger. It ships as an Ember engine for the frontend and a Laravel package for the backend API.

The portal is designed for customer-facing logistics workflows: customers can sign in, track orders, place new orders, view invoices, manage documents, open support tickets, update account preferences, and use dashboard widgets tailored to their account.

Features
--------

[](#features)

- **Customer authentication** - Customer login, two-factor verification, password recovery, customer session loading, and automatic redirects from customer access URLs.
- **Dashboard workspace** - Customer dashboard registration with widgets for active orders, completed orders, unpaid invoices, open support tickets, recent orders, and pending actions.
- **Order management** - Order listing, order details, order creation, route preview, place lookup, payload/entities, custom fields, notes, documents, cancel, reschedule, and file attachments.
- **Quotes and payments** - Preliminary service quote lookup, portal-scoped purchase rates, optional Stripe checkout sessions, payment status checks, and Ledger invoice reconciliation.
- **Billing** - Customer invoice lists, invoice details, and invoice summaries backed by Ledger when it is installed and available.
- **Support** - Customer support tickets backed by FleetOps Issues, including issue creation, summaries, comments, replies, editing, and deletion.
- **Documents and address book** - Customer-visible order documents plus account-scoped place search, lookup, creation, update, and deletion.
- **Account settings** - Account profile data, self-service password change, vendor conversion flows, personnel management, and notification preferences.
- **Admin configuration** - Console settings panel for portal configuration, access URL validation, enabled order configs, enabled service rates, and payment settings.
- **Extension points** - Sidebar and login registries, dashboard/widget registration, virtual routes, and menu integration for extending the portal from other Fleetbase packages.

Architecture
------------

[](#architecture)

This repository contains both sides of the extension:

```
addon/      Ember engine source: routes, templates, components, services, widgets, and extension registration
app/        Re-exports that make addon modules available to the consuming Fleetbase Console app
server/     Laravel package source: routes, controllers, services, providers, notifications, and observers
tests/      Ember/QUnit tests and dummy app support

```

### Frontend package

[](#frontend-package)

```
@fleetbase/customer-portal-engine
```

The Ember engine mounts at the Fleetbase route configured in `package.json`:

```
{
    "fleetbase": {
        "route": "customer-portal",
        "mount": "root"
    }
}
```

The engine registers customer portal routes for authentication, dashboard, orders, billing, support, documents, address book, notifications, settings, account management, and virtual extension pages.

### Backend package

[](#backend-package)

```
fleetbase/customer-portal-api
```

The Laravel package registers portal APIs under the configurable prefix:

```
customer-portal/int/v1

```

Backend controllers and services scope data to the authenticated customer account, integrate with FleetOps orders and issues, integrate with Ledger invoices and transactions, and expose portal configuration for Console admins.

Installation
------------

[](#installation)

Install the backend package in the Fleetbase API:

```
composer require fleetbase/customer-portal-api
```

Install the Ember engine in Fleetbase Console:

```
pnpm install @fleetbase/customer-portal-engine
```

The package also depends on Fleetbase shared frontend packages and first-party backend packages, including Core API, FleetOps, and Ledger.

Development Setup
-----------------

[](#development-setup)

For local Fleetbase extension development, use Fleetbase's package linker so Console and API resolve this checkout instead of published package versions. See the official [Fleetbase Development Setup guide](https://www.fleetbase.io/docs/platform/quickstart/development-setup) for the full workflow.

Clone Fleetbase with submodules:

```
git clone https://github.com/fleetbase/fleetbase.git
cd fleetbase
git submodule update --init --recursive
```

Install the package linker once from the Fleetbase repository root:

```
npm link
flb-package-linker --help
```

Enable the customer portal package:

```
flb-package-linker enable customer-portal
flb-package-linker install customer-portal
```

You can let the linker run install commands immediately:

```
flb-package-linker enable customer-portal --install
```

For backend package work in Docker, mount local source into the application container:

```
services:
  application:
    environment:
      ENVIRONMENT: "development"
      APP_DEBUG: "true"
    volumes:
      - ./api:/fleetbase/api
      - ./packages:/fleetbase/packages
```

Restart the stack after changing Docker mounts:

```
docker compose up -d
```

Fleetbase runs Laravel Octane, so reload the application worker after PHP changes:

```
docker compose exec application php artisan octane:reload
```

For frontend work, run the Fleetbase Console development server locally or in Docker. The local path is usually the fastest:

```
docker compose stop console
cd console
pnpm install
pnpm start:dev
```

Console will be available at:

```
http://localhost:4200

```

Configuration
-------------

[](#configuration)

The backend config lives in `server/config/customer-portal.php`:

```
return [
    'api' => [
        'version' => '0.0.1',
        'routing' => [
            'prefix' => 'customer-portal',
            'internal_prefix' => 'int',
        ],
    ],
];
```

Portal admins can configure customer portal behavior from Fleetbase Console settings. The package includes API support for:

- Portal configuration loading and saving
- Customer access URL slug validation
- Enabled order configurations
- Enabled service rates
- Payment availability and Stripe-backed checkout configuration

Quality Checks
--------------

[](#quality-checks)

Install dependencies for this package:

```
pnpm install
composer install
```

Run frontend checks:

```
pnpm lint
pnpm test
```

Run backend checks:

```
composer test
```

Useful focused commands:

```
pnpm start
pnpm build
pnpm test:ember
pnpm test:ember-compatibility
composer test:lint
composer test:types
composer test:unit
```

Contributing
------------

[](#contributing)

Contributions are welcome. Keep changes scoped, include tests for behavior changes, and verify both the Ember engine and Laravel package paths when a feature crosses the frontend/backend boundary.

When developing inside the Fleetbase monorepo, prefer `flb-package-linker` over manual `package.json`, `composer.json`, or workspace edits so local development links remain reversible.

License
-------

[](#license)

Fleetbase Customer Portal is released under the GNU Affero General Public License v3.0 or later. See [LICENSE.md](LICENSE.md) for details.

###  Health Score

43

—

FairBetter than 89% of packages

Maintenance95

Actively maintained with recent releases

Popularity18

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~57 days

Recently: every ~64 days

Total

12

Last Release

23d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9350b92834554a15fb0fff7c7c73750c86a5edd5038e4f0006f8b888a9379b57?d=identicon)[fleetbase](/maintainers/fleetbase)

---

Top Contributors

[![roncodes](https://avatars.githubusercontent.com/u/816371?v=4)](https://github.com/roncodes "roncodes (40 commits)")

---

Tags

customerfleetbasefleetbase-extensioncustomer-supportcustomer managementCustomer portalcustomer tracking

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/fleetbase-customer-portal-api/health.svg)

```
[![Health](https://phpackages.com/badges/fleetbase-customer-portal-api/health.svg)](https://phpackages.com/packages/fleetbase-customer-portal-api)
```

###  Alternatives

[fleetbase/fleetops-api

Fleet &amp; Transport Management Extension for Fleetbase

1731.5k8](/packages/fleetbase-fleetops-api)[openai-php/client

OpenAI PHP is a supercharged PHP API client that allows you to interact with the Open AI API

5.8k28.0M326](/packages/openai-php-client)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.9M754](/packages/sylius-sylius)[telnyx/telnyx-php

Official Telnyx PHP SDK — APIs for Voice, SMS, MMS, WhatsApp, Fax, SIP Trunking, Wireless IoT, Call Control, and more. Build global communications on Telnyx's private carrier-grade network.

36789.4k2](/packages/telnyx-telnyx-php)[deeplcom/deepl-php

Official DeepL API Client Library

2577.3M120](/packages/deeplcom-deepl-php)[getbrevo/brevo-php

Official Brevo provided RESTFul API V3 php library

1003.9M50](/packages/getbrevo-brevo-php)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
