FODUU Studio POS
Restaurant & Retail POS
Free
FODUU Studio POS — The smart point-of-sale built for modern restaurants, cafés, and retail stores.
Run your business faster with a beautiful, glassmorphism-style POS that works seamlessly across MacOS, iPhone and iPad. FODUU Studio POS connects to the FODUU Studio ecosystem, giving you everything you need to sell, manage, and grow — all from one intuitive app.
Sell smarter. Browse products by category, search instantly, add items to cart, apply discounts, and park orders with ease. Checkout supports multiple payment methods with clear tax and discount breakdowns.
Complete transactions. Auto print receipts, email or SMS them to customers, and start a new sale in seconds.
Manage your catalog. View products with images, pricing, and stock status, and add items straight to the cart.
Know your customers. Lifetime value, and purchase history to build lasting relationships.
Stay on top of orders. Filter orders by status, view detailed receipts, and monitor your business in real time.
Control inventory. Get low-stock alerts and key inventory KPIs so you never run out of best-sellers.
Manage cash flow. Open and close registers, track cash/card/UPI tallies, and generate reports.
Make data-driven decisions. Access daily sales, order counts, average order value, refunds, and top-selling items.
Stay in sync. Receive real-time connect via WebSocket for live order updates.
Whether you’re at the counter, on the floor, or on the go, FODUU Studio POS keeps your business moving.
more feat: Implement kds_hidden functionality to exclude orders from kitchen display
- Added kds_hidden flag to SalesOrder model and related services to prevent orders created or edited in the POS from being pushed to the kitchen display.
- Updated EditOrderController to set kds_hidden to true when creating or updating orders.
- Removed KitchenStatusService pushOrder calls from EditOrderController.
- Enhanced CustomerOrderHistory to provide order history hints based on customer mobile input.
- Introduced CustomerOrderHistoryHint widget to display order history under mobile input fields in checkout and table settle views.
- Updated tests to verify that orders with kds_hidden do not reach the kitchen board and that order history hints function correctly.
- Documented server-side changes to support kds_hidden functionality.
2.2.6 1d ago
Now Screenly feature is also here
2.2.4 2d ago
feat: Implement QtyStepperField for managing item quantities in orders and add corresponding tests
feat: Refactor session management to clear only authentication keys on logout and add corresponding tests
2.2.3 4d ago
now U will got the reservation feature
2.1.5 Sep 20
Order Management & Business Rules
Edit Order Lockdown
Once a bill is saved, its items, prices, discounts, taxes, charges, customer, status, and recorded payments can no longer be changed.
GST Details
Customer GST details can be added or updated after a bill is saved to issue a B2B invoice.
Additional Payments
Payments can be added only when the bill has not been fully paid.
Refunds
Use the Refund feature to reverse payments.
Order Status Rules
Cancelled, Refunded, and Void orders are final and cannot return to Completed or Paid.
Paid bills cannot be Cancelled or Voided.
Processing orders can still move to Complete or be Refunded.
Refunds require confirmation and the cancel password, if configured.
Other Business Rules
Table Locking
Tables with an open KOT or reservation cannot be renamed.
Unique Barcode & SKU
Barcodes and SKUs must be unique within an outlet across all products and variants. Duplicate codes are validated while typing and blocked when saving.
Tax Rate Validation
Tax rates are validated when saved in Tax Rules, preventing invalid values.
Default Layout Changes
The category sidebar is now enabled by default.
The Activity menu is displayed only when the KOT workflow is enabled.
Sales Analytics and GST reports now include every numbered order, including cancelled, refunded, voided, and unpaid orders. These orders are colour-coded by status and do not affect totals.
Report totals remain unchanged, but more order records are now visible.
New Features
Barcode Scanning at Billing
Scan barcodes using USB or Bluetooth scanners, or the phone camera.
Supported on Sell, Table, and Room orders.
Added manual barcode entry.
The screen flashes to confirm each successful scan.
In-Store Barcodes & Label Printing
Automatically generate item codes and EAN-13 barcodes for products and variants.
Print labels using a label printer or export them as a PDF sheet.
Label Designer
Create label designs using draggable rows and cells on a grid.
Set label sizes from XS to XL, alignment, and logos.
Use {tokens} to display product data.
Choose preset templates.
Import and export label designs as JSON.
Table Management
Table Areas
Group tables into areas such as Terrace or AC Hall. The tables screen is split into sections by area.
Seats per Table
Configure the seating capacity for each table.
Customer Suggestions at Checkout
Matching customers appear after entering 4 characters.
Search by phone number or customer name.
Available on Sell, Table, and Room settlement screens.
Sales Analytics
Added a Taxable Sales card.
Taxable Sales is included in Excel and PDF exports.
Other Improvements
Double Esc to Hold is now supported on Table and Room order screens.
Print KOTs from phones by sending them to the printer station.
KOT button wording changes to match the available printing workflow.
Added a desktop top bar layout option as an alternative to the sidebar.
Improved phone layouts for Item Sales, Sales Analytics, Customer Details, and order cards.
Bug Fixes
iOS & Data Safety
Fixed users being logged out after restarting the app due to corrupted saved data.
Saved data is now crash-safe when the app is force-closed.
Bluetooth Printers
Fixed printer search returning empty results.
Removed the unnecessary location permission request.
Fixed scan errors that could crash the app.
Rooms & Cart
Fixed cart items that had not yet been held being wiped when a room refreshed from the server.
Payments & Tax
Payment times now reflect when the money was actually collected in order details and reports.
Fixed the item-wise vs common GST setting so it saves and applies reliably.
Performance & UI
Improved theme animations, scrolling, and search performance on low-end devices.
The plain flat theme is now the default.
Fixed navigation text colour and tooltip issues.
Fixed text overflowing from headers and settings tiles on narrow screens.
2.1.4 Sep 15
feat: Enhance sales analytics with taxable sales calculations and reporting
- Added taxable sales calculations to SalesAnalyticsCalculator, including methods to aggregate taxable amounts from orders.
- Updated SalesAnalyticsExcelService to include taxable amount in Excel exports, ensuring accurate reporting of discounts and taxable sales.
- Enhanced SalesAnalyticsPdfService to display taxable sales in PDF reports, maintaining consistency with on-screen data.
- Introduced a new DashboardSummaryCard for taxable sales in the sales analytics view, providing a clear overview of taxable sales figures.
- Implemented a double Esc key functionality for holding orders in the table/room order screens, allowing for a smoother user experience.
- Added tests for taxable sales calculations and double Esc functionality to ensure reliability and correctness.
2.0.3 Sep 8
KOT Workflow
A smarter way to manage restaurant orders
2.0.1 Sep 6
Customer Profiles, Rebuilt — the customer detail page moved from one long scroll to a proper sidebar-tabbed profile (Overview / Orders / Payments & Dues / Visit Habits), plus walk-in customers no longer need a name or phone to bill.
Dues & Payment Collection — a new Dues Report, full-or-split payment collection, and outstanding balances now shown consistently across reports and the customer profile.
Sharper Sales Reporting — custom date-range filtering on orders, and the dashboard/analytics now separate "billed" from "actually collected."
Multi-Outlet Support — a quick outlet switcher in the top bar, plus live unseen-activity indicators on tables.
Billing Counter Improvements — order-wise GST, a cash-change calculator, configurable receipt/KOT font size.
Mobile & Stability — responsive layout fixes and a large batch of new automated tests around payments/dues/rounding accuracy.
v1.7.5 Aug 31
Major Changes:
New kitchen dashboard you can turn on/off from Settings, with an option to generate a fresh sharing link anytime.
The app now checks ingredient availability in real time. If you try to add a product that's missing ingredients, you'll get a clear popup telling you what's unavailable — no more surprise "can't make this" moments after the order's already placed.
Product cards now visually flag items with ingredient shortages, so you can spot them at a glance.
Improved scrolling in the category sidebar for easier browsing.
1.7.2 Aug 27
feat: add sample download functionality in purchase upload dialog
- Implemented a download button for a sample file in the purchase upload dialog.
- Added Snackbar notifications for download success and error handling.
- Updated the column description to include 'expiry_date' as an optional field.
refactor: enhance waiter call management in rooms and tables controllers
- Introduced waiterPendingCounts to track pending waiter calls separately from total counts.
- Updated logic to ensure pending counts are cleared upon acknowledgment and remote clears.
- Adjusted tests to verify the correct behavior of pending counts in various scenarios.
test: add tests for purchase sample excel service and waiter call functionality
- Created tests for PurchaseSampleExcelService to ensure sample data integrity and compatibility with the parser.
- Added tests for waiter call pending counts to ensure accurate tracking and clearing behavior.
1.7.1 Aug 26
- Implemented inventory expiry calculations in `inventory_expiry.dart`, including expiry status classification and date formatting.
- Created `PurchaseListPdfService` for generating downloadable PDF versions of purchase lists.
- Developed `IngredientPickerDialog` for selecting ingredients with search functionality and silent creation of new ingredients.
- Added `PurchaseListOptionsSheet` for customizing purchase list contents with options for printing and PDF generation.
- Introduced tests for consumption reports, inventory expiry logic, and unit contract to ensure correctness of functionality.
- Enhanced purchase list ticket printing with proper formatting and layout for both 60mm and 80mm paper sizes.
v1.7.0 Aug 22
Major Changes:
1. feat: Implement item grouping for slip printing and add unit tests for slip item merging
2. fix: Add transparent Material to ListTiles for proper ink splash behavior.
3. Refactor export success notifications to use a unified bottom sheet for touch platforms
- Introduced `showExportSuccess` function to handle export success notifications.
- Replaced Snackbar notifications with a bottom sheet on mobile platforms for better user experience.
- Updated multiple controllers to utilize the new export success notification method.
- Added a new widget `ExportSuccessSheet` to display export details and provide an "Open" button.
- Adjusted UI elements across various views for consistency and improved aesthetics.
- Enhanced test coverage for the new export success functionality.
1.6.7 Aug 21
feat: Implement kds_hidden functionality to exclude orders from kitchen display
- Added kds_hidden flag to SalesOrder model and related services to prevent orders created or edited in the POS from being pushed to the kitchen display.
- Updated EditOrderController to set kds_hidden to true when creating or updating orders.
- Removed KitchenStatusService pushOrder calls from EditOrderController.
- Enhanced CustomerOrderHistory to provide order history hints based on customer mobile input.
- Introduced CustomerOrderHistoryHint widget to display order history under mobile input fields in checkout and table settle views.
- Updated tests to verify that orders with kds_hidden do not reach the kitchen board and that order history hints function correctly.
- Documented server-side changes to support kds_hidden functionality.
more Version 2.2.6 1d ago
Data Not Collected The developer does not collect any data from this app.