# Introduction

### Hey There! 👋

**Thank you** for your interest in Foodomaa®.

Foodomaa® is a Progressive Web Application (PWA).\
A PWA is a website with looks and feels like a native Android or iOS application, but it is website based. Being a web-based app has a massive advantage, the user does not have to download the app from the play store or the app store.\
\
When your customers visit the website, they are shown a pop-up "**Add to Homescreen**"\
Taping on this pop-up compiles the website and installs it on the device.\
\
So, there is no Android or iOS code-base for this application.

### Foodomaa **comprises** of 4 Applications

* Customer Application Built on React (PWA)
* Delivery Application Built on React (PWA)
* Powerful Admin Dashboard built on Laravel
* Intuitive Restaurant Dashboard built on Laravel

\
This documentation covers mostly all the aspects of setting up HyperLocal Multi Restaurant Food Delivery Application - Foodomaa™.\
\
For any queries pre-sales or tech support, please create a ticket on <https://support.stackcanyon.com>

###

### Learn More

* [Detailed Requirement List](/extras/requirements-for-foodomaa)
* [Limitations](/extras/limitations)


# The Flow

In this section we are going to understand how the application works.

## How does the Store Owner registers?

There are two ways a Store Owner registers to the platform.

1. Self Registration through the Sign-Up page.
2. Admin registers the Store Owner.

### Self Registration

In this process, any user can register for a role of Store Owner.\
The registration page is \*\*<https://yourwebsite.com/public/auth/login**\\>
After the registration, they will be able to login with the same URL as Admin Login.

### Admin Registers the Store Owner

Admin can add Store Owner from the Admin Dashboard.\
**Admin > Users > All Users > Add New User** and create a user with the role "**Store Owner**"

## How are Stores/Restaurant created and linked?

### Store owner creates their own stores

The store owner can link their store through the Store Dashboard.\
Login URL: \*\*<https://yourwebsite.com/public/auth/login**\\>
**Dashboard > Stores > Add New Store**

Created store will be automatically linked to the Store Owner.

Every new store added by the Store owner needs to be approved by the Admin before it is visible to the customers in the customer's application.\
\
Admin can view all the pending approval stores in **Admin > Stores > Pending Approval Stores**

### Admin creates stores and links them to the Store Owner

Admin can create Stores from Admin > Stores > Add New Store

Admin can link the newly created store to the Store Owner from **Admin > Users > Store Owners > Manage Owner's Stores** and assign stores/restaurants.

The Stores/Restaurants created by Admin are auto approved.

## How does a Delivery Guy registers?

There are two ways a Delivery Guy registers to the platform.

1. Self Registration through the Sign-Up page.
2. Admin registers the Delivery Guy.

### Self Registration

In this process, any user can register for a role of Delivery Guy\
The registration page is \*\*<https://yourwebsite.com/public/auth/login**\\>
After the registration, they will be able to login to the Delivery Application.

The Delivery Application URL is: **<https://yourwebsite.com/delivery>**

{% hint style="danger" %}
**IMPORTANT** The delivery application cannot be access through a desktop/laptop. It can only be accessed from a mobile device.
{% endhint %}

{% hint style="warning" %}
The newly created Delivery Guys will not shown any orders unless they are assigned to stores by the Admin.
{% endhint %}

### Admin Registers the Delivery Guy

Admin can add Delivery Guy from the Admin Dashboard.\
**Admin > Users > All Users > Add New User** and create a user with the role "**Delivery Guy**"

While creating a user with role of Delivery Guy there are some extra fields that are needed to be set like, the Delivery Guy Name, Age, Description, Photo, Vehicle Number etc. These extra details of the delivery guy are visible to the customer when their order is being processed.

## How are the Delivery Guys assigned/linked to the Stores?

Admin can link the Delivery Guys to a store/restaurant from **Admin > Users > Delivery Guys > Manage Delivery Stores** and assign stores/restaurants.

One Delivery Guy can be assigned to multiple of stores.

## The Application Flow (Happy Path)

1. The Customer Places an Order with a Store.
2. The Store Owner gets the new order on their Dashboard and accepts it.
3. The order is then visible to the preassigned Delivery Guy's Application.
4. The Delivery Guy accepts the order, picks-up the order and delivers the order to the Customer.

##


# Installation on Server

### Requirements&#xD;

Foodomaa™ requires **`PHP v7.3`**, and the following PHP extensions:

* OpenSSL PHP Extension
* PDO PHP Extension
* Mbstring PHP Extension
* Tokenizer PHP Extension
* XML PHP Extension
* Ctype PHP Extension
* JSON PHP Extension
* ZIP PHP Extension
* FileInfo PHP Extension
* BCMath PHP Extension
* ionCube Loader PHP Extension
* GD PHP extension

[Click here](/extras/requirements-for-foodomaa) to read the full requirement list.

### Very Important

Foodomaa™ can only be installed on your main domain or subdomain:\
For Example, **yourdomain.com** OR **hello.yourdomain.com**\
\
It **CANNOT** be installed in the subdirectory path of your domain.\
For Example,  **[www.yourdomain.com/my-new-website](http://www.yourdomain.com/my-new-website)**

Foodomaa™ requires an SSL certificate to be installed on your domain to work with all the services.\
A **FREE** SSL certificate can be easily installed on your domain using [sslforfree.com](https://sslforfree.com/)

### **Video Walkthrough**

{% embed url="<https://youtu.be/3eB3r2X9mpo>" %}

### **Written Walkthrough**

The following steps need to be followed to install the script properly on a shared hosting platform.

* **Step 1**

  Download the zip file from CodeCanyon. <br>
* **Step 2**\
  Extract the zip file on your system. <br>
* **Step 3**\
  &#x20;Navigate to **`Fresh Installation`** folder. <br>
* **Step 4**\
  Select the file  **`upload-this-for-fresh-installation.zip`** and upload it to the **`public_html`** directory of your hosting. <br>
* **Step 5**\
  Extract the contents of the uploaded zip file to the same directory i.e **`public_html`**.<br>
* **Step 6**\
  Assuming your website is **`yourdomain.com`**, and you have already set up an SSL certificate, navigate to **`https://yourdomain.com/public/install`**

<br>

**You can now proceed with the Google API keys setup.**

{% content-ref url="/pages/-M0p8yo6cK9afPBd0M2Q" %}
[Google Maps API Keys](/configurations/google-maps-api-keys)
{% endcontent-ref %}


# Installation on LocalHost

{% hint style="danger" %}
**`No support can be provided for installation on a local system.`**
{% endhint %}

###

### **Video Walkthrough**

{% embed url="<https://www.youtube.com/embed/5EicjL2QND0>" %}

### **Written Walkthrough**

The following steps need to be followed to install the script properly on your local system on a Windows 7/8/10 OS using XAMPP.

1. Download the zip file from CodeCanyon.
2. Extract the zip file on your system.
3. Make the edits in the apache configuration file as shown in the above video.
4. Navigate to **xampp > htdocs** and create a new folder named **`foodomaa`**&#x20;
5. Select the downloaded zip file **`UPLOAD-THIS.zip`**&#x61;nd extract it into the newly create folder i.e **`foodomaa`**
6. Create a database using phpMyAdmin.
7. Open up a browser and navigate to **`http://localhost/public/install`**

{% hint style="danger" %}
**`No support can be provided for installation on a local system.`**
{% endhint %}


# Update From an Older Version

### VERY IMPORTANT

Take a backup of your Store Dashboard Language Translation before you update. \
Go to **/resources/** folder and make a backup of "**lang**" folder.\
\
After the update is completed, copy-paste this folder back to the same path (**/resources/**)

Skip this step if you have not manually translated Store Dashboard Translations. <br>

### Follow these steps to update

1. Download the zip file from CodeCanyon and extract it on your local system (PC)<br>
2. Goto the "**`Upgrade from older version`**" folder.<br>
3. You will find a zip file named "**`upload-this-to-upgrade-to-xxx.zip`**"<br>
4. Upload this zip file to your server into the previous Foodomaa installation directory.<br>
5. Extract the zip file on your server.<br>
6. After successful extraction, directly go to the Admin Panel.\
   (**<https://yourwebsite.com/public>**)<br>
7. This will redirect you to the new Update Page where you need to enter your  Admin password to install the new update.<br>
8. After the successful update, you will be automatically logged in to the Admin Dashboard.<br>
9. DONE! Now you can visit the homepage of your website.

{% hint style="danger" %}
If you wish to, you can Go to **Admin > Setting > Cache Settings > Force Clear Cache**
{% endhint %}

### **Video Walkthrough for Updating using SSH**

{% embed url="<https://youtu.be/G0IGR-Ym3SU>" %}


# Google Maps API Keys

### Setup

* Goto [**`https://console.cloud.google.com`**](https://console.cloud.google.com) and login with your Google Account or create an account.
* Create a Project on Google Cloud Console.
* Enable the following APIs on your project:

{% hint style="success" %}

1. &#x20;**Geocoding API**
2. &#x20;**Maps Javascript API**
3. **Places API**
4. **Maps Elevation API**
5. **Maps Static API**
6. **GeoLocation API**
7. **Distance Matrix API**
   {% endhint %}

* You will have to set up the Google Billing account as well.
* From the Left menu, goto **`API & Services >  Credentials`** and click on \`Create Credentials\`&#x20;
* Create a Key named **`HTTP Key`** and under the website restrictions tab add your website URL like the following

{% hint style="info" %}
If your website is **`my-domain.com`** add these:\
**`https://my-domain.com/*`**`and`\
**`https://www.my-domain.com/*`**

`Make sure you add`**`asterisk (*)`**` ``at the end of the URL.`&#x20;
{% endhint %}

* Create another key named **`IP Key`** and under the IP Addresses section paste your website/server IP address.

{% hint style="info" %}
Go to <https://www.ipvoid.com/find-website-ip> and find your website's IP address
{% endhint %}

### Very Important

{% hint style="danger" %}
Sometimes on a shared hosting environment, your website IP might not be enough to configure the IP restricted key. In these cases, you will be shown a popup message like:

**Geocoding failed because \`This IP, site or mobile application is not authorized to use this API Key. Request received from IP address \*.\*.\*.\* with empty referer.**

The \*.\*.\*.\* is your server's IP address which needs to be set on the IP Restricted key. Go back to the Google Cloud Console and set this IP Address provided on the popup.
{% endhint %}

* Save all the changes and login to your Foodomaa's Admin Panel.
* Goto **`Admin > Settings > Google Maps`** and paste your both keys here.

{% hint style="info" %}
**Google API's takes 5-10 minutes to reflect the changes on your website.**
{% endhint %}

### Important Links

1. <https://console.cloud.google.com>
2. <https://cloud.google.com/maps-platform>
3. <https://www.ipvoid.com/find-website-ip>

### Video Walkthrough

{% embed url="<https://www.youtube.com/embed/Bg4kFL-oxuE>" %}


# Google Distance Matrix API

Google Distance Matix API for calculating dynamic delivery charges has been introduced in Foodomaa from **version 2.0**

### **How to enable Google Distance Matrix API?**

#### Steps:

* Login to your Google Cloud Console and enable the "**`Distance Matrix API`**"<br>
* Login to Foodomaa Admin Panel and enable Distance Matrix API from  **`Admin > Settings > Customer Application > Use Google Distance Matrix API`**

### Important Notes

* Google Distance Matrix  API calculation is only done on the Cart and not for listing the stores on the Homepage. For store listing, we rely on the geographical distance between the customer and the store. <br>
* Google Distance Matrix API only works when the store is configured for dynamic delivery charges. <br>
* If the distance between the customer and the store cannot be covered by Driving, Google Distance Matrix API will not return any value for calculations, so in this case, we fall back to the older method of calculation using the Geographical distance between the customer and the store. \
  **Example**: \
  There is no driving road path between a certain location in NewYork and Brazil, so Google Distance Matrix API doesn't return any data, in such cases, we rely on the Geographical calculations to get the distance between two points.


# SMS Gateway Settings

### Twilio Setup

![](/files/-M6YptwbI3Mo0E3sjtKn)

* Register for Twilio and login to the dashboard.
* Click on **Get a Trial Number** and get a number.
* Go to **`Admin > Settings > SMS Settings`** and set the Default SMS Gateway as **Twilio.**
* Copy the **Trial Number** **`Account SID`** and **Auth Token** and paste it in **`Admin > Settings > SMS Settings > Twilio Settings`**

{% hint style="danger" %}
Trial Number will only send SMS to verified Twilio numbers. To use this in a live production website, you will need to Upgrade your Twilio Account and make a purchase.
{% endhint %}

### MSG91 Setup

![](/files/-M6Yv540KJ2DtBeawnY8)

* Register for a MSG91 account with Transactional SMS pack. (and Not the OTP pack)
* Click on **Flow And APIs**
* Click on **Create New**
* Go to **Account > Settings** and Register a Sender ID
* Go to **`Admin > Settings > SMS Settings`** and set the Default SMS Gateway as MSG91
* Copy the Auth Key and the Sender ID and paste it in **`Admin > Settings > SMS Settings > MSG91 Settings`**

### Extra Configurations

After saving your settings for a Default SMS Gateway, you will be able to enable the following :

**OTP Verification on Registration:** Enabling this will send OTP verification SMS to every new registering users from the Customer Application.

**OTP Message:** This is the message that the new registering customer will receive. (with a five digit OTP appended at the end of the message)

**SMS Notification for Store Owners:** Enabling this will send SMS notification to Store Owner whenever they get a new order.\
For this to work, the "SMS Notification for New Orders" field should be enabled for the Store.\
(**`Admin > Stores > Edit > SMS Notification for New Orders`**)

**Store Owners new order message:** This is the message that the store owner receives when a new order is placed.

**Include Order Value in the SMS:** Enabling this will append the Order Amount at the end of the Order Message.

**SMS Notification for Delivery Guys:** Enabling this will send SMS notification to Delivery Guys whenever they receive an order.\
For this to work, the "SMS Notification for New Orders" field should be enabled for the Store.\
(**`Admin > Users > Delivery Guys > Edit > SMS Notification for New Orders`**)

**Delivery Guys new order message:** This is the message that the Delivery Guy receives when they receive an order.


# Push Notification Keys

Firebase configuration for push notification setup for the customer application.

{% embed url="<https://www.youtube.com/embed/SmAQ0uDPtgM>" %}

{% hint style="danger" %}
Legacy Server Keys cannot be used in Foodomaa.&#x20;
{% endhint %}

### IMPORTANT

After completing the setup, please refer to [this documentation](/faqs/push-notifications-and-alerts) to learn how subscribers, push-notifications and alerts system works.&#x20;


# One Signal Setup for Store Dashboard Notification

{% embed url="<https://www.youtube.com/watch?v=F4oOeSsNp4o>" %}


# Changing customer and delivery application name

## Video Walkthrough

{% embed url="<https://youtu.be/xRfQGhlKaFI>" %}

There are two files shipped for the two PWA's (Customer Application and the Delivery Application)

* manifest.json
* delivery-manifest.json

These two files are responsible for the PWA configurations like PWA color, name, favicons, etc.

Both of these files can be found on the Root Directory of the Foodomaa application.

### Changing the name of the PWA&#x20;

1. Find the file **`manifest.json`**
2. Change the **`name`**&#x61;nd the **`short_name`** values in this file
3. Save the file.

**The same can be achieved for the delivery application as well with `delivery-manifest.json` file.**

{% hint style="warning" %}
As both the Customer Application and the Delivery Application share the same domain, both cannot be installed as a PWA on the same device. Both can be used on a browser on the same device though.
{% endhint %}

### IMPORTANT

{% hint style="danger" %}
**DO NOT** change the **`gcm_sender`**&#x76;alue in any of these files
{% endhint %}


# Email Configuration

Email Configuration for Password Reset functionality using SendGrid API

{% embed url="<https://www.youtube.com/watch?v=hRqHhNoVhd8>" %}

{% hint style="danger" %}
**Make sure to save the settings before you send a Test Email.**
{% endhint %}

{% hint style="warning" %}
You may need to check your Spam folder or your "Updates" or "Promotional" email folders on your inbox to find the test email.&#x20;
{% endhint %}


# Cache Configuration

A new Cache invalidation system has been placed on Foodomaa since **`Version 1.7`**

Goto **`Admin > Settings > Cache Settings`**

![](/files/-M0pfpsxSwwi5k4ifte5)

### Force Cache Clear

Clicking on this option will clear the LocalStorage Cache the File Storage Cache, un-register the service worker and reload the page.

After the page reloads the logged-in user is preserved along with their internal settings (Selected Language, Selected Location, etc.)\
The new settings and configurations from the server are also fetched and the service workers are registered.

### Force New Settings

Clicking on this option will invalidate the settings cache and refetch the settings on the customer/delivery application when the customer/delivery application page is reloaded.&#x20;

**This is also automatically triggered every time the Admin saves any settings.**


# Promo Sliders

Promo Sliders can be **enabled/disabled** globally from **`Admin > Settings > General`**&#x20;

![Promo Slider Global Settings](/files/-M0uKa41Rww0QBZQ8AT0)

Promo Sliders can be found in **`Admin > Extras > Promo Sliders`**

### Creating Promo Sliders

![Adding a new promo slider](/files/-M0pvG2PD3fw-JRITlSS)

**Slider Position:** This field defines where the slider will be positioned on the homepage.

* **Main Position** - The slider will be placed on top of the page just after the logo header.
* **After X-Restaurants** - The slider will be placed after the X-th restaurant on the restaurant's listing.

{% hint style="warning" %}
If a slider is set to be positioned after 4th restaurant, and there are only 2 restaurants appearing on the restaurant's listing page, the slider is not shown.
{% endhint %}

**Size:** This defines the size of the slider images.

### Adding Images to Slider

![Slider editing page](/files/-M0pwT5mQ5uKwfuR0dtw)

**Clicking on the Edit button will take you to the Slide/Image Addition page.**

* Click on Add Slide to add a new **Slide/Image** to the Slider

![Adding Slide/Image to the Slider](/files/-M0pwyZrvB3ikQmlmK7a)

**Link To:** This defines the restaurant the slider is linking to. Clicking on the image will redirect the customer to the selected restaurant's page.

**Enter Custom URL:** With this option a custom URL can be placed on the Slide/Image.


# Category Slider and Filters

### How does it work?

* First Admin creates some categories like **Veg**, **Non-Veg**, **Super Fresh**, **Organic**, **Chinese,** etc
* These categories can then be linked to any restaurants. (A restaurant can have N-number of categories)
* Admin then creates a Category Slider Image/Slide and assigns categories to the Slide.
* When the customer clicks on the slide/image on the application, they are taken to a page where all the restaurants are listed which were pre assigned to the categories.

### Example

Admin creates categories :

* **Veg**, **Non-Veg**, **Super Fresh**, **Organic**, **Chinese**

Admin then assigns restaurants to categories as follows:

* **Restaurant A  ->** Veg, Super Fresh
* **Restaurant B ->** Chinese
* **Restaurant C ->** Veg, Non-Veg, Chinese

Admin then creates three slides/images.

* First Image (Picture of some Green Leaves) and assigns **Veg**, **Super Fresh** and **Organic** categories to it.
* Second Image (Picture of some Chinese Bowl) and assigns **Non-Veg** and **Chinese** categories to it

Now on the application user sees the two images (Green Leaves and Chinese Bowl).\
When the user clicks on the Green Leaves image, they are redirected to a category filter page which has now **Veg**, **Super Fresh** and **Organic** Category pre-selected.

Hence, user is shown **Restaurant A** and **Restaurant C** when they click on the Green Leaves.\
\
Similarly, when the user clicks on the Chinese Bowl image, they are redirected to a category filter page which has now **Non-Veg** and **Chinese** Category pre-selected.

Hence, user is shown **Restaurant B** and **Restaurant C** when they click on the Green Leaves.

Uses can then click on restaurants to view the menu or play around with the filters to sort out different options/categories.<br>

### Creating and Managing Categories / Slides

Category Sliders can be found in **`Admin > Extras > Restaurant Category Slider`**

![Create Restaurant Category](/files/-M0qF2o5op_pe8lHDlPZ)

**Add New Restaurant Category**: This button will create a new category (These categories can later be assigned to the restaurants)

![Restaurant Category Slider Settings](/files/-M0qFMJVMvxEL5VfYsj-)

\
**Slider Position:** This field defines where the slider will be positioned on the homepage.‌ The slider will be placed after the X-th restaurant on the restaurant's listing.

**Size**: This defines the size of the Slider Images

**Style**: This defines the style of the Images (Standard, Square, Circular)

**Show Restaurant Category label**: This defines weather or not to show the Slider Name below the image in the slide.

![Creating Restaurant Category Slides](/files/-M0qGTK_JgvkzvFylsLa)

Click on the Add Slide button to start linking the categories to a slide/image.

### Linking the restaurants to the categories

Goto **`Admin > Restaurants`** and edit a particular restaurant you wish to link categories.

![Here you can see "Chinese" and "North" categories are linked to this restaurant.](/files/-M0qHbrR9_iv7n2iyl13)


# Social Login

### Facebook Login Video Walkthrough

{% embed url="<https://youtu.be/44fZgHpUnQs>" %}

### Google Login Video Walkthrough

{% embed url="<https://youtu.be/iihvYAgiOAI>" %}


# Store Scheduling (Open/Close)

1. Go to **Admin > Stores > Edit > Enable Automatic Scheduling** and save the settings<br>
2. Set the times for opening and closing the store and update the settings.<br>
3. Go to your Hosting Provider cPanel and configure the Cron Job as shown in the video below:

{% embed url="<https://youtu.be/qRnd5IwtFGo>" %}

### Note #1

Minute, Hours, Days, Month, Weekday is set to **\***

Cron Job Command to be set is:

```cpp
wget -O /dev/null https://yourwebsite.com/public/schedule/run/your-admin-password
```

### Note #2

* Replace **yourwebsite.com** with your own website
* Replace **your-admin-password** with your own Super Admin password


# Zones in Foodomaa

Introducing the most awaited feature in Foodomaa, the Zonal Management System or Zones.

{% hint style="info" %}
**Please Note**

Zones are only related to Admin/Staffs and the management team.\
Zones have nothing to do with the customers at all.
{% endhint %}

When you decide to expand your existing Foodomaa Business to a different city or area other than you are operating in currently, sometimes, a need arises to manage the data separately for all the areas. Zones help you with the expansion of your business and give you full control of the data. With Zones, you can filter out your desired data and the whole dashboard will reflect the data only related to the selected Zone.

Zones become even more powerful with the Inbuilt feature of Users and Role Management feature. A User can be assigned to a particular zone and he’ll be only able to access the data related to his zone, taking care of the irrelevant data to the certain user with management permissions.

* Helps in Business Expansion
* Helps in better reporting.
* Helps in overall business management.
* Helps in delegating tasks to managers/custom user roles.

### How do zones work?

Suppose you are operating your business in **New York** and you want to expand your business and start your operations in **Chicago**. \
You now create two zones, **New York** and **Chicago**. \
After creating the **Zones**, you’ll have to assign all the existing stores in operation to the specific zones. \
This ensures that the relevant data is restricted only to the relevant **Zone**. Whenever you, as an Admin, want to check data specifically for a single place/zone of operation, you just have to change the Zone in the **top-bar** and you’ll be able to see all the relevant data to that particular zone only.

As a Business Owner, you have the power of filtration in your hands. You can view any data, assign any user to any particular Zones, get reports, live view on delivery guys and much more.

#### **To summarize:**

* You run a business in New York and want to expand your business to Chicago.
* You create a new Zone named Chicago and assign all the newly created stores from Chicago to the Chicago Zone.
* You can select any Zone and all the data shown on the dashboard will be only related to the Selected Zone.
* You can track delivery guys working in the Zone and their location and current status.
* You can create a manager and assign it to Chicago to delegate all your responsibilities to the new manager.

### **Users and Roles Management with Zones**

Suppose you employ a manager who will be responsible to handle all your business activities in a particular Zone, let's say, Chicago, you are able to assign him to that particular zone while creating his user from Admin Dashboard. \
This ensures your manager can only access data and operations related to the Chicago Zone of your business. \
You can assign delivery boys and even other custom user roles based on your area of operations to Zones. Like, Delivery Boy Jason lives in Chicago so he can be assigned to Chicago. \
This allows the Zonal manager to manage all the activities like cash collection, payouts, commissions, etc. of the particular delivery guy, helping you in delegating your workload to your manager.

#### **To summarize:**

* You created a manager user for Chicago Zone.
* The manager can only access the data on his dashboard related to his zone.
* No data from any other zone will be shown to the manager.
* He can perform all his activities which are permitted by the admin.
* He can create new stores and it’ll automatically get assigned to the said zone.
* He can employ new delivery guys and they’ll automatically get assigned to the said zone.
* He can collect cash, manage their wallet payouts, manage store payouts, manage commissions, etc.

### **How to create a Zone?**

1. Go to Settings **->** Zones in your Admin Dashboard.
2. Click on the **"Add New Zone"** button.
3. Enter the Name of your Zone. This name can be a city, any area, or even a state/region. It totally depends on your business model.
4. Once you create the first zone, all the existing stores, delivery guys, and custom users will be assigned to your first created zone. This is because you were operating in only one zone since the start of your business.
5. If you’re expanding your business to a new Zone, repeat steps 1, 2, and 3.
6. Now, whenever you create a new store, there’ll be an option to select the Zone where you can choose which zone the store belongs to.
7. When you create a new delivery guy or a custom role user, you’ll have the option to choose the zone to assign to him. They will only be able to operate in the selected Zone here.

**Zones can even be used as a Franchise Management for Franchise model of business.**&#x20;

All you have to do is, follow the steps above, your franchise will be able to manage his/her own zone and you can also have access to the data and take your business decisions accordingly.<br>

####


# White Screen Issues

The Customer and the Delivery Application provided with Foodomaa is a Progressive Web Application.\
It uses React JS to power the frontend. React JS works the Single Page Application concept.\
\
A Single Page Application loads all the JavaScripts and then performs tasks like initializing the website, making API calls, routing, etc.\
\
If the JavaScript executing flow is obstructed because of a bad configuration, the application crashes and hence leads to a White-Screen.

## What leads to a bad config and website to crash?

### 1. No translations are set in Admin

Goto `Admin > Extras > Translations` and check if you have at least one translation in place.

### 2. The translation are in place, but is no translation is marked as default.

Go to `Admin > Extras > Translations` and check if at least one transaction is marked as default.\
(Click on the CheckMark button on a translation to mark it as a default translation)

### 3. Removed Firebase Web Push Certificate

Go to `Admin > Settings > Push Notifications > Firebase Web Push Certificate` and check whether you have removed the FIrebase Web Push Certificate.\
Even if you do not intent to use Firebase push notifications, this field is not meant to be removed.\
\
If you have removed it by mistake, insert the following, and save your settings.\
*`BH5L8XrGsNpki5uF1008FbZzgKKZN-NmhOwdWL5Lxh5r3nsgZ6N_Dged1IYXXCCJwpnrXzs52G_v3vM_naO0hxY`*

Then go to `Admin > Settings > Cache Settings > Force Clear Cache`

### 4. API EndPoints not configured correctly

If you use a www version of your website during the installation, you might face this issue.\
Make sure you always use a non-www version of the URL. \
Go to `Admin > Settings > Fix Update Issues`

## <br>


# Push Notifications & Alerts

Foodomaa uses Firebase Cloud Messaging service from Google, which is a free service for sending Push Notifications.\
\
After the Push Notification has been configured using this [Walk-Through](/configurations/push-notification-keys) the application will be able to send Push Notifications.

### What are Subscribers?

The registered users who have allowed the Push Notification access on their device after the registration or first login on a new device (mobile, or PC) automatically becomes a subscriber. \
\
The Push Notification Access Prompt can only be shown once as this feature is not application-specific but depends on the vendor/device/browser the application is being used on.\
\
Once the Notification Access is allowed or denied, the prompt cannot be shown again.\
These settings can be changed by the user by visiting the browser's/device settings for your particular website.

### Platforms where Push Notifications can be delivered

Push notification token is registered for each registered user using the application on an Android Device, Windows PC, Mac System with Chrome.

{% hint style="danger" %}
Push notification service cannot be registered for the users who are using the application on an iOS device. This is because Firebase Cloud Messaging for the web doesn't support iOS devices.
{% endhint %}

### When does a Push Notification arrive automatically?

If you have turned on `Push Notifications for Order Updates` under Admin > Settings > Push Notifications, all the subscribers will be receiving Push Notifications when their Order Status is changed by the Admin/Restaurant Owner/Delivery Guy.\
\
The subscribers will be getting Push Notifications for Order Updates when their order is:

* Accepted by the Restaurant
* Canceled by the Restaurant
* Canceled by the Admin
* Accepted by the Delivery Guy
* Picked-up by the Delivery Guy
* Delivered by the Delivery Guy

### Sending Custom Push Notifications

Admin can send custom notifications to all its subscribers. A custom notification can have a Title, Message, an Image, and a URL assigned to it.\
\
Custom Push Notifications can be sent from Admin > Extras > Send Push Notifications.

### Limitations of Push Notifications

* Push notification can only be delivered if user have registered and subscribed to the service by allowing Push Notification access on their browser.<br>
* Push notification cannot be shown if the subscriber is currently on the website (The browser's tab to your website is active) i.e. push notifications are only delivered successfully when either the website is not opened in the user's browser tab, or is currently in-active (User is on a different website tab)&#x20;

{% hint style="success" %}
Since release **v2.1.0**, Foodomaa supports In-App Notifications when a subscriber's application is on the foreground.
{% endhint %}

* Push notifications cannot be registered on an iOS device because of FCM limitations.<br>
* In Foodomaa, the push notifications cannot be sent to Restaurant Owners due to platform restrictions.

## Alerts

All the registered users are eligible for receiving the Alerts.\
Alerts are sent to users when the for Order Updates when their order is:

* Accepted by the Restaurant
* Canceled by the Restaurant
* Canceled by the Admin
* Accepted by the Delivery Guy
* Picked-up by the Delivery Guy
* Delivered by the Delivery Guy

And is also sent when their wallet is credited/debited by the Admin.

Custom Alerts can be sent from Admin > Extras > Send Push Notifications\
From this page, the alerts can be sent to all the users or some specific users by selecting the users from a dropdown list.

Alerts are very powerful as they can be used to send custom messages to a particular user.

### Advantage of Alerts

It can be sent to all registered users.\
Alerts are platform-independent, unlike Firebase Push Notifications. i.e. Alerts are delivered to iOS users as well.

### **Scenarios**

* Crediting wallet money to some users for loyalty or as a surprise marketing strategy with a custom Message
* Creating promotion with 3rd party website and redirect them to a 3rd party website on click
* Promoting a restaurant and redirect them to a particular restaurant on click
* Creating a customized coupon for a user and sending it to them via Alerts
* *And many more if thought wisely.*

### Rules for Alerts

1. Recent 20 Alerts are shown to a particular user.<br>
2. The last 7 days alerts are shown to a particular user.\
   (After 7th day of the latest alert, the page will show a message of "No New Alerts")

<br>


# How are Stores shown to the Customers?

If you are using our **Delivery Area Pro Module**, follow [**this documentation**](/premium-modules/delivery-area-pro-module) else, continue reading below.\
\
There are 3 things that affect the visibility of the store to the Customer Application:

1. Latitude
2. Longitude
3. Delivery Radius

Let's take an example:

There are three stores A, B, and C. Each of them are set in a different location (Latitude/Longitude) with a different Delivery Radius. Let's say A has a delivery radius of 10 KM, B has 15 KM and C has 20 KM.

### Scenario - 1

#### The Customer's set location doesn't come within any store delivery radius.

![](/files/-M6PYbSvlRjkJ9BLiTEG)

In this scenario, the customer won't be shown any stores.

### Scenario - 2&#x20;

![](/files/-M6PYbSwJkmGdpJO955p)

In this scenario, the customer will only be shown Store C

### Scenario - 3

![](/files/-M6PYbSx_ismR3exiGHL)

In this scenario, the customer will only be shown Store A and Store B

### Scenario - 4

![](/files/-M6PYbStelKIXr39v864)

In this scenario, the customer will only be shown all three stores. Store A, B, and C.

### In what order are the Stores listed?

The stores which have a "Featured" badge are shuffled and listed on the top of the stores' list on the Homepage.

Other all stores are shuffled and listed below the Featured Stores.

The shuffling of the stores is done on every reload or whenever an API call is made to the server to fetch the new data.

### How are Closed Stores shown?

If a store is closed and is eligible for shown to the customer's application, it is shown at the end of the stores' list on the homepage with a message "Not Accepting Order" with a grayed-out image of the store to indicate that is is non-operational.

This message can be customized by the Admin.

When a user clicks on a Closed store, they get a grayed-out page and will not be able to place any orders from this store unless the store is set back to Open by the Admin or the Store Owner.<br>

### Can I order the Store list in a certain way?

As of now, Foodomaa doesn't have the functionally to do that. So, you won't be able to do that.


# Bulk CSV Upload

Sample CSV files for Bulk Store Upload can be found in **Admin > Stores > Bulk CSV Upload > Download Sample CSV**

Sample CSV files for Bulk Items Upload can be found in **Admin > Items & Menus > Items > Bulk CSV Upload > Download Sample CSV**

## Common Issues during CSV Upload

### 500 Server Error

This error can occur due of multiple reasons. To know the exact reason for this issue, you will need to turn on the Development Mode from Admin Settings (**Admin > Settings > General > Development Mode**)

After the development mode has been turned on, try uploading the CSV once again and you will get an error message with some definitions for the error.

#### Common Causes could be:

* The names of the header column have been changed.
* Invalid or corrupted data
* The image is missing from the destination.

### Solutions

If you have changed any headers column names, the CSV bulk upload will not work. The names has to be exactly the same as provided in the Sample CSV file.

#### Image Source Not Readable Issue

The images for the bulk upload go to these folders:

**For Stores:**\
assets/img/restaurants/bulk-upload

**For Items:**\
assets/img/items/bulk-upload

If you don't want to upload image set it as **NULL** in the CSV file.

### Rules for image names

Make sure your name of the image and the file extension matches the name on the CSV file.

**Example**:\
file-name.jpg is not same as File-name.jpg

The file extension should be correct:

**Example**:\
myfile.png is not same as myfile.jpg or myfile.jpeg

There should not be any spaces in between the file names:

**Example**:\
my image file.png -> WRONG\
my-image-file.jpg -> CORRECT\
my\_image\_file.jpg -> CORRECT\
myimagefile.jpg -> CORRECT

Also, there should not be any spacial characters like Unicode Symbols, Emojis or foreign language in the file names (Chinese, Arabic characters should not be used for image file names)


# StoreOwner Dashboard Translations

Find the file **/resources/lang/en/storeDashboard.php**

All the translations for the English Language are present in this file.

## Creating new language for StoreOwner's Dashboard

Create a new folder inside /resources/lang

This new language folder name should compile with ISO 15897.

### Example

If you need to create a Spanish translation, follow the steps:

* Create a folder named "**es**" inside **/resources/lang**
* Copy the file "**storeDashboard.php**" from "**en**" folder to your new "**es**" folder.
* Open the newly copied file and edit language as you wish.
* Save the file

Now this language will be available in the Store Owner's Dashboard Language drop-down menu in the Header (Top-Right Corner of the Store Owner's Dashboard)

## Example of folder names based on country/language

{% file src="/files/-M71sXVXoPuHuhuMnKdw" %}
ISO 15897 Locale Codes CSV File
{% endfile %}


# How "Add to Homescreen" works?

### What is a PWA?

Progressive Web Apps(PWA) use modern web capabilities to deliver an app-like user experience. They evolve from pages in browser tabs to immersive, top-level apps, maintaining the web's low friction at every moment.

**Foodomaa** is a Progressive Web Application (PWA).\ <br>

### Add to Homescreen on Chrome on Android Device

When a user loads up your website for the first time, they get a "Add to Homescreen" popup on their screen. This popup is automatically shown when the browser detects that the website is a PWA.

![](/files/-MB7xwJBfIo_FiB2Zo7t)

This automatic popup can not be shown again if it is not clicked or ignored. It is also shown only once after 10-15 seconds of user interactivity on the first load of the website.  \
\
If the user misses clicking the popup or ignores it, later then can click on the three dots button<img src="/files/-MB7yPmqlQm7pwkcTJbX" alt="" data-size="line">on the top-right corner of chrome browser and click "**Add to Homescreen**"

![](/files/-MB7xwJ9HbqTIM3iI0j-)

###

### Add to Homescreen on Safari browser on iOS device

From the Foodomaa release **v2.1.0** onwards we support custom iOS Add To Homescreen Popup message.

This can be enabled from **Admin > Settings > Customer Application > Show Custom iOS Add To Homescreen Popup**

The texts in this message can be configured from **Admin > Modules > Translations > Edit** your Language translation.

![](/files/-MD4lGEluV78McD0Fw1A)

### Why a Native iOS Popup cannot be shown?

As of July 2020, iOS does not have full support for PWAs. They still do not support major PWA functionalities like Add to Homescreen and PushAPIs.

Therefore, on an iOS device, the automatic popup for Add to Homescreen cannot be shown.

The user on an iOS device needs to click on the Share Button on Safari and then click on "Add to Homescreen".

**Here's a demo for that:**

{% embed url="<https://www.youtube.com/watch?v=I4e1aoi0P-o>" %}


# How does Wallet works?

#### Wallet functionality on Foodomaa is used for different purposes:<br>

* When a customer pays for their order via any Online Payment Gateways available on Foodomaa, and then the customer requests for a Refund of the order, or due to some issue with the order processing or operational issue, the Admin/Store Owner needs to cancel the order, then the Paid amount by the customer is sent to the customer's wallet.<br>
* Admin can manually Add/Subtract the amount from the customer's wallet using the Admin Dashboard.\
  (**Admin Dashboard > Users > All Users > View > Wallet Balance**)<br>
* Wallets are also used for storing the Delivery Guy's commission and Tips for the Delivery Guys.

####

#### How to change the Wallet name?

Go to **Admin Dashboard > Settings > General > Wallet Name**\ <br>


# When is the next update?

Whenever a new feature or implementation is scheduled for the Next Release, we move it to the "**Doing**" section of our Roadmap. \
[**Click here**](https://trello.com/b/bHoOPv3r/foodomaa-roadmap) to view the Foodomaa Roadmap.

As we progress through the list, more new features may be added based on the requirements of our users or sometimes even to make certain things compatible with the current features or upcoming modules of Foodomaa

Also, on the Roadmap, there is a section called "**Critical**".\
Any critical issues that arise on the current version of Foodomaa are noted here and we try to patch those.

Hence, an exact date for "when will the next version release" **CANNOT** be provided.\
\
If you follow the roadmap, you will see the features cards being moved from **Doing** and **Critical** to the **Completed** section. \
When all the features are Completed and Beta Tested, we release the update on CodeCanyon.

You can also follow discussions on our [**Forums**](https://discuss.foodomaa.com) to get insights into what's going on with the development of Foodomaa.&#x20;

{% hint style="info" %}
**Note**: After our release, CodeCanyon might take 4-7 days to review the application and after they approve, only then it will be available for download.&#x20;
{% endhint %}


# Creating and Linking Pages

{% embed url="<https://youtu.be/8UajiDTtmNE>" %}


# Razorpay Webhooks

Foodomaa 3.0+ implements Razorpay webhooks to capture payment data even when the transaction status is not received immediately.&#x20;

### Setup Process

**Step 1:** Login to your [RazorPay dashboard.](https://dashboard.razorpay.com/)

**Step 2:** Go to Settings > [WebHooks](https://dashboard.razorpay.com/app/webhooks)&#x20;

**Step 3:** Click **Add New Webhook**

**Step 4:** Here you need to enter the webhook URL:

`https://domain.com/api/payment/razorpay/webhook`

Change domain.com to your own domain name.

**Step 5:** In the Secret field, set a key (this can be any key you want)

**Step 6:** In the Active Events field, select **payment.failed** and **payment.captured**

**Screenshot:**

![](/files/zzGlLmkNS5L3GWJV2JYL)

**Step 7:** Click Create Webhook.

**Step 8:** Login to your Foodomaa Admin Dashboard

**Step 9:** Go to **Settings > Payment Gateways > Razorpay Webhook Secret** and insert the same Secret key you set on **Step 5**

**Step 10.** Save the settings.


# Using the Full Source Code

Full source code is provided only with an Extended License purchase.&#x20;

## Video Walkthrough

{% embed url="<https://youtu.be/GTYvpsFn9xo>" %}

## Setting up the Development Environment

You will need the following installed on your system (Windows/Mac/Ubuntu)

* Node v12.9.0
* NPM v6.10.2 (comes with node v12.9.0)
* XAMPP with PHP v7.2 (You may use any other PHP server like WAMP, XAMPP is recommended though)

{% hint style="danger" %}
If your local system doesn't have the above setup in place, you cannot proceed further.\
The versions should exactly be the same.\
\
The PHP version can be 7.2.x (But nothing less than 7.2 or more than 7.2)

XAMPP should be installed in the default folder of the installation. i.e **C:\xampp**
{% endhint %}

{% hint style="info" %}
**In this example, we will demonstrate with a Windows 10 system.**\
(Other OS setup should be similar, with the exceptions of paths and folder directives)
{% endhint %}

###

### Extracting the files and placing it in the correct folder

1. Go to **`C:\xampp\htdocs`** and create a folder named **`foodomaa`**<br>
2. Extract all the files(Source Code) that you received from over Google Drive into this folder.<br>
3. Inside the newly create foodomaa folder the contents should look something like this:

![Foodomaa folder setup inside C:\xampp\htdocs](/files/-M4CzMRHBCF_sexuoejh)

### Installing the Node Modules

In the same folder (C:\xampp\htdocs\foodomaa) open up a Command Prompt and run the following command:

```bash
npm install
```

This will automatically create a new folder named `node_modules` and install all the dependencies required for the React development.

![Installing dependencies by executing "npm install"](/files/-M4D-wHOT_YCpVxZ0OEZ)

{% hint style="warning" %}
Wait for the installation of modules to be completed and then proceed forward.
{% endhint %}

###

### Setting the API EndPoints

For connecting the Laravel Restful APIs to our React Application, we need to define our local Laravel project URL in our React Application.

* Open the folder `C:\xampp\htdocs\foodomaa` with your favorite code editor (VSCode Recommended)<br>
* Find the file `src/configs/website/index.js`<br>
* The first line of these files defines the `WEBSITE_URL` which needs to be changed according to our local environment setup, which in this case will result in:

![Changing the WEBSITE\_URL](/files/-M4D25oKShv7_1gTR9XL)

### &#x20;Starting the XAMPP Server

Go to C:\xampp\xampp-control.exe and start the Apache and MySQL Services

![Starting Apache and MySQL services](/files/-M4D3Wu8-1W-rpVSUcJ0)

### Creating a Database

Go to your favorite browser (Google Chrome recommended) and hit the following URL:

```bash
http://127.0.0.1/phpmyadmin/server_databases.php
```

Create a new Database named foodomaa

![](/files/-M4D4g4jwM819qoVRZYd)

### Installing Foodomaa

Now that we have our database setup, go to URL:

```bash
http://127.0.0.1/foodomaa/public/install
```

Then follow the installation wizard.

#### For XAMPP, the database credentials are:

* Host: 127.0.0.1
* Port: 3306
* Database Name: foodomaa
* Database User: root
* Password: (Leave Empty)

{% hint style="success" %}
After the setup, you will be able to login to your Admin Dashboard using the credentials you set during the installation process.\
\
The Admin Login URL is: **<http://127.0.0.1/foodomaa/public/auth/login>**
{% endhint %}

### Starting the React Development Server

In the folder C:\xampp\htdocs\foodomaa open up a Command Prompt and run the following command:

```bash
npm start
```

{% hint style="info" %}
This will take about 20 seconds to 1 minute (Depending on your system's performance) to start the development server.

Once the development server has started, your system's default browser window will automatically open up with **<http://localhost:3000>** running on its tab.
{% endhint %}

{% hint style="success" %}
The one-time setup is completed, and now you will be able to edit the core React files and customize the application.
{% endhint %}

## Understanding the project structure

Foodomaa is a hybrid application. It uses [**Laravel 5.8**](https://laravel.com/docs/5.8) and an open-source React QuickStart package from Facebook - [**Create React App (CRA)**](https://github.com/facebook/create-react-app)

The files from Laravel 5.8 and CRA are merged together.

The common folder that both of these application shares is **/public** directory

As you can see, there are two index files in /public directory

* index.html
* index.php

The file index.html is the entry point to the React Application after you run npm start and visit \*\*[http://localhost:3000\*\*\\](https://docs.foodomaa.com/advanced-usage/http:/localhost:3000**\\)
\
The file index.php is the entry point to the Laravel Application when you Run XAMPP's Apache and visit **<http://127.0.0.1/foodomaa>**

## **Making changes to the Application**

### React Application

All the source code for the react application (Customer and the Delivery Application) is inside the **/src** folder.\
\
After running the development server with **npm start** the system starts the live tracking of the files with Hot Reloading, that means whenever any changes are made to any files inside the **/src** folder, the dev server will recompile the code and auto-reload the browser's tab (<http://localhost:3000>)<br>

### Laravel Application

We have followed the standard laravel project structure.\
**Example**

* Models are present in **/app** folder.
* Controllers are present in **/app/Http/Controllers** folder.
* Web routes are present in **/routes/web.php** file.
* The Restful API routes are present in **/routes/api.php** file.
* The Database migrations are present in **/database/migrations** folder.
* The Laravel blade files for the Admin and the Restaurant Dashboard are present in **/resources/views** folder.

### Syncing with the uploaded images

When you upload any image files from the Admin/Restaurant Dashboard, the files are store in **/assets** directory. But the react development server will only be looking for files inside the **/public** folder.\
Hence is an exact replica of the **/assets** folder is present inside the **/public** directory as well.\
\
So, to fix this (just in the dev environment, this is not required on live website) you will need to copy the whole **assets** folder and paste it to the **/public** folder after you create a restaurant, item, upload logo, favicons, splashscreen or any form of image that needs to be shown on the Customer/Delivery Application.

## Deploying your customized application

Prior to deployment of your changes made to the application to your live website, you will need to install the standard non-edited Foodomaa application on your live server. \
[Here's how you can install it.](/installation/installation-on-server)

{% hint style="warning" %}
This tutorial assumes that your website is fully working on a non-edited version of Foodomaa.\
\
If you have customized v1.8.0 source code, the live server should already be running v1.8.0 un-touched version provided from CodeCanyon.
{% endhint %}

####

### Step 1 - Changing the Version

Go to package.json file present in the root directory (C:\xampp\htdocs\foodomaa) and increment the version number.\
Foodomaa follows [Semantic Versioning](https://semver.org) of every release.\
So, prior to your every deployment, you will need to increment the version number as 1.8.0, 1.8.1, 1.8.2, ..., 1.9.0, 1.9.1 and so on...

### Step 2 - Changing the API EndPoints

* Find the file `src/configs/website/index.js`<br>
* The first line of this files defines the `WEBSITE_URL` which needs to be changed according to your website URL

For Example: if your website is: my-website.com, then the first line of the file needs to be:

```jsx
export const WEBSITE_URL = "https://my-website.com";
```

{% hint style="warning" %}
HTTPs in the URL is mandatory before deployment.
{% endhint %}

### Step 3 - Compiling files

In the folder C:\xampp\htdocs\foodomaa open up a Command Prompt and run the following command:

```jsx
npm run build
```

This will create a new **build** folder inside  **C:\xampp\htdocs\foodomaa** and generate the compiled/production-ready files.

### Step 4 - Editing the Service Worker file

* Go to the newly created **build** folder inside and find the file **service-worker.js**
* Open the file with your Code Editor and find the following code:

```javascript
workbox.routing.registerNavigationRoute("/index.html", {
  
  blacklist: [/^\/_/,/\/[^\/]+\.[^\/]+$/],
  
});
```

Change the above code to:

```javascript
workbox.routing.registerNavigationRoute("/index.html", {
  
  blacklist: [/^\/public/, /^\/cpanel/, /^\/assets/],
  
});
```

###

### Step 5 - Zipping the file for deployment

From inside the build folder, zip the following folders/files and name the zip **build.zip** (You can name it anything)

* static (Folder)
* asset-manifest.json (File)
* index.html (file)
* precache-manifest (file)
* service-worker.js (file)

Then upload this **build.zip** file to your website's root directory on your live server and extract the files.

{% hint style="info" %}
Step 5 only shows the files needs to be zipped and uploaded for react application deployment, if you have made changes in the Laravel side of the application (models, databases, views, controllers), all these files must be zipped and uploaded to their respective directories in the server.
{% endhint %}

{% hint style="info" %}
If you have created Database Migrations on the Laravel side of the application, you will need to run "php artisan migrate" command on the server using SSH or, after deployment, you can Go to **Admin > Settings > Fix Update Issues.**\
\
Doing this will automatically run the new migrations.
{% endhint %}


# SuperCache Module

SuperCache is the first of many modules that are coming for Foodomaa.

This module aims to boost the performance of the core Foodomaa engine by caching the popular (most-called) APIs.

#### The popular APIs for Foodomaa are:

* **Languages** - language list and textual data
* **Settings** - customer/delivery app settings
* **Stores** - store information and store list&#x20;
* **Items** - recommended items, all items list, menus
* **Promo Sliders** - sliders and slides

### How does it work?

Generally in any application, when a data API is hit the request goes to the server and the server fetches the data from the Database and processes it and sends the response back to the application.

#### Without SuperCache Module:

![](/files/-MD4tqyn9MRto9LPqK6j)

#### With SuperCache Module:

![](/files/-MD4txBEVB0ERXZOKlHo)

As you can see in the "with SuperCache" diagram, there are additional checks on every listened API call for whether or not the cache exists.&#x20;

If the cache exists, the Database call is skipped and this saves a lot of server resources.

### How much is the performance gain?

On our internal tests, the performance gain was 49% on all the listened APIs. i.e. the data was returned to the customer application 49% faster than usual.

The test was conducted on a data set of 20 Stores with 1200 Items in total.

#### Private Beta Test Results

SuperCache plugin was released to our private beta channel over Discord to 6 users.\
These users are running their business with Foodomaa and the test results were phenomenal.&#x20;

Reported on an average of **200-300%** gain in performance 😍😍

Which then concluded that **the larger the user base you have the more gain you can squeeze out of SuperCache**.

### How to install SuperCache?

Go to **`Admin Dashboard > Modules > Premium Modules > Add New Module`**\
and Drag-Drop the "**UPLOAD-THIS-MODULE.zip**" file.

{% hint style="warning" %}
You will be asked for your purchase code during the module installation.
{% endhint %}

![](/files/-MD4wolgxTwrM-392PTT)

After the module is installed, double-click on the **`Disabled`** button to enable the module.

![](/files/-MD4xSz4i7Cw2Vuw9G8S)

Click on the **`Settings`** button to access the SuperCache Settings.

![](/files/-MD4y8_vofd36-5UW1zJ)

Click the **`Purge Everything`** button to clear all the cache.


# Delivery Area Pro Module

The most requested feature for Foodomaa is now ready for serious business.

{% embed url="<https://www.youtube.com/watch?v=ipLL_ltDhGA>" %}
Demo of how the Delivery Area Pro Module works
{% endembed %}

For a long time, Foodomaa has been using Radius based listing of Stores/Restaurants. \
[**More on that here.**](/faqs/how-are-stores-shown-to-the-customers) \
\
Radius based listing of stores is a powerful method of showing the stores to the users who are serving within their reach.

But sometimes, the radius based approach doesn't work with certain scenarios:

* The terrain of your operational area.
* Building/Road/Locality/City/Country wise restrictions.
* Restriction to certain areas for a better opportunity for other stores/branches to serve.
* Restrictions to a certain area due to political reasons.
* Restrictions to a certain area due to Covid-19 Red Zones.<br>

### How does Delivery Area Pro Help?

With Delivery Area Pro you will be able to easily map the areas that your business will be serving. These areas can be then assigned to the stores.

### How to install Delivery Area Pro?

Go to **`Admin Dashboard > Modules > Premium Modules > Add New Module`**\
and Drag-Drop the "**UPLOAD-THIS-MODULE.zip**" file.

{% hint style="warning" %}
You will be asked for your purchase code during the module installation.
{% endhint %}

<br>

<br>


# Thermal Printer Module

The Thermal Printer Module is divided into two parts:

* Module Files
* Local Printer Server

### Module Files

In the "**Module Files**" folder, you will find the "**UPLOAD-THIS-MODULE.zip**" file.

You will need to go to **Admin > Modules > Premium Modules** and upload this zip file.

![](/files/-MD4wolgxTwrM-392PTT)

### Local Printer Server

In the zip you download from CodeCanyon after the purchase of this module, you will find "foodomaa-printer-server.zip" file.

#### For Windows 7/8/10

* Extract the contents of "foodomaa-print-server.zip" file to any folder.<br>
* Run the **START.bat** or **START** file.<br>
* **Do not** close the running file. The file always needs to be running in the background for the local server printer connection to be established.<br>

#### For macOS/Linux

* Install XAMPP or WAMP or MAMP or any software that supports your OS and PHP v7.2<br>
* Extract the contents of the files to a folder in www or htdocs (depending on your OS local server path)<br>
* Open a terminal and navigate to the folder where the "foodomaa-printer-server.zip" was extracted.<br>
* Type **`php server.php`** and hit Enter to run the command.<br>
* **Do not** close the running process/terminal. The file always needs to be running in the background for the local server printer connection to be established.

## Configurations

Go to **Admin > Modules > Premium Modules > Thermal Printer Settings**

![](/files/-MS8834wtA_0O9j4YUVk)

#### Connector Type

You can choose either Windows / Linux or macOS / Network

#### Connector Descriptor

Here you need to enter the Printer Name or the IP address or the Samba URL of the printer.\
\
Example: \
On a Windows system, if your Printer Name is "EU-T332C" then you will need to enter **EU-T332C** here.\
On Network-based printers, you will need to enter the IP address of the printer.

#### Print Width

You can choose either 3 inches (80mm) or 2 inches (58mm)

**3 Inch Printer is RECOMMENDED for a good print result.**

### **Things to keep a note of**

* Admin and all Store Owners have their own Settings.<br>
* There are certain fields that only Admin can enable/disable. As Admin is considered the Business Owner.<br>
* If Automatic printing is enabled, the printing operation will only happen when an order is accepted by the Store Owner.<br>
* Store Owner can go to the view order page and print the Invoice or KOT again.<br>
* If the local print server is terminated/stopped/closed, the printing operation will not work.

## Supported ESC/POS Printers

Following are the thermal printers that work well with this module

* 3nStar RPT-008
* Approx APPPOS80AM
* AURES ODP-333
* AURES ODP-500
* Bematech-4200-TH
* Bematech LR2000E
* Birch PRP-085III
* Bixolon SRP-350III
* Bixolon SRP-350Plus
* Black Copper BC-85AC
* CHD TH-305N
* Citizen CBM1000-II
* Citizen CT-S310II
* Dapper-Geyi Q583P
* Daruma DR800
* DR-MP200 (manufacturer unknown)
* EPOS TEP 220M
* Elgin i9
* Epson EU-T332C
* Epson FX-890 (requires `feedForm()` to release paper).
* Epson TM-T20
* Epson TM-T20II
* Epson TM-T70
* Epson TM-T70II
* Epson TM-T81
* Epson TM-T82II
* Epson TM-T88II
* Epson TM-T88III
* Epson TM-T88IV
* Epson TM-T88V
* Epson TM-U220
* Epson TM-U590 and TM-U590P
* Equal (EQ-IT-001) POS-58
* Everycom EC-58
* Excelvan HOP-E200
* Excelvan HOP-E58
* Excelvan HOP-E801
* Gainscha GP-2120TF
* Gainscha GP-5890x (Also marketed as EC Line 5890x)
* Gainscha GP-U80300I (Also marketed as gprinter GP-U80300I)
* gprinter GP-U80160I
* HOIN HOP-H58
* Ithaca iTherm 28
* Hasar HTP 250
* Metapace T-1
* Metapace T-25
* Nexa PX700
* Nyear NP100
* OKI RT322
* OKI 80 Plus III
* Orient BTP-R580
* P-822D
* P85A-401 (make unknown)
* Partner Tech RP320
* POSLIGNE ODP200H-III-G
* QPOS Q58M
* Rongta RP326US
* Rongta RP58-U
* Rongta RP80USE
* SAM4S GIANT-100DB
* Senor TP-100
* Sewoo SLK-TS400
* SEYPOS PRP-96
* SEYPOS PRP-300 (Also marketed as TYSSO PRP-300)
* SNBC BTP-R880NPIII
* Solux SX-TP-88300
* Sicar POS-80
* Silicon SP-201 / RP80USE
* SPRT SP-POS88V
* Star BSC10
* Star TSP100 ECO
* Star TSP100III FuturePRNT
* Star TSP-650
* Star TUP-592
* TVS RP45 Shoppe
* Venus V248T
* Xeumior SM-8330
* Xprinter F-900
* Xprinter XP-365B
* Xprinter XP-58 Series
* Xprinter XP-80C
* Xprinter XP-90
* XPrinter XP-Q20011
* Xprinter XP-Q800
* Zjiang NT-58H
* Zjiang ZJ-5870
* Zjiang ZJ-5890 (Also sold as POS-5890 by many vendors; ZJ-5890K, ZJ-5890T also work).
* Zjiang ZJ-8220 (Also marketed as Excelvan ZJ-8220)
* Zjiang ZJ-8250


# Call And Order Module

Call And Order module for Foodomaa facilitates Admin, Staffs and allowed Store Owners to take orders over the call on their website.

### Features

1. One-Click Login to any customer without using a password or an OTP.
2. Place order easily using the Customer Application.
3. All the features of the Customer Application can be used (like Tip, Wallet, Coupon, etc)
4. Access to all previously saved addresses of the Customer.
5. Guest Checkout with Optional Email and Password fields.
6. Can assign permission **`Login as Customer`** to any Staff account.
7. Allow permission to selected Store Owners to access the module.

### How to install CallAndOrder Module?

Go to **`Admin Dashboard > Modules > Premium Modules > Upload Module`**\
and Drag-Drop the "**UPLOAD-THIS-MODULE.zip**" file.

{% hint style="warning" %}
You will be asked to verify your **Purchase Code** during the module installation.
{% endhint %}

![](/files/-MD4wolgxTwrM-392PTT)

### How to Login to Customer from Admin?

Go to **`Admin Dashboard > Users > All Users`** and click the **`Login`** button on any customer you want to login into.\
You will be shown a popup with the Customer Application and will be logged-in in 2-3 seconds.

For Guest Checkout click on **`Login as Guest`**

### How to assign permissions to Staff?

Go to **`Admin Dashboard > Users > All Users`**  and click on **`Manage Roles and Permissions`**

If you already have a staff account assign them the permission to **`Login as Customer`**\
If you don't have a staff account already, click on Add New Role and assign permissions.

### How to allow specific Store Owners to use this module?

Go to Admin Dashboard > Premium Modules > Call And Order Module Settings and from the dropdown menu select all the Store Owners that you want to allow permission to use this module.\
\
Note: the assigned Store Owners will be able to:

* View the customer data.
* &#x20;Login as any customer
* Create Guest accounts and place orders on behalf of any customer.

{% hint style="info" %}
The commissions, taxes, delivery charges, store changes, etc will be the same for all the parties even when an order is taken over the call using this module.
{% endhint %}


# Order Schedule Module

This module allows the customer to schedule their order based on the Store's Open/Close time set by the Store Owner.

### Prerequisites

If Store A wants to allow Order Scheduling:

1. Admin needs to make sure the Module is Enabled and inside the Module settings, the Order Scheduling option needs to be enabled as well.<br>
2. Admin needs to make sure that the CronJob for Store Automatic Scheduling (open time/close time) is configured correctly. ([Click here](/configurations/store-scheduling-open-close-times) to know how to set this up)<br>
3. The Store needs to make sure the Store Automatic Scheduling (open time/close time)  is turned on.<br>
4. The Store needs to make sure that the Open/Close time is correctly set.

###

### How does this module work? **(Read very carefully)**

Order Schedule Module works with the **Store's Open/Close Time**. Here's an example:\
\
**IF:**\
Today is **Monday 9:30 am**, and for Monday if the Store Open time is set for **`9 am`** and close time is set as **`1 pm`**.\
\
**IF:**\
Order Scheduling is enabled and the "**Allow today order to be scheduled after"** field is set to **120** Minutes\
\
**Then:**\
For Today, two Order Scheduling Slots will be displayed to the customers i.e\
12:00 pm - 12:30 pm\
12:30 pm - 1:00 pm

**IF:**\
The same store opens/closes on Tuesday at the same time, then the following slots will be available for Tomorrow:\
9:00am - 9:30am\
9:30am - 10:00am\
10:00am - 10:30am\
10:30am - 11:00am\
11:00am - 11:30am\
11:30am - 12:00pm\
12:00pm - 12:30pm\
12:30pm - 1:00:pm

\
Let's say, the customer Schedules an order for Today in the Slot: **12:00 pm - 12:30 pm**

* This order will be shown on the Store Dashboard in the "**NEW ORDERS**" section.<br>
* The Store Owner won't receive any popup on the Dashboard for this order, because, it's a future schedule order. (But they will receive a Push Notification or SMS if it is preconfigured)<br>
* The Store Owner will be given two options: **Confirm Scheduled Order** or **Cancel Order**<br>
* If the store cannot fulfil the order in the selected slot, the store will cancel the order.\
  (let say, the customer does a bulk party order for 20 people and the store cannot prepare in 2-3 hours, so they will cancel it) \
  If the store can fulfil the order, they will Confirm the Order.\
  (A scheduled order once confirmed, **CANNOT** be cancelled by the Store Owner or the Customer)<br>
* After the order is confirmed by the Store Owner, it gets moved to the "**PREPARING ORDERS**" section in the Store Owner Dashboard.<br>
* Let's say in the OrderScheudle Module settings, the "**Minutes before order processed**  " is set to **30 Minutes** by the Admin.<br>
* Now, at/after 11:30 pm, the status of this order will be automatically be changed to "**Preparing Order**" and the delivery guys assigned to this store will receive the Order.\
  (As this order was already Confirmed by the Store Owner, no more action is required by the Store Owner)<br>
* Let's assume, the order was not Confirmed by the Store Owner, then at/after 11:30 pm, the status of the order will be changed to "**New Order**", and the Store Owner will receive an Alert on the Dashboard with the Order Popup. (if the dashboard is open)<br>

Note: When the order is in the "**Scheduled Order**" and "**Confirmed Scheduled Order**" state, the customer cannot see the "Track Order" button (as there is nothing to be tracked) on the Customer App. (the order details will be visible though)

### Limitations of this module

* By default, the slot time difference is  30 minutes and cannot be changed.<br>
* Order can only be scheduled 7 days in the future.<br>
* Order can only be scheduled if the store is open.<br>
* The product works exactly as described above, if your business needs cannot be fulfiled with the above-mentioned flow of the module, please **DO NOT** buy this module. As no customizations help can be provided for this.

**Make sure to clear all your queries or doubts with us prior to your purchase.**\
[**Support Helpdesk**](https://support.stackcanyon.com)&#x20;


# Change Log

### Version 3.5 - 26-02-2022

* Major - Store Partner App released with v3.5 Compatibility.<br>
* Fixed Customer edit role change issue on Admin dashboard.<br>
* Fixed self-pickup asking for address issue on customer app cart page.<br>
* Fixed self-pickup wallet issue on customer app checkout page.<br>
* Removed Zero(0) value transaction logs from Admin Dashboard.<br>
* Self-Pickup Order tracking page improved with Store Info and Direction Button.<br>
* Minor code changes on customer app.<br>
* Few untracked changes on admin dashboard.

### Version 3.4 - 15-01-2022

* \[NEW] Admin Dashboard full of new features (Details: <https://bit.ly/3rjgbLE>)<br>
* \[MAJOR] Compatibility with Foodomaa Android Delivery App (Buy: [https://bit.ly/3tunFy7](https://bit.ly/3rjgbLE))<br>
* \[MAJOR] Compatibility with Foodomaa Android Customer App (Buy: <https://bit.ly/3qtJjAv>)<br>
* \[MAJOR] New Eagle View to track delivery guy live activity (Details: <https://bit.ly/3tt05Sc>)<br>
* Admin can track delivery guy live location on Order View page too (Android Delivery App required)<br>
* Overall admin dashboard improvements in the coupon, and setting pages.<br>
* Fixed Push Notification issues.<br>
* Fixed Razorpay duplicate SMS, notification issue.<br>
* Fixed Razorpay duplicated order issue.\
  Fixed Customer to Delivery role conversion issue.<br>
* UI fixes in the customer/delivery app

### Version 3.3 - 15-12-2021

* Admin setting to hide Customer Details (email, phone, address) on orders from Store Owner Dashboard (Settings > Store Dashboard > Hide Customer Details on Order)<br>
* New Custom HTML block for Stores on Homepage (Stores > Edit > Meta Data > Custom Store Message)<br>
* Wallet empty order issue fixed<br>
* Reset datatable filters on Zone Change (was giving empty tables sometimes)<br>
* Google Distance Matrix API server calculation issue fixed.<br>
* Delivery collection and delivery collection log datatable column sorting issue fixed<br>
* Cash collection "collected by" was missing from Delivery Collection Log table on Admin Dashboard<br>
* Fixed OneSignal push notification issues for new order for Store Owners<br>
* Fixed awaiting payment running timer issue on Admin Dashboard<br>
* Better push notification compatibility for our Customer Android App<br>
* Native Android Razorpay integration compatibility for Customer Android App<br>
* Admin Dashboard layout issues fixed<br>
* Delivery Area Pro module has also been updated (kindly update that if you have already purchased it)

### Version 3.2 - 06-12-2021

* Ignoring SMTP/Email config error on completing delivery (invoice email sending)

* Fixed multi-Language translation issue on page reload.

* Fixed cart page infinite loading issue

* Fixed accounts page infinite loading issue

* Fixed Addon Category description missing from Store Owner Dashboard on Addon Category Edit page.

* Razorpay push notification and SMS issue fixed.

* SMS and push notification with all other payment gateways Fixed.

* Fixed issue of Store Owner getting push notification on Awaiting Payment order

* Razorpay payment failed but captured after some time with webhook, issue fixed.

* Item bulk upload zonal issue from Admin issue fixed

* Item bulk upload zonal issue from Store Owner issue fixed

* Bulk upload timezone/timestamp issue fixed

* Fixed order canceled by Admin was showing customer's name on who canceled issue

* Fixed New Item add popup for searchable Store Name and Menu Category

* Google Distance Matrix Server API integration for Store Operation status

* Awaiting payment auto change to Payment Failed after xx minutes (Admin > Settings > All Settings > Wait for Awaiting Payment for)

* Awaiting payment timer now shown on customer application in My Orders page

* Fixed issue with Push notification for delivery guy when order assigned manually by Admin

* Fixed error issue on Admin Dashboard when delivery guy already accepted the order.

### Version 3.1 - 27-11-2021

* Fixed canceled by whom order activity when order canceled by Admin.

* Fixed order activity when delivery guy accepts the order.

* Fixed order auto-accept activity when order's payment manually approved by Admin.

* Fixed on store's zone change the changed zones not reflecting on store's earnings and payouts.

* Added lock on order when delivery guy completing an order to avoid any kind of system misuse or manipulation for Commission.

* New feature to view all the addresses of customers on Edit User page. (Delete and Locate option also added)

### Version 3.0 - 24-11-2021

* Foodomaa Android App Compatibility (soon to be released) \[MAJOR]<br>
* Zones for Multi-City/Multi-Area and Franchise Business \[MAJOR]<br>
* Stores can be linked to Zones<br>
* Staff can be assigned to Zones and only store data related to that zone will be displayed.<br>
* Customer application UX improvement from the ground up. (Now customer will directly land on the Homepage) \[MAJOR]<br>
* Admin Dashboard data range to view stats of different dates.<br>
* Razorpay security fixes and Webhooks implementation<br>
* Advanced table for Orders on Store Owner Dashboard<br>
* Rating route protection from Store Owner Dashboard<br>
* Delivery Application max-order-queue issue fixed<br>
* Option to remove image on Edit Item page (Admin and Store Dashboard)<br>
* Code refactoring and reusable code for sending SMS, notifications.<br>
* Missing notification to customer when Admin manually assigns the order to the delivery guy.<br>
* Intuitive order activities on the View Order page (only for future orders after the 3.0 update)<br>
* New design of View Order page in Admin Dashboard.<br>
* New design for Wallet Add/Deduct in Edit user page in Admin Dashboard.<br>
* New design for Send Push notification page on Admin Dashboard.<br>
* Separate Customers page and table.<br>
* Separate Delivery guy page and table.<br>
* Separate Staff page and table.<br>
* Advanced tables for Delivery Collection and Delivery Collection Log<br>
* Added Cash Collected by in Delivery Collection Log table for easy Multi-Zone business.<br>
* Delivery Reviews sorting descending in the delivery application. (new rating/review on top)<br>
* Custom CSS for Admin/Store Dashboard (Admin > Settings > All Settings > Custom CSS (scroll to end of the page)<br>
* Utility to delete old order activity logs manually (Admin > Settings > All Settings > Clean Order Activity Logs)<br>
* Admin Dashboard nav menu categorization and UX improvements.<br>
* Advanced table for Items page on Admin Dashboard.<br>
* Advanced table for Stores page on Admin Dashboard.<br>
* Added order count on Delivery App Footer for new, picked up, and ongoing orders<br>
* Many untracked UI/UX improvements in the Admin Dashboard.<br>
* Code optimizations on the overall core of Foodomaa<br>
* Database queries optimization in API calls.<br>
* \[Make sure to reupload all the modules after updating to v3.0]

[Read Older Change Logs](/extras/change-log-1)


# Change Log (old)

Change Log for Foodomaa™ Multi-Vendor Application

###

### Version 2.9.2 - 24-10-2021

* Sms and Push notification issue when order accepted by the store owner.
* Order taking long time to accept from Zen Mode issue fixed.
* After registration using social login, the phone number filed was showing invalid.
* Security issue fixed on customer application.
* Some store owner bug fixes

### Version 2.9.1 - 14-09-2021

* Adding new address and going back to the homepage doesn't reloads the page issue fixed.<br>
* Selecting an old address doesn't reloads the page issue fixed.<br>
* Disabling the email invoice settings doesn't work issue fixed.<br>
* Map Documentation URL 404 issue fixed.<br>
* Fixed Order Schedule module issue when the store had enabled Auto-Accept order.<br>
* Fixed Order Schedule module issue when admin manually marks the payment as confirm.<br>
* Delivery rating was not visible even on delivery orders issue fixed.<br>
* Google maps dev mode issue fixed for Admin and Store Owner dashboard.<br>

### Version 2.9.0 - 11-09-2021

* Call And Order Module Compatibility.<br>

* Order Schedule Module Compatibility.<br>

* Login with OTP (Admin > Settings > SMS Settings > Login/Registration Type)<br>

* Delivery application completed orders in infinite lazy loading.<br>

* Added missing translations to the Delivery Application.<br>

* Lock Delivery Guy Account based on Floating Cash.<br>

* Delivery pin to open only the numeric keyboard.<br>

* Make cart suggestion multiline (Customer application’s cart page)<br>

* Fixed recommended slider layout issue when the item price is set to zero on Customer Application.<br>

* Recording Order Cancelled by whom (Admin > Orders > View single order) (will only work on orders that are canceled after 2.9 update)<br>

* Fixed If item category disabled, while editing item wrong item category was selected.<br>

* Admin Setting to Disable COD for Self-pickup (Admin > Settings > Customer Application > Enable COD on Self Pickup)<br>

* Custom badge name for "Featured" badge (Admin > Stores > Edit > Extras > Custom name of Featured badge)<br>

* Fixed notification issue on "Awaiting Payment" status for PayTm and other payment gateways.<br>

* On the Checkout page, show a custom message when the order placing loading Animation is shown.(Admin > Modules > Translations > Edit)<br>

* Invoice of order over email when an order is completed. (Admin > Settings > Email Settings > Email Order Invoice Email)<br>

* Save distance from store to customer on the orders table. (Distance visible on Admin > Orders > Single order view)<br>

* Fixed Self-pickup notification to the delivery guy.

* Add customer delivery address on the order history page on the customer app.

* Order status issue on canceled orders or reassigned orders.

* Delivery Area Pro Module issue - Store is not listing in some marked polygon areas (No need to update the module)

* Random delivery pin for each order.

* Use Current Location big button with text (on location selection where Map is shown)

* Fixed Restaurant count on the homepage is not shown unless Self pickup is enabled.

* Custom HTML block checkout page (before any payment button is clicked)

* Auto-redirect 403 not logged-in page to the login page on Admin/Store Dashboard.

* Show latest reviews/ratings first on Admin/Store dashboard.

* Fixed string truncate is not working on reviews in the store owner panel under ratings.

* A lot of fixes in the Store Owner Dashboard and ZenMode.

* Show badges on the orders that are accepted by the store owners but not picked up by the delivery guys (on store owner dashboard and zen mode)

* Do not show the Self-pickup column/row on the Store Owner dashboard if Self-pickup is disabled globally.

* On the Stores' order details page, show the delivery guy's name.

* Master switch to enable/disable all stores. (Admin > Settings > Advanced Settings > Foodomaa Utilities)

* Show distance in delivery charges on the cart.

* Easy time picker for Store Scheduling

* Back button UX improvement on Homepage. (No reload on back button press when going back from Items page)

* Remove spaces(or ignore spaces) from email during login/registration.

* Remove delivery review from Store Dashboard.

* Delivery assign and Reassign from Admin Dashboard SMS and Notification issue

* Inbuilt License Management System (Admin > Settings > Advanced Settings > License Manager)

* Self-pickup order rating bug/issue. (only the store can be rated on self pick up order)

* Fixed Thermal Printer Auto-Printing not working after accepting the order issue. (No need to update the module)

* Flutterwave add switch case to handle multiple currency/countries

* Not able to scroll homepage, when item menu open and back button clicked.

* Added google maps to select store location and popular geolocation.

* Performance improvement on the Admin/Store Dashboard pages. (Core optimization)

* Many small UI/UX untracked improvements on the Admin/Store/Delivery and Customer Application.

### Version 2.8.2 - 19-07-2021 \[Critical Security Update]

* OTP Security vulnerability fixed - Apply this update ASAP.\
  Details: <https://discuss.foodomaa.com/d/1199-urgent-heads-up>

### Version 2.8.1 - 02-07-2021

* Fixed whitescreen/infinite-loading issue on order cancellation in the Customer Application.
* Fixed Khalti Payment Gateway mobile number issue.<br>

### Version 2.8.0 - 28-06-2021

* \[NEW] Delivery Guy On/OFF (Online/Offline) switch on Delivery Application.<br>
* \[NEW] Addon max limit to select feature.<br>
* \[NEW] Cash Change amount for COD orders. (Admin > Settings > Customer Application > Show Cash Change on COD)<br>
* \[NEW] Khalti Payment Gateway for Nepal.<br>
* \[NEW] Sort Delivery stores by Distance (Admin > Settings > Customer Application > Sort Delivery stores by Distance)<br>
* The amount remaining to pay will not show on Completed Orders and Cancelled orders on Customer Application.<br>
* Fixed Self pickup orders not visible in mobile view.<br>
* Fixed issue of customer placing orders from Deactivated stores.<br>
* Recommended section fixed Grid View layout issue.<br>
* Added Custom CSS names to various sections for easy customization.<br>
* Fixed Cart item count when no item image issue.<br>
* Fixed overlapping images on Items page issue.<br>
* Junk notification delete query optimized.<br>
* Favorited store button fixed.<br>
* Fixed Item sold count on Dashboard.<br>
* Fixed Bulk CSV NULL image upload layout issue.<br>
* Fixed on category disable item showing on recommended section issue.<br>
* Store reviews are now sorted in descending order of creation on the customer application.<br>
* Fixed URL/permission issue on Store Owner dashboard for Reviews page.<br>
* Country code can now be a drop-down during registration. (Admin > Settings Customer Application > Default Country Code on Phone field (Enter country code separated by commas to show as a dropdown option)<br>
* Delivery guy rating is now shown on the customer application during order tracking after the delivery guy has accepted the order.<br>
* During customer registration, the first 0 (Zero) from the mobile number is now removed (solves duplication issue)<br>
* Fixed Forgot password email logo (Admin > Settings > General > Website URL needs to be correct to set the logo correctly)<br>
* Fixed SMS and Push Notification issue to Delivery Guy on Self pickup.<br>
* Fixed Tip amount commission calculation issue on Delivery Application.<br>
* Empty Spaces can now be added on Currency Symbol (Admin > Settings > Currency Symbol)<br>
* Fixed coupon deleting issue.<br>
* Fixed read the review button not working on Favorited Stores.<br>
* Fixed Delivery COD partial collection issue.<br>
* Fixed delivery DLT template ID not saving issue.<br>
* Added links to Dashboard insights blocks.<br>
* Restaurant charge null issue on Order list page on customer application.<br>
* Added infinite loading on order list page on customer application.<br>
* Some UI fixes and untracked improvements.

### Version 2.7.2 - 10-05-2021

* File permission fixes.

### Version 2.7.1 - 10-05-2021

* Fixed Translation issue with the "Rate Order" text in the Orders History page on the Customer Application.<br>
* Fixed Delivery Application and some pages 404 issue.<br>
* Fixed On selecting Self-Pickup and going to the "My Favourites" section, the application crashes with a white screen.<br>
* Fixed On the Orders Listing page on Store Owner Dashboard, the order "created date/time" language issue<br>

### Version 2.7.0 - 05-05-2021

* Rating and Review System (Store/Restaurant and Delivery Rating)<br>
* Full 7.3 Compatibility.<br>
* Fixed MSG91 DLT issue for Store Owner/Delivery Guy.<br>
* Fixed Order bill details issue on smaller devices in Admin/Store Dashboard.<br>
* Fixed Order and Items count issue on Store Dashboard page.<br>
* Fixed Items image issue on Explore page on the Customer Application.<br>
* Fixed issue with Roles/Permission on manage/assign stores/deliveries.<br>
* Fixed new Delivery Guy creation issue on Admin Dashboard.<br>
* Facebook/Google Social login icon issue on Customer Application.<br>
* OneSignal Patch Added.<br>
* Item/menu sorting Patch Added.<br>
* Customer registration issue Patch Added.<br>
* Layout fixes for Customer Application.<br>
* Layout fixes for Delivery Application.<br>
* Improved caching and compatibility with SuperCache Module.<br>
* Improved settings cache.

### Version 2.6.1 - 14-03-2021

* Delivery Pin Issue fixed on the Delivery Application.<br>
* Fix update issue button SQL error fixed.<br>
* Fixed Item search on the Customer Application.<br>
* Store Info mismatch issue on the cart page in the Customer Application.<br>
* Social login phone field added non-editable country code.\ <br>

### Version 2.6.0 - 13-03-2021

**The Order Scheduling system is under development and will be released soon (as a separate module)**\
**Backend works are still remaining. And it also needs approval from CodeCanyon to be released.**

* Added Menu Categories Sorting Feature same as Store Sorting (Admin Panel > Dashboard > Stores > Edit > Sort Menu & Items > Sort Menu Categories)<br>
* Added Item Sorting Feature same as Store Sorting (Admin Panel > Dashboard > Stores > Edit > Sort Menu & Items)<br>
* Added Multi-Role System (Admin can create custom roles and assign certain permissions to them) (Admin > Users > All Users > Manage Roles & Permissions)<br>
* Improvement on Items Search on Customer Application when the store has a lot of items.<br>
* Fixed Home Page Store Listing & Store Category Page - Store Listing Issue<br>
* Fixed Clicking on Storeowner notification redirecting to Customer Application.<br>
* Fixed Delivery guy not getting Push Notification when Order accepted by Admin or When Assigning Delivery Guy by Admin.<br>
* Fixed Delivery Guy application Item Total Price Issue (for items that had multiple quantities)<br>
* Fixed Delivery Guy Application Text Color in Light Mode.<br>
* Fixed Zen mode Layout issue in Safari Browser.<br>
* Fixed Splash Screen Cache Issue. (Showing Old Splash Screen even updated)<br>
* Fixed Translations removing default language issue. (At least one needs to be set as Default)<br>
* Added Controlled PWA installation with custom Message and Button to install app anytime.<br>
* Optimized APIs for Delivery Guy application. (2x-3x faster)<br>
* Added Delivery Pin on View Order Page on Admin Dashboard.<br>
* Major UI changes in the My Accounts section in the Customer Application.<br>
* Native Share Store/Store item popup on supported devices.<br>
* Added Advanced Server Stats.<br>
* Added Current Location Fetch button to Location Selection Map page.<br>
* Improvement in getting accurate address data from Google Places Search to Location Selection Map page.<br>
* Improved Cart Page by showing addon prices if an item with addons is selected.<br>
* Added Customers VAT/TAX number on My Account Page. If entered, it will be shown on the invoice.<br>
* Added Flutterwave Payment Gateway.<br>
* Fixed Item sold count issue for cancelled order in Storeowner Dashboard.<br>
* Added Vegetarian/Non-vegetarian/None marks.<br>
* Fixed for Completed orders, not to show "Amount remaining to be paid" on the My Orders page in the Customer Application.<br>
* Added back the Ban user function on Edit User page on Admin Dashboard (was removed in 2.5)<br>
* Added Marking Stores as favourite on Customer Application.<br>
* Added Popup to confirm before clearing the cart when adding items from different stores.<br>
* Added Delivery/Self-pickup choose options on Cart page if the store supports both.<br>
* Added On the Registration page in the Customer Application, non-editable country code field.<br>
* Improved Delivery Pin is now only numeric code (5 digits)<br>
* UI improvements in Admin Dashboard.<br>
* Added MSG91 DLT Template ID for Indian users (Admin > Settings > SMS Settings > MSG91)<br>
* Image Mandatory removed for item image for both Storeowner & Admin Dashboard.<br>
* Improved UI in Cart Page.<br>
* Improved UI for Login & Registration Page.<br>
* Improved UI in Items page.

### Version 2.5.2 - 01-02-2021&#x20;

#### Mandatory to update if the upcoming Thermal Printer Module is needed to be used.

* Improved ThermalPrinter Compatibility (module soon to be launched on CodeCanyon)<br>
* Geocoding address full-address disable setting not working issue fixed - (Credit to Montecchi)<br>
* Fixed the layout of order items issue on Delivery Application (on smaller iOS devices and old Xiaomi Phones)<br>
* Fixed light-mode compatibility for Delivery Application.<br>
* Fixed Promo slider updation of slides/image links issue.<br>
* Fixed Promo slider deletion issue.<br>
* Item search issue when the item's store is deactivated but is active/open.<br>

### Version 2.5.1 - 29-01-2021

* Verification issue fixed.&#x20;
* Memory optimization for Dashboard.
* Remove junk files.

### Version 2.5.0 - 29-01-2021

* Added Promo Sliders based on Latitude/Longitude & Operational Radius.<br>
* Added Promo Sliders based on Delivery Area Pro Module.<br>
* Added a Toggle button for Light & Dark Mode in Delivery Application.<br>
* Added “Try it on your Phone” phone block for Desktop View.<br>
* Added separate Push Notification tone for Customer & Delivery Application (manual file change required)<br>
* Added Forgot Password/Reset Password Option for Store Owners, Delivery Guys & Admin.<br>
* Added Form Field Validation for Store Owner & Delivery Guy Registration Page.<br>
* Added Delivery Type Selection for Store Owner Dashboard while Creating/Editing Stores.<br>
* Added Application Logo on Admin/Store Owner Login Page.<br>
* Added Separate Registration URL for Store Owner & Delivery Guy.<br>
* Added Payout Details of Store Owner in Admin Dashboard.<br>
* Advanced tables view for Delivery/Store Owner users in Admin. (Admin > Users)<br>
* Upcoming Thermal Printer Module Compatibility.<br>
* Fixed Order view page Layout breaking issue on Store Owner & Admin Dashboard.<br>
* Fixed Item Search Issue, Previously it shows all items of all stores.<br>
* Improved Cart Page Validation in Customer Application, now items with old price in Cart Page will get updated.<br>
* Orders paid with the wallet will be shown in the Customer Application.<br>
* Improved Checkout Page Validation in Customer Application, now stores will be validated whether Open/Close on Checkout Page.<br>
* Fixed Addons Remove issue from Item Page.<br>
* Fixed Push Notification Issue for PayTm, Mercadopago, Stripe, Razorpay, Paypal.<br>
* Delivery Guy Translation issue fixed.<br>
* Fixed Show Delivery Guy's COD Collection - Repeated Twice.<br>
* Fixed Delivery Guy Creation Issue from Admin Dashboard.<br>
* Fixed Cart infinite-reload issue when Force Clear Cache from Admin Dashboard.<br>
* Fixed “Order Delivered” Alert & Push Notification Translation Issue.<br>
* Optimized Admin Dashboard - Main Page Query & Speed optimization.<br>
* Optimized Coupon & Edit Coupon Pages for Database Queries.<br>
* Optimized Admin Dashboard Orders Page for fast rendering of large Dataset & CSV Export.<br>
* Fixed Store Owner Dashboard memory leak issue.<br>
* Fixed Send Push Notification Page memory leak issue in Admin Dashboard.<br>
* Fixed Item Quantity count not showing in the items list.<br>
* Fixed Button UI issues on Admin/Store Dashboard pages.<br>
* Remove obsolete translation keys from the Store Owner Translation file.<br>
* Fixed Stores list on Admin Dashboard loading slowing when Delivery Area Pro is enabled.<br>
* Fixed Logo dimensions issue for customer application.<br>
* Fixed Self pickup order view layout breaking on Store owner/admin dashboard.

### Version 2.4.1 - 23-12-2020

* Fixed orderstatuses table issue.<br>
* Fixed deleting junk alters issue when junk data is more than 65K. (Now, 15K junk will be deleted at a time).<br>
* Add delivery guy name to Order View in Admin (after order complete).<br>
* User names double spaces issue breaking on Dashboard.<br>
* Rounding issue in To Pay in customer application on tip amount applied.<br>
* Translation of "earning in 7days" in the delivery application.<br>
* Remove PHP Version check on the update processing page.<br>
* Fixed layout issue in view order page in mobile for Admin and Store Owners.<br>
* Show Assign delivery guy when order accepted by Store Owner or Auto Accepted on View Order Page in Admin.<br>
* Tip system bug when the tip amount exceeds 999.<br>
* Optimized Admin Dashboard queries.<br>
* Improved Advanced Orders view in Admin Dashboard - Added Delivery Guy name, fixed View button to the Right, Added Customer Name, UI Improvements to Live Timer (Admin > Orders)<br>
* Delivery tip showing null on customer Application on my orders list.<br>
* Self-pickup stores listing bug.<br>
* Store Category Filtered stores sorting based on Active Stores.<br>
* Tips amount and Tip Percentage insertion issue fixed for Admin Dashboard.

### Version 2.4.0 - 21-12-2020

* Dashboard navigation link added for Store Owner<br>
* Fixed Coupon not updating issue from Admin Dashboard<br>
* Fixed Coupon Min-subtotal not reached message issue on Customer Application.<br>
* Cart infinite loading issue fixed on Customer Application.<br>
* Store Not-Operational issue fixed on Cart page on Customer Application.<br>
* Item images rendering issues fixed of iOS Safari 13/14.<br>
* Added option to select All Stores in New Coupon/Edit Coupon page from Admin Dashboard<br>
* The multi-Select dropdown is now not closed on selecting multiple stores for Coupons Adding/Editing.<br>
* The multi-Select dropdown is now not closed on selecting multiple addon categories for Item Adding/Editing<br>
* \[NEW] Add distance from user to the store in Self-Pickup Store List on the Customer Application.<br>
* \[NEW] Push Notification for Store Owners using OneSignal. ([Watch the Tutorial](/configurations/one-signal-setup-for-store-dashboard-notification))<br>
* \[NEW] Zen Mode for Store Owners<br>
* Fixed decimal overflow on earnings in store owner and admin.<br>
* \[NEW] Self-Pickup sort by Distance (Admin > Settings > Customer Application > Sort Self Pickup stores by Distance)<br>
* Improved orders view for a single user (Admin > Users > All Users >Edit)<br>
* Optimized Gps Tables for database query optimization and faster saving of the data. (GpsTables is now not used, instead, GPS data is stored on Delivery Guy's details table)<br>
* \[NEW] Junk data cleaning for Alerts (Admin > Modules > Send Push Notifications) (Junk Data removing message will only be shown only when you have junk data in the database)<br>
* \[NEW] Swipe to Accept, Pickup, and Delivery Order for the Delivery Application.<br>
* Fixed UI issue with Store Category Slider on Admin page.<br>
* Fixed UI issue with Edit Item on Store Owner page.<br>
* Improved Addon Category adding functionality on the Edit Item page for Admin and Store Owner Dashboard.<br>
* Store Category Selection improved on Store Edit page (Also the dropdown is now not closed on selection)<br>
* Delivery guy name is now not displayed on the printable block in the View Order page in Admin and Store Owners<br>
* Improved UX in the Item Customization Popup on Customer Application<br>
* Huge UX fix: on click of a single item or cart or account and coming back to the items page, the last scroll location is persisted<br>
* Huge UX fix for stores listing page - last scroll location is persisted (Not if Randomization of Stores is enabled from Admin Settings)<br>
* Store Payout, delivery collection, delivery collection logs, wallet transactions all are now shown in descending order of creation.<br>
* Added Store name in Store Payouts page for Admin Dashboard<br>
* Fixed delivery guy application account issue on the new delivery guy account login<br>
* \[NEW] Delivery Guy per-calculated commission is now shown on the Delivery order list for new orders, accepted orders, detailed order page on the Delivery Application.<br>
* Fixed payout request list scroll issue on the mobile device for Store Owners<br>
* Added Delivery Area Pro Areas names on Sort Stores Page for Admin Dashboard.<br>
* Delivery charges are now shown even when the user is not logged in on the Cart Page on the Customer Application.<br>
* \[NEW] Delivery Application complete revamp with an elegant dark theme.<br>
* New section on Delivery Application for Picked-up Orders.<br>
* Fixed back button issue on Delivery Application.<br>
* \[NEW] Delivery Tip system (Fixed amount and Percentage commission)<br>
* \[NEW] Advanced Users Table for Admin Dashboard (Admin > Users > All Users)<br>
* \[NEW] CSV Export for Users with any Filters from Advanced Users Table<br>
* \[NEW] Advanced Orders table for Admin Dashboard (Admin > Orders)<br>
* \[NEW] CSV Export for Orders with any Filters from Advanced Orders Table.<br>
* Tip Amount, Coupon Amount, Tax Amount, Subtotal is now saved on the orders table for better data handling.<br>
* Layout fix for Recommended Items in Customer Application.<br>
* Inactive stores are now shown on store category filter results on Customer Application.<br>
* Fixed bug of items of the non-accepted store being shown on search results on Customer Application.<br>
* Self-pickup stores are now shown on Store Category Slider filtered results.<br>
* Fixed timestamps on the Delivery application.<br>
* Orders and Transactions order fixed in the Delivery Application.<br>
* iOS Double Click to Cancel issue on Store Dashboard fixed.<br>
* Compatibility with up-coming Thermal Printer Module (manual and automatic receipt printing with POS printer)

###

### Version 2.3.1 - 31-10-2020

* Fixed issue on the Cart Address filed not shown when a user visits application from Single Item/Store URL directly without Location Setup.<br>

### Version 2.3.0 - 30-10-2020

* iOS and some android phone cart infinite loading/refreshing issues.<br>
* On Google Distance Matrix enabled issues with processing Full/Partial Wallet money.<br>
* Refund miscalculation/double refund issue solved.<br>
* Delivery guys' push notification when auto-accept from restaurant/store is enabled.<br>
* \[NEW Single Store URLs can be shared. (Copy URL and try on incognito mode - no location selection redirection)<br>
* \[NEW] The Single Item URL can be shared. (Copy URL and try on incognito mode - no location selection redirection)<br>
* \[NEW] Single Item/Store URL can be shared on Desktop too. (Copy URL and try on incognito mode - no location selection redirection - Auto activate mobile layout when Single Item/Store URL hit on desktop view)<br>
* \[NEW] Advanced Coupon System - Coupons can now be linked to multiple stores.<br>
* \[NEW] Advanced Coupon System - A coupon can be set for an Unlimited number of usage, Once for a new user for 1st order, Once per any user, and also the custom number of time defined by Admin.<br>
* Code Optimizations for Checkout and Cart pages.<br>
* \[NEW] Paytm Payment Gateway with UPI (PhonePe, GooglePay, Paytm Wallet, etc)<br>
* Store Owner selected language now persists even after logout.<br>
* Improvement in the UI of Orders page (Admin and Store Owner)<br>
* Added missing language translations for Store Owner Dashboard.<br>
* Security Fixes.<br>
* \[NEW] Store Owner can select which payment gateway to Enable/Disable (Stores > Edit > Payment Gateways) \[Admin first needs to enable this from Admin > Settings > General > Allow Payment Gateway Selection for Store Owners]

### Version 2.2.1 - 15-09-2020

* Fixed issues with Stripe Card payment Error handling<br>
* Fixed issues with iDeal and FPX error handling<br>
* Removed non-required data from the API call for stores.<br>
* Fixed Delivery Radius not-editable issue.<br>
* The fixed Bulk upload image file doesn't exist issue and NULL image issue<br>
* Google Login Logo change as per Google guidelines <https://developers.google.com/identity/branding-guidelines#top_of_page><br>
* Change Facebook Login style to match with Google Login button style.<br>
* UI issues on iOS for veg/non-veg icon on the recommended section in Items page.<br>
* Fixed Self-pickup Commission calculation issue<br>
* Fixed Addon not deleting issue.<br>
* Fixed UI issues with Store Category Sliders' names on iOS and Samsung Devices.

### Version 2.2.0 - 11-09-2020

* Stripe v3 Checkout implemented with Strong Customer Authentication (SCA) for 3D Card Payments.

* Stripe Ideal payment gateway for the Netherlands.

* Stripe FPX payment gateway for Malaysia.

* PayMongo Payment gateway for the Philippines.

* MercadoPago payment gateway for Brazil.

* New UI layout for Mobile Device for Items page on Admin/Store Dashboard. (Admin/Store Dashboard > Items & Menus > Items)

* Ajax Based Item on/off switch.

  An easier way to edit Stores from Admin (Admin > Stores > Edit)

* A easy way to manage Addon Categories and Addons (Admin/Store Dashboard > Items & Menus > Addon Categories > Add new Addon Category)

* Addon Category now has a description that is visible when trying to link it to an Item.

  Cache issue for Login as Store Owner fixed.

* Added View User's orders (Admin > Users > All Users > Edit > Scroll down to Orders from User section)

* Delivery Guy Not able to Accept order bug fixed. (This issue arises when users manually delete orders from Database. We are now handling this exception but please DO NOT delete anything manually from the Database)<br>

* Module upload ZIP PHP extension bug fixed.<br>

* Item/menu category cache compatibility with SuperCache (Editing the settings or item/menu category will invalidate the cache - New SuperCache v2 required)<br>

* Security bug fixed for OTP on Registration.<br>

* NEW Premium Module "Delivery Area Pro" compatibility.<br>

* Coupon Minimum Order bug fixed on the Cart page.<br>

* Store Scheduling bug fixed (Multiple time slot was not working properly previously)<br>

* iOS infinite "Updating" issue fixed<br>

* Logout all user has been removed.<br>

* Offline detection for Desktop/Laptop/PC devices has been disabled.<br>

* Added Custom HTML block on Store Page (Admin > Stores > Edit > Meta Data > Custom Store Message)<br>

* Added Search Bar (Which redirects to the Explore page) on the homepage of the&#x20;

* Customer Application. (Admin > Settings > Customer Application > Search Bar on Homepage)<br>

* New styles of Footer Navigation bar on the homepage(Fixed and Float options) (Admin > Settings > Customer Application > Footer Navigation Type)<br>

* Major improvement in the item's search algorithm on the Customer Application's Items page. (It now searches even when words are skipped)<br>

* Added Home Button on the Top Navbar on some pages (Manage Address, Orders, Order Tracking, etc) on the Customer Application.<br>

* Improved loading of Google Distance Matrix API for Dynamic Delivery Charges calculation.<br>

* Checkout Page not loading the payment gateway bug fixed (If because of network issue or anything the checkout page fails to load the payment gateway, the application keep on trying to load the payment gateways until success)<br>

* "To Pay" text on the checkout page has been moved to the header navbar which is sticky.

* Logout confirmation on Customer Application.<br>

* Layout issues on the Manage Address page fixed.

  CSV Bulk upload will now run an error check before processing the CSV file for Item upload. (Detection of image error, store/restaurant error, item/menu category error)<br>

* Code optimization for listing stores on the homepage.<br>

* A ton of CSS improvements<br>

* Fixed Translations on Restaurant Dashboard<br>

* Added new translations for customer application<br>

* Fixed Password Reset redirection issue.<br>

* Unique delivery pin on every order.<br>

* Reset password bug fixed<br>

* Modules Database table not found bug fixed<br>

* Fixed UI issue with Recommended item<br>

* Fixed UI issue with promo sliders<br>

* Added option to hide HouseNumber, StreetNumber from Google Autocomplete for Address<br>

### Version 2.1.1 - 28-07-2020

#### Fixed

* Menu non-clickable issue fixed on Customer Application.<br>
* Self-pickup infinite-loading issue fixed on checkout pickup infinite-loading issue fixed on checkout.

### Version 2.1.0 - 24-07-2020

#### Added

* Ban user functionality. (Banned users cannot view the cart/place orders) (Admin > Users > All Users > Edit > Ban Users)<br>
* In-App Notification - When a push notification is sent from Admin to all the customers or a particular customer, if the customer has open the application, a notification popup will appear.<br>
* Push Notification InApp popup link for order updates in the customer app<br>
* Push Notification InApp popup link on new order received on delivery app<br>
* Custom HTML block for Homepage (Admin > Modules > Translations > Edit a language > Custom Home Message)<br>
* Custom HTML block for Cart Page (Admin > Modules > Translations > Edit a language > Custom Cart Message)<br>
* Offline detection and custom screen when the device is offline (when no internet connection)<br>
* Custom SMTP email gateway settings.<br>
* In the customer application, there is a detailed view of the order details. (Accounts > My Orders)<br>
* Added supported locales for Stripe (Admin > Settings > Payment Gateways > Stripe Language)\ <br>
* Custom Store URL (Admin > Stores > Edit Store > Scroll down to Store URL section)<br>
* Added settings to disable iOS popup on customer app (Admin > Settings > Customer Application > Show Custom iOS Add To Homescreen Popup)<br>
* Files Backup, Database backup functionality (Experimental) (Admin > Settings > Advanced Settings)<br>
* Added vibration and notification sound for In-App Notification<br>
* Added Logout all customer button on Admin.

#### **Fixed & Improvements**

* Major: Payment captured but order not placed bug fixed<br>
* Major: Fixed -When user change address on the cart page, even the store is not operational in the new address, the user was able to checkout<br>
* MAJOR SECURITY FIX - Over 20+ API security issues fixed.<br>
* Fixed Min Order issue on store saving function<br>
* CSS issues fixed for the managed Address page in the customer application.<br>
* Fixed Not deliverable address was selectable when trying to change address from Cart Page<br>
* Min-Subtotal is set to 0 by default on Coupons<br>
* Background/Foreground issues fixed for sticky bar and footer on Customer Application.<br>
* When the coupon is invalid, the order was not placed even if the online payment was captured.<br>
* Push notification saves the token function issue fixed. (Routes outside the middleware issue)<br>
* On Social login auth success, show loading instead of sitting idl&#x65;**.**<br>
* Push Notification token is now generated every time customer goes to the homepage/store-listing-page.<br>
* Commented out the reset password email footer company address<br>
* Double click on forms submit on Admin/Store Dashboard are disabled to prevent duplicate entries<br>
* Fixed RichText Editor (SummerNote) code editor not saving changes unless clicked again<br>
* The delivery guy cannot be assigned to any stores if the delivery details and not filled.<br>
* Prevent multiple clicks to Fix Update Issues button to prevent corruption of files<br>
* Searchable select added to addons creation. Addon categories are now searchable on the addons creation page<br>
* Store Owner Dashboard layout issues scroll<br>
* Items list CSS UI issues<br>
* Single item add/remove item button UX.<br>
* Stores are now searchable on the Items creation/edit item page.<br>
* Sales chart removed from the earnings page for now<br>
* Fixed layout issues with delivery guy orders layout<br>
* Push Notification can now be sent to all users successfully, previously 1000 users were the limit.<br>
* Cart Address-delivery charge bug fixed.<br>
* Checkout payment gateway try again after 3 seconds if first failed<br>
* Coupon percentage undefined bug fixed<br>
* Fixed Store Dashboard earning calculation issues (Only on the dashboard)<br>
* Fixed Custom CSS on second reload issues (Now comes on 1st load itself)<br>
* Improved cache mechanism on the customer application.<br>
* Fixed Delivery guy incorrect add-on price bug<br>
* Improved compatibility with Super-Cache Premium Module (Premium module will be released soon on Codecanyon)<br>
* Other Untracked improvements on the dashboard and customer application.

{% hint style="warning" %}
Please do not ask when it's releasing, we will be sending it for review to Codecanyon, it may take any time between 4-10 days depending on their current workload.
{% endhint %}

### **Version 2.0.4 - 21-07-2020**

{% hint style="success" %}
Private Beta released for selected users from Discord Channel
{% endhint %}

### **Version 2.0.3 - 16-07-2020**

{% hint style="success" %}
Private Beta released for selected users from Discord Channel
{% endhint %}

### Version 2.0.2 - 09-07-2020

{% hint style="success" %}
Private Beta released for selected users from Discord Channel
{% endhint %}

### Version 2.0.1 - 06-07-2020

#### Fixed

* Fixed Translation issues when clicked on Edit.
* Fixed Update issues with new simple update screen.

### Version 2.0.0 - 05-07-2020

#### Added

* Cool new avatar selector for user profile.
* NEW: Simple update procedure
* NEW: Stores are now sortable with drag-and-drop. (Admin > Stores > Sort Stores > Edit)
* NEW: Promo Sliders are now sortable with drag-and-drop. (Admin > Modules > Promo Sliders)
* NEW: Store Category Sliders are now sortable with drag-and-drop. (Admin > Modules > Store Category Sliders)
* NEW: Google Distance Matrix API can now be enabled for accurate calculations for Dynamic Delivery Charges. (Admin > Settings > Customer Application > Use Google Distance Matrix API)
* NEW: Premium Modules system (Admin > Modules > Premium Modules) - Premium Modules will be sold separately

#### Fixed & Improvements

* AliPay and BitCoin are now enabled on Stripe.
* ALiPay and BitCoin payments for Stripe can be enabled/disabled from Admin (Admin > Settings > Payment Gateways > Stripe)
* Currency bug on Stripe Payment Gateway has been fixed.
* Admin has an option to hide/show the inactive items on the Customer Application (Admin > Settings > Customer Application > Show Inactive Items)
* Improved the layout for the Store Owner Dashboard. The orders are now divided into different segments.
* Fixed issues with promo slider images
* Fixed delivery guy roles bug
* Promo Sliders details can now be edited after it's created (Admin > Modules > Promo Sliders > Edit)
* Fixed SendGrid credentials security bug
* Removed old redundant DB seeders
* Updated the CORS package and configurations
* Address pages issues fixed when 0 address on the user list.
* Optimize store images when uploaded from admin/store or through Bulk CSV
* The minus button is now replaced with a delete button on the cart page when item quantity is one.
* Major UI Improvements in the manage addresses page.
* UI improvements in the Saved Addresses in Location Selection page.
* Added back button on Search Location Page.
* Many small UI and glitches fixed.<br>

### Version 1.9.8 - 01-06-2020

{% hint style="success" %}
Released only for Beta testers through Discord Channel
{% endhint %}

### Version 1.9.8 - 01-06-2020

#### Added

* NEW RazorPay Offers Integration - Ticket #1566 (<https://razorpay.com/docs/offers/dashboard>)
* Added store currency to Stripe - Ticket #1609

#### Fixed & Improvements

* Fixed hide price for addons when 0.00 - Ticket #1547
* Fixed social Login Icons keeps on loading even when turned off in the registration page - Ticket #1589
* Fixed item cart quantity count visibility issue on items page - Ticket #1592
* Fixed issue with partial payment not refunded when cancelled from user end -Ticket #1575
* Fixed Wallet translation issues - Ticket #1547
* Fixed iOS Image issue (Showing Half Image or stretching)
* Fixed on Self-pickup orders the view order page on Admin was showing error - Ticket #1628
* Fixed min Order Price for Stores set to 0 in the store creation form. - Ticket #1634
* Fixed Alerts already marked as read issue - Ticket #1635

### Version 1.9.7 - 30-05-2020

{% hint style="success" %}
Only for beta testers through Mail.
{% endhint %}

### Version 1.9.6 - 27-05-2020

#### Fixes & Improvements :

* Fixed CSS issues that came along with v1.9.5

{% hint style="info" %}
Please skip this updated above changes are not crucial for you!
{% endhint %}

### Version 1.9.5 - 27-05-2020

#### Fixes & Improvements

* PayStack Payment default currency code fixed (Take currency from Settings) - Ticket #1485
* UI issue with Recommended Item on V2 Layout - Ticket #1482
* Stripe BUG. (Partial wallet calculation error)- Ticket #1473
* Currency Symbol UI issue on Single Item Page, Cart page, Homepage, Explore Page) - Ticket #1522
* iOS Image stretching issue on Single Item Page - Ticket #1531
* New Scheduling Command to fix junk file creations. <https://docs.foodomaa.com/configurations/store-scheduling-open-close-times#note-1>

{% hint style="info" %}
Please skip this updated above changes are not crucial for you!
{% endhint %}

### Version 1.9.4 - 17-05-2020

#### Fixes & Improvements

* Wallet transaction search fixed
* Delivery Guy Collection (Full/Partial) fixed
* WhiteScreen Issue on location selection page fixed
* Bulk CSV Upload fix (New Sample File)
* Buttons removed and Switches added for enable/disable of items, categories, stores, addons, etc.

### Version 1.9.3 - 17-05-2020

#### Fixes & Improvements

* Fresh Installation/New Installation issues fixed. \[restaurants table/view not found error]

### Version 1.9.2 - 17-05-2020

#### Fixes & Improvements

* Scheduling issues fixed (Timezone based Scheduling fixed, single day entry fixed)
* Setting Delivery Guy Commission rate fixed
* Max order error message on delivery application fixed
* Login to Restaurant owner tooltip issue fixed.
* Print order blank screen on Admin fixed.
* Self-pickup delivery charges fixed.

### Version 1.9.1 - 13-05-2020

{% hint style="success" %}
Beta Release.
{% endhint %}

### Version 1.9.0 - 11-05-2020

#### Added

* Added functionality to check if the items which are disabled are present in the cart before checkout.
* Added option in Admin to expand/collapse all Item Menus in the Item's listing page (Admin > Settings > Customer Application > Expand All Items Menu)
* Added Searchable select options in Currency, Timezone, and all places with long dropdown lists, etc.
* Added SessionToken for each request on Google Places API. (Now this should save your money in Google APIs)
* Added Item's description and is\_veg field to the Bulk Upload CSV files
* Added option to View all the Addons of an Addon Category.
* Added options to Edit the Menu Categories.
* Added edit options in Delivery Guy And Store Owner pages as well.
* Added top 10 items reports (Admin > Modules > Reports)
* Added option to show/hide addons for Delivery Application (Admin > Settings > Delivery Application > Show Order Addons)
* Added option to show/hide full address on the Delivery Application Order lists (Admin > Settings > Delivery Application > Show full address on Order List)
* Added option to show/hide Customer's address before the order has been accepted in the Delivery Application (Admin > Settings > Delivery Application > Show Customer Address)
* Added new MSG91 SMS Gateway integration
* SMS alert for New Order Notification for Restaurant Owners
* SMS alert for New Order Notification for Delivery Guys.
* Added is\_notifiable in Restaurants and Delivery Guys. (Only when set, they will get SMS notifications)
* Added option for Auto Accepting Orders for Restaurants (Admin > Stores > Edit > Auto Accept Order)
* Added option to assign and change/reassign delivery guys by Admin (Admin > Orders > View Order)
* Added option to accept the restaurant's order by Admin (Admin > Orders > View Order)
* Added Login/Registration pages meta title in Customer Application
* Added SMS OTP error validation on the Registration page in Customer Application.
* Added delivery pin on SuperAdmin Account.
* Added delivery login error messages
* Added CLP and NPR in currencies list in Admin.
* Added message on the Delivery Application page when open from desktop/laptop view.
* Added settings in Admin to control the Upload image quality for Items (Admin > Settings > General > Upload Image Quality). All uploaded item images will be encoded to JPG file reduce sizes.
* New animations added to the location selection page.
* Added Restaurant automatic scheduling (opening/closing) System. (Admin > Stores > Edit > Automatic Scheduling > Save || Then Fill the Scheduling Times) Follow the Store Scheduling Documentation
* Restaurant Owner Translations Added (/resources/lang/en/storeDashboard.php)
* Restaurant Owner's NEW Dashboard functionality. They will get a popup with when a new order arrives.

#### Fixes & Improvements

* Changed the whole system to Multi-Store System.
* Restaurants have been changed to Stores. Restaurant Owner has been changed to Store Owners.
* Changed Dashboard and Customer Application URLs to use "store" rather than "restaurants"
* Closed restaurants will now be visible on the Homepage with a custom message that can be set by Admin.
* Server validation of un-available cart items added on the Cart Page.
* Coupon Code calculation is now made on the Item total rather than the Sub-Total in the total bill.
* Continuous alert sound for Restaurant Owner until an action is taken.
* Alerts sound can be customized by Admin. (Admin > Settings > Store Dashboard > New Order Fetch Rate)
* New Order Refresh rate can be set by Admin. (Admin > Settings > Store Dashboard > Notification Tone)
* Removed obsolete MapBox CSS scripts.
* Fixed delivery guy on-going order issue when the order is canceled.
* Fixed Order Statuses width issue on Customer's Order Tracking Page.
* Refactored all the functions in Admin and Restaurant pages. 200% speed improvements in querying for orders, items, restaurants, addons from the Admin/Restaurant Dashboard.
* 4 times faster search on the explore page in the Customer Application.
* The Delivery Guy's commission rate is set to 0 by default. This fixed "commission\_rate cannot be null" issue while saving the delivery guy.
* The restaurant's owner commission rate is set to 0 by default. This fixed calculations issues.
* Restaurants Minimum Order Value is now set to 0 by default.
* Flat/Apartment Address can now be made Not-Mandatory (Admin > Settings > Customer Application > Flat/Apartment Mandatory in Address)
* Order IDs are now trimmed down to the last eight characters while showing it on the Header of Delivery Application and on the Customer Application.
* Fixed item image sizes issue while uploading from Restaurant Dashboard and Bulk CSV Upload
* Fixed Logos caching issue in the Homepage (Desktop view)
* Dynamic Delivery Changes can now be rounded up to the nearest greater value. (5.45 becomes 6) (Admin > Settings > Customer Application > Round up Dynamic Delivery Charge)
* Force Clear Cache will now not force users to go back to the Homepage. They can continue the application from their current page.
* Addons can now be disabled.
* Admin can now directly login to any Restaurant Owner's dashboard without their account credentials. (Admin > Users > Store Owners > Login Button with Arrow)
* The Customer's phone number is shown now on the delivery application also after the order has been accepted. (Previously this was only after the order is picked up)
* Fixed Accept Delivery errors (Infinite loading error) in the Delivery Application
* Max number of on-going Deliveries can now be assigned to each Delivery Guys (Admin > Users > Delivery Guys > Edit > Max Orders in Queue)
* Refactored the full password reset email architecture using SendGrid new policies and APIs. Follow the Documentation Below.
* On the Restaurants Categories Slider Items Page, clicking on the logo will redirect back to the Homepage.
* Fixed data types for addresses in the database tables
* MultiRoles removed while editing users
* Super Admin role cannot be changed now
* Fixed Admin/Restaurant login bug.
* Once the "Use App Now" button is clicked on the desktop/laptop view, the virtual-phone-screen will be kept in the usable mode for that session.
* Push notification token will be fetched every five days rather than fetching and saving every time homepage reloads.
* When all menu closed, menu category scrolling fixed. (Clicking on menu will expand all menus)
* Fixed layout for Alerts Page
* Fixed serialization of closer error while saving a restaurant from restaurant owner
* If the restaurant URL is invalid (404), the user is now redirected to the Homepage on the mobile view.
* Changed loading/processing spinner in Delivery Application when accepting/pickup/complete order.
* The location pointer re-calibrate to fit in the exact point according to Google Maps.
* Fixed Address Tags issues for smaller phones (iPhone 5/SE etc)
* Fixed logo/splash screen image format. (Logo will always be PNG and SplashScreen always in JPG format)<br>

### Version 1.8.1 - 06-04-2020

#### Fixes

* Added Google attributions for Maps and Places APIs according to section Section 3.2.3(b) from <https://cloud.google.com/maps-platform/terms>

### Version 1.8.0 - 05-04-2020

#### Added

* Added error messages when the installation fails. (For AWS, GCloud permission issues)
* Added Ripple Effect to Promo Sliders on Click and on Touch/Hold.
* Added new settings in Admin to control time formats for Customer/Delivery Application. (Admin >Settings > General > Beautify Date/Time
* \[NEW] Alerts page. All the push notifications will be shown on this page, even if it is not successfully delivered. (Even on iOS)
* Added ability to send notifications/alerts to specific users (Admin > Extras > Send Push Notifications)
* Added ability to send alerts to users when their waller is updated from the Admin Dashboard.
* Added ability to make the currency symbol align to Left/Right in Customer/Delivery app. (Admin > Settings > General > Currency Symbol Alignment)
* Added fade animations for Restaurant/Item images.
* Added Lazy Loading of restaurants on the homepage.

#### Fixes & Improvements

* Fixed on creating new promo slider, not able to save with custom URL.
* Fixed Restaurant Category Slider assigning restaurants.
* Increased the length of Order ID
* Fixed ordering form closed Restaurant (Added new message on Cart, if the Restaurant is closed and user have items in the Cart from a closed restaurant)
* The user's set location shown on the homepage will now display the "Tag" or the "Flat/Apartment Address" rather than showing Locality from Google Maps Data.
* English is now made as default translation and will be auto-installed only during the first installation.
* Minimum Order Value can now be set for each Restaurant.
* Fixed iOS issues for Item's Customization popup screen.
* Fixed back-button error after order placed successfully (Now redirects to My-Orders page)
* Removed progressive image loading for Restaurant and Item images. (Saves bandwidth and reduces server load significantly)
* Removed bloated animations when sliding through the Items list.
* Removed some unused packages and code bloat from old unused components.
* Improved performance for lower-end phones.
* App first load speed increased by 12%, App smoothness increased by 50%.

### Version 1.7.2 - 16-03-2020

#### Added

* Added a new custom block for the login/registration page. (Admin > Extras > Translations > Edit Language > Login/Registration Policy Message)

#### Fixes & Improvements

* Default country code bug fix.
* Made address field mandatory in the location selection page.
* All locations saved by the users are now also shown in the Location Selection page.
* iOS 13 delivery guy location sharing fixed (if white-screen appears on the delivery application after login, email at <stackcanyon@gmail.com>)
* Optimized some components for better performance.
* Application Loading Speed increased by 5%
* Removed passwords and other critical credentials from the debug screen. (when Development Mode enabled)

### Version 1.7.1 - 26-02-2020

#### Added

* Added Password recover email, name and subject changing functionality (Admin > Settings > Email Settings)

#### Fixes & Improvements

* iOS 13 issue detected on Delivery Guy Page, Location Services have some issue with iOS 13 for any web application. Temporarily disabled.
* Set delivery guy GPS location timeout (set to 15 seconds)
* Fixed Double click on explore page error.
* Fixed issue in Promo slider Size, by default it was setting size as 1.
* Whitelisted /assets path in Service Worker file (used for 3rd party validations)
* After Password Recovered/Changed, redirect automatically to the Login Page
* Fixed delivery guy accepts order bug (Infinite spinning bug)
* Change Logo format in password reset email.
* Fixed bug with Veg/Non-Veg icon on items.

#### Version 1.7 - 23-02-2020

#### Added

* Delivery Guy Cash Collection System.
* Reset Password over Email Functionality.
* Cache invalidate mechanism (Refetch only settings and Force Clear Everything)
* Restaurant Category Slider functionality added.
* Foodomaa Core Update System
* Added new and missing translations
* Added New Delivery guy heading pointer (Experimental)
* Added CSS vendor prefixes
* New Item menu popup (Frontend)

#### Fixes & Improvements

* Force InnoDB during the installation.
* After the order has been accepted, the customer cannot cancel the order anymore.
* Admin Settings Page improvements
* User/Orders/Categories/Items/Restaurants search improvements
* White Screen Issue Fixed
* Improved the dashboard page to assign Restaurants for the delivery guy and restaurant owners easily.
* Primary language is now set to English (Admin > Extras > Translations), and Multi-Language is enabled by default.
* Fixed Translation Glitch issue.
* Removed select language option if only one language is enabled from the Admin Dashboard.
* Fixed adding new page bug (Frontend) also improved the slug auto-generation in the backend.
* Fixed long location name bug in the orders table.
* Removed all the instances for MapBox. Only Google Maps will be used in Foodomaa.
* Changed OTP verification length. Now it can be set from 4-6 digits
* The logo resize issue fix
* Footer CSS improvements.
* Restaurants Dashboard main page improvements.
* Explore page UI improvements.
* Fixed GDPR popup issues.
* Accept/Deny/Mark as Ready/Ready for Pickup buttons are now also shown in the Restaurant Owner's detailed order view page.
* Improved UX and Ajax call functionality in the Restaurant's Dashboard Overview page
* Self-pickup status on Restaurant and Admin Dashboard (Badge error fix)
* Fixed Admin Dashboard/Restaurant's Dashboard Login Page UI issue on some devices (Xiaomi and Apple)
* If no popular geo-locations are set, the loading animation will now not be shown.
* JWT token expiry time is now set to unlimited.
* Two prices can be set for items (Regular Price and Discounted Price)
* Veg-NonVeg tag on Items can now be set
* Admin can now view all the wallet transactions in a single dashboard page. (Admin > Extras > Wallet Transactions)
* Push Notification Page bug fixes (push notifications cannot be sent if there are no subscribers)
* Improved lazy loading of images.
* Improved animations.
* Fixed Items searching bug (Frontend)
* Completely rewrote the Delivery Guy GPS tracking system.
* Fixed Stripe Payment Gateway currency precision bug.
* App speed improved by 38%
* And a lot of un-tracked improvements...

### Version 1.6.0 - 02-01-2020

#### Added

* \[NEW] Search for the items within the Restaurant's items listing page.
* Added option to remove all addons from an item.

#### Fixes & Improvements

* Google Maps API Restricted keys will now work (IP and Domain Restriction)
* Fixed Restaurant Owner's notification token registration issue.
* Improved UI for the Restaurant's listing and Cart Page
* Fixed calculation issue on the Cart and Order page.
* Increased the API throttle limit to 500 calls per IP per minute.
* Prices length is set to 20 (9999999999999999999.99 is the new price limit)
* Cache busting when new logos, favicons, splash screens, or hero images are updated.
* Fixed null values on the Desktop Achievements block.
* Fixed "No Restaurants" text when Self-Pickup is globally disabled.
* Fixed Incorrect address format on Delivery application

### Version 1.5.0 - 24-12-2019

#### Added

* \[NEW] Near By Restaurant Listing based on user's selected location and Restaurant's Operation Radius (or GPS location)
* \[NEW] Dynamic Delivery Charges based on distance from the customer to the restaurants.
* \[NEW] Google Places API to choose over from 150 Million Places.
* \[NEW] Google Maps to choose the exact location with pinpoint accuracy.
* \[NEW] Multi-Language Translation System for customer end.
* \[NEW] Notification for the Restaurant Owner and the Delivery Guy when a new order is received.
* \[NEW] Custom URLs to Promotional Slider and multi Promotional Slider Functionality.
* \[NEW] Auto save new address for the user on registration.
* \[NEW] Dedicated detailed item's page with WYSIWYG Editor for the Item's description.
* \[NEW] Pages can now be liked to any front end pages with WYSIWYG Editor.
* \[NEW] Delivery Guy and Restaurant Registration Form with Captcha.
* \[NEW] A complete revamp of the Delivery Application.
* \[NEW] Added Delivery guy order history and earnings history.
* \[NEW] Delivery Guy Commission system rate based on Delivery Charges & Full Order Price.
* Added showing of applied coupon code when coupon applied.
* Added option to hide price when the Item's price is set to Zero.
* Added method to add full delivery guy details when creating a new delivery guy from Admin Dashboard.

#### Fixes & Improvements

* Fixed missing translations from customer and delivery application.
* Removed address fill box when the user has selected Self Pick-up.
* Restricted access to delete the pre-selected address from custom address manager.
* Fixed Restaurant Items listing when no recommended items.
* Fixed refund message when COD order is placed.
* Fixed Social Images folder issue.
* Fixed search results pagination issues on Admin and Restaurant Owner's Dashboard
* Fixed un-clickable last item categories menu bug.
* Major UI improvements to the Restaurant Listing page.
* Changed algorithm for listing Restaurants. (Chosen based on the Operation Area, Shuffled and then sorted based on the is\_featured tag.)

### Version 1.4.0 - 27-11-2019

#### Added

* \[NEW] Order cancellation by users/customers
* \[NEW] Order Rejection by Restaurant Owners
* \[NEW] Wallet System
* \[NEW] Refund to Wallet
* \[NEW] Add/Remove Wallet Money for users from the Admin Dashboard
* \[NEW] Manage Full/Partial Refunds from the Admin Dashboard.
* \[NEW] Redeem wallet balance for an order. (Fully/Partially)
* Wallet Transactions Page for users/customers
* Added Development mode in Admin Settings
* Added Time Zone selector in Admin Settings.

#### Fixes & Improvements

* Improvements for settings navigation for Admin Dashboard
* Admin can now separately manage Items of each restaurant
* Promo Slider URL linker now in a dropdown (No need to fill the URL box)
* Fixed Self-pickup delivery charges bugs.
* Fixed Self-pickup order shown to Delivery Guy bug.
* Fixed multiple order placing bug.
* Fixed Restaurant Edit Location's option selection bug.
* Fixed On-going order bug.

### Version 1.3.1 - 19-11-2019

#### Fixes

* Delivery Pin Enable/Disable Fixed
* Order Pickup (SelfPickup DB entry)
* Routing loop from My Orders to Single Order page Fixed.
* Disabled back on the delivery main order page.

### Version 1.3.0 - 18-11-2019

#### Added

* \[NEW] Self Pick-Up and Delivery options.
* \[NEW] Razorpay Payment gateway with UPI Payments (Google Pay, PhonePe, Paytm, etc).
* \[NEW] Multiple Orders Placing System.
* \[NEW] Contact Details Sharing between Delivery Guy and Customer.
* \[NEW] "Order getting late" notification for Admin
* \[NEW] Suggestion/Comment for the order from the customer to the restaurant.
* \[NEW] Item's description.
* Added option to Enable/Disable delivery pin globally.
* Order tracking messages added.

#### Fixes & Improvements

* GPS location error message when access denied (for both customer and delivery guy)
* Improvements in the cache mechanism.
* Pages scrolling issues fixed (Account > Pages)
* Social Login loader added.
* Notification to the customer when trying to add items from two different restaurants.
* Removed delivery charges from Restaurant Dashboard and restaurant's payout calculation.
* Improvements in the recommended items layout and quantity badge.
* Optimizations for update fixes.

### Version 1.2.0 - 18-11-2019

#### Added

* SMS OTP Verification Module using Twilio.

#### Fixes & Improvements

* Improvements in the validation messages and Social Login.
* Product Quantity Counter added to the items page.
* Major Bug fixes in Add/Remove Product.
* Delivery Guy's Live Location Tracking Fixed.

### Version 1.1.2 - 12-10-2019

#### Fixes & Improvements

* Push Notification bug Fixes for all device.
* Bulk CSV Uploader bug fixes

### Version 1.1.1 - 09-10-2019

#### Added

* Automatic system core update module. \[NEW]
* Custom CSS module. \[NEW]
* API URLs fixing module. \[NEW]
* Added missing texts/strings on the translations page.

#### Fixes & Improvements

* Bug fixes for item disable functionality.
* Bug fixes for Restaurant Payout System.
* Bug Fixes and Optimizations for the Multiple Addon System.
* Bug Fixes for Regular Login & Social Login.
* Bugs Fixes for Push Notification.
* UI/UX improvements in the Admin and Restaurant Dashboard.

### Version 1.1.0 - 01-10-2019

#### Added

* Addon functionality (Customization of items/products)
* New Payment Gateway Integration (PayStack)
* Restaurant Payout System based on Restaurant Commission.
* Social Login (Facebook and Google)

#### Fixes & Improvements

* Bug Fixes for new orders (Unique Order ID bug)
* Bug Fixes for Restaurant Dashboard Redirections.
* Optimizations for animations on scroll.

### Version 1.0.5 - 14-09-2019

#### Fixes & Improvements

* Fixed bug when a restaurant accepts an order (Bug reported by "codemarcos")

### Version 1.0.4 - 13-09-2019

#### Fixes & Improvements

* New service worker cache buster which skips the user waiting and reloading the page when the new production built is updated.
* Fixed Admin and Restaurant owner redirection after logout.
* Fixed SSL issue on the admin dashboard.

### Version 1.0.3&#x20;

#### Added

* Added input validation for restaurant, items, and categories for both admin and restaurant owner dashboard.
* Added Exception handlers to smoothy handle the errors with notifications.

### Version 1.0.2

#### Fixes & Improvements

* Bug fixes for the script installation wizard.

### Version 1.0.1

#### Fixes & Improvements

* Bug fixes for time-zones and moment js on the react side of the application.

### Version 1.0.0

{% hint style="success" %}
Initial Release.
{% endhint %}


# Requirements for Foodomaa

### Google Cloud Account

A Google Cloud Account with proper **Billing Setup** is the most important thing required to use Foodomaa™.\
Foodomaa™ relies on many APIs provided by Google Maps.\
\
Geocoding API, Maps Javascript API, Places API, Maps Static API, GeoLocation API, Distance Matrix API are the APIs Foodomaa™ uses without which it is **impossible** to use Foodomaa™.\
\
Also, we cannot replace the Google APIs dependency with any other services like MapBox or OpenStreetMap or anything else as our system is fully coupled with Google Services internally.&#x20;

[Click here](/configurations/google-maps-api-keys) to learn how to set up a Google Cloud Account with billing and APIs.<br>

### Server

We provide a **`.htaccess`** configuration file that works well with any Apache server.\
\
Nginx or LiteSpeed or any other server is **NOT** officially supported and we **CANNOT** help with the server configuration of any kind if your server uses anything other than Apache.<br>

### Hosting Services

Foodomaa™ works very well with all major managed hosting providers. To name a few, GoDaddy, Hostinger, NameCheap, BlueHost, SiteGround, HostGator.\
\
All managed hosting provides would support an easy to use cPanel through which Foodomaa™ can literally be installed in just 5 minutes. (We also offer installation support for these hosting providers)

If you use a Cloud Hosting service like AWS, GCloud, DigitalOcean, etc, we **DONOT** support for installation or server configuration on these services. \
\
If you use a Cloud Hosting or a dedicated server where you have configured the server on your own, the support will only be resumed after you have completed installation and setup for Foodomaa™.

### &#x20;PHP Version

Foodomaa™ requires  PHP v7.3.\
Although PHP v7.4 can be used with Foodomaa™ but later if you face any issues, the first thing which we would suggest over support ticket to you will be to fall back to PHP v7.3 as that's the only Officially support PHP version.<br>

### PHP Extensions

The following PHP extensions are mandatory to use Foodomaa™:

* OpenSSL PHP Extension
* PDO PHP Extension
* Mbstring PHP Extension
* Tokenizer PHP Extension
* XML PHP Extension
* Ctype PHP Extension
* JSON PHP Extension
* ZIP PHP Extension
* FileInfo PHP Extension
* BCMath PHP Extension
* ionCube Loader PHP Extension
* GD PHP extension

Optionally, you should also enable the **`OpCache PHP Extension`** for better performance. It is not mandatory but recommended.

#### How to Enable PHP Extensions?

On a manages hosting provider (like GoDaddy, Hostinger, etc) you will have an option to change the PHP Configuration under the name "**Php Versions**" or "**Php Configurations**" or "**Php Extensions**" or some similar names.

There you can find a similar view as shown below:<br>

![](/files/-MR3SJulZBXU1ezRxVnN)

From this list, check all the required extensions and Save/Apply the settings.<br>

{% hint style="warning" %}
From version 2.5.0 Foodomaa™ requires **ionCube Loader PHP Extension**&#x20;

99% of the hosting providers have this Extension pre-installed and you will just need to enable it as shown above.\
\
But if your hosting provider doesn't have ionCube Loader installed, you will need to contact your hosting provider support. \
\
If you are on a Cloud/Dedicated server like AWS, GCloud, or similar servers, please follow [this documentation](https://www.ioncube.com/loaders.php) to install the ionCube Loader yourself. \
\
You could also refer to any other article that suits your hosting server. \
\
NOTE: Support **CANNOT** be provided to install any of these PHP extensions on your server.&#x20;
{% endhint %}


# Limitations

### Full Desktop Mode

As 98% of people use their phone to place an order in today's time, we are fully focused on mobile ordering.\
\
According to our survey, we concluded that the full desktop mode is a "**Good To Have"** feature rather than a "**Need To Have"**.\
\
So, for Foodomaa™, we will never have a full-desktop version (as a lot of functionalities and design has to be built from the ground-up, and as of now we cannot invest our time on this.)

### Customer/Delivery Application on iPad

Foodomaa™ follows an adaptive design and not a "responsive" design pattern. Hence it can only adapt to either Desktop or Mobile as of now.\
On any version of iPad (or any tablets) the desktop version will be rendered. (if the screen width is greater than 768 pixels)<br>

### Push Notifications

* iOS doesn't support Push-API so on any iOS device, the push notification (for the Customer Application, the Delivery Application, the Store Dashboard) will not work at all. (Unless Apple develops the Push-API support on iOS devices - which we doubt will happen within 2021)<br>
* On an Android Device, or on a PC, when a notification is received, and the application (Customer Application, Delivery Application) is in the foreground, the notification won't appear. But an In-App notification popup will appear instead. <br>
* On any web-app, the push notification access prompt can only be shown once, once the confirmation for allowing or denying access is set by the user, the prompt cannot be placed again on the same device/browser. Users will have to manually go to the site-settings on their browser and allow/deny access.<br>
* To receive a push notification, either the browser should be running minimized on the system or the browser service must be running in the background.\
  For example: on a PC, if you just restarted your system, the Chrome Browser Background service might not be available on Startup. So, you will need to open Chrome Browser once again and leave it running in the Background.&#x20;

{% hint style="danger" %}
Please note, these Push Notification Limitations are not set by us, it is the Global Standard for all Web Applications.&#x20;
{% endhint %}

###

### Live Order Tracking

Web Apps do not have access to background location services. Hence, if the Delivery Application is running in the background or on a lock-screen, the live GPS data cannot be shared with the server.\
\
**Example**\
If the delivery guy is on Point A, and the app is open, the location is shared with the server and the position of the delivery guy is shown to the customer on the Order Tracking page.\
\
But, if the delivery guy locks the device and then drives, the customer will not receive the live location of the Delivery Guy.\
\
If the delivery guy reaches Point B and then opens the app again, the customer will see a jump of the delivery live location from Point A to the new Point B on their Order Tracking page.<br>

If the delivery guy never turns off the screen and never puts the app in the background, then every 15 seconds the delivery guy's location is fetched and sent to the server and to the customer.

{% hint style="danger" %}
Please note, these Background Location Limitations are not set by us, it is the Global Standard for all Web Applications.&#x20;
{% endhint %}

### Payment Gateways

Foodomaa™ is not meant to be used for all countries as we have limited payment gateways.\
We only integrate a new payment gateway to Foodomaa™ when we receive a significant amount of requests for the same from different buyers.&#x20;

As of now, Foodomaa™ has the following Payment Gateways:

* Stripe 3D Secure with Strong Customer Authentication (SCA)
* Stripe iDEAL payment for the Netherlands
* Stripe FPX payment for Malaysia
* Cash On Delivery payment
* MercadoPago Payment for Brazil
* PayStack payment for Africa
* RazorPay payment for India
* PayPal payment gateway
* PayMongo payment for the Philippines

### M**ultilingual** Functionality

The Customer Application, the Delivery Application can easily be fully (99.99%) be translated by using the Admin Dashboard.

The Store Dashboard can be fully (99.99%) be translated using internal files.

The Admin Dashboard is not multilingual and cannot be translated (unless core files are modified manually). We do not have any plans to add multilingual functionality for the Admin Dashboard. \
If the Admin Dashboard files are modified manually to change texts/strings, it will be automatically replaced with the new files after an update.

Foodomaa™ **doesn't** support Right-To-Left(RTL) layout and Arabic Language for Customer Application, the Delivery Application, or the Store Dashboard.<br>

### Location Data and Data from Google APIs

Foodomaa™ relies on a lot of data from Google APIs. Data like Geo-Location, Address, Places, etc.\
Kindly note that these data are not controlled by the application as the application needs to trust the data that Google API provides.

**For Example**

* If your device/phone has a week GPS signal, and when you tap on "Use Current Location" for setting the delivery address, your phone might send an incorrect position data (Latitude/Longitude) to Google and Google will send the Address Data of that particular location sent by phone. <br>
* If you have enabled Google Distance Matrix API from the Foodomaa™ Dashboard for Dynamic Delivery Charge calculations, the application will make a call to the Google API and send the Store Location as well as the Customer's Delivery Location. Now Google needs to decide the Driving Distance from these two locations. \
  If you actually know the distance is 5 kilometers, but Google API says it's 4 kilometers, the application will only trust data from Google (i.e the delivery charges will be calculated based on 4 kilometers)


# Scope of Support

### When can I request support?

* If you have issues with the installation or configuration of functionality within Foodomaa™.
* If you do not understand the working process of a system/module in Foodomaa™.
* If something is not working in the way it should.
* If you find bugs or security issues.

### When is support out of the scope of Foodomaa?

* Requesting for customization services.<br>
* Requesting for a TeamViewer or any online session for the understanding working of a piece of code or the whole system.<br>
* Integration with 3rd party applications (Tools, POS, ERP, SAAS, CMS, etc.)<br>
* Integration with a new payment gateway.<br>
* Custom WebView support. (We do not guarantee the working of Foodomaa™ if you wrap it within a WebView/TWA for Android or iOS) <br>
* If the application core files (PHP, JS, CSS, HTML, BLADE, JSON) files are modified or edited in any way, we will not be able to provide support unless all files are restored to their original form of the corresponding version.<br>
* If the Database is modified(creating, updating, or deleting) manually, the support is Void until a fresh install is done or a backup of the original Database is restored(if available)

### Channels for Support

The Offical and only channel for support of Foodomaa™ is through our **HelpDesk Portal.**\
[**Click Here**](https://stackcanyon.freshdesk.com) to visit the Portal.

We **DO NOT** reply to email conversations and comments on CodeCanyon.\
Creating tickets on our HelpDesk Portal is the only way to get support.\
\
The Official Community Forums is on its way and will be released soon.<br>


# Refund Policy

### Before you ask for a refund

If you have purchased Foodomaa™ and you are experiencing a ***technical issue**,* we recommend that you [contact us](https://stackcanyon.freshdesk.com) on our Support Ticket Channel and seek assistance.

### When am I eligible for a refund?

* Item is purchased but not downloaded.
* Mistakenly purchased the same item multiple times and the item has not been installed.

### Refunds are not processed in the following cases:

* You don't want it after you've downloaded it
* The item did not meet your expectations or you feel the item is of low quality
* You simply change your mind
* You bought an item by mistake  &#x20;and downloaded it
* You do not have sufficient expertise to use the item
* Item is not customizable because you only have a Regular License.
* The payment gateways provided in the application do not operate in your country/area.

{% hint style="danger" %}
**Any refund requests that fall on the above points are straightaway denied.**&#x20;
{% endhint %}

{% hint style="info" %}
**Extended Licenses are non-refundable given any reason for the refund claim.**
{% endhint %}

These refund policies are effective from 13 September 2019.


# License

Licenses and License management

### How to view licenses for my Domain?

Visit <https://yourdomain.com/public/license-manager>\
(change yourdomain.com to your own domain name)

###

### Can I use the same license code on multiple domains?

No, you cannot.\
1 License  = 1 Domain for any type of license (Regular/Extended)

###

### How to use an already registered license on a different Domain?

First, you will need to reset the license

1. Visit <https://yourdomain.com/public/license-manager>
2. Enter the Super Admin password.&#x20;
3. Click the **Reset** button on the license you want to use on a different domain.
4. Enter your Super Admin password again for confirmation.
5. Now you can use the reset license on your other domain.

### Can I get a free license for my Test/Dev/Stage domain?

Yes, you can get a free license for your test/dev/stage domain.

1. Your Foodomaa license must be valid and support should not have been expired.
2. If your domain is xyz.com, then the test domain can only be a subdomain of xyz.com i.e test.xyz.com or dev.xyz.com, or any other subdomain you wish to have. We CANNOT create a free license for a different domain like: abc.com if your main domain is xyz.com
3. To avail a free license for test/dev/stage, you need to create a [ticket on our helpdesk](https://support.stackcanyon.com) and send us the subdomain name.

### How many free licenses can I get?

For Regular License, 1 Free test/dev/stage domain license can be provided.

For Extended License, a maximum of 3 Free test/dev/stage domain licenses can be released if required.

### How to upgrade from a Regular License to an Extended License for Foodomaa?

Visit <https://yourdomain.com/public/license-verify/24534953>\
(change yourdomain.com to your own domain name)


