NexoPOS 4.x is a POS System, CRM, and Inventory Manager, that aims to ease store management. With the included features, you’ll be able to monitor and see the growth of your store.
All the following features can be extended or changed using modules we’ve made available on our marketplace.
Detailed Inventory Manager
NexoPOS allows you to create unlimited products that can be handled on various units. Each unit has an isolated inventory that can be procured with purchase orders and sold. The inventory manager can be improved using the “Racks Manager” module available on the marketplace.
Cash Registers & History
NexoPOS 4x provides a cash register mechanism that allows you to virtually control your registers. Each transaction is recorded on an history that is available for a better control.
Flexible POS System
The point of sale screen has been made flexible so that it can be used on mobile and desktop. Using the configuration, you’ll be able to enable sound effects, disable discounts on products, configure taxes, define order type, enable quick products, keyboard shortcuts, enable support for barcode reader, merging similar products, printing and much more.
Multi Tax System
Regardless of the country you’re using NexoPOS, you can use the multi tax feature create taxes are it’s required by your tax legislation.
Normal & Recurring Expenses
Every business has expenses and some of those expenses are recurring every month. With NexoPOS 4x, you don’t need to register your expenses manually, you can create an expense based on a rent or an expense that is computed as your workers (cashiers) salary.
Customizable Receipts
While creating a custom receipt, you make sure to insert the information that are useful for your customers. It might be a thank you message or terms of return.
Accounting Journal
Every activity needs to have a follow-up on how cash goes in and out. With the accounting journal, you’ll be able to accurately the progress of your activity.
Reward System
Encouraging the loyal customers is a good practice nowadays. The best recommended way to encourage your customers is to use a reward system, where they earn points based on purchases.
Coupons
Additionally to the rewards system, you can provide coupons to your customers. The coupon can also be used as a reward.
Instalments & Reminders
Not every customers will be able to pay an order at once. Sometime, they’ll need more time to pay their order on instalments. The instalment feature allows you to setup a multiple slices of payment for a specific order. Using the SMS Module, you’ll be able to remind your customers of due amount.
Customer Accounts (Wallets)
Each customers has a wallet that is used to store and pay orders. It’s a convenient way to allow users paying items on instalments. It’s also used to track due amount by your customers.
Multilingual
NexoPOS 4x is available in 8 languages including:
- English
- French
- German
- Italian
- Arabic
- Portuguese
- Turkish
- Vietnamese
We’ve also make sure you can easilly translate NexoPOS into your language. Feel free to share those with us so that we can merge it to the core.
Media Manager
Upload your products images and manage them using the built-in media manager. You can bulk edit and delete them.
Multi Roles & Users
You can create as many roles as you want. Each role has privileges that gives access to features. You can clone roles and customize the permissions as you want.
Extends The Features With The Modules
NexoPOS 4.x is extensible using modules. We’ve yet created some modules on our marketplace that might make NexoPOS 4.x fit your business needs.
With the available documentation, any developper knowing how Laravel works, can customize NexoPOS using modules.
Compatibility With NexoPOS 3.x Modules
NexoPOS 4.x is a complete rebuild. None of NexoPOS 3.x are compatible with NexoPOS 4.x
= v5.1.0 - 2024.02.28 - Fixed: The field was disabled when the reset confirmation was closed - Fixed: scroll on the product grid - Fixed: renaming column on transaction histories - Fixed: make tax group nullable on procurements products - Fixed: loading quick product with no default - Fixed: ns.recurring-transaction was written as ns.recurring-transactions (with a 's') which was causing the recurrence screen not to work. - Fixed: Deleting Product On Cart #1783 - Fixed: #1750 reset feature - Fixed: Ensure compatibility while extracting product form. - Fixed: Can't reassign unit for already assigned unit - Fixed: customer name not appearing on settings - Fixed: typo on ClearHoldOrdersJob - Fixed: Helper::toJsOptions support an array as a label - Fixed: display order control when it's loaded on order preview - Added: Ensure set action performs a correct increase/decrease action - Added: new developer sections on About page. - Added: unit conversion feature. - Added: can't assign twice the same unit to a product - Added: proper disabled state for search-select field - Added: support for hiding checkboxes - Updated: unused js files - Updated: set is the default adjustment action by default - Updated: Procurement Name is not required anymore. - Updated: We'll keep a loading state when the procurement is successful. = v4.8.20 - 2023.08.18 - Fixed: Tax computation - Added: migration to fix wrong purchase prices #1522 - Fix #1522 issue While Computing Total Purchase Price - Fix #1558: Displaying procurement for providers wasn't limited to that provider - Fixed: issue while opening order with the changed price - Fixed: tax computation of reopened order - Added: product tax on receipt if available - Fixed: product with modified price being set to 0 after loading - Added: default fields for quick products = v4.8.19 - 2023.06.26 - Added: force flag to the Artisan call - Updated: Modified tax computation function - Updated: The computeInclusive() function in the tax library has been modified to enhance tax calculations = v4.8.18 - 2023.05.16 - Fix Spanish translations - Fixed: yearly report not recomputing - Fixed: order types not used on the demo - Fixed: sale report row background color - Fix: saving custom format on the database (#1458) - Fixed: Tax computing with string values (#1468) - Added: print option on a hold order. = v4.8.11 - 2022.12.22 - Fixed: <a href="https://github.com/Blair2004/NexoPOS/issues/1220">#1220</a> - Added: hook for product on default receipt - Added: dependency check for providers - Added: improved options saving - Added: cleaning symbolic links. = v4.8.10 - 2022.12.05 - Fixed: prevent duplicated CashFlow transaction - Added: new doctor command for clearing orphan orders products - Added: new doctor command for recomputing cash flow for orders = v4.8.6 - 2022.10.19 - Added: Adds keyboard support to payment popup - Fixed: deleting own account from Crud List - Added: new hooks to inject content on top and bottom of a title - Added: a new test for checking users - Fixed: loading all customers while opening the customer's popup - Fixed: postcss config to erase unlisted files - Added: new cash register action - Fix: #1100 double records for sales - Updated: refactoring - Deleted: deprecated link - Fixed: improve keyboard support on Payment Popup. - Added: dependency protection on build deletion (customers). - Added: default type for the unsupported product type. - Added: adjust stock for order product if a reference exists. = v4.8.5 - 2022.10.14 - Fixed: #1078 Restrict unit to be deleted when assigned to a product - Added: implementing new Math calculator - Added: new test case - Updated: CurrencyService class - Changed: order fields (gross to without_tax & net to with_tax) - Fixed: design issue on coupon + other improvements - Added: coupon value on cart - Added: compute product taxes command - Added: product taxes on POS - Added: new test cases - Removed: deprecated code - Refactored: taxes on products and order products - Fixed: #1071 order not updated after a refund - Fixed: design issues - Fixed: quick product validation failing - Fix: #1070 Customers Not selected by default - Updated: module listing command - Added: automatic page output action - Added: global nsSelectPopup & nsPOSLoadingPopup - Added: silent and normal printing - Added: name on web routes - Fixed: wrong method called on ns-table-rows.ts - Fixed: deprecated issue with str_replace - Fixed: option typo "only_paid_ordes" => "only_paid_orders" - Fixed: design issue with notices - Fixed: list background color on hover - Added: new test for timzones - Deleted: incompatible timezone - Added: float casting - Added: option to mark a procurement as paid - Added: new test case for procurements = v4.8.4 - 2022.09.07 - Updated: customer seeding. - Updated: delete the previous module before uploading the new one - Added: a way to disable all modules. - Added: code parser while activating modules - Updated: compatibility with RxJs. - Updated: improving rebranding - Update: restrict core roles modification - updated: translation - feature: new events to catch product inventory update - Fixed: fields hidden while choosing regular products (quick product) - Fixed: Products set as hidden shouldn't be visible on POS [fix https://github.com/Blair2004/NexoPOS-4x/issues/1015] - Fixed: installments not visible for unpaid orders - fix https://github.com/Blair2004/NexoPOS-4x/issues/1027: translation on the POS cart - fix: unable to load style on receipts = v4.8.x - 2022.07.11 - Fixed: options - Fixed: test case - Added: Ensure cookie is generated after each installation - Fixed: Ensure Product Can Be Bulk Updated - Fixed: Tax warn when not selected - Added: capacity to unselect options - Updated: language - Fixed: TypeError - Fixed: coupon not effective - Added: prevent on POS if a tax group lacks taxes - Fixed: changed readonly attribute for php8.0 support - Added: Support for links on crud row - Updated: naming routes - Added: Vietnamese - Added: new action while opening orders - Updated: typo on crud generator - Closes #833, adds option to permanently enable auto focus - Fixed: procurement expense using the author id - Added: skip instalments - Added: --force option to some commands - Added: New numpad with option - Added: searching customers using phone number - Updated: formatting code with Laravel Pint - Changed: renaming some columns - Added: new events - Updated: changing service container binding - Fixed #857 issue - Cleaning - Fixed: generating random barcode - Removing deprecated code - Added: floating quantities - Added: Grouped products - Added: products group - Added: customer statement = v4.7.5 - 2022.04.30 - Updated: improving coverage - Updated: fields by adding an identifier - Removed: unused classes and files - Fixed: error while creating a product - Added: new events - Fixed: assigned role during registration - Added: new middlewares - Fixed: emails - Added: property to the user model = v4.7.4 - 2022.04.25 - Added: New test case for better coverage - Added: role namespace is no more required - Removed: not used files - Added: refactoring to php 8.0 - Updated: optimizing options - Fix: https://github.com/Blair2004/NexoPOS-4x/issues/716 - Fixed: custom price restauration - Fix: https://github.com/Blair2004/NexoPOS-4x/issues/713 = v4.6.15 - 2022.03.08 - Fixed: tax computation from the POS. = v4.6.14 - 2022.03.07 - Fixed: issue while updating NexoPOS. = v4.6.13 - 2022.03.01 - Fix #573 Inaccuracy on Cash Register History And Balance - Fix #575 Missing Product Name On Labels - Fix #578 Tax Not Applied While Switching - Fix #579 Allow Payment For Order With 0 As Total = v4.6.11 - 2022.01.28 - Added: Custom Reset Options - Added: Attaching Payment To Instalment - Added: Sortable Payment Type - Added: Skip Select Order Type - Fix #508 Order Changing Status On Update - Fixed: Discount Computation With Gastro - Fix Wrong Columns Assignation - Fix #486 Strict Type Comparison - Fix #483 Fix Comparison Accuracy - Fixed: product discount calculation - Fix: Discount Computation On Single Product - Fix: Layout on Sales Report = v4.6.9 - 2022.01.12 - Added: Payment Invoice - Added: Attaching Instalment To Payment - Fix #496 Reset Pin On Failure - Fix : Illegal operator and value combination - Added: New Event After Checking Order - Fix #459 Add Credit Limit - Added: Localization Test On DB Migration - Fixed: Tests For Cash Register = v4.6.3 - 2021.11.17 - Fix Wrong Output For Exceptions - Added: restrict order type from the settings - Removed: useless settings - Updated: Procurement form flexibility - Added: quick product can be disabled - Added: customer creation can be disabled - Fix Wrong Variable Type On POS = v4.6.0 - 2021.11.07 - Track Layaway Orders - Extend Crud Service - Fixed: order details with quick products - Added: Providers products - Updated: CrudService for better extensibility - Fixed: issue while generating barcode for procurement products - Arabic & RTL - Low Stock Products & Report = v4.5.8 - 2021.10.09 - Added: Products Combinaison - Fixed: Editing Procurement - Added: New Vue Components - Fixed: Pagination - Added: Reward System Preview - Fixed: Requesting TimeZone for Year Report - Fixed: Combined Product Test - Fixed: Order Not Attached To A Refund Expense = v4.4.0 - 2021.07.31 * Added: refresh reports from the CLI * Added: create expense history on update active expense * Fixed: how the last day report is retrieved * Fixed: day of the year on the day report * Fixed: year report no showing output * Added: support for NsCommissions module * Updated: how test are performed for orders * Added: route name for settings * Added: localization for sales report * Added: signature for product version * Updated: product history on POS * Fixed: product transaction popup * Added: Expenses generated with procurement created + settings * Added: coupon is assigned to the order author or logged user * Added: order author can now be edited during sale * Added: localization on order type * Updated: code quality * Fixed: convert order status to human form * Fixed: product unit crud with 404 errors * Fixed: issue while performing a migration * Fixed: Undefined index while applying a fixed discount * Fixed: ensure order status are correctly updated * Added: new events * Added: order delivery status can be changed * Fixed: layaway issue with computation * Update: polish code * Fixed: payment type not loaded for sub stores * Fixed: store name not displaying on the receipt * Added: refund receipt for orders * Fixed: issue while removing permissions * Added: enhanced refunds * Fixed: abbreviating currencies = v4.3.2 - 2021.07.09 * Updated: dependencies * Added : padding to settings component * Added : filter to extends Users Crud actions * Added : new events * Fixed : namespace filter on Permission model * Added : new dashboard for roles * Fixed : removing permissions used the wrong parameter type * Added : cashier reports * Updated : roles to support identifier * Fixed : wrong column name on the initial migration * Added : default dashboard for roles * Added : new way to get system date. * Added : forget module migration option * Fixed : searchable being changed while saving categories * Updated: remove "supervisor" role from the core. * Added : default dashboard. * Fixed : Instalment crud list using a wrong pivot attribute * Fixed : Stock adjustment issue (adding stock) fixes #207 * Fixes #208 * Fixed : unable to load the product reports. * Fixed : some adjustment on the products reports. = v4.3.0 - 2021.06.17 * Updated: display item price when a product has a single unit * improved demo * Added: price modification popup. * Added: grocery demo * Improved: reset feature * Fixed: deprecated attributes * Removed: unnecessary translation files * Added: new order settings * Fixed: make sure OrderAfterCreatedEvent can be broadcasted on the socket * Added: rebranding on POS logo * Update: deprecating a feature * Added: new filters * Added: new report sales by payments * Added: rebranding options * Added: run migration from the command. * Ignoring Supervisor logs * Fixed: make sure refreshing a procurement form doesn't delete entries * Fixed: make sure while deleting an entry the crud refreshes * Added: test for custom payment * Added: test for products with different price mode * Fixed: typo on the default payment type * Fixed: wrong file name while extracting localization * Updated : localization * Fixed: the wrong configuration during setup * Fixed: make sure installment extends orders children's menus. * Created: test for custom payment types * Fixed: wrong price mode defines by default. * Added: payments type are set as component now * Added: language extraction improvement * Fixed: wrong class assigned to system migration. * Fixed: wrong npm command to build assets * Fixed: Error thrown while using an unsupported date format. * Fixed: added load method for .env for keeping previous values. * Fixed: ensure TaskSchedulingPingJob doesn't restore files * Added: implementing CLI update * Fixed: the wrong date provided while saving an order * Added: new events while a product is computed * Fixed: currency issue * Fixed: ensures order is loaded synchronously * Fixed: Crud issues * Added: 2 Feature tests * Updated: Extending the script for modules. * Fixed: various popup layouts * Fixed: incorrect date value. * Updated: npm dependencies = v4.2.3 - 2021.05.07 * Added : return exact string for unmatched translation * Fixed : create symbolic link on windows for language * Fixed : flat array with keys * Added : new hook when crud form is loaded * Added : new filter when crud footer form is rendered * Added : new filter when settings footer is rendered * Fixed : missing translation file on Vue component * Update : CKEditor. * Added : 2 languages (French & Spanish) * Fixed : ensure localization is correctly loaded * Added : new path to extract classes. = v4.2.2 - 2021.05.04 * Added : extraction tools * Added : language base files * Added : default system language * Fixed : missing localization functions * Fixed : missed attribute while setting up. * Fixed : ensure the store language is selected by default. * Update : updating dependencies * Fixed : error with module missing languages = v4.2.1 - 2021.05.07 * Added : download to CSV feature. * Added : away to install NexoPOS from the CLI * Added : upload user profile * Added : isolated media manager * Added : quick setup command * Added : hard reset command * added : new settings * Update tailwindcss * ignoring expenses settings * Added : Module details command * Adding : databased for testing. * Added : new logo * Added : new recovery feature (including mails) * Added CI test suite configuration file. * Fixed : CSRF Mismatch one new installation using a domain with port * Fixed : required parameter * Added : new commands to handle modules * Added : register modules command. * Added : process status editable. * Fixed : profile avatar overflow * Added : new attribute to Order model. * Fixed : Unknown process status. * Added : localization support on labels.ts * Fixed : number length * Added : new animation * Created : various tests * Fixed : unit group deleted with a product * Added : category reference for each ordered product * Fixed : tax group is computed only if it's provided * Moved Gastro Test to the module * Fixed : allow snackbar issue * Added : new command to forget module migration * Added : new method for calculating a value percentage * Added : websocket support * Updated : notification to support WebSocket * Adjusting broadcast name * Fixed : ensure keep in sync on client-side * Fixed : date format * Fixed : default sidebar state * Securing private access * Improving comments * Added : new middleware * Added : pusher to composer.json * Fixed : broadcasting configurations * Improved : unit testing * Updated : order date can be modified * Updated : better error message when a tax group is not found. * Sorted : proper message when there is a misconfiguration on the taxes * exposing some POS queues * fixing responsivity for cart buttons * Fixed issue with SetupService. * Fixed : sale price set if the tax is not provided * Added : new crud component to edit a product expiration. * Fixed : date time picker description * Added : ensuring products with accurate tracking can be adjusted * Added : label on crud table to see the items displayed and total items available * Fixed : missing column = v4.0.0 * Initial Release