Introduction

First of all, Thank you so much for purchasing this template and for being my loyal customer.
You are awesome! You are entitled to get free lifetime updates to this product + exceptional support from the author directly.

This documentation is to help you regarding each step of customization. Please go through the documentation carefully to understand how this template is made and how to edit this properly. Basic HTML and CSS knowledge is required to customize this template. You may learn basics here, here and here.

Once downloaded and extracted the archive, you'll have three folders inside - documentation (the same documentation as you're reading now), application which contains the ionic project and backend which contains Laravel project for backoffice.

You'll need the following to setup local build/run environment:

MacOS with XCode >= 8 if you want to do local builds for iOS, otherwise Windows/Linux running machine will be enough

Ionic Pro account if you want to do cloud builds and/or use JS errors logging

NodeJS >= 6.0 and NPM >= 4.0

PHP >= 7.0 with Composer

MySQL >= 5.6

Latest Android SDK

Run the following commands to launch Ionic dev server:

npm install -g cordova ionic
cd ecommerce-app
npm install
ionic serve

Run the following to run the backend (will be accessible at http://localhost:8000):

These users have access to backoffice. And this access could be restricted/customized.
To do this:
Enter the Users area, find the required user. Click Edit button. You’ll be able to restrict user access to cities and system areas. For example you select Customers, Orders and City 1. This means user will have access to Customers and Orders related to City 1.

You can require customers signup by setting up the ‘Require client signup’ checkbox in settings area. Once you’ll do this, mobile app will ask client to signup or login on welcome screen.
If this is not set, the customers section will be empty.
This section allows you to see the list of your customers.
To view all orders by particular customer: enter the ‘Customers’ area, find the required customer (You can use filter) and click ‘orders history’ button.

You can create the Delivery Boys accounts here and set the password. Delivery boy mobile app can be used to work using this accounts.
You can also customize the system to send them notification messages on order assign.
By default system sends push to Delivery Boy during assign to order.

Messages

You can send a message to any Delivery Boy. Your message will arrive as push message and also appear on the 'messages' page of delivery boys mobile app.

You can create an unlimited amount of promocodes. For each promo code you can restrict amount of times it can be used and validity dates (for example you can use promocode christmas since 20th December 2018 till 30th December 2018).
You can set promo code discount in you primary currency (absolute value) or in percents (for this case please mark checkbox discount in percents).
There is also an option to set minimum order amount and make promocode valid for a single city or restaurant.
You can use the same code for promocodes, however you should care about having multiple valid promocodes with the same conditions at the same time.

You can create as much tax groups as you need. There is also an option for ‘default tax’. If you’ll set any tax group as ‘default’, system will apply it to all products, which doesn’t have a tax group set.
If you'll not create any tax groups, zero tax will be automatically applied.

Delivery areas allows you to setup service areas. This will restrict user to choose delivery address only inside specified delivery area. Start drawing the delivery area with a single click on map and stop (add last point) with double click. You can add more points and/or modify existing points at any time by dragging them with mouse, so don’t worry if you add point in wrong location.
Delivery areas can be assign to cities (if you enabled the 'multiple cities' option).

Orders provides you with full featured control set of orders. You can view a list of orders, search by date and text, filter by city and/or restaurant (if multiple cities and/or restaurants are enabled), open order details page and edit products list.
Order details page is allows you to assign the delivery boy to order.

You can also do basic order processing management. You can create an unlimited set of order statuses which will fit your nees and change status during order edit.

You can require customers signup by setting up the ‘Require client signup’ checkbox in settings area. Once you’ll do this, mobile app will ask client to signup or login on welcome screen.
If this is not set, customers auto creation feature will be automatically applied. System will use customer's phone numbers as unique identifier and will automatically create/find customers and assign them orders.

You can create any amount of cities. This will work once you have ‘Enable multiple cities’ checkbox set in settings. This will allow to create a dedicated account to access each particular city and create restaurants and all other stuff belonging to that city.

Starter is using OneSignal service for sending the push notifications. So you'll need to create the free account
Follow the OneSignal documentation for push messages support setup.
Once it's done, please enter your App ID and Auth Token in settings section.

Please note!!! Most settings change requires app restart, not minimize and open again, but kill and reopen.

Currency format

Enter the settings section and edit ‘currency format’ setting. Place :value where you want to see the money value. For example we have a sum of 250 US Dollarss and $:value setting. In this case we’ll get $250 as output everywhere in app and backend.

Date and time formats

There are corresponding settings for both backoffice and mobile application, please refer to the following docs for date and time formats customization:

Tax is included to price checkbox

If this checkbox is not set, the tax amount (set via tax groups, 0 by default) will be added to all products price

Multiple restaurants

System can handle multiple restaurants. This feature can be enabled with "Enable multiple restaurants" checkbox. The "Restaurants" section will automatically appear in the sidebar once you'll select this. You'll be able to apply restaurant filter on all backoffice sections.

Multiple cities

System can handle multiple restaurants. This feature can be enabled with "Enable multiple cities" checkbox. The "Cities" section will automatically appear in the sidebar once you'll select this. You'll be able to apply city filter on all backoffice sections.

Push messages

This section allows you to setup your OneSignal credentials. Please refer to Push Messages documentation section to know how to get them.

There are two type of OneSignal credentials.

OneSignal App ID and OneSignal Auth Token are used for customer's mobile app.

Notifications

Notification Email - this is email to be used to receive "New Order" email notification
New Order Mail Subject - this string will be set as subject for "New Order" email notification
Notification Mail From Address - this string will be set as 'from email' field for "New Order" email notification
Notification Mail From - this string will be set as 'from name' field for "New Order" email notification

Stripe

You can set your publishable and secret keys here if you're using Stripe

PayPal

You can set your PayPal credentials here if you're using PayPal. You can switch between sandbox and production PayPal environments in mobile app by setting the corresponding checkbox.

Mobile app uses ngx-translate to do this. Locale files are available under src/assets/i18n/*.js. Each file name should be basically equals to locale code (like `en` for English.
You can change default locale by changing app.component.ts, for example to set default locale to Spanish:

What you'll need to make the local builds (except of nodeJS listed above)

For Android - Android SDK or Android Studio installed

For iOS - Apple Hardware with XCode installed

If you don't want to setup the complete build environment on your local machine, you can use Ionic Pro service. They have very good documentation and it's pretty straightforward, however you'll still need the developer accounts for required stores.