6amMart is one of the most capable multi-vendor delivery scripts on CodeCanyon, but it ships as a set of separate projects: a Laravel admin panel, a customer app, a store app and a delivery-man app (all Flutter), plus an optional customer website. Most failed installs we're asked to rescue go wrong in the same three places: the server, the zone setup and the API keys. This guide follows the order we use on real client projects.
Before you start: what you need in hand
Collect these before you touch a server. Missing items are the main reason installs stall halfway.
- Your CodeCanyon purchase code and the Envato username that bought it. The installer checks both.
- A domain or subdomain for the admin panel, for example
admin.yourbrand.com, with DNS pointing at your server. - A VPS with root or sudo access. Shared hosting can run the admin panel, but real-time features, queues and cron are much easier to manage on a VPS. Our server sizing guide explains what we use.
- A Google Cloud project with billing enabled, for Maps. See the Google Maps API guide.
- A Firebase project for push notifications and, if you use it, phone OTP.
- The documentation that matches your exact version. 6amTech changes requirements between releases, so always check the docs bundled with your download.
Step 1: prepare the server
On a fresh Ubuntu LTS server we install Nginx (or Apache), PHP-FPM, MySQL 8 and Certbot for SSL. The PHP version must match what your 6amMart release requires. Recent versions need a modern PHP 8.x, and the installer will refuse to continue on an older one.
The PHP extensions the requirement screen checks for usually include BCMath, Ctype, cURL, Fileinfo, GD, JSON, Mbstring, OpenSSL, PDO MySQL, Tokenizer, XML and Zip. Install them before you run the wizard so you only see green ticks.
Then create an empty MySQL database and a user that has full rights on it. Write the credentials down; you'll need them in step 3.
Step 2: upload the admin panel and fix permissions
Upload the admin panel zip from your download into the web root and extract it. Point the Nginx server block's root at the project's public entry point as described in your version's docs, and make sure URL rewriting is enabled. Without it you'll get 404s on every page except the home page.
Give the web server user write access to storage, bootstrap/cache and the .env file. Wrong permissions here are the most common reason the installer stops at the second screen.
Issue an SSL certificate with Certbot now. The mobile apps talk to the API over HTTPS, and leaving SSL for later causes confusing "network error" bugs in the apps.
Step 3: run the install wizard
Open your domain in a browser and the installer starts. It walks through:
- A requirements check covering PHP version and extensions.
- A folder permissions check.
- Purchase code and Envato username verification.
- Database connection details.
- Database import.
- Creating the first admin account.
If the purchase code step fails, check that the server can make outbound HTTPS requests. Some hosts block them by default.
Step 4: cron, queues and mail
After the wizard, add the Laravel scheduler to cron so it runs every minute:
* * * * * cd /path/to/project && php artisan schedule:run >> /dev/null 2>&1
Without it, scheduled jobs such as order status timers and subscription checks never fire. If your version uses queued jobs, run a queue worker under Supervisor so it restarts automatically. Set up SMTP mail in the admin panel and send a test email. Store sign-ups and password resets depend on it.
Step 5: configure the platform before anyone opens the apps
Configure the admin panel in this order. Skipping ahead breaks things:
- Business settings: name, logo, currency, timezone, country and default language.
- Map API keys: 6amMart asks for a client key and a server key. Restrict each one correctly in Google Cloud.
- Zones: draw at least one delivery zone on the map. Stores, delivery men and customers are all tied to zones. With no zone, the customer app shows nothing.
- Modules: enable the modules you sell (grocery, food, pharmacy, shop, parcel) and attach them to zones.
- Payment methods: turn on cash on delivery first so you can test end to end, then add your online gateways. For LATAM and the UAE, see our payment gateway guide.
- Firebase: add your Firebase project details and push credentials. We cover this in the Firebase push guide.
- SMS/OTP: choose a provider your target country actually delivers to.
Step 6: build the Flutter apps
Install the Flutter SDK version the docs specify. Using a newer SDK than the project was written for is the quickest route to dozens of build errors. Then, for each app:
- Set the base URL to your admin domain. In the versions we've worked with, it sits in a constants file under
lib/util. - Change the app name, package name and bundle identifier. Never ship with the demo package name, because Google Play will reject it as a duplicate. Our rebranding guide covers each file.
- Add
google-services.json(Android) andGoogleService-Info.plist(iOS) from your own Firebase project. - Put your Maps key in the Android manifest and the iOS app delegate.
- Run
flutter pub get, test on a real device, then build withflutter build appbundlefor Android andflutter build ipafor iOS.
Step 7: test a full order cycle
Before you publish, do one complete order with three phones on the table: customer places an order, store accepts, delivery man picks it up, order is delivered, payment settles. Check that notifications arrive at every step. If any step is silent, it's almost always Firebase configuration or a missing cron job.
When everything works, move on to publishing in the stores.
When to get help
A clean 6amMart install is very doable if you're comfortable on a Linux server. Where projects lose weeks is the combination of server work, Google Cloud, Firebase and two app store accounts. If you'd rather hand it over, our grocery and multi-vendor delivery service covers installation, rebranding and publishing under your own accounts.
Questions
Can I install 6amMart on shared hosting?
The admin panel can run on some shared hosts, but cron, queue workers, SSL and outbound requests are often restricted. For a platform with live orders, a VPS is the safer choice.
Do I need the purchase code for every installation?
Yes. The installer verifies your purchase code and Envato username, and the license terms limit how many installations one license covers. Check the license terms on the item page.
Why does the customer app show no stores after installation?
Usually because no zone exists, the store isn't assigned to the customer's zone, or the module isn't enabled for that zone. Check zones first.
Which Flutter version should I use?
The one stated in the documentation for your 6amMart version. Newer Flutter releases often break older dependencies.