Introduction
Welcome to Acois — a complete Laravel SaaS platform for invoicing, ERP, and CRM. This documentation covers everything from uploading files to publishing the mobile app on the App Store.
What is Acois?
Acois is an AI-powered, multi-company SaaS script built on Laravel (PHP). One installation supports unlimited companies — each with full data isolation, their own roles, staff, invoices, and CRM pipeline.
SaaS Architecture
Every database query is automatically scoped to the logged-in user's company_id. Data is completely isolated between companies.
| Role | Access |
|---|---|
| Super Admin | Manages all companies, subscriptions, global SMTP, and platform settings via /admin |
| Company Admin | Owns a company workspace — full access to all modules |
| Staff | Team members with Role & Permission-based access, added by the Company Admin |
Tech Stack
| Layer | Technology |
|---|---|
| Backend Framework | Laravel (PHP 8.3+) |
| Frontend | Blade Templates, Tailwind CSS |
| Mobile App | React Native (Expo) — Android & iOS |
| Database | MySQL 5.7+ / MariaDB 10.4+ |
| PDF Engine | Barryvdh DomPDF |
| Charts | ApexCharts |
| AI | OpenAI GPT-4o-mini |
| Payment Gateways | Stripe, Razorpay, PayPal, Flutterwave |
| Mobile Auth | Laravel Sanctum (API tokens) |
What's Included
Your purchase includes the full Laravel web application source code, the React Native mobile app source code, and this documentation.
vendor/ folder is pre-included — you do not need to run composer install on your server. Just upload and run the web installer.Server Requirements
Verify your hosting environment meets these requirements before uploading. The web installer checks all of these and shows a requirements report screen.
| Requirement | Minimum | Notes |
|---|---|---|
| PHP | 8.3+ | 8.3 or 8.4 recommended |
| MySQL / MariaDB | MySQL 5.7 / MariaDB 10.4 | MySQL 8.0+ preferred |
| Web Server | Apache or Nginx | Apache: mod_rewrite must be enabled |
| PHP Extensions | PDO, mbstring, openssl, curl, zip, GD, tokenizer, xml, ctype, json, bcmath, fileinfo | All checked by installer |
| Writable Paths | storage/, bootstrap/cache/ | Set to 755 or 775 |
| PHP Memory Limit | 256 MB | 512 MB recommended for PDF generation |
| Max Upload Size | 10 MB | upload_max_filesize in php.ini |
Apache .htaccess
Acois ships with a public/.htaccess for URL rewriting. Ensure AllowOverride All is set in your Apache VirtualHost.
Nginx Configuration
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
public/ folder, not the Laravel root. This is standard for all Laravel applications.Upload Files
Upload the Acois web app files to your server via FTP/SFTP or your hosting file manager.
- Extract the downloaded ZIP on your local computer. You will find
Acois_CRM/,Mobile_App/, andDocs/folders inside. - Connect to your server via FTP (FileZilla, Cyberduck) or use cPanel File Manager.
- Upload the entire contents of
Acois_CRM/to your server web root (e.g.,public_html/or your subdomain folder). - Set folder permissions to
755and file permissions to644. - Set
storage/andbootstrap/cache/to775:
chmod -R 775 storage bootstrap/cache
crm.yourdomain.com), create the subdomain first in cPanel and upload to its root folder. Set the subdomain document root to point to the public/ subfolder.cPanel File Manager Method
- Log in to cPanel → File Manager.
- Navigate to
public_html/(or your subdomain folder). - Click Upload → upload the ZIP file directly to the server.
- Right-click the uploaded ZIP → Extract.
- Move the extracted files so they sit directly in the web root (not inside a subfolder).
Acois_CRM/. Do not upload Docs/ or Mobile_App/ to your web server.Run the Installer
Acois has a built-in multi-step web installer. After uploading, visit https://yourdomain.com/install in your browser.
CheckInstalled middleware. Once complete, visiting /install again automatically redirects to the login page.Installer Steps
- Welcome — Overview of the installation process.
- Purchase Verification — Enter your CodeCanyon purchase code.
- Requirements Check — Automatically checks PHP version, extensions, and folder permissions. Shows pass/fail for each item.
- Database Configuration — Enter DB host, name, username, and password.
- Import Database — Automatically imports
database/acois.sql(133 KB schema + seed data). - Admin Account — Set the Super Admin email, name, and password.
- Install — Writes
.env, generates APP_KEY, writesstorage/installed.lock. - Done — Redirects to
/adminlogin page.
Purchase Verification
Acois verifies your CodeCanyon purchase code during installation. Each license is tied to one domain.
Where to Find Your Purchase Code
- Log in to your Envato / CodeCanyon account.
- Go to Downloads → find Acois in your purchase list.
- Click Download → License certificate & purchase code.
- Open the certificate — copy the Item Purchase Code (a UUID like
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
How Verification Works
The installer POSTs your purchase code and domain name to our verification server. If valid, installation proceeds and the code is locked to your domain. Your server must be able to make outbound HTTPS requests (curl extension required).
Database Setup
Create a MySQL database before running the installer. The installer imports the full schema automatically.
Create a Database in cPanel
- Log in to cPanel → MySQL Databases.
- Create a new database (e.g.,
youraccount_acois). - Create a new MySQL user with a strong password.
- Add the user to the database with All Privileges.
- Note down: database name, username, password, host (usually
localhost).
| Installer Field | Typical Value |
|---|---|
| DB Host | localhost |
| DB Port | 3306 |
| DB Name | The database you created |
| DB Username | The user you created |
| DB Password | The password for that user |
Admin Account Setup
The final installer step creates the Super Admin account that controls the entire platform.
| Field | Description |
|---|---|
| Admin Name | Your full name — displayed in the admin panel |
| Admin Email | Used to log in — must be a valid email |
| Admin Password | Choose a strong password (min. 8 characters) |
| App Name | Platform name shown in emails and the browser title |
storage/installed.lock to block re-installation. You'll be automatically redirected to /admin to log in.Post-Install Steps
After successful installation, complete these steps to get Acois fully production-ready.
- Log in to Super Admin — visit
https://yourdomain.com/adminand sign in with your installer credentials. - Configure Global SMTP — go to Admin → Email Settings and enter SMTP credentials so the platform can send emails (invoices, password resets, welcome emails).
- Create Subscription Plans — go to Admin → Subscription Plans and create pricing plans for your companies.
- Configure Payment Gateway — go to Admin → Payment Settings and enable Stripe, Razorpay, PayPal, or Flutterwave.
- Create First Company — go to Admin → Companies → Add Company, or enable self-registration from the landing page.
- Set Up Cron Job — add the Laravel scheduler cron entry on your server. See Cron Jobs.
- Verify App URL — in Admin → General Settings, confirm the App URL matches your domain exactly (including
https://).
Company Setup
Each company has its own profile, branding, and settings — configured by the Company Admin after first login.
Company Profile
Go to Settings → Company Profile inside the company panel.
| Setting | Description |
|---|---|
| Company Name | Printed on all invoices, quotes, and PDF documents |
| Logo | Appears in navbar, invoices, and email footers |
| Address | Full address printed on PDFs |
| GST / Tax Number | VAT/GST registration number on invoices |
| Currency | Default currency (changeable per invoice) |
| Timezone | All timestamps shown in this timezone |
| Invoice Prefix | e.g., INV- → invoices numbered INV-0001, INV-0002… |
| Fiscal Year Start | Used in yearly reports and tax summaries |
Roles & Permissions
Go to Settings → Roles & Permissions. Acois ships with 8 pre-built roles (Admin, Sales, Accounts, HR Manager, etc.). You can create custom roles and toggle module-level access for each.
SMTP / Email Configuration
Configure SMTP at two levels: globally (Super Admin) and per-company. Per-company settings override global for outgoing company emails.
Global SMTP — Admin Panel → Email Settings
| Field | Example |
|---|---|
| MAIL_HOST | smtp.gmail.com |
| MAIL_PORT | 587 (TLS) or 465 (SSL) |
| MAIL_USERNAME | Your email address |
| MAIL_PASSWORD | App password (see Gmail note below) |
| MAIL_ENCRYPTION | tls or ssl |
| MAIL_FROM_ADDRESS | Sender address for all platform emails |
| MAIL_FROM_NAME | Sender name (e.g., Acois Platform) |
myaccount.google.com/apppasswords. Use the App Password — not your regular Gmail password.Popular SMTP Providers
| Provider | Host | Port | Encryption |
|---|---|---|---|
| Gmail | smtp.gmail.com | 587 | tls |
| Outlook / Office365 | smtp.office365.com | 587 | starttls |
| SendGrid | smtp.sendgrid.net | 587 | tls |
| Mailgun | smtp.mailgun.org | 587 | tls |
| Amazon SES | region-specific | 587 | tls |
| cPanel Mail | mail.yourdomain.com | 465 | ssl |
Payment Gateways
Acois supports four payment gateways for subscription billing. Configure from Admin Panel → Payment Settings. You can enable multiple gateways simultaneously.
Stripe
- Log in to
stripe.com→ Developers → API Keys. - Copy your Publishable key and Secret key.
- Paste both into Admin → Payment Settings → Stripe and toggle Stripe enabled.
Razorpay (India)
- Log in to
razorpay.com→ Settings → API Keys → Generate Key. - Copy the Key ID and Key Secret.
- Paste into Admin → Payment Settings → Razorpay.
PayPal
- Log in to
developer.paypal.com→ My Apps & Credentials → Create App. - Copy the Client ID and Secret.
- Set mode to live (use sandbox for testing).
- Paste into Admin → Payment Settings → PayPal.
Flutterwave (Africa)
- Log in to
flutterwave.com→ Settings → API Keys. - Copy the Public Key and Secret Key.
- Paste into Admin → Payment Settings → Flutterwave.
AI / OpenAI Setup
Acois uses OpenAI GPT-4o-mini for its AI chat assistant, email writer, campaign content, and report analysis.
Get Your OpenAI API Key
- Create or sign in at
platform.openai.com. - Go to API Keys → Create new secret key. Copy it — shown only once.
- Add billing credits to your OpenAI account (GPT-4o-mini is very cost-effective — fractions of a cent per request).
Configure in Acois
Go to Admin Panel → AI Settings and paste your key. Each company can also enter their own key at Settings → AI Settings — company key takes priority over global key.
AI Features
WhatsApp Business
Send invoice PDFs, payment reminders, and notifications directly to clients via WhatsApp Business API.
Setup Steps
- Go to
developers.facebook.com→ My Apps → Create App → Business. - Add the WhatsApp product to your app.
- Connect a WhatsApp Business phone number and verify it.
- Get your Permanent Access Token (from Business Manager) and Phone Number ID.
- Enter both in Acois → Settings → WhatsApp Settings and enable "Send via WhatsApp".
Usage
Once configured, a Send via WhatsApp button appears on Invoice and Quote pages. The client's WhatsApp number must be saved in their contact profile.
Social Media Posting
Post to Facebook, Instagram, LinkedIn, Twitter/X, YouTube, and Pinterest from a single panel inside Acois. Each platform requires a one-time API app setup.
Facebook & Instagram
Facebook and Instagram share the same Meta Developer App. You need a Facebook Page and an Instagram Business/Creator Account connected to it.
developers.facebook.com and log in with your Facebook account.https://yourdomain.com/social/facebook/callbackRequires a LinkedIn Developer App connected to your LinkedIn Company Page.
developer.linkedin.com → My Apps → Create App.https://yourdomain.com/social/linkedin/callbackTwitter / X
Requires a Twitter Developer account and an OAuth 2.0 app with Read & Write permissions.
developer.twitter.com → Developer Portal and sign in.App permissions: Read and Write | Type: Web App
Callback URI:
https://yourdomain.com/social/twitter/callback
YouTube
Uses Google Cloud Console with YouTube Data API v3 enabled.
console.cloud.google.com and log in with the Google account linked to your YouTube channel.https://yourdomain.com/social/youtube/callbackRequires a Pinterest Developer App with boards and pins write access.
developers.pinterest.com → My Apps → Connect App.https://yourdomain.com/social/pinterest/callbackboards:read, boards:write, and pins:write scopes.Creating a Post
Once API credentials are saved and at least one account is connected by a company:
Cron Jobs
Acois uses URL-based cron jobs — each cron hits a specific URL on your server. You need to add each one to your server's crontab or cPanel Cron Jobs panel.
https://yourdomain.com with your actual Acois installation URL in every cron command below.All Cron Jobs
Quick Reference — All Cron Commands
Copy and paste all 8 cron jobs at once. Replace https://yourdomain.com with your URL:
# Social: publish scheduled posts — every minute
* * * * * curl -s https://yourdomain.com/social-publish-cron > /dev/null 2>&1
# Social: sync DMs & messages — every 15 minutes
0,15,30,45 * * * * curl -s https://yourdomain.com/social-messages-cron > /dev/null 2>&1
# Social: sync comments — every 30 minutes
0,30 * * * * curl -s https://yourdomain.com/social-comments-cron > /dev/null 2>&1
# Social: sync stats (likes, views) — every 6 hours
0 0,6,12,18 * * * curl -s https://yourdomain.com/social-sync-cron > /dev/null 2>&1
# Invoice & quote reminders — daily at 8 AM
0 8 * * * curl -s https://yourdomain.com/reminder-cron > /dev/null 2>&1
# Subscription expiry & grace period — daily at 1 AM
0 1 * * * curl -s https://yourdomain.com/subscription-cron > /dev/null 2>&1
# Salary generation — daily at midnight
0 0 * * * curl -s https://yourdomain.com/salary-cron > /dev/null 2>&1
# Social: refresh OAuth tokens — daily at 2 AM
0 2 * * * curl -s https://yourdomain.com/social-token-cron > /dev/null 2>&1
Multi-Currency
Each company can use multiple currencies on invoices. Set exchange rates manually in settings.
Adding Currencies
Go to Settings → Currencies → Add Currency. Select from the currency list and set the exchange rate.
| Field | Description |
|---|---|
| Currency Code | USD, EUR, INR, etc. |
| Symbol | $, €, ₹, etc. |
| Exchange Rate | Relative to your company's base currency |
| Position | Symbol before or after the amount |
| Decimal Places | Typically 2 |
Mobile App Overview
Acois includes a React Native (Expo) staff mobile app that connects to your Acois web server via the REST API.
Prerequisites
To build and customize the mobile app you need Node.js, Expo CLI, and EAS CLI installed on your development machine.
| Tool | Version | How to Install |
|---|---|---|
| Node.js | 18 LTS or 20 LTS | nodejs.org |
| npm | 9+ (bundled with Node) | Bundled with Node |
| Expo CLI | Latest | npm install -g @expo/cli |
| EAS CLI | Latest | npm install -g eas-cli |
| Expo Go (optional) | Latest | Install on your phone for instant preview |
Install Dependencies
cd Mobile_App
npm install
npx expo start, then scan the QR code with the Expo Go app. No build required — changes appear live.Configure API URL
The only required change before building is pointing the mobile app to your Acois server URL.
Edit src/constants/api.ts
// src/constants/api.ts
export const API_BASE_URL = 'https://yourdomain.com'; // ← change this
export const API_URL = `${API_BASE_URL}/api`;
Replace with your actual Acois URL (no trailing slash). Example:
export const API_BASE_URL = 'https://crm.mycompany.com';
Customize App Name & Icons
Edit app.json to change the app name, icons, and bundle IDs:
{
"expo": {
"name": "Your App Name",
"slug": "your-app-slug",
"icon": "./assets/icon.png", // 1024×1024 PNG
"splash": { "image": "./assets/splash.png" },
"android": { "package": "com.yourcompany.app" },
"ios": { "bundleIdentifier": "com.yourcompany.app" }
}
}
Build Android APK
Use Expo EAS Build to generate a signed APK (for direct distribution) or AAB (for Google Play Store). Builds run in the cloud — no local Android SDK needed.
One-Time Setup
- Create a free account at
expo.dev. - Log in via CLI:
eas login - Initialize EAS in the project:
eas build:configure
This creates eas.json. Set it up like this:
{
"build": {
"preview": {
"android": { "buildType": "apk" }
},
"production": {
"android": { "buildType": "app-bundle" }
}
}
}
Build APK for Direct Install / Testing
eas build --platform android --profile preview
EAS builds in ~5–10 min and gives a download link for the .apk. Share this link directly for side-loading.
Build AAB for Google Play
eas build --platform android --profile production
Google Play Store
Publish the Android app on Google Play for automatic updates and discoverability.
- Create a Google Play Developer account at
play.google.com/console. One-time $25 fee. - Create a new app — fill in name, language, type, and whether it's free or paid.
- Complete the store listing — short/full description, screenshots (phone + tablet), feature graphic (1024×500), icon (512×512).
- Complete content rating — fill the IARC questionnaire.
- Set distribution — choose countries and confirm free pricing.
- Build the AAB — run
eas build --platform android --profile production. - Upload AAB — go to Production → Releases → Create release and upload the
.aabfile. - Submit for review — click Start rollout to Production. New app review takes 1–3 days.
Build iOS App (Expo EAS)
Building for iOS requires an Apple Developer account ($99/year). EAS handles code signing and provisioning automatically.
Requirements
- Apple Developer account at
developer.apple.com($99/year) - App registered in App Store Connect with a unique Bundle ID
- EAS CLI installed and logged in (
eas login)
Register App in App Store Connect
- Go to
appstoreconnect.apple.com→ Apps → New App. - Fill in: Platform (iOS), Name, Primary Language, Bundle ID (must match
app.json ios.bundleIdentifier), SKU. - Click Create.
Build
Update eas.json to add iOS:
{
"build": {
"production": {
"android": { "buildType": "app-bundle" },
"ios": { "distribution": "store" }
}
}
}
eas build --platform ios --profile production
EAS prompts you to log in to Apple and handles certificates automatically. Build takes ~10–15 min and produces a .ipa file.
eas submit --platform ios after a successful build — skips the manual upload step.Apple App Store Submission
Submit the iOS build for review and public distribution on the App Store.
- Complete app metadata in App Store Connect — description, keywords, support URL, Privacy Policy URL.
- Upload screenshots — iPhone 6.7" (required), 6.5", 5.5". Use a simulator or real device.
- Upload the build via
eas submit --platform iosor Transporter app (Mac). - Select the build in App Store Connect → iOS App → Build section.
- Answer export compliance — typically "No" for standard apps.
- Submit for Review. First-time review: 1–7 days.
Invoicing & Quotes
Create professional invoices, quotes, and orders — with automated reminders, online payment links, and recurring billing.
Document Types
| Document | Description |
|---|---|
| Invoice | Billable document sent to clients. Supports partial payments, tax lines, discounts. |
| Quote / Estimate | Non-binding price proposal. Convert to invoice in one click. |
| Sale Order | Confirmed order before goods/services are delivered. |
| Purchase Order | Order raised to your vendors/suppliers. |
| Credit Note | Issued against an existing invoice for returns or adjustments. |
| Recurring Invoice | Auto-generated daily/weekly/monthly/yearly via cron. |
| Proforma Invoice | Preliminary invoice for customs or advance payment requests. |
PDF Templates
10 professional PDF templates included. Select at Settings → Invoice Settings → PDF Template. All templates include company logo, address, client details, line items, tax breakdown, and payment instructions.
Online Payment Link
Every invoice has a unique public payment URL (e.g., yourdomain.com/pay/INV-0001). Email it to your client — they view the invoice and pay online via any enabled gateway, with no login required.
Automated Reminders
Configure reminder schedules at Settings → Invoice Reminders (e.g., 3 days before due, on due date, 7 days after due). The scheduler sends emails automatically.
Tax Setup
- Go to Settings → Taxes and create tax rates (e.g., GST 18%, VAT 20%).
- Assign a default tax to each product/service.
- Taxes apply automatically and appear as separate line items on each invoice.
CRM & Enquiries
Manage your entire sales pipeline from first contact to closed deal — with a Kanban board, meeting scheduler, and AI-powered follow-ups.
CRM Pipeline (Kanban)
Go to CRM → Pipeline. Leads move through configurable stages (New → Contacted → Proposal → Won / Lost). Drag and drop cards between columns to update stage.
Lead Sources
Lead Timeline
Each lead has a full activity timeline — calls, emails, notes, meetings, and status changes — all timestamped and attributed to the staff member who logged the activity.
Convert Lead to Client
When a lead is won, click Convert to Client. This creates a client record and optionally generates an invoice or quote, preserving all lead data.
Meetings
Schedule meetings from a CRM lead or from CRM → Meetings. Each meeting supports multiple attendees. The calendar view shows all upcoming meetings with color coding by status.
HR, Attendance & Payroll
Manage the full HR lifecycle — from onboarding to monthly payroll — with automated attendance and one-click salary generation.
Attendance Tracking
Staff mark attendance from the web panel or mobile app. Each check-in records timestamp and GPS location. Admins can view daily/monthly reports, edit entries, and approve/reject leave requests.
Leave Management
- Admin sets up leave types (Annual, Sick, Casual) and allowances under HR → Leave Types.
- Staff apply for leave from their dashboard or mobile app.
- HR Manager approves or rejects — staff notified by email.
- Approved leaves are deducted from attendance and factored into salary calculation.
Payroll & Salary
Go to HR → Payroll → Generate Salary.
| Component | Description |
|---|---|
| Basic Salary | Set per-employee in their profile |
| Allowances | HRA, Travel, Medical — configurable per employee |
| Deductions | PF, TDS, ESI, or custom deductions |
| Advance Deduction | Outstanding advances auto-deducted from net salary |
| Leave Deduction | Unpaid leaves reduce net salary proportionally |
| Net Salary | Basic + Allowances − Deductions − Leave − Advance |
Download payslips as PDF or export all as Excel. Staff view their own payslip from the profile dashboard or mobile app.
Advance Payments
Record salary advances under HR → Advance Payments. Outstanding advances are tracked per employee and automatically deducted in the next salary cycle.
Reports
15 business reports covering sales, taxes, P&L, HR, and CRM analytics. All support date-range filters and Excel/PDF export.
| Report | Description |
|---|---|
| Sales Report | Total sales by period, product, or client |
| Profit & Loss | Revenue vs expenses summary by month/year |
| GST Report (GSTR-1) | Invoice-wise GST summary for Indian tax filing |
| Invoice Aging | Overdue invoices grouped by 0–30, 31–60, 60+ days |
| Year-on-Year Sales | Month-by-month comparison across years |
| Client Statement | Full ledger for a client — all invoices and payments |
| Product-wise Sales | Revenue breakdown by product or service |
| Expense Report | Company expenses by category and period |
| Payment Report | All payments received, grouped by method |
| Tax Summary | Total tax collected vs paid for a period |
| Staff Attendance Report | Monthly attendance summary per employee |
| Payroll Report | Month-wise salary summary for all employees |
| CRM Pipeline Report | Lead conversion rate by stage, source, and staff member |
| Campaign Performance | Open rates, click rates, conversions per campaign |
| Subscription Report | Active/expired subscriptions and revenue (Super Admin) |
Email Campaigns
Send bulk emails to CRM leads and clients. Track opens and clicks per recipient with per-lead delivery logs.
Creating a Campaign
- Go to CRM → Campaigns → New Campaign.
- Enter a subject line (or click AI Suggest for AI-generated subject options).
- Write the email body in the rich-text editor, or click AI Write to generate content from a brief.
- Select recipients — All Leads, Leads by Stage, Leads by Source, or specific tags.
- Set a Send Date/Time — send immediately or schedule for later.
- Click Save & Schedule. Emails send in batches every 5 minutes via cron.
Tracking & Analytics
The campaign detail page shows per-lead status: Pending, Sent, Opened, Clicked, or Failed. The summary card shows overall open rate and click-through rate.
How to Update
When a new version releases on CodeCanyon, follow these steps to update without losing data.
- Backup database — cPanel → phpMyAdmin → select database → Export → Quick → SQL.
- Backup files — especially
.env,storage/app/, andstorage/installed.lock. - Download the new version from CodeCanyon → Downloads.
- Extract the ZIP on your local computer.
- Upload new files to your server, overwriting everything except:
.env— keep your existing environment configstorage/— keep your uploaded files and lock file
- Run database migrations via SSH:
php artisan migrate --force
- Clear caches:
php artisan optimize:clear
Troubleshooting
Common issues and solutions. Check this section before raising a support ticket.
White Screen / 500 Error After Upload
- Set
storage/andbootstrap/cache/to permission775. - Confirm PHP 8.3+ is selected in your hosting control panel.
- Check
storage/logs/laravel.logfor the exact error message. - Ensure document root points to
public/, not the Laravel root folder.
Installer Stuck at Requirements Check
The installer shows which PHP extensions are missing. Install them via cPanel → MultiPHP Extensions Manager, or ask your host to enable them.
Purchase Code Verification Fails
- Confirm you're using the Item Purchase Code (UUID format), not the order number.
- Test outbound connections via SSH:
curl https://google.com - If the code is already used on another domain, you need a new CodeCanyon license.
Emails Not Sending
- Use Admin → Email Settings → Send Test Email to test SMTP.
- Gmail: use an App Password (not your regular password) — 2FA must be enabled.
- If port 587 is blocked, try your hosting provider's own mail server (port 465, SSL).
- Check
storage/logs/laravel.logfor SMTP error details.
PDF Generation Fails
- Confirm the
GDPHP extension is enabled. - Increase PHP memory limit to 256 MB or more in
php.ini:memory_limit = 256M - Ensure
storage/app/is writable (775).
Mobile App Can't Connect
- Confirm
API_BASE_URLinsrc/constants/api.tsis correct — no trailing slash. - Server must have a valid SSL certificate. Test at
sslshopper.com/ssl-checker.html. - Test the API endpoint directly:
https://yourdomain.com/api/healthshould return{"status":"ok"}.
Cron Job Not Running
- Test manually via SSH:
php artisan schedule:run - Confirm the PHP binary path in the cron matches PHP 8.3 (run
which php). - The working directory in the cron must be the Acois root, not
public/.
Clear All Caches
php artisan optimize:clear
php artisan config:clear
php artisan view:clear
FAQ
Frequently asked questions about Acois.
Can I use Acois on multiple domains?
No — each purchase licenses use on one domain. Each additional domain needs a new CodeCanyon license. This follows Envato's Regular License policy.
How many companies can I create?
Unlimited. As Super Admin you can create as many workspaces as needed, or let companies self-register. Optionally control their access via Subscription Plans.
Can I white-label Acois?
With Envato's Extended License, yes — you can rebrand and offer Acois as a SaaS product to your own clients. The Regular License covers one end-product only.
Is the OpenAI key required?
No. AI features are hidden if no key is configured. All other features work fully without OpenAI.
Is the mobile app source code included?
Yes — the full React Native (Expo) source is in the Mobile_App/ folder of your purchase.
Which PHP version is required?
PHP 8.3 or 8.4. PHP 7.x and 8.0–8.2 are not supported.
Does it work on shared hosting?
Yes — most modern cPanel shared hosting with PHP 8.3 works fine. You must be able to set the document root to public/. VPS or cloud hosting is recommended for production SaaS use.
How do I get future updates?
Download from CodeCanyon → Your Downloads → Acois. Your purchase includes 6 months of free updates; extended support is available from CodeCanyon at checkout.
Can I get a refund?
Refunds follow Envato's refund policy. Installation issues are fully supported — please contact us before requesting a refund.
Credits & Support
Thank you for purchasing Acois! Here's how to get help and the third-party libraries that power the platform.
Get Support
Supported: Questions about features, help with installation and configuration, bug fixes in the item.
Not included: Custom development, third-party plugin conflicts, server configuration beyond this documentation.
Third-Party Libraries
| Library | License | Used For |
|---|---|---|
| Laravel Framework | MIT | Core PHP framework |
| Tailwind CSS | MIT | UI styling |
| Barryvdh DomPDF | MIT | PDF invoice generation |
| ApexCharts | MIT | Dashboard & report charts |
| OpenAI PHP (orhanerday) | MIT | AI/GPT integration |
| Laravel Sanctum | MIT | Mobile API authentication |
| Intervention Image | MIT | Image processing |
| Maatwebsite Excel | MIT | Excel export for reports |
| React Native (Expo) | MIT | Mobile app framework |
| Stripe / Razorpay / PayPal SDK | MIT | Payment processing |
Changelog
| Version | Date | Notes |
|---|---|---|
| v1.0.0 | June 2026 | Initial release — full invoicing, CRM, HR, AI, social media, campaigns, and mobile app. |
Contact Us
Have a question, issue, or need help with installation? Reach out to us — we typically respond within 24 hours on business days.
Before Contacting Support
To help us resolve your issue faster, please include the following in your message:
- Your CodeCanyon purchase code
- Your domain / server URL
- A clear description of the issue and the steps to reproduce it
- Any error messages you see (from the screen or
storage/logs/laravel.log) - Your PHP version and hosting provider