Point of Sale System in PHP CodeIgniter with Source Code

A fully functional project based on POS – Point of Sale System which uses PHP Language with CodeIgniter Web Framework. Following PHP CodeIgniter project contains all the important features which can be in use for the second year, final year IT students for their college projects. It has a large number of features that will allow users to manage their every retail transaction including sales, purchases, and much more. This system as well as the web application’s concept is all clear, it’s the same as real-life scenarios and well-implemented on it. To download free Point of Sale POS system project in PHP CodeIgniter Framework with source code files, please scroll down to the bottom of this post for the Download button.

About Point of Sale POS System Project

Moving on, this POS System project in PHP CodeIgniter focuses mainly on dealing with retail transactions with respect to total sales, purchases, and so on. Also, the system displays all the available information of suppliers, customers, products, sales, transactions, etc. In addition, the system allows managing product categories too by just entering its name and category code. The project only contains an Admin Panel. In an overview of this web application, the admin has access to everything and manages them easily. The admin has the right to manage the supplier’s list. For this, an admin has to enter details like the supplier’s name, address, and contact number. The supplier records are important while maintaining the purchase transactions. Also, to insert a customer’s record, he/she has to enter naming details, address, and contact of each.

Before proceeding towards the product section, an admin first has to add a new category and then simply manage new products by entering the product’s code, name, description, category, and pricing details. After all, an admin can manage sales transactions by selecting the customer’s name, payment method, product name, quantity, and price. This will automatically generate the total amount for the customer. The admin can enter numerous product entries at a single time for the total calculation. After each and every sales transaction, the system deducts the available quantity of each product. So, in order to maintain the quantity, the user can also purchase items for adding up the quantities in stock. For this, the user has to select the available products, enter quantity, price per unit, and discount amounts. After setting up this, the system automatically adds quantities to each of the purchase items.

Dues, and Sales Return

Under this section, the system lists out all the payment dues under the dues section. For maintaining the dues list, the user has to select on “Pay Later” option during sales transactions. Also, the system displays a table list under the admin’s dashboard with a number of remaining dues with their respective customers and product details. He/she can also view details regarding the dues and mark it as paid if he/she wants to, which directly references the total sales of the system. Another feature includes displaying sales information of each customer with their product, payment details, and marks if he/she has bills dues or not. Additionally, the user can manage all the sales returns by simply selecting any of the sales made by the customers and entering a certain quantity; which also affects the total product quantity.

Purchase Returns, Monthly and Daily Sales, and Export CSV

On the other hand, all the previous purchases made by the admin can also be returned if he/she wants to. In terms of managing its record, the user just has to select the purchase items and enter a certain quantity; which will also make changes to the total available products. The system also calculates the total sum of each returned product. In addition to it, the user can also view the number of sales made in a month and per day wise under the admin dashboard. With the representation of it, the system also calculates the total sales amount; not the dues one, but the paid ones, and displays it to the user. Besides, each section contains search functionalities and pagination with it. It also allows exporting the data of each and every available record in CSV file format and printing invoice receipts of each and every detail of transactions.

Last but not least, a clean and simple dashboard is presented using AdminLTE Bootstrap Admin Dashboard Template with various color combinations for greater user experience while using this Point of Sale POS system project in PHP MySQL CodeIgniter Framework. For its UI elements, a free open-source CSS framework; Bootstrap is on board with some Vanilla CSS too. Presenting a new Point of Sale System Project in PHP MySQL CodeIgniter which includes an admin panel that contains all the top and essential features to follow up, and a knowledgeable resource for learning purposes.

Available Features:
  • Admin Panel
  • Supplier Management
  • Customer Management
  • Product and Category Management
  • Manage Sales Transactions
  • Payment Methods: Cash or Credit
  • Maintain Purchase Transactions
  • List Dues
  • Dues Management
  • Manage Sales Return
  • Manage Purchase Return
  • Print Each and Every Transaction
  • Search Functionalities: Id and Name
  • Daily and Monthly Sales
  • Calculates Total Sales Amount
  • Export Data in CSV Format
Project Name:Point of Sale (POS) System Project
Language/s Used:PHP with CodeIgniter Web Framework
PHP version (Recommended):5.6.3
Type:Web Application
Developer:Muhamad Yulianto
POS System – Project Information

Instructions: How to Run?

  • After you finish downloading the project, unzip the project file and head over to your XAMPP directory.
  • There you’ll find a folder naming “htdocs”.
  • Inside the “htdocs” folder, paste the project folder (not the .zip one, but the extracted one).
  • Open your favorite browser; we recommend using Google Chrome or Mozilla Firefox.
  • Then, go to URL “http://localhost/phpmyadmin“.
  • Create a Database with a name that is provided inside the “01 LOGIN DETAILS & PROJECT INFO.txt”.
  • Click on the “Import” tab and choose the database file (.sql) which is provided under the folder naming “DATABASE FILE”.
  • After setting up all these, go to URL “http://localhost/[ PROJECT_FOLDER_NAME ]/“
  • All the login details are provided inside the project folder, check that out and enter in order to use it.

And there you have it, a full setup of the Point of Sale System project in PHP CodeIgniter. For this particular PHP project, PHP Version 5.6.3 is required because the project might not operate well with the latest PHP version. So, users with the latest PHP version might face various problems while operating it. As a result, you’ll need to downgrade your PHP version (only if you’re using the latest version) at the moment. Download Free Point of Sale POS System Project in PHP MySQL CodeIgniter Source Code. So, this POS system is a fully functional project for all the beginner as well as the intermediate levels that broads vast knowledge into such PHP web applications. In conclusion, this whole PHP project with free source code is an absolute project and a meaningful way for the users to learn and explore more about it.

Free Download Point of Sale System Project in PHP MySQL CodeIgniter with Source Code:
Click the Download Button Below to Start Downloading

Note: Only for Educational Purpose


  1. I could not login to the system which is provided in the 01 LOGIN DETAILS & PROJECT INFO.txt file. I think password or username provided is not correct.

    1. Login credentials are correct, we’ve checked it once again. Maybe that’s a different error, which may be related to your db connection. Can you please say about the error message you’ve got?

      1. I’ve got no error message, but I couldn’t login to the system. It keeps on showing login screen, i,e ‘Please login to continue..’

        1. Please check your database connection. If everything is perfect, then the problem might occur due to your latest PHP version. This particular project operates well on PHP 5.6.3. We recommend using that version for this project (as mentioned in the project overview table)

          1. I think this bug is not from the config connection database, I think your project code. If you kindly please give us the full project without hide some thing. cause many developer found this problem. Thank you!

          2. this is it, this is all we’ve got! there’s no hiding from us. Just look at the project overview table, this project works on PHP 5.6 (as recommended) make sure about your version!

      2. i have a similar problem i entered the given credentials but it doesn’t give any response. no feedback or anything

    1. First of there are other settings that need to be maintained and secondly, these projects are not targeted for Live productions. These are only meant to be for educational purposes.

      1. What can of settings should maintained for it to run on live web server I have made a few tweaks to the project to suite my needs but have failed to launch on a live server please kindly assist

      1. You can simply have a different PHP version either by installing a particular version or having apache and PHP files from a certain PHP version and replacing it with the current ones.

  2. Hi. Thank you for this. You are awesome! However, there are missing dependencies like raphael-min.js, jquery.sparkline.min.js etc. It’s no longer available in the new AdminLTE theme.

  3. An uncaught Exception was encountered

    Type: RuntimeException

    Message: Unable to locate the model you have specified: Auth_model

    Filename: /var/www/site/system/core/Loader.php

    Line Number: 344


    File: /var/www/site/application/controllers/Home.php
    Line: 7
    Function: model

    File: /var/www/site/index.php
    Line: 292
    Function: require_once

    The website is not starting, caught this error…

        1. That’s due to your current PHP version. Seems like you’re using PHP 7, but the recommended PHP version for this particular project is 5.6!

  4. It’s an awesome project I must commend it!
    Have managed to login and interact with all the modules and would suggest these;
    1. Can’t you allow entering of a specific amount of money when clearing a customer’s due instead of clearing it all at once coz a customer might not have brought the full amount for his or her due.

    2. Have also observed that the logic on the sales returns works in the opposite way. When you select yes for return of goods, I expect the right accounting entry to increase the stock of that product and not reducing it.

    It’s a good project that implements real life scenarios, kudos! Though I’ll have to rewrite it in CodeIgniter 4 and extend some functionalities of your source code. However, your code naming convention is also not easy to understand but figure it out.

    Thanks once again!!

    1. Hello Mathias / Muhamad Yulianto,

      I just reviewed the above comment and agree with your points above. I would like to know if there is any fix for this?

      Appreciate if I could get some help please.


  5. Hello, it is really important what you do, you help a lot of people, thank you sincerely.

    Me, if possible I would like you to tell me the name of the project in which you used a checkbox, thank you in advance

  6. its showing error, can you resolve it and my php version is 5.6.30

    An uncaught Exception was encountered
    Type: RuntimeException
    Message: Unable to locate the model you have specified: Auth_model
    Filename: /opt/lampp/htdocs/posci/system/core/Loader.php
    Line Number: 344

    File: /opt/lampp/htdocs/posci/application/controllers/Home.php
    Line: 7
    Function: model

    File: /opt/lampp/htdocs/posci/index.php
    Line: 292
    Function: require_once

  7. I can’t login when I create new account. Error message is “ERROR! Your account is not active, Please contact administrator”. How can I solve and make all new account can login to your website ?

    1. There’s no option that will let you create a new account from the system. Seems like you’ve added that yourself. In that case, please check the database values!

  8. Hi admin, do you have warehouse management with module.
    1. Goods in and out?
    2. Multiple warehouse?
    3. Stock report and stock ledger ?

  9. Hey Admin … I want to create the app users directly from database.. I want to know which methode you use to encrypt the password…

  10. So if someone edits the code and makes it work on live server, can he use it for that purpose?

  11. whenever i run this file i have this error. i followed all the steps.
    Object not found!
    The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.

Leave a Reply

Your email address will not be published. Required fields are marked *