Business Management

Registering your Business

Registering a new business

  1. Click on register business link on the welcome page.
  2. Registering business involves multiple steps;  Business Details, Tax details, and Owner details.
  3. Business Details: Fill out the relevant fields; select the appropriate currency & Time zone; click on Next. Time Zone & Currency can be different for different registered businesses.
  4. Tax Details: You should fill out at least one Tax name and Tax number. Tax is like GST/VAT which varies for different countries. Fill details & click on next.
  5. Owner Details: Provide asked details. Username & Password are used to login so make sure you remember them.
  6. The owner created during this registration will be admin of the business. More admin can be added/edited/deleted from user management section.
  7. Click on the register button and after successful registration, it will get redirected to login screen. Login with owner username/password created.

Note: You can change any of the above details in the business settings section.

Removing/Disabling register link:

IONIC Shop allows you to add multiple businesses. But many times you don’t want to allow external visitors to register there business. So you can disable registration by following these steps.

Setting Business Multiple Locations

Setting Business Multiple Locations or Ware House or Storefronts

IONIC Shop comes with the option to handle multiple business locations or WareHouse or Storefronts for your business.

A default location is added to the newly created business.

Invoice Scheme: Before creating a new location or storefront, you can define a new Invoice scheme or you can use existing invoice schemes. But having different invoice schemes for locations can help you to identify them.
Invoice Scheme is invoice number format.

Invoice Layout: If you wish to have a different invoice layout for the location then you should create an invoice layout before creating a new location.

You can always change invoice scheme & Invoice Layout for a Business location anytime.

  1. To create a new Business Location / Storefront or warehouse go to “settings -> Business Locations”
  2. Fill the business details.
  3. Choose an Invoice scheme & Invoice Layout for the location.

– When having multiple locations you will have to select the Location while adding purchases or in the pos screen.

  • Inventory and transactions are managed separately for each location you create so that you can easily track and analyze them for each location.

Disabling Business Location:

To disable a business location click on Disable button present in List Business Location.

NOTE 1: After a business location is disbabled any users assigned to that business location must be assigned to other non-disabled business location.

NOTE 2: You must keep atleast 1 business location non-disabled. If all business location is disabled then the application will throw errors.

Staff Management

Adding User & assigning location to a user

Adding users

  1. User Management -> Users -> Add New
  2. Fill the user details, select user role, give a unique username.
  3. Sales Commission Percentage (%): Provide the commission % for this user. This option gets applied if the commission agent feature is enabled.
  4. Activate/Deactivate the user.
  5. You can edit/delete a user.

Assign locations

Refer to the image below

Max sales discount:

The maximum discount this user can give during sales in the POS & sales screen. If you don’t want to have this restriction then simply keep this value blank.

Disable login

Refer to the image below

Role Management

Adding Roles

  1. Every new business comes with some default roles – Admin & Cashier.
     have all permissions in the application.
    Cashier have permission to only POS section.
  2. You can create a role by clicking on Add button -> Giving a role name and then selecting the appropriate permission for that role.
  3. Sometime you may need to give a user access to a/some particular location(s) only. In this case, select the locations from “Access locations” permission. Select “All Locations” to give permission to access all locations for your business.
  4. Roles permissions can be edited & Deleted.

Note: You must update the role of an existing user before deleting a role.

Using Commission Agent

Using Commission Agent

Commission Agent is useful for many businesses. Businesses pay sales agent/commission agent commission on every sale they bring.

Enabling & Choosing Commission Agent Type:

By default Commission Agent is Disabled. You can enable it from Settings -> Business Settings -> Sales. Sales Commission Agent drop-down.

You will see 3 different types:

  1. Logged in User: If this option is used then the Logged in User will be automatically considered as the commission agent for the sales added by him. Meaning the user adding the sales will get the commission for the sales.
  2. Select from User’s List: If this option is enabled then in POS & Sales Screen you will see the list of “users” present in your business. The user adding the sales will select the commission agent from the list of users displayed.
  3. Select from Commission Agent List: If this option is enabled then in POS & Sales Screen you will see the list of “Sales Commission Agents” present in your business. The user adding the sales will select the commission agent from the list of “Sales Commission Agents” displayed.

Select the option as per your business requirements.

Adding Commission Percentage:

You can add commission % while adding/editing the User or Sales Commission Agent

Calculating Commission Amount:

To See the commission amount, Go to Reports -> Sales Representative Report.

Select the User for which you want to see the commission amount.

On selecting it will show you the detailed summary of Total Sale, Total Sale Commission & Total Expense. Also, the table below lists all the transactions.

NOTE: Sales commission is calculated without shipping or tax. Sales commissions are from the sales of the items, not the overhead cost such as taxes, freight, shipping, handling, etc.

Commission payment:

After getting the commission amount, IONIC Shop have 2 ways to make payment for the commission.

Using expense

  • Calculate the commission from the sales representative report and after paying the amount add it as an expense in Add Expense menu.
  • In Add expense, select the Expense-For dropdown

Using HRM Manage Module

  • Use the HRM Manage Module
  • In the HRM Manage module, when creating payroll for a user, it will automatically include the sales commission.
  • Sales commission will be shown as Payroll-Components so that the business owner and the user both know details of the commission.


Contact Management

Customer & Supplier Ledger

Customer & Supplier Ledger

To view customer or supplier ledger

  1. Go to Contacts -> Supplier/Customer and click on actions button
  2. In that  you will be able to see Ledger for the customer or supplier.
  3. You can select a date-range and use the checkbox filters to show/hide certain transaction type.

Adding Discount for Customer/Supplier on Balance due:

Discount for balance due amount can be added for customer/supplier.

Click the add discount button on the customer/supplier ledger screen

On clicking the button it shows a popup, enter the details and click save.

The discounted amount will be accounted for in their ledger.

NOTE: This discount can only be added by the admin and not by other users.

Contacts Management (Supplier & Customers)

Contacts Management (Supplier & Customers)

Any contact can be supplier, Customer or Both (Supplier & Customers)

Adding Suppliers & Customers

  1. Goto Contacts -> Suppliers or Customer
  2. Click on add new contact. Select contact type – Supplier/Customer/Both
  3. Based on the contact type selected –  it will show the relevant fields. Fill the relevant details.
  4. Click on More More Information button to see more field.
  5. Pay Terms: This will help the system to notify you of any pending payments for suppliers & customers. You can specify pay term in either days or months.
  6. Customer Group: Read details here.
  7. Credit Limit: This is the maximum amount of credit that can be given to the customer. If in any sales the credit exceeds this amount then it won’t allow selling on credit.
  8. Opening Balance: Opening balance of a customer or supplier before you start using UltimatePOS. So if there is any previous balance you can add here.
  9. Advance balance: Sometimes customer/supplier pay/takes money in advance. This wil show the amount of advance balance paid or take by the customer/supplier respectively.

Viewing Suppliers & Customers

  1. To view details about a Supplier or Customer click on View button. It will show the complete details along with the relevant transactions (Purchases & Sales) for that contact.
  2. Pay Due amount: You can use this button to pay the due amount for a customer or supplier. This will pay the overall due amount for all invoices.

Assigning Contacts to Users

You can assign contacts(customers & suppliers) to a particular use by following the steps below.

  1. In your pos\config\constants.php change the value of enable_contact_assign to true.
  2. When adding the user check the label “assign to specific contact”.
  3. Now when adding contact select the user to whom you want to assign.

Changing default customer name

If you want to change the default customer name “walk-in-customer” to something else follow the steps below.

  1. Go to the database contacts data table.
  2. Change the first name field to anything required.

Credit Limit for Customer

Credit limits can be added to customers.

When the credit limit is reached the partial or credit sale can’t be sone for those customers.

To set the credit limit Go to Contacts > Customers > Action > Edit > More Information > Credit Limit.

Set this field blank for not having any credit limit for customers.

Advanced balance

Advanced Balance

Advanced balance(to customers) is the sum of the amount that the business should pay for the customers.

Advanced balance(to suppliers) is the sum of the amount that the suppliers should pay for the business.

To add an advanced balance, Go to Customers -> customers/suppliers and click on the action button. Here you will find a pay option and click on it.  Add payment pop up will be shown and add the required amount value and click on save button.



Making sales/ purchase using advanced balance:

To make a purchase or sale using this advanced balance, add a sale or purchase. Select the customer/supplier that you have added advanced balance. While making the payment select the advance option and save it.

Opening Balance

Opening Balance

Opening balance(to customers) is the sum of the amount that the customers have to pay for the business.

Opening balance(to suppliers) is the sum of the amount that the business has to pay for the suppliers.

Adding an opening balance

To add an opening balance, Go to Contacts->customers/suppliers. Either select the add button or click on edit for an existing user. There you could find a more information button, click on that and add the opening balance amount to be added for that user.

Customer Groups

Customer Groups:

With customer Groups, you can classify a customer as Retail Customers, WholeSale Customer, Friends, Colleagues and whatever you will love to…

1. To add a “Customer Group” go to Contacts -> Customer Groups & Click on “Add” button.

2. It will show a popup asking for customer group name & Calculation Percentage.
Calculation percentage is used to calculate selling price.


– Suppose if the Selling Price set for a product Product1 is $200
– Customer Group Name = Friend
Calculation Percentage = -20
– Note: -20 (notice a minus sign) or you may set it 20 = +20%

– And you have created a customer with Harry with Customer Group assigned as Friend.

– Now go to pos or Sell screen. Select the customer Harry and add the product1.

– You will notice that the selling price set for the product1 will be 200-20% = $160

This is how customer Group works.

Customer Group does an internal calculation and applied the calculation percentage to the selling price. It will not show a separate discount on the invoice or the pos screen.

This feature is highly useful when you have retail, wholesale or different customer categories.

You can view report for different customer group from “Customer Groups Report” or in other terms if you have retail and wholesale customer group you can see which type of customer group is giving more sale.


Products Management

Products Management

Adding Products

  1. Go to – Products > Add Products.
    • Provide a Product Name,
      SKU: Add a unique SKU which will be used to identify the product & Print barcode in labels. Leave it empty to auto-generate it. You can also add a Prefix for auto-generated SKU.
    • Steps to change the default SKU length:

      In order to change the default SKU length, make the following simple change in the code. 1. Open the file pos\app\Utils\ProductUtil.php. 2. Search for the function ‘generateProductSku’. 3. Change the default value 4 to any required length.
      Barcode Type: Select a barcode type, default/recommended is C128 option. We recommend changing if only if the product added already have an SKU number for it.
      Not For Selling: If a product is maked not-for-selling then it will not be displayed in POS or sales screen. This can be useful when using manufacturing module to make the ingredients as product not-for-selling also if you want to temporary disable selling for some products.
      Alert Quantity: Alert quantity is used to alert when remaining stocks reaches to this level or below it.
      Manage stock
      : Enable/Disable stock management at a product level. Product stock management is not required for services like Repairing, Hair Cutting, Web Development Printing. For items with Manage Stock Unchecked (disabled), you can sell them in unlimited quantities.  Selling of service using IONIC Shop

  2. Business Location: Select the business location(s) where this product can sold or purchased.
  3. Select Applicable tax for that product. Adding Tax
  4. Product Type:

Single Product:

    1. Applicable for products with no variation with them then select single
    2. When selecting Single product – You will need to enter the Default product price including/excluding tax, Profit Margin % (you can set default profit margin from settings -> Business Settings; this will help to type % every time). Based on the profit margin it will auto calculate selling price excluding of Tax. You can also enter the selling price manually and it will auto adjust the profit margin for you.

Variable Product:

      1. Applicable to a product having variations (like size or color or design or flavors etc) You can define variation templates from Products -> Variations. The advantage of creating variation is that it saves time to add same variations multiple time.
      2. When selecting Variable product – It will display different fields to add all variations and its related Purchase price, Selling Price. You have to select the variations from the dropdown and it will auto-populate the variations for that template. You can change the variable name, Variation values.
      3. 🆕 To give same purchase price or selling price or profit for all variations of a product click on the double tick present in the first variation.
      4. Read more about adding variations

Combo or Bundle Product

Adding a bundle product

  1. Combo product are also called bundle products.
  2. It is offering several products as one combined product.
    For example a product “Computer Set” can have: 1 PC Monitor + 1 PC CPU + 1 Pc Keyboard + 1 PC mouse
    So when someone buys Computer set she gets all the products in it.
  3. Stock of bundled product depends on stock of individual products present in that bundle.
    Example: if you have 5 PC Monitor, 4 PC CPU , 10 pc Keyboard, 50 PC mouse, the stock of Computer set will be 4 PC.
  4. When the bundle product is sold, stock of all products inside them is automatically deducted.
  5. Individual products present in bundle product can also be sold separately.
  6. Bundle products cannot be purchased, only individual products present in it can be purchased.

Click on Save.

You can edit a product. You can also Copy / Export to CSV, PDF or Excel file.

Adding Products with multiple variations:

If you have products which involve multiple variations like for example a Shirt can have Color & Size variation, then we have multiple ways to work with it:

Solution 1, Create combined variation: Can a variation with a name “Color-Size” and add values like Red-Small, Red-Medium, Red-Large, etc, this can be used for while adding the Shirt.

Solution 2, Create multiple Products: Create multiple different products like Shirt-Red, Shirt-Green, Shirt-Blue with size as variations. When you create multiple products you will NOT have to enter the same details multiple times, first, add the Shirt-Red with all size variations of it and then use the Duplicate Product action to copy the data.

Select Required variations:

While adding variable products, you can select only the required variation values.

In your add/edit product screen, select the product type as ‘variation’ and select the variation name (eg. color).

A dropdown will be displayed, in which you can select the required variation values.

NOTE: This option is available only in POS version 5 and above.

Assigning/remove locations of multiple products at once:

Go to List Products and refer to this screenshot.

Deactivating & Activating Product:

Refer to the screenshot.

Using Product barcode:


How can we use the product’s barcode instead of creating and printing new for every product?
How can we use the brand’s barcode of the product instead of creating and printing new for every product?


When creating a product, in the SKU field enter the barcode number of the product. This barcode will be used to identify the product in all screens like POS, Sales, purchases, reports, and others.

How to add a product that already has a Barcode?

Adding products that already have a barcode, follow the same steps as adding any other products.

  1. Go to add products
  2. Fill in all the product details
  3. IMPORTANT: in the SKU field scan or enter the barcode of the product.

Adding product quantity or adding product stock

For systematically managing your business, product quantities can be added in 3 ways:

  1. Adding Opening stock
  2. Adding purchases
  3. Manufacturing product: Useful for manufacturers, required manufacturing module.


Import/Export Products

Import Products:


  1. Go to Products -> Import Products
  2. Download the template file.
  3. Fill all the information as per the displayed columns name & instructions. Don’t remove the heading from template file.
  4. Import the file

Common Errors:

  1. Error: UNIT not found
    Solution: Make sure the unit you provided in excel file is already present in the system. Go to  Products -> Units, add the unit & import the file again.
  2. Error: The separation symbol could not be found the separation symbol could
    Solution: Format your cells in excel as text in your excel for the expiry date field and give the date as specified(11-25-2018).

Not well-defined error:

Many times it can show some not well-defined errors like “non-numeric value encounter” or others

In this case, the best way is to split your import into multiple files.

For example, if you’re importing fil with 500 products, divide it into 2 files of 250 each and import it.

Export Products:

The products can be exported in excel/pdf formats from the list products screen.

In version 4.7.8, a new export feature is added to export the product in the same template as the import product template.

In the list products screen, click the download excel button.


Delete Product (Bulk delete)

Deleting Products

Deleting of a product will remove the products from the database.

NOTE: This delete will not work if the product have some transactions related to it. Transaction can be Opening Stock, Purchase, Sales or Stock transfer of the product. It will show some error like:

  • Product can’t be deleted because purchases related to this product exist
  • Some products couldn’t be deleted because it has transaction related to it.

Deleting individual product

Bulk Delete multiple products

Delete product Errors:

Some products couldn’t be deleted because it has transaction related to it:

When a product has any transactions it cannot be deleted.

Transactions can be either Sales, Purchase, or Adding opening stock.

The best way to avoid such products is by deactivation them




  1. Variations can be added from the Products -> Variations menu.
  2. These variations are used in variable products product.

Example of variation is, for example, Jeans can have multiple colors, so add variations called Colors and provide the value for it. As given in the image below.

NOTE: Delete variation option will not be shown for variations that are already used in some products

Adding Multiple Variations for Products

If a product has more than one variation, for example, A shirt with size ‘M’ and brand ‘POLO’ or A book with pages 30 and size long.

Add the variation name and type as a combined variation.

Eg: variation name : Size – Pages

variation values  – Long -30, Long -120, Long – 200, Small -30, Small – 120 etc.

Product Units

Different Products have different units. IONIC Shop allows you to add different units for products.

Adding Units

  1. Go to Products -> Units
  2. Give the unit name, a short name, and choose if want the unit to allow decimals.

Name: Meter
Shortname: Mtr.
Allow Decimal: Yes.

Allowing decimal allows you to purchase/Sell the product in decimal and vice-versa.

Multiple Units:

This can be useful if you purchase products in a different unit and sell it in a different unit.

For example: Purchase in dozens and sell in pieces.
Or purchase in boxes and sell in pieces.


  1. Add the lower unit from Add Unit Screen. For example pieces.
  2. Add the higher unit as per the screenshot:
    • Check “Add as multiple of another unit”
      Multiple units - units of measurement
    • Provide the conversion Details.
  3. Use the unit in Add/Edit Product. While adding/editing purchase/ sale you can see the dropdown for units. Select the desired unit and it will change the unit purchase/sales price accordingly.

NOTE: You will not see the main Units (Dozen in this example) in the Add-Product Unit dropdown, select piece as the unit of product. All purchases/sales get saved in the lower unit (pieces in the above example). So after adding purchases/sales if you edit the conversion details, it will affect the purchases/sales quantity accordingly.

Selecting relevant Sub Units for a product

For some products not all sub-units will be required. Suppose for example you sell Oranges only in Dozens or only in pieces then it will be useful.

Enable it from Business settings ->Products -> Enable relevant sub-units

Now when adding products select the Unit for the products and it will give option to select multiple applicable sub-units. Selecting the sub-units will allow you to do purchases or sales on this selected sub-units.

Secondary Units:

Secondary units can be added to products. A secondary unit can be used if a particular product’s subunit may vary each time. For example, 1 piece of stone can be 10 kg or 20 kg, or 30 kg.

To enable this go to Settings-> Business Settings – > Products.

On enabling this, a secondary unit label will be shown in add/edit products screen.

Selecting this product in the purchase/sale/POS screen will also show the secondary unit label.

The details of secondary units for products are shown in the product stock history of that product.

NOTE: The secondary unit is not considered for calculation. It is only used for the user’s knowledge of tracking the products with varying subunits.

NOTE: Available only in version 5.1.1 and above.

Product Category (Categorizing products)

Categorizing products helps you to easily manage and filter them in reports.

Adding Category & Sub-Category

  1. Go to Product -> Categories -> Add
  2. Add Category name, category code(HSN code)
  3. If the category is sub-category select “Add as sub taxonomy” and select the parent category.



Product stock history

  1. Go to Products > Product List
  2. Click on Actions > Product stock history

Product expiry and related settings.

Enabling expiry for products

1.To enable expiry go to Settings -> Business Settings -> Product section. And check the “Enable Product Expiry” checkbox.
2. On enabling Product expiry, you can choose either “Add Item Expiry” or “Add manufacturing date & Expiry Period”
  • “Add Item expiry” => Choose this option if you want to directly add the expiry of the item to the purchase screen.
  • “Add manufacturing date & Expiry date” => Choose this option if you want to add the manufacturing date of the item and the expiry period. Based on the manufacturing date and expiry period it will auto-calculate the expiry date. And this expiry date can be edited. You will have to add expiry period for the product in the “Add or Edit Product” screen. And the manufacturing date in the “Add Purchase” screen.
3. “On Product Expiry” => With this option you can set what the system should do when a product expired.
  • “Keep Selling” => Choose this option if you want the application to keep selling the product even after expiry.
  • “Stop Selling n days before” => Choose this option to stop selling the item n days before the expiry. You will have to specify the value of n (which is the number of days before to stop selling)
4. “Stock Accounting Method” => This feature is used to set the way the product should be sold.
  • FIFO (First In First Out) => In this the old stock should be sold first.
  • LIFO (Last In First Out) => In this the most recent purchase stock should be sold.
For an Example:
1. Purchase 20 pcs of product A on 20 March 2018. Expiry date 10 April 2018
2. Purchase 20 pcs of the same product  A on 23 March 2018. Expiry date 8 April 2018
3. Today I sold 22 pcs.
If the “Stock Accounting Method” is FIFO => Then the Product purchased on 20 March 2018 will be deduced with 20 pcs and after that product purchase on 23 March 2018 will be deduced with 2 pcs.
So in stock, we will have products from 23 March 2018 with 18 pcs.
If the “Stock Accounting Method” is LIFO => The opposite of the above will happen.
NOTE: You must set the required accounting method before selling the item for that accounting method to be used.

Stock Expiry Report:

1. Go to Reports => Stock Expiry Reports.
2. Here you can filter stock “Category”, Brands, “Stock expiry date”
3. Click on “Edit” to modify the stock left and expiry period.
4. If stock left is decreased the unit purchase price is adjusted accordingly.

Stock Expiry Alert:

– You can view stock expiry alert in Homepage bottom section. Here it shows a list of products expiring soon.
– You can set the number of days before which the expiry alter should be shown in the Homepage from “Settings -> Business Settings -> Dashboard Section” View Stock Expiry Alert For input field.

Displaying product expiry date in the invoice

  1. Make sure the product expiry feature is enabled as mentioned above.
  2. Go to invoice layout and enable “Show Product expiry”
  3. If the product expiry date is added when adding Purchase or Opening stock then when making sales it will display the product expiry dropdown. Select the expiry date which you want to sell.  Then in the print invoice, it will show the expiry date.


Lot number

What is Lot Number?

Enabling Lot Number

To enable lot number go to, Settings -> Business Settings -> Purchases

Check the Enable Lot number checkbox and update settings.

Adding Lot number from Purchases

If the lot number is enabled as described above then when adding purchase stock it will display the lot number field for entering the lot number.

Adding lot number from add opening Stock:

If lot number is enabled then when adding opening stock it displays the input field to enter lot number.

Selling products from specific Lot

Refer to the POS selling documentation Lot number description.

Displaying product lot number in the invoice

  1. Make sure the lot number feature is enabled as mentioned above.
  2. Go to invoice layout and enable “Show lot number”
  3. If the lot number is added when adding Purchase or Opening stock then when making sales it will display the lot number & product expiry dropdown. Select the lot number which you want to sell.  Then in the print invoice, it will show the lot number.

Selling Price Groups (Sell in different prices: wholesale/retail or for different prices for different locations)

With IONIC Shop we aim to make it “One in All” POS/Stock Management Application.

Selling price groups allow you to add different prices for a product.

  1. Sell at different prices: wholesale/retail
  2. Different prices for different locations.

Adding Selling Price Groups:

  1. Go to products -> Selling Price Group
  2. Click on “Add” button to add a new price group. For example Retail price or WholeSale price or Bulk Purchase price or Location 1 price etc as per your wish.
  3. You can view a list of selling prices in “Selling Price Group” screen.

Adding Selling Price as either Fixed or Percentage:

The selling price can be given as a whole number (fixed) or in percentage.

Fixed: The value given will be the selling price for that group.

Percentage: The value given will be taken as a percentage, and that percentage of the actual selling price will be taken as the selling price for that group.

Adding price for different price groups:

  1. In Add/Edit product screen in the bottom, you will find the button “Save & Add Selling-price-group price”. Click on that button. Note: this button will not be visible if there are no selling price groups.
  2. In the next screen, you will see the list of the product name (if variable product then all variations), the default price & selling price groups price. Enter the prices for it.
  3. Click on Save.

Exporting & Importing selling price group:

  1. Go to Products -> Update Price.
  2. First, download the Excel file by clicking on the “Export Product Prices” button. There will be a separate column for group price.
  3. In the downloaded file change the price for the selling price group of the products.
    1. Only selling price group prices of the product will be updated, not the SKU or name.
    2. Any blank price will be skipped.
  4. Then import the file.

Selling at a particular price group:

  1. Go to POS.
  2. In the top, you will see the list of selling price groups. Select the one as per your requirement.
    Note: This will not be visible if there are no selling price groups or if a user is assigned only one particular price group only.
  3. Select the prie group & the selling prices for the product will be as per the price group.

Assigning a user to a particular price group:

  • Sometime you may want to assign a particular or few selected price group to a user. In that case, create a role with the desired permission & price group assigned.
  • You must assign at least one price group for a role if that role has permission to sell.

Assigning a customer to a particular price group:

  • Customers can’t be directly assigned to the selling price group.
  • You must assign the price group to the customer group that has the customer.

Assigning a price group to a Business Location

  • Helps selling same product at a different price in different business location.
  • Go to Add/Edit Business Location and select the 


1. How to hide the Selling Price Group in POS window to all cashiers

In add/edit roles you can set which all selling price groups will be visible to that role. So in the cashier role, you can uncheck/remove permission for all other selling price groups except the one you want to show or use for the cashier.

Product Warranty

Enabling Warranty:

To enable warrany in products go to Settings -> Business Settings -> Products -> Enable Warranty

Using Warranty

  1. Adding Warranty: Add warranty types by going to Products -> Warranty.
  2. Assigining warranty for products: Go to Add/Edit product and select the warranty that is applicable for the product.
  3. Sell with warranty: Any products which has warranty assigned when sold will use the transaction date as start of warranty. You can display warranty in receipts by enabling it from Invoice layout.

Printing Labels

IONIC Shop comes with an inbuilt feature to print customised labels for products.

You can go to print label screen from multiple places:

  • From Products Sidebar menu Products -> Print Labels.
  • Go to Products -> View Products and click on Actions -> Labels. This will add the selected product to print label list.
  • Go to Purchases -> List Purchases and click on Actions -> Labels. This will add the products from the selected purchase to print label list.

Printing Labels

  1. Once you’re in print label screen, add the products for which you want to print labels by entering the name or barcode/sku id.
  2. Adjust the quantity of each product’s label (No. of labels).
  3. Select the information you want to display in labels by checking/unchecking the options under “Information to show in labels” heading.
  4. Select the Barcode Setting according to your sticker. We have included some commonly used settings.
    You can add new setting from Settings -> Barcode Settings menu.
  5. Click on Preview to view the labels.
  6. If everything looks good you can click on Print button to print it.
    Note: You must set the Margins to ‘default’ in browser print window.
  7. If some information is getting half displayed because of sticker size, then it is advised to hide them or better to use a 20 Labels Per sheet settings.

Error: Unsupported SKU id for the selected barcode type

This error means the SKU provided by you when creating the product doesn’t satisfy the encoding as per barcode type.

The solution can be edit the product and change the barcode type as “Code 128” save & try printing the label again.

Duplicate Product

Duplicate Products helps you to easily create a new product with the same data as another product, this helps you save repetitive entering of data and ultimately saves time by making the product entry process faster.

Correcting product stock mis-match or incorrect stock in different reports

Error 1: Mismatch between sold and purchased quantity

Error 2: Mismatch in stock shows in Stock-Report and sales screen. Sales screen accepts products greater or less than as in stock reports.
This rarely happens because of some unknown reasons or if you try to manually update the stock in the database.


NOTE: You must have the role of admin for this to work.

Step 1: Go to this URL
Step 2: Select the business location and press search button. It will show the list of products for which there is a mismatch.
Step 3: Click on Fix button for each product.
Refer to the screenshot below

Bulk Edit Products

Bulk edit helps you to edit multiple products at once and saves your time.

To edit multiple products follow the steps:

  1. Go to Products -> List Products
  2. Select the products you want to edit by clicking on the checkbox present in each product row.
  3. Scroll down you will find the Bulk Edit option, click on it and you can edit the selected products.
  4. Also, in the bulk edit screen you can add any other products to edit them.

Rack, Row & Position of product

Opening Stock

To add opening stock:

  1. Go to List Products
  2. Actions > Add or Edit Opening Stock

Editing opening stock (or) Making opening stock 0:

NOTE: If you have already added an opening stock and have to edit it, follow the steps below.

  1. Click the ‘+’ symbol.
  2. A new row will be created
  3. Add the new amount there

To make the opening stock to ‘0’, add a negative value in step 3

Eg) If the existing opening stock is 10, add -10 to make the stock quantity to 0 or if you add a negative amount (-4) then the amount will be 6.

Enable bulk edit

Open config/constants.php

change “enable_product_bulk_edit” false to true

Custom Labels for Products

Custom Labels for Products:

20 custom fields can be added for the product, these custom fields can be used while adding a new product.

Custom fields can be anything related to the product like brand code, product code etc.

To add this Go to Settings > Business Settings > Custom labels

Provide the custom label name here.

Field Type for labels:

The data type can be specified for each custom field. Select text, date picker or dropdown types.

For dropdown add a line break after each option.

Bulk Price Update

Bulk Price Update:

Prices of products can be edited in bulk using this feature.

Go to Products > Update Price, and download the Excel file.

The Excel file contains the list of product names, SKUs, existing prices of products and selling group price(if available).

Update the prices of required products and upload the file and click submit.

NOTE: Make sure not change any product name, sku & headers

Purchases Management

Purchase Management

Adding Purchase

  1. Go to – Purchases -> Add Purchases
  2. Type Supplier Name or Business name in the Supplier field. If the supplier doesn’t exist you must add them from Contacts -> Suppliers -> Add
  3. Enter Purchase reference number, Purchase date & Order Status.
  4. Select Business Location: Select a location where you want to add the purchase. You can add a new Location from Settings -> Business Locations.
  5. Type product name or scan the product barcode number. It will show related matched products, select a product to add it to the purchase list.
  6. On adding a new product you can enter purchase quantity, purchase price, and tax information.
  7. To add a discount: Select the discount type (fixed or percentage) and enter the amount. ultimatePOS will auto-calculate the amount after discount.
  8. Enter purchase tax, Shipping Details, Additional Shipping charges, Payment status, & Additional notes.

You can view the list of purchases from Purchases -> List Purchases.

You can Print Labels for your purchase by Clicking “Print Labels” in List Purchases screen.

See details on printing Labels here.

No matching product found

This error will be displayed in 3 conditions:

  1. Reason 1: There are no products matching the name or SKU which you have entered. Check it once in the list products.
  2. Reason 2: Check the business location selected in add purchase have that product. So if the business location is Location-1, then in add/edit product the product must be assigned to that location.  Check More here in Add/Edit Products
  3. Reason 3: Make sure the product has Stock-Management ENABLED in Add/edit product. If stock management is not enabled in products then it won’t show in the add/edit purchase.


Purchase Payments

Purchase payment meaning paying to the supplier for the Purchases.

Payments Statuses

  1. Paid: The PO is 100% paid.
  2. Due: The PO is 100% not paid.
  3. Partial: Partial amount of the PO has been paid.
  4. Overdue: PO is 100% not paid & past the due date.
  5. Partial Overdue: Partial amount of the PO has been unpaid & past the due date.

Adding Payments

Adding payment when adding purchase:

In the add purchase screen, you can add the payment for the purchase.

Adding payment from the List Purchase screen

In list purchase click the actions for any PO and it will display the list of actions for it. This option is not displayed if there is no payment due.

Adding payments from Contact

Go to contact -> Suppliers. Click on actions for the supplier and it will show “Pay Due amount”, click on it and pay the amount. “Pay Due amount” this option is not displayed if there is no payment due.

Adding/Editing Payment Method or Pay-Via

Follow Add/Edit Pay-Via / payment method.


Purchase Invoice

Purchase Invoice:

An invoice for purchase can be generated at every purchase.

To print a purchase invoice, Go to List Purchase >  Actions > Print.

Barcode for Purchase Invoice:

The barcode is automatically generated in the purchase invoice based on the purchase invoice number.

Adding Bonus or Free Items given by supplier

Adding Bonus Items or Free items given by Suppliers

2 ways you can do this:

Solution 1:

When adding purchases simply make purchase price 0 for the free items.

Solution 2:

Find the average price of the item and use that for unit price.

for example, if you purchase 10 quantity for a price of $2 each, 10X2 = $20
and get 2 quantity free, then the average cost of each will become 20/12 = $1.66


Purchase Order

What is a Purchase Order?

A purchase order is a document given by the buyer (usually you) to the supplier to request a purchase of goods.

A purchase order contains the buyer invoicing details, delivery details, products, quantities, pricing, tax, discounts, payment terms, payment details, shipping charges if any, and other notes.

The supplier will issue a sales order against the purchase order you have provided.

A purchase order has multiple statuses: Ordered, Partial, Completed

Enabling Purchase Order

To enable purchase Order, follow the below steps:

  1. Go to Settings -> Business Settings
  2. Purchase tab -> Enable Purchase Order
  3. Save it.

Using Purchase Order in IONIC Shop

Creating purchase order

After Enabling Purchase order, inside Purchase you’ll find the Purchase -Order menu.

Go to add Purchase order, fill in all the details and save it.

Stocks are not added on issuing Purchase orders.

Once a Purchase order is created you can print it and send it to the supplier.

Converting purchase Order to Purchase

On receiving Purchase orders the supplier issues a sales or invoice.

  1. Go to Purchase -> Add Purchase, select the supplier.
  2. On Selecting it will populate the list of all Purchase orders related to the supplier on the “Purchase Order” dropdown.
  3. Select the Purchase Order and it will auto load the products for that order with the product’s price, tax, discounts applied automatically as the sales order.
  4. You can increase or decrease the quantity.
  5. Save it and the status of the Purchase order will change automatically.


Purchase Requisition

What is Purchase Requisition(PR)

The purchase requisition is a document that an employee creates to request a purchase of some products when the stock reaches a low level.

Only products less than the alert quantity will be shown while creating the purchase requisition.

Enabling Purchase Requisition

Go to Settings -> Business Settings -> Purchase and enable the purchase requisition check box.

The purchase requisition tab will be shown in the sidebar.

Click on add button and provide the required details. Refer to the screenshot below.

Converting Purchase Requisition to Purchase Order

Once PR is added it’s converted to Purchase Order.

To convert it into a purchase order, follow the steps below.

Go to Purchase order -> Add. [Purchase order document]

Here when you select the corresponding supplier the PR id will be shown.

Select the required PR id.

Partial Purchase

If the ordered quantity in the PR is reduced while converting it into a purchase order, then the status will automatically change from ordered to partial.

Purchase custom fields

You can add some custom fields in add/edit purchase & view purchase.

To enable custom fields:

  1. Go to settings -> Business settings -> Label for purchase custom fields:
  2. Provide a label for the fields you need, fields will automatically get enabled once the label is added.
  3. Check “Is required” checkbox to make the field as required in add/edit purchase.


Sales / Sell

Selling (POS Screen), Draft, Quotations & Suspended Sales

Selling Products, Changing Product Price, Tax & Discount, Lot number & Expiry

Go to – Sell -> POS

Selecting Customer:

By Default, there is “Walk-In Customer”. You can search for a customer by name/customer id or phone number or can add new customer by clicking the plus (+) button “Add Customer”.

Searching & Adding Product:

Enter Product Name Or scan the barcode to search the product. If multiple products are matched then it displays the dropdown of products, selects the product from it. Or if there is a single product then it directly gets added to cart.

After the products get added, click on product name to modify product price, tax & discounts.Changing Product Price, Tax & Discount for a product

  • NOTE: Option for different tax in products will be shown only if Inline tax is enabled. You can enable it from Business Settings -> Tax -> Enable Inline Tax in purchase and sell

Selecting Lot number for a product

  •  If lot number is enabled then it will show the option to select lot number. (Enabling Lot number)

Selecting Expiry for a product

  • Expiry Date: If the expiry date is enabled then it will show the option to select lot number.  (Enabling expiry)

Cancel Sales:

To cancel the sales click on the cancel button. Cancel invoices are not saved in the system, so no stock will de deducted.

To finalize the invoice click on Finalize – Add the payment options and save it.

On save it will display an invoice printing option.

NOTE: For invoice to print correctly – The Margins options should be set to “Default”.

List of sales can be viewed from Sell -> List Sales.

List of drafts can be viewed from Sell -> Drafts.

Both Sell & Drafts can be edited to make any changes.

Express Checkout: Express Checkout means the sale will be marked as Paid and payment method will be cash. No separate Payment screen will be displayed. Printing of invoice depends on the business location settings.


100% Credit Sales

  • To sell on credit to the customer you first need to enable this button by going to Settings -> Business Settings -> POS -> 
  • Then on the POS screen, you will be able to see a button “Credit Sale”, simply click this button to make sales on credit.

Half Credit & half payment Sales:

Suppose invoice amount is $1000, customers pays $700 cash and $300 is credit amount on him, then follow these steps:

  1. Click on multiple pay button
  2. Select the payment method and enter the amount paid by the customer. ($700 in our example)
  3. Click finalize payment.
  4. Now, the pending amount is automatically added as credit amount on him (or amount to be taken from the customer)

Draft & Quotation

This is useful if you want to create a quotation before sales.

Marking a sales as Draft or Quotations will not deduct the available stock.

You can view all Quotations & Drafts from List Quotation or List Draft respectively. Existing draft/Quotation can be edited to make it as final sales.

Suspended Sales

Suspend Sales means unfinished sale or hold Sale.
Suspended sales stock gets deducted from available stock. You can view all suspended sales by clicking on the Yellow Color button present in very top right of screen (above the date).

Some Use Case of Suspended sales

  1. In a grocery store, if you have suspended button, you can suspend particular customers sales and entertain another customer, when his comeback you can proceed with his sale.
  2. In Restaurant, you can suspend the order of customers if not yet paid, and finish it when they finish eating and paid their order, so you can proceed to final sales. You can put Table 1, Table 2, Table 3… so when they finish it’s easy to identify table 3 going to pay.
  3. In hotel lots of customers check in stay for 2 nights and order some foods and customers say, just charge to room 024. So you can suspend their orders and edit if there is some additional order and suspend again. Until final it when they pay their bills. on Hotel, on Reference Number: Room 009, Room 012

Card / Multiple Pay / Cash

  • Multiple Pay: Used when the customer wants to pay with different payment methods like some amount by card, some by cash and some other payment methods. This option is also used when the customer doesn’t pay the exact tender amount and you need to calculate the Return Change.
  • Card: Used when the customer wants to pay the complete invoice by card.
  • Cash: Used when customer pay the exact amount of invoice by cash. If the customer pays less or more amount then the invoice amount then use Multiple Pay to get change return.

Adding payments from Contact

Go to contact -> Suppliers. Click on actions for the supplier and it will show “Pay Due amount”, click on it and pay the amount. “Pay Due amount” this option is not displayed if there is no payment due.

Adding/Editing Payment Method or Pay-Via

Follow Add/Edit Pay-Via / payment method.

Rounding Mechanism for total Sales amount or total payable

Rounding helps to round the total payable to nearest currency exchange available.

To enable rounding go to Settings -> Business Settings -> Sales and choose the Amount rounding method

Amount rounding method

  1. Round to nearest whole number: It will round the paybale value to nearest whole number. For example 1.49 will be rounded to 1.00, and 1.51will be rounded to 2.00
  2. Round to nearest decimal (multiple of 0.05): It will round the paybale value to nearest decimal number which is multiple of 0.05. For example 1.49 will be rounded to 1.50, 1.51 will be rounded to 1.50,  1.59 will be rounded to 1.60, 1.54 will be rounded to 1.55
    Similary all other round to nearest decimal number works as per the multiplier.

Featured Products for POS screen

Featured Products for POS screen

Adding featured products helps you quickly access some products which are frequently or most commonly sold.

To add featured products follow these steps:

  1. Go to Settings -> Business Locations.
  2. Add/Edit any business locations
  3. In add/edit screen you can select multiple products that can be featured in pos for this location.

Select feature products in add/edit business locations

Featured products in pos screen

Using IONIC Shop for Selling of Services

IONIC Shop POS can be used:

  • Exclusively for Services or
  • Exclusively for Product Selling (trading) Or
  • Combination of Services & selling of Products.

Selling Services

Services are Intangible products.

Example: Repairing, Salon & Spa services, Web Development, Accounting, banking, cleaning, consultancy, education, insurance, expertise, medical treatment, transportation and a lot more.

1. To add a service Go to Add new Products.

2. Add the name of your Service, Like Computer Repair, Accounting, E-Commerce Development, Consulting, Plumber, Saving, Hair Cutting, etc.

3. While adding service based products uncheck the Manage Stock? option. When Manage stock is unchecked or disabled the stock for such products is not managed, because such product doesn’t have a stock count with it.

4. If you want to add a description for such service like for example in computer repair you want to describe the problem for such service then check the “Enable Product description, IMEI or Serial Number” checkbox.

Now to create invoice or receipt for such service

1. Go to Add Sales or POS screen.

2. Enter the name of service.

3. If you have enabled “Enable Product description, IMEI or Serial Number”, then it will show you a popup to add a description. If you haven’t enabled description you can click on the button as shown the image below.

4. To print the description in the invoice, go to Setting -> Invoice Settings -> Invoice Layout. And click on the layout you’re using. Enable “Show sale description“. And Click on “Update” to update the invoice layout.
Now it will display the Description you entered on the invoice or receipt.

Sales Return

There are 2 ways of adding sales return

First way:

Edit existing invoice for the sales by going to edit the invoice and remove the product or reduce the quantity of the product. And save it. The system will automatically add the returned quantity back to stock. This is a simple & recommended way of doing.

Second Way:

Follow the screenshot below:

Sales Subscriptions

Enabling Subscriptions:

To enable subscription, go to Modules -> Check the “Enable Subscriptions” and save it.

IMPORTANT: For subscription invoice to auto-generate cron job must be set up.

Using Subscriptions:

    1. Subscriptions can be added from both POS sales or normal Sales screen.
    2. In POS or sales screen to add a subscriptions click on “Subscribe?” Checkbox
    3. On clicking subscribe it shows a popup modal, enter the subscription frequency like every 1 day or every 5 days or every 1 month etc. Also enter the subscription frequency, like if a user wants so subscribe only 5 times the enter 5, for unlimited leave it blank.
    4. All subscriptions appear in Sell -> Subscriptions screen. From here you can also start/stop a subscription.
    5. When a subscription invoice is auto-generated then a notification is sent to admin & sales person.

Cash Register

Cash Register

  • Cash Register gives you an overview of a particular user/cashier session
  • Whenever a cashier opens to POS screen she must Open Cash Register by entering the “Cash In hand”
  • If the cashier has access to more than one location then location also needs to be selected (Added in IONIC Shop V 3.3)
  • Every sale made by the cashier will be logged into the Cash Register. In POS screen, You can view the Register details by clicking on “Register details” button present in the top navigation bar. It displays the Cash in hand, and cash details by other payment methods as well. Also, the amount refunded by the cashier.
  • To close a cash register click on Red Color – Close Register Button. On closing Cash register the cashier will have to enter the details of the Total Cash, Total Card Slips, Total cheques and other fields.
  • To view all cash register Go to Reports -> Register Report. Here you view all cash register details.

Invoice Layout

Invoice Layout

Invoice Layout helps you to create different invoice formats.

To add a new invoice layout:

  1. Go to Settings->Invoice Settings->Invoice Layout->Add
  2. Give a unique distinguishable Layout name
  3. Add the text to be shown in the top/header of invoice. Generally, it can be your shop name, aligned center with Heading 1 format.
  4. Add other relevant details.
  5. You can show/hide address fields.
  6. You can mark a layout as default. The default layout is used when no layout is found for a location.
  7. Click on Save.

To use an invoice layout in a location go to” Business Locations -> Edit” and assign the invoice layout.

Gift Receipt

Gift receipt:

A gift receipt shows proof of purchase but leaves out the amount spent. To print a gift receipt follow the below steps:

  1. Add a new invoice layout with the name “Gift Receipt”
  2. In invoice layout select the Invoice Design as Slim and Check the Hide all prices checkbox
  3. In Business Settings -> POS, check the Show invoice layout dropdown and save it.
  4. Now in the POS screen whenever you want to issue a gift receipt, simply select the invoice layout as Gift Receipt and print the invoice.

Invoice External URL

Invoice External URL

  1. With invoice external URL you can share the invoice to a customer via a link.
  2. With this link, they can see & print the invoice without they having to login into the system.
  3. The link can also be sent in Email & SMS notification. To send url in Email/SMS notification add it in notification template using the url tag.

Configuring keyboard shortcuts for POS screen

Configuring keyboard shortcuts for POS screen

IONIC Shop supports keyboard shortcuts, by default we have configured shortcuts for different actions in POS screen.

But you can configure it yourself as per your convenience.

To configure keyboard shortcuts, go to Settings -> System Settings. Here in the POS section, you will find a list of Operations and the shortcuts for them.

You can use the Available Key Names with any combination of letters or number to create shortcuts.

– Make sure the shortcuts do not conflict (is not same) with the shortcut of the browser. Making a shortcut same as the browser will have different effects in different browsers.

Discounts by Brand, Category, Location

Discounts by Brand, Category, Location

Add/Edit Discount:

  • Name: Enter a meaning full name for the discount.
  • Brand: Select the product brand where it will be applied.
  • Category: Select the produc Category where it will be applied.
  • Location: Select the location
  • Priority: Discount with higher priority will have higher weight, however priority will not be considered for exact matches.
    For example: if there are 2 discounts available for the same brand and/or category then the disount with higher priority will be applied.
  • Discount type: Fixed or Percentage
  • Start At: Start date of the discount.
  • End At: Start date of the discount.
  • Apply in selling price groups: If checked then the discount will be applied in the selling price group price. If not then it will not be applied.
  • Apply in customer groups: If checked then the discount will be applied in the customer group price. If not then it will not be applied.
  • Is active: Activate or not.

Reward Points

Reward Points

Enabling reward points:

  1. Go to Settings -> Business Settings -> Reward Points Settings.
  2. Click on Enable Reward Point and it will get enabled.

Reward Points Settings:

Reward points settings is divided into 2 parts:

  1. Earning Points Settings
  2. Redeem points settings

Earning Points Settings:

    1. Reward points display name: This is display or label name for reward points. Some people like to keep it as reward points or reward coins etc. Only used for displaying label.
    2. Amount spent for unit point: Meaning how much the customer spent to get one reward points.
      If you set it as 10, then for every $10 spent by customer they will get one reward points.
      If the customer purchases for $1000 then they will get 100 reward points.
    3. Minimum order total to earn reward: The minimum amount the customer should spent to get reward points.
      If you set it as 100 then customer will get reward points only if there invoice total is greater or equal to 100. If invoice total is 99 then they won’t get any reward points.
      You can set it as minimum 1.
    4. Maximum points per order: Maximum reward points customer can earn in one invoice. Leave it empty if you don’t want any such restrictions.

Redeem Points Settings:

  1. Redeem amount per unit point: It indicates the redeem amount per point.
    For example: If 1 point is $1 the enter the value as 1. If 2 points is $1 then enter the value as 0.50.
  2. Minimum order total to redeem point: Minimum order total for which customer can redeem points.
  3. Minimum redeem point per order: Minimum redeem points that can be used per invoice. Leave it blank if you don’t need this restriction.
  4. Maximum redeem point per order: Maximum points that can be used in one order. Leave it blank if you don’t need this restriction.
  5. Redeem point expiry period: Expiry period for points earned by customer. You can set it in months or year. Expired points will get deducted from customer account automatically after this period.
    NOTE: You must set the cron job for expiry feature to work. Cron Job Document

To display customers remaining reward point in invoice you can choose the option in invoice layout to display it.

Types of service

Types of service:

  1. Types of service is mostly used in restaurants, it is for example Dine-in, Parcel, Courier, 3rd Party Delivery etc.
  2. Based on type of service you can change the price of the product by linking types of services to selling price group.
  3. You can add packing charges (fixed or percentage)
  4. Also, you can add more information like in custom fields.

Enabling Types of Service

Go to Settings -> Business Settings -> Modules -> Check the “Types of Service”

and save it.

Adding new Types of Service

  1. To add, go to Settings -> Types of service -> Add
  2. Add a name, description
  3. For each location select the Price Group that will be applicable. Select Default Selling price for selling in default price of the product.
  4. Enter packing charge, leave empty if not applicable.
  5. Enable custom field: this will enable some custom fields in type of service in POS screen.

Using Type of Service in POS/sales screen:

  1. On Enabling Types of service in POS screen you will see the option to select Type of service.
  2. Before adding a sales select the type of service and enter the relevant details.
  3. You can show the type of service information in receipt by enabling it from Invoice Layout

Tax Settings

Tax Rates, Tax Groups & Disabling tax

Tax Rates, Tax Groups & Disabling tax

Tax Rates

  1. To add new tax go to Settings -> Tax Rates -> Add
  2. Add a descriptive name (eg: “VAT@5%”) and specify the “Tax Rate%”

Tax Groups

  1. Sometime you will need to apply multiple taxes to an invoice or purchase. So you should create tax groups by combining multiple taxes.
  2. To add a Tax Group – Click on Add Button, Give a meaningful name, select the tax you want to use in this tax group.
  3. The tax rate of tax group will be the sum of tax rates of Sub-taxes added.
  4. If sub-tax is edited the corresponding tax group’s tax rate will also get updated accordingly.
  5. You cannot delete a Tax if it is used in a Tax Group.

Disable Tax

  1. Don’t add Tax Rates in settings
  2. Go to Settings – Business Settings.
    1. Uncheck “Enable inline tax in purchase and sell
    2. Uncheck “Enable Price & Tax info
    3. Select “Default Sale Tax” as None

Setting Ultimate POS for Indian Users or other Country with GST support

Setting IONIC Shop for Indian Users or other Country with GST support

We see a large number of Indian users preferring IONIC Shop, so writing this guide to help them use the application in a better way.

Tax settings:
3 Different taxes in India:

  • CGST (Central Goods & Services Tax)
  • SGST (State Goods & Services Tax )
  • IGST (Integrated Goods & Services Tax)

Go to Settings -> Tax Rate setting.

1. Create a tax with name CGST@10% and Tax Rate %: as 10. (10% is for example only, use the tax rate applicable)

2. Create a tax with name SGST@10% and Tax Rate %: as 10. (10% is for example only, use the tax rate applicable)

3. Create a tax with name IGST@14% and Tax Rate %: as 14. (14% is for example only, use the tax rate applicable)

4. Below Tax rate, it shows “Tax groups ( Combination of multiple taxes )”. Create on Add, enter the tax group name as Intra-State-CGST-SGST and select sub-taxes CGST@10% & SGST@10%.

5. Below Tax rate, it shows “Tax groups ( Combination of multiple taxes )”. Create on Add, enter the tax group name as Inter-State-IGST and select sub-taxes IGST@14%.

With this now when you purchase or sell a product you can select the applicable tax.

Displaying HSN Code for items (For some business)
1. HSN code depend on the category of a product.
2. Go to Settings -> Categories, click on “Add”. Add category name and category code. Category code is same as HSN code.
3. To display HSN code in invoice – Go to Settings -> Invoice Settings -> invoice layouts. Add/Edit invoice layout and click on ” Show category code or HSN code”. Save it. Assing that invoice layout to your business.

Above is a comprehensive documentation as per our knowledge on using IONIC Shop for Indian users, do check it out.

Payment Accounts

Enabling & using Payment account or bank account

What is payment accounts?

Payment accounts are like for example bank account. You can transfer money from one payment account to another, deposit cash in payment account, pay to a supplier or deposit the amount received from a customer here.

Enabling Payment account

  • Go to Settings ->Business Settings -> Modules
  • Enable payment ‘Accounts’ option
  • Save it.
  • After saving you will see the “Payment accounts” option will be visible in left navigiation bar.

Payment account type & sub-type

  1. Go to Payment accounts -> List accounts -> Account Types
  2. Account type: to add a account type click on Add button and enter the name of account type and submit. Keep the Parent account type unselected.
  3. Sub-Account type: To add a sub-account type click on Add button, enter the name of sub-account type and select the Parent-account-type.
  4. When creaating account you can select the account type as per your need.

Setting default payment accounts for payment methods

Setting default payment accounts for payment methods


In Add/Edit business location you can select the default account for each payment method.

Adding expenses and Adding expenses for an employee

Adding expenses and Adding expenses for an employee

Adding expenses and Adding expenses for an employee

IONIC Shop allows you to add expenses for an employee. Thie expenses can be Salary, Bonuses, Perks, travel expenditure or anything else.

– Simply create a category for the expense you’re adding. Adding relevant categories helps you to classify expenses and analyze them.

– Go to Add Expenses, fill the details, select the relevant category and select the employee name expense for fields.

– Add the expense.

– To view details of all expenses for an employee go to “Sales Representative Report” and select the User. It will show the total expenses for the employee. You can also view the list of expenses from there.

Adding & Editing Payment Types or Pay Via options

Adding expenses and Adding expenses for an employee

Payment Types:

In the above screen, you can see “Pay Via” options, the same option appears in POS “Multiple Pay” popup. With IONIC Shop you can add or edit existing payment options.

Adding new options:

  • Go to config/constants.php
  • Search for “enable_custom_payment_1”, “enable_custom_payment_2”, “enable_custom_payment_3”
  • You can make this values as true to enable it.
    • ‘enable_custom_payment_1’ => true,
  • Refresh your browser & you will see the related option added to it.

Editing custom payments labels:

  • By default, the custom payment labels display as “Custom Payment 1” and similar.
  • Go to resources/lang/en and search for “custom_payment_1” or “custom_payment_2” or “custom_payment_3”
    • ‘custom_payment_1’ => ‘Custom Payment 1’,
      ‘custom_payment_2’ => ‘Custom Payment 2’,
      ‘custom_payment_3’ => ‘Custom Payment 3’,
  • Change ‘Custom Payment 1’ or the others to something you need.
    • For example, if we want the labels of custom payment 1 to display as “RazorPay” then it will be like this:
      ‘custom_payment_1’ => ‘RazorPay’,

Enabling/Disabling Payment Methods in a business location:

  • In Add/Edit business location you will find a list of all payment methods, you can enable/disable it by checking/unchecking the option.
  • Set default account for payment methods:

What is Stock Adjustment? And how to use it?

What is Stock Adjustment? And how to use it?

What is Stock Adjustment? And how to use it?

Stock Adjustment

Stock Adjustment helps you decrease the goods you hold in stock, you can enter manual stock adjustments. It’s generally used to write-off damaged stock, or to adjust quantities after a stock take.

To create a stock adjustment

  1. First, go to “Add Stock Adjustment”
  2. Select the Business Location & date
  3. Select Adjustment Type (Normal Or Abnormal). Normal Or Abnormal is generally used to classify adjustment.
    Generally Normal Adjustment meaning: Adjustment for normal reasons like Leakages etc.
    Abnormal meaning: Adjustment for reasons like Fire, Accident etc.
  4. Add the products & quantity you want to decrease the product.
  5. Total amount recovered: Sometimes you can recover some amount from the damaged stocks, like from insurance claims, selling of scraps etc. If there is no amount recovered then you can simply make it 0.

The quantities entered for each product will be deducted from the available quantities.

You can view the details of stock adjustment in “Stock Adjustment Report”.

Also, Stock Adjustment is used in Profit & Loss Report (P & L Report). “Total Stock Adjustment” amount is deducted from (P & L Report) and “Total Stock Recovered” amount is added to Profit & Loss Report.



Reports help you to get an overview of your entire business.To view report click on Reports & Select the report you want to view.

Some Reports come filter relevant options to help you analyze your business better.

Purchase & Sale Report

This report shows the total purchase, Purchase Including tax, Purchases with Dues amount; and Total Sale, Sale Including tax, Sale Due.

Tax Reports

Shows the Input & Output Taxes.

Contacts Report(Customers & Suppliers Reports)

This report shows the details of Purchase & Sell with all contacts (Suppliers & Customers) and also any Due amount. Positive Due amount indicates payment by contact, negative indicates payments to the contact.

Stock Report

The stock report displays the stock details. With this, you can track the remaining stock and total sold quantity sold for all products.

For variable products – you can click on the Green Plus button before the SKU column to get details stock reports for each product variations.

Stock value by Purchase & sales price

In the stock report, you can also get information about the current stock value based on their purchase price & value based on selling price. Check the below screenshot of stock report.

Trending Products Report

  • This report helps you to determine the demand of the products.
  • You can apply different filters to filter the product.
  • Select a Business Location to view trends for a particular business location.
  • Select Product Category, Sub-Category, Brands, Units, Date Range to filter them.
  • Set “No. of products” to view the top that amount of product. Using this you can view Top 5, Top 10 or any number of top products.

Expense Report

Expense report helps you to analyze expenses for business locations and also analyze based on expenses categories.

Register Report

View details of all registers and filter registers based on User and/or Status (Open or Closed)

Sales Representative Report

  • View Sales and Expenses details of Sales representative
  • Filter them with User, Business Location, Date Range


Notifications Settings [Email & SMS configuration]

Setting Notification SMS

To Send SMS notifications you need to setup SMS configuration details.

Go to Settings -> Business Settings -> SMS settings

from here we can set up SMS for most of the vendors having support for REST API, most of the support it. If not then check with your provider

Go to the REST API documentation of your vendor. Contact your vendor if you can’t find it.

Here you’ll find 3 different service type: Nexmo, Twilio, and others.

Setting up SMS for NEXMO

  1. Create a new account in nexmo.
  2. From your nexmo dashboard, go to account settings, here you’ll find the API key and secret, the From field enter the from the number provided by nexmo. Enter these details in the pos and try sending a test message.

Setting up SMS for twilio

  1. Go to Twilio & login with your account.
  2. Get the SID, Access token, and From information. On your project Twilio Dashboard, you can find the Account SID and Auth Token
  3. Save it and try sending a message

Setting up SMS for others

Let the api structure is

So the configuration will be as follows

Send to parameter name: phone
Message parameter name: text
Request Method: GET
Parameter 1 key: user    Parameter 1 value:
Parameter 2 key: pass    Parameter 2 value:  Parameter 3 key: sender   Parameter 3 value:

Example Four: Setting up SMS for others

Let the api structure is

$api_url = “,98012XXXXX&senderid=XXXXXX&msg=Hello+People%2C+have+a+great+day”;

So the configuration will be as follows

Send to parameter name: contacts
Message parameter name: msg
Request Method: GET
Parameter 1 key: username    Parameter 1 value:
Parameter 2 key: password    Parameter 2 value:
Parameter 3 key: campaign   Parameter 3 value: XXXXXX
Parameter 4 key: routeid   Parameter 4 value: XXXXXX
Parameter 5 key: type   Parameter 5 value: text
Parameter 6 key: senderid   Parameter 6 value: XXXXXX

Setting Notification Email

Go to Settings -> Business Settings -> Email settings

Add all the Email SMTP configuration details & it will work.

Setting up Email/SMTP for Forgot password & other email notifications.

Setting up Email/SMTP for Forgot password & other email notifications

Setting Email for Forgot Password & Other application wide emails

Email functionality is used in some part of application like “Forgot Password”, “Offline Payment approval for SaaS module” and others from time-to-time.

During installation steps, you can set up email setting with all “SMTP” details or if you’re server support php-mail then you can use that too (php-mail is not recommended)

But if you have not setup it correctly then you can follow the below steps to do it:

    • Open you .env file
    • You will find the below configurations present there
      • MAIL_DRIVER=smtp
    • Fill in the appropriate details, you can get in contact with your hosting provider for any of the values above.
    • For example with Gmail it looks like below:
      • MAIL_DRIVER=smtp
      • Some hosting disable port 587 and due to that email may not work, contact your hosting provider & they will enable it.


How to Search in Settings?

Settings is overwhelming. There are a lot of options in here. So in IONIC Shop we implemented as easy way to search for any option. Follow the screenshot below.

Business Settings

Business Settings


Business Settings allows you to set some of the common business-related information.

Here you can change:

  • Business name
  • Start Date
  • Set Default Profit margin
  • Currency
  • Timezone
  • Logo
  • Financial year: For some countries, financial year starts from January and for some it stars on April. Here you can set the appropriate option for your country.
  • Tax information
  • Product SKU prefix
  • Default Sales discount
  • Default Sales tax

Setting Invoice Scheme

Setting Invoice Scheme


With ultimatePOS you can configure the format for your invoice number.

To configure go to Settings -> Invoice settings

  • Click on Add and select a scheme format.
    Format can be XXXX or <year>-XXXX
  • You can also provide a custom prefix, invoice start number, number of digits in invoice number.
  • The preview box will display the preview according to the chosen option.
  • You will need to set a default invoice scheme for a business to use it.

Adding a new barcode settings

Adding a new barcode settings


ultimatePOS comes with some commonly used barcode configurations for you our-of-box. If your barcode configuration isn’t covered then you can easily create a new configuration.

You must have all measurement details of the sticker to create a configuration. All dimensions need to be in inches.

Adding Barcode sticker settings

  1. Go to settings -> Barcode Settings -> Add
  2. Enter a descriptive name of the setting. Add some description for your information.
  3. If you’re using a Roll, then check the “Continous feed or rolls” checkbox.
  4. Enter Additional top margin (In Inches), Additional left margin (In Inches), width of the sticker, Height of the sticker, Paper width, Paper height, number of stickers in one row, distance between 2 rows, distance between 2 columns and the total number of stickers per sheet.
  5. Some of this informations are not needed for Continous feed or rolls.

You must test you setting by printing a dummy sticker in Purchase – print label option. If something seems wrong then edit the measurement accordingly.

Changing the custom fields labels

To modify the labels of custom fields, go to Settings -> Business Settings -> Custom LabelsHere you can give names to all custom fields.

Document upload file type restriction

Document upload file type restriction

This is used for restricting the type of files that can be uploaded from upload documents present on many different screens.

To Add or Remove any file type that can be uploaded in document section

  1. Open pos/config/constants.php file for editing using cpanel editor or filezilla
  2. In this file, search for document_upload_mimes_types variable, this contains the array of files that can be uploaded.
  3. To add any new file type, search the MIME type from here, we need the MIME Type column and extension column
  4. Example:
    MIME type = audio/mpeg
    Extension = mp3
    Add it as ‘audio/mpeg’ => ‘mp3’,
  5. Follow the php array convention to not make any mistake in the array

Tables, Service Staff, Bookings, Modifiers, Kitchen – for Restaurants, Saloon, Service center & others

Enable Modules

Enable ModulesGo to System Settings & enable the below modules

  1. Tables
  2. Service Staff
  3. Modifiers
  4. Kitchen

Note 1: Enabling Tables & Service Staff will automatically enable Bookings module.
Note 2: Enabling Tables & Service Staff will automatically enable the reports for it. “Table Report” & “Service Staff Report”.

Table Module

Table Module

  1. Enable “Table” module as explained above
  2. After table module is enabled go to Settings -> Table
  3. Add all the table of you restaurants by selecting Business Location, Table name & Short Description(optional)
  4. Tables are used in POS screen take order for a particular table.
    1. If you have multiple locations & the logged in user have access to multiple locations then in POS screen you must select the Business Location to get table related to that location.

Service Staff

Service Staff

  1. Enable “Service Staff” module as explained above
  2. After Service Staff is enabled go to User Management -> Roles.
  3. Go to – Create or Edit a role. Check the “Service Staff” checkbox for User Type to make to assign Service Staff permission to it.
  4. Orders are assigned to Service Staff in POS screen.
  5. “Service Staff” can see a new menu “Orders” which will help them to know all the orders for them. They can View the order item and change the order status.
  6. Enable service staff for each product in a sale: To assign different service staff for each product in sales/pos screen, go to Business Settings -> POS -> Enable service staff in product line



Modifiers are like extra stuff that can be added to a product, like extra cheese to a sandwich etc.

  1. Enable modifiers module as described above.
  2. Go to Settings -> Modifiers
    1. Click on add
    2. Give a new to modifier set. Like “Cheese”
    3. Enter multiple Modifiers name & price. Like “Single” – 10, Double – 17
    4. Save it.
    5. Click on “Manage Product” for the modifiers.
    6. Associate all products where this modifier can be used. Like Sandwich.
  3. After modifiers are added, in POS screen when the product is added for sale, it will show the modifiers that can be used for this products. Like if we add Sandwich then it will display the “Cheese”, “Bread” modifiers.
  4. Modifiers can be mostly used in Restaurants. Also, it can be used in various other similar businesses & shops.



  1. Enable the kitchen module as explained above.
  2. Go to Kitchen screen from left navigation.
  3. Whenever an order is received in POS screen it will reflect in Kitchen screen.
    • Order details can be viewed here.
    • Orders can be marked as cooked. After marking as Cooked it will reflect in Order screen for service provider so that they can serve it the customer.

Auto-refresh kitchen & Order screen

Auto-refresh kitchen & Order screen

  • The kitchen and order screen will auto-refresh after a certain interval.
    • By default, the refresh duration is set to 600 seconds, but you can change it by going to pos/config/constants.php and changing orders_refresh_interval value. The value entered should be in seconds.

Hardware Support

Barcode Scanner

Barcode Scanner


How to add Barcode Scanner

Adding a barcode scanner is easy & simple.

  • Simply Plug-in the barcode scanner in your computer.
  • If there is some driver provided with the scanner then install it.
  • Point the cursor to any field in POS where you want to insert the barcode and scan the barcode. The scanner will automatically scan and input the barcode value to the input field.

Label weighing scale

Label weighing scale integration

A Label weighing scale generates a barcode based on the configuration of Prefix, Product SKU length, Quantity integer part length & Quantity fractional part length.

Enabling & setting it

To enable weighing scale integration in UltimatePOS, do the below settings:

  1. Go to Settings -> Business Settings -> POS -> Check Enable Weighing scale and save it.
  2. Below it provide the setting for the weighing scale.
    1. Prefix
    2. Product SKU length
    3. Quantity integer part length
    4. Quantity fractional part length
      And save it.
  3. Go to the POS screen, click on the weighing scale button present next to the product SKU search field, on clicking, it will open a modal where you can scan/enter the barcode generated by the weighing scale. On Successful match of settings and barcode, the product will be added as per the specified quantity in the barcode.
  4. You can add a shortcut key for weighing scale by going to Settings -> Business Settings -> POS



Suppose if you give the below values in weighing scale settings

Prefix: 25
Product SKU length: 4
Quantity integer part length: 2
Quantity fractional part length: 2
If barcode read from the scale will be:  25 1234  35 50   (without spaces)
It will read the product with SKU 1234 & add quantity 35.50
The price will be automatically calculated by multiplying quantity & unit price.

Setting up a Thermal Printer for Receipt Printing

Thermal Printers:

2 types of thermal printers are available in the market:

  1. Thermal Line Printers. (Supported after IONIC Shop version > 2.19): Easy to Install & Use.
  2. Thermal ESC/POS printers: Complicate to install & use, also some languages & currencies symbol may not be supported.



Thermal line printers are easy to install & use. Also they supports browser based printing. For better result use paper with width 79mm.

To use a thermal line printer follow these steps:

  1. Setup the printer on your computer with the appropriate driver which comes with the printer.
  2. In the invoice layout select the Design as Slim

You’re now ready to use the printer, no more steps required.

Thermal ESC/POS printers:

Setting an ESC/POS thermal printer involves 3 steps:

  1. Adding a Printer
  2. Configuring business location to use the added printer.
  3. Installation Pos Print server.

Step1: Adding a Printer

  1. Add a new printer from Settings -> Receipt Printer
  2. Select the appropriate Connection Type:
    1. For “Network” provide the IP Address of the printer.
    2. For “Windows” map the printer to a file and provide the path of the file. You can do this by sharing the printer to your localhost.
      The path will be in this format:

      smb://computer_name/my_printer_name    (where my_printer_name is name of the printer)
    3. For “Linux” your printer device file will be somewhere like /dev/lp0 (parallel), /dev/usb/lp1 (USB), /dev/ttyUSB0 (USB-Serial), /dev/ttyS0 (serial)
  3. Select the capability profile and add character per line supported in the printer.
  4. Save the Printer configuration.
  5. Check the video below for more details on setting it.

Step2: Configuring Business Location to use printer:

  1. Go to Settings -> Business Settings.
  2. For a particular business location, go to “Settings” in actions column.
  3. Change “Receipt Printer Type” to “Use Configured Receipt Printer
  4. Select the “Receipt Printers” from the list of Receipt Printers
  5. Click on Update.

Step3: Installing POS Print Server

For printing via receipt printer, you will need to install a “pos print server” on your local computer from which IONIC Shop is used.

  1. Download the server from this link. by clicking on “Download Repository”
  2. Unzip the zip file.
  3. Rename the unzipped folder to “pos_print_server”.
  4. Move the pos_print_server to document root (which is htdocs in XAMPP).
  5. Open Command Prompt or also called terminal. And go to the “pos_print_server” directory. You can go to this directory using “CD” command in the command prompt.
  6. From the Command Prompt which is now inside pos_print_server directory run the below command:
    php server.php
    After running the command it will start the print server and show a message similar to below:
    You may receive “Unrecognised command PHP”,  in that case, add PHP command to your environment variable. (Google search result)
  7. Now we are ready to go. Try creating a test sell from the pos screen and it should print in your thermal printer. If you haven’t added a printer then follow the steps mentioned in “Step1: Adding a Printer” and it should work.

Great, now we’re ready to print on a thermal printer.

Give it a test drive.

Video Guide:

Follow the steps as mentioned in this video up to 2.0 minutes.
Use pos_print_server instead of the Github repo mentioned here.

Go to POS screen, add a test invoice and check if it prints. If not please check if the pos receipt server is running or not.


ESC/POS Printers

Many thermal receipt printers support ESC/POS to some degree. This driver has been known to work with:

Bixolon SRP-350III
Citizen CBM1000-II
Citizen CT-S310II
Daruma DR800
Epson TM-T88II
Epson TM-T88III
Epson TM-T88IV
Epson TM-T88V
Epson TM-T70
Epson TM-T82II
Epson TM-T20
Epson TM-T20II
Epson TM-T70II
Epson TM-T81
Epson TM-U220
Epson TM-U295 (requires release() to release slip).
Epson TM-U590 and TM-U590P
Epson FX-890 (requires feedForm() to release paper).
Equal (EQ-IT-001) POS-58
Excelvan HOP-E58
Excelvan HOP-E200
Excelvan HOP-E801
Excelvan ZJ-8220
Gainscha GP-5890x (Also marketed as EC Line 5890x)
Gainscha GP-U80300I (Also marketed as gprinter GP-U80300I)
gprinter GP-U80160I
Hasar HTP 250
Metapace T-1
Metapace T-25
Nexa PX700
Okipos 80 Plus III
Orient BTP-R580
P85A-401 (make unknown)
Rongta RP326US
Rongta RP58-U
SEYPOS PRP-300 (Also marketed as TYSSO PRP-300)
Silicon SP-201 / RP80USE
Star TSP100 ECO
Star TSP100III FuturePRNT
Star TSP-650
Star TUP-592
Xprinter F-900
XPrinter XP-Q20011
Xprinter XP-Q800
Xprinter XP-80C
Venus V248T
Zjiang NT-58H
Zjiang ZJ-5870
Zjiang ZJ-5890T (Marketed as POS 5890T)
Zjiang ZJ-5890K

HRM features – Essentials Module for IONIC Shop

HRM features – Essentials module

Note: This document explains the HRM (Human resource management) feature in Essentials module. For other feature in Essential module refer here.

After you have installed & configured Essentials module you will see the HRM menu along with Essentials menu in the left sidebar.

HRM modules consist of:

  1. Leave types & Leaves.
  2. Attendance
  3. Payroll
  4. Holiday
  5. & related settings

Leave types

Leave types

  1. Only admin can manage leave type (add or edit)
  2. Fields:
    1. Leave Type: Enter the name of the type of leave.
    2. Max leave counts: Maximum number of leaves allowed for the leave type.
    3. Leave count interval: This can be “Current month” or “Current financial year” or “None”. It is the interval for the maximum leave counts.

For example: If employees can take 12 Sick Leave in 1 year then:
Leave Type = “Sick Leave”
Max leave counts = 12
Leave count interval = “Current financial year”

Leave Management

Leave Management

  1. Add leave: Leave Type(dropdown list), Start Date, End Date, Leave type, Reason (text area)
  2. Default status of a leave added is pending
  3. Admin can change the status: status(pending, canceled, approved) by clicking on leave status column button.
  4. Inbuilt app Notification will be sent to admin when a new leave it added.
  5. Inbuilt app Notification will be sent to the applied user when the status is changed by admin.
  6. Only admin can delete a leave.
  7. Reference no. Will be generated automatically for every leave to uniquely identify them. You can change the reference no prefix from HRM -> Settings (Leave Reference No. prefix)
  8. Leave Instructions: You can enter special instruction for users before applying for leaves from settings “Leave Instructions” field.

Leaves Summary for a user

Leaves Summary for a user

  1. Visible to admin on choosing the user from the filter.
  2. Always visible to a user his/her summary.

Attendance by admin & other users

Attendance by admin & other users

  1. Users can add there own attendance, admin can add attendance of every user.
  2. Attendance fields for admin: Employee, Date, Ip address(auto get the users ip address), note, clock_in_time, clock_out_time.
  3. Attendace by non-admin users: User can add there own attendance by clicking on “Clock In” button present in top navigation bar and clock-in adding a note. And click on “Clock Out” button before leaving the workplace for checkout and adding a clock-out note.
  4. Total work hours will be displayed when admin select a particular user and it is always visible to a non-admin user.
  5. If admin wants to add attendance for users & don’t want user to add there attendance then it can be disabled by unchecking “Allow users to enter their own attendance”



  1. Only admin can add payroll & other users can view only there own payroll.
  2. Reference no. will be generated for Payroll. You can change the Payroll Reference No. prefix from settings.

Adding Payroll

Adding Payroll

  1. For adding payroll click on Add button in payroll menu.
  2. Select Employee and the month/year of payroll.
  3. If any existing payroll for the period then it will be shown for editing or new payroll can be added.
  4. Fields:
    1. Total work duration: Duration of work will be auto-calculated based on attendance
    2. Duration Unit: Unit of work like month/hour/week or other.
    3. Amount per unit duration: Price per duration.
    4. Total: Total work duration x Amount per unit duration
    5. Allowances: add as many allowances you have for the employee. Allowances will be added in final payroll.
    6. Deductions: add deductions for the employee. Deductions will be subtracted in final payroll.
  5. Gross amount = Total + Sum of Allowances – Sum of Deductions
  6. Inbuilt app Notification will be sent to the user when payroll is added.



  1. Only admin can add holiday.
  2. Other users can view holidays applicable for there location.

Adding Holidays

Fields: Name, Start Date, End Date, Business Location, Note

Permission & Settings for management for HRM

Permission & Settings for management for HRM

Approve Leave:

By default only admin can approve leave added by other users. But you can assign the Approve leave permission to any other role & assing it to a user. User having approve leave will be able to approve leaves added by other users.

Allow users to enter their own attendance:

You will find this option in HRM -> Settings -> HRM tab. If enabled other user will be able to enter there own attendance and vice-versa.

Essentials module for IONIC Shop

Features in Essentials module

Features in Essentials module:

  • ToDo List:
    • Add new to-do items
    • Mark items as completed.
    • Delete items
    • Date-Wise to-do list.
  • Document
    • Easy document storage to cloud in your server.
    • Share documents with other users or other roles.
    • Download document.
    • Delete documents
  • Memos
    • Written message or short notes.
    • Share with other users or roles.
    • Delete
  • Reminders
    • Add reminder with event name, date, time.
    • One time reminder or Repeated reminder – every day or every week or every month
    • Nice calendar view.
  • Messages
    • Send messages to everyone within your business.
    • Send to a particular location.
    • Permission to allow sending or only view.

Manufacturing module for IONIC Shop

Features in Essentials module

Creating Recipe:

  1. To add a new recipe, go to Manufacturing -> Recipe
  2. Click on Add button, it will open a popup, select the product for which you want to add recipe
  3. Add all ingredients/raw materials, wastage percentage & final quantity.
    Wastage percentage mentioned here is wastage for the raw ingredients which happens when the ingredient is cleaned, for example in cabbage some % is wasted when leafes & stems are removed. If the raw materials you’re using doesn’t have wastage you can keep it 0 %, which is default.
    Raw Ingredients: Raw ingredients are taken from the list products. You can mark a raw ingredient as “Not For Sale” if it is not used for selling indivisually. For example Some Raw ingredients like butter can be sold, some cannot be.
  4. Wastage %:  Enter the wastage for final product which can happen becase of bad quality or other reasons.
  5. Total Output Quantity: Output quantity for which you entered the recipe.
  6. Production Cost: Production cost in %, it is calculated from raw ingredients cost.
  7. Recipe Instructions: Steps to be followed for production of final product from ingredients.

Adding Production:

  1. To add production go to Manufacturing -> Add Production
  2. Reference No: Optional reference number, you can keep it blank to auto-generated it.
  3. Business Location: Select the business location where production is done. Raw ingredients stocks will be deducated from this location & final manufactured product stock will be added to this location.
  4. Product: Select the product for manufacturing. based on selected product it will display all the Raw ingredients from recipe added.
  5. Quantity: Quantity of final product to mnufacture. Based on this Raw ingredients quantity will be calculated from recipe.
  6. Input Quantity: Input quantity raw ingredients which will be used for production.
  7. Wastage Percent: Waste percentage of raw ingredients. For example, if you took Cabbage 1 KG, and 200 grams is wastage then wastage percentage is 20%, so 800 grams will be final quantity.
  8. Final quantity: Input Quantity – Wastage Percent
  9. Wasted Quantity: Wastaged quantity of final product for any reasons.
  10. Production Cost: Production Cost percentage of ingredients cost.
  11. Finalize checkbox: Check this checkbox to finalise the production, this will remove the stock of raw ingedients & add stocks for manufactured product. After finalise the production cannot be edited.


  1. Production Ref No. prefix: Prefix number when production reference number is auto-generated.
  2. Disable editing ingredients quantity: Disable editing of ingredients when adding a production, this can help to restrict staff from editing raw ingredients

WooCommerce Module for IONIC Shop

Features in Essentials module

What is WooCommerce?

  1. WooCommerce is an eCommerce or Web Shop plugins for WordPress
  2. It is the most customizable eCommerce platform for building your online business.
  3. The advantage of using WooCommerce is – You can get LOTS of plugins are available which can help you setup different functionality as per your need. Also, lots of payment gateways, shipping gateways are present to help you easily setup payments
  4. WooCommerce is now the most popular eCommerce platform on the web (stats from BuiltWith), so you can rest assured you’re in good company.

What is WooCommerce Module for IONIC Shop?

WooCommerce module for UltimatePOS is a Separate Optional Premium Module for the POS application.

WooCommerce module for UltimatePOS is a simple module which when installed in your UltimatePOS software will help you with synchronizing products, stocks & orders. With this module, you open an online shop from your POS software in minutes and stop worrying about adding Products in multiple software, updating stocks, Orders & much more.

Features in WooCommerce module:

  1. Synchronize products categories from POS to your online WooCommerce based webshop. (POS to WooCommerce)
  2. Synchronize products from POS to your online WooCommerce based webshop. (POS to WooCommerce)
  3. Update stock details from POS to WooCommerce (POS to WooCommerce)
  4. Synchronize Orders from WooCommece to POS (WooCommerce to POS)
  5. Assign different price for the webshop. (Using Selling Price Group feature)
  6. Map taxes
  7. Shows the details synchronization logs.
  8. Auto Synchronization based on Cron jobs.
  9. Customizable products field for synchronization during product creation & update.
  10. Synchronize product price Including Tax or Excluding tax.


Q. When I install the WooCommerce addon, is it for my use only or is it available to my subscribers also?

  • When you install WooCommerce module compatible with Superadmin you will get WooCommerce Option to create/edit packages in Superadmin.
  • If a subscriber chooses a package with the WooCommerce feature enabled in it then they will see a WooCommerce option in the left sidebar. In WooCommerce menu they can add there WooCommerce store details and use it.

Q. Will this module also sync bookings?

  • At the moment for the initial release, we have not added the sync for bookings.
  • WooCommerce doesn’t have inbuilt bookings option with it.
  • We will re-check if this is possible & if so, we will add this feature in future releases.

API Settings

For connecting UltimatePOS to WooCommerce, we need to provide the API details of the WooCommerce shop.

  1. Generating API key: Generate API keys from by following this instruction as given in WooCommerce documentation.
    • In the permissions select Read/Write access.
  2. Copy Consumer Key & Consumer Secret and paste them in Woocommerce Consumer Key & Woocommerce Consumer Secret.
  3. Woocommerce App URL: Enter the URL where WooCommerce shop is set up. For example
  4. Enable Auto Sync: If you want the data to be auto-synced then enable this option.
    NOTE: After enabling this option you have to add cron job & auto-sync will happen based on the frequency of the cron job. It is advisable to keep this frequency less.
    Cron job:
    * * * * * php /artisan schedule:run >> /dev/null 2>&1

Product Sync Settings

  1. Default Tax Class: WooCommerce assigns a tax class to each item. Here you have to provide the default tax class which is used inWooCommerce.
  2. Sync Product Price: This specifies if the product price which will be sent to WooCommerce will include tax or exclude tax.
  3. Default Selling Price Group: Sometime you may want to have a different price in WooCommerce then that is POS. For that, you can create a Selling price Group in POS & assign that price group for WooCommerce. Price Group Document.
  4. Product fields to be synced with woocommerce while creating products: Here you can select the fields which will get synced to WooCommerce from POS while creating a new product.
  5. Product fields to be synced with woocommerce while updating products: Here you can select the fields which will get synced to WooCommerce from POS while updating an already created product. This option can be very useful if you want the POS to overwrite some of the fields while updating products.

Using the Module:

After installation, you will find the WooCommerce menu at the bottom of the left navigation bar. Click on it & go to the Sync menu.

Here you will find the options to sync Categories, Products, Orders & Tax.

Sync Product Categories:

Click on this Sync button to synchronize the categories & Sub-Categories present in IONIC Shop to WooCommerce.

Map Tax Rates:

This option is used to map the taxes present in IONIC Shop to that of the taxes present in WooCommerce.

This is useful for adding related tax for a product during creation & updating.

NOTE: You must map the taxes before Synchronizing Products & Orders.

Sync Products:

Synchronizing products is a time-consuming task and take up to 30 minutes or above depending on the number of products. Do not refresh or leave the page while synchronization is under progress.

Simple & Variable products synchronization is supported.

It has 2 options:

Sync only new products:

Using this option only newly created products in POS are created in WooCommerce. This option can be less time consuming, again it depends on the number of products.

Sync All:

Using this option all newly created products are created in POS & existing products are updated. Since it does both the operation of creation & updating it will be more time consuming than the previous option.

Sync Orders:

This option is used to get all orders in WooCommerce website to IONIC Shop.

All newly created or updated orders after the last sync get added to IONIC Shop. A special tag is also added to the order to mark it as an order from WooCommerce.

NOTE: you can automate this process of syncing orders by enabling “” option in settings.  And adding the cron job for this, the update frequency is same as that of cron job frequency. Cron job command is mentioned in API Setting above.

Reset Synced Categories / Reset Synced Products:

When you click on sync Products it creates the product present in POS to WooCommerce. And with this, a link is established between the WooCommerce Products & POS Products.
Technically woocommerce products ID is stored in POS database to create a mapping between them.

After you have Synced the products if you click on “Reset Synced Products” then the link will be broken (technically the woocommerce product id stored in POS is deleted and set to null)
This reset is useful when you’re changing the WooCommerce Website.

After Reset if you click on Sync Products again then it will check for same products SKU present in WooCommerce, if not present then it will create the product and store the product id in POS.

Note: deleting of products in WooCommerce is not required if the SKU for products in WooCommerce & POS is the same.

Same applies to Categories also.

Using Order Webhook:

What is webhook:

Webhook helps you to get live orders from WooCommerce to UltimatePOS. Meaning whenever there is a new order in WooCommerce website it gets send instantly to UltimatePOS. This is a nice feature present in this module.

Setting up Webhook:

  1. Go to WooCommerce -> API settings -> WebHook settings, there you will find Order Created, Order Updated, Order Deleted, Order restored webhook settings containing Webhook Secret & Webhook Delivery URL

  2. Copy the Webhook Delivery URL for Order Created and create a new Webhook in WooCommerce. For creating Webhook in WooCommerce refer to this document:
    1. Name: Give any name which you can recognize.
    2. Status: Active
    3. Topic: Order Created
    4. Delivery URL: Paste the order created delivery URL from UltimatePOS.
    5. Secret: keep it blank.
    6. API version: WP REST API version 2
  3. Click on “Save Webhook” in WooCommerce.
  4. Copy the Generated “Secret” from WooCommerce and paste it to Webhook Secret of UltimatePOS Order Created.
  5. Repeat the above process for all other (Order Updated, Order Deleted, Order restored)

After configuring when a new order comes it will also be updated in UltimatePOS.

Error & Solutions:

Error 1:

Sometime during synchronizing you may get the following message/error

“live.EMERGENCY: File:………\vendor\automattic\woocommerce\src\WooCommerce\HttpClient\HttpClient.phpLine:375Message:Syntax error”


In your WooCommerce “API Settings” change the “Woocommerce App URL” by adding “index.php” to it.

Example: Change the URL from to

Error 2:

Sometimes in WooCommerce API bulk operations (add/edit/delete) are restricted. So it will give a error like
“Sorry, you are not allowed to batch manipulate this resource. [woocommerce_rest_cannot_batch]”

To resolve this error, follow this steps:

  1. Install & activate Code Snippet plugin in wordpress.
  2. Go to Snippet -> Add New and add a new snippet
  3. The snippet will have below writen codes:add_filter( ‘woocommerce_rest_check_permissions’, ‘allow_bulk_operation’, 10, 4 );
    function allow_bulk_operation( $permission, $context, $object_id, $type ) {
    return true;
  4. Save & Activate it.

Now it will allow the bulk operation from api.

If you want to understand it more better, check this link: