Commissa · Quickstart
Commissa Quickstart, as shipped in the download
The QUICKSTART.txt in the download — the same steps your delivery email carries.
COMMISSA — QUICKSTART
=====================
Self-hosted sales-commission calculator — PHP + MySQL/SQLite. Computes what your
reps are owed. It moves NO money (no payment processing, no cards, no crypto).
REQUIREMENTS
------------
- PHP 8.1+ with extensions: pdo, pdo_sqlite (or pdo_mysql)
- MySQL 5.7+ / MariaDB 10+ OR SQLite 3 (SQLite requires no extra setup)
- A web server (Apache with mod_rewrite, or Nginx with try_files)
- No Composer packages, no API keys, no external services.
SHARED HOSTING / CPANEL (RECOMMENDED FOR MOST BUYERS)
------------------------------------------------------
1. Upload the contents of the `app/` folder to your web root (e.g. public_html/)
or a subdirectory (e.g. public_html/commissa/).
2. Make sure this directory is writable by PHP:
data/
Via cPanel File Manager: right-click -> Permissions -> set to 755 or 775.
3. Visit https://yourdomain.com/install/ in your browser.
4. Fill in the installer:
- Database: choose MySQL (fill in host/name/user/pass) or SQLite (no setup)
- Business name, currency, timezone
- Your admin name, email + password
5. The installer writes config.php, creates a starter global 5% flat rule, and
redirects you to the login page.
6. Log in, then:
- Add your reps
- Set up commission rules under Setup > Commission rules
(flat, tiered, or per-category; global or per-rep, with effective dates)
- Record deals (mark each won or pending)
- Create a pay period and open it to see each rep's payout; open a rep's
statement to print/PDF/CSV it and add bonuses or clawbacks.
TRY IT WITH DEMO DATA FIRST
---------------------------
- On the dashboard, click "Load demo data" for a sample team with a tiered
scheme whose bands a rep's deals straddle, then "Reset all data" when done.
- Or from the command line: php bin/demo.php
(login: admin@commissa.app with the one-time password it prints)
VPS / SELF-HOSTED (APACHE)
--------------------------
<VirtualHost *:80>
DocumentRoot /var/www/commissa/app
<Directory /var/www/commissa/app>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
DOCKER (QUICK TEST)
-------------------
docker run --rm -p 8080:8080 \
-v "$(pwd)/app:/var/www/html" \
-w /var/www/html \
php:8.3-cli \
php -S 0.0.0.0:8080 router.php
Then visit http://localhost:8080/install/
HOW COMMISSION IS COMPUTED
--------------------------
- FLAT: one rate on every dollar of a rep's won sales.
- TIERED: progressive bands on the rep's cumulative won volume in the period
(like tax brackets). A deal that crosses a band is split across the bands to
the cent, and the statement lines always sum to the period total exactly.
- PER-CATEGORY: a rate per product/category, with a default for the rest.
- A rep-specific rule overrides the global default; the latest effective date
on/before the period wins.
- Net payout = gross commission + adjustments (bonuses +, clawbacks -).
REPORTS & EXPORTS
-----------------
- Open a pay period to see every rep's volume, gross, adjustments and net.
- Open a rep's statement to Print / Save-as-PDF, download a genuine PDF, or a
CSV (formula-injection hardened, safe to open in Excel / Google Sheets).
- The whole-period CSV lists one row per rep.
POST-INSTALL SECURITY CHECKLIST
--------------------------------
[ ] config.php is protected (the .htaccess does this automatically)
[ ] data/ is not web-accessible (.htaccess blocks it automatically)
[ ] Use HTTPS in production
[ ] Keep PHP updated
LOOKING AFTER IT (from 4.0)
---------------------------
* Updates: open Updates in the menu, save your license key once, press Check for updates.
Reaching 4.0 from 3.x is the last update by hand: replace the files; config.php and data/ stay.
* Sample data: the installer offers to start with a sample; remove it later with one click.
* Backups: "Back up once a day by itself" is on by default (/restore); add an S3-compatible bucket there for
a copy somewhere else. The Health page (/health) says whether all of this is working.
* On Nginx: use the server block in the manual ("On Nginx: keep data/ private", https://ownware.io/p/commissa/manual);
it opens the installer and keeps data/ private.
* One-line install for technical owners:
curl -fsSL https://ownware.io/install.sh | sh -s -- commissa <your license key>
NOTES
-----
* Money is stored as integer cents; rates as integer basis points. No floating
point ever touches a total.
* Commissa computes commission owed. It is NOT a payment processor and never
handles cards, bank transfers, or cryptocurrency. Settle payouts via payroll.
← Back to Commissa · Manual · API · Test run