Updated 14 May 2025
In today’s mobile-first retail world, the Odoo POS mobile app with SUNMI terminal integration—powered by Flutter—offers a seamless, flexible, and scalable mobile POS solution.
In this blog, we’ll explore integrating SUNMI Android terminals with Odoo POS to utilise their thermal printing and hardware features.
A POS (Point of Sale) app helps businesses manage sales, track inventory, process payments, and generate receipts, commonly used in retail and hospitality industries.
It is the digital version of a traditional cash register, often enhanced with features like analytics, inventory management, and customer tracking.
To dive deeper, check out our comprehensive guide on the Odoo POS Flutter App for everything you need to get started.
A SUNMI Mobile Terminal is a smart, Android-based handheld device designed to streamline business operations by integrating multiple functionalities into a single, portable unit.
These terminals are widely used in sectors like retail, hospitality, logistics, and healthcare to facilitate tasks such as sales transactions, inventory management, and customer engagement.
By connecting SUNMI printer with your POS App, you can send print commands for text, images, and structured rows.
Follow the step-by-step guide below to set up and use the printer efficiently:
Add the Sunmi Printer Plus package to your project.
1 2 |
dependencies: sunmi_printer_plus: ^4.1.0 |
Then run:
1 |
flutter pub get |
This package provides access to SUNMI’s built-in printer API for Flutter apps.
At the top of your Dart file where you want to access the printer, add:
1 |
import 'package:sunmi_printer_plus/sunmi_printer_plus.dart'; |
After initialising the SUNMI printer, you can send commands for styled text, images, and structured rows:
1. Printing Plain and Styled Text
You can follow the steps below to see the practical execution of the print commands of Sunmi’s built-in thermal printer:
1 2 3 4 5 6 |
await sunmiPrinterPlus.printCustomText( sunmiText: SunmiText( text: "Let Print Hello World" ) ); |
2. Print Assets and Network Images
To print images on the Sunmi Terminal printer, convert the asset and network images to Uint8List before passing them to the print command.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
await sunmiPrinterPlus.printImage(await getAssetImageAsUint8List("lib/assets/logo.jpeg"), align: SunmiPrintAlign.CENTER); // For Assets Images await sunmiPrinterPlus.printImage(await getNetworkImageAsUint8List("https://...../logo.png"), align: SunmiPrintAlign.CENTER); // For network Images Future<Uint8List> getAssetImageAsUint8List(String assetPath) async { ByteData byteData = await rootBundle.load(assetPath); return byteData.buffer.asUint8List(); } } Future<Uint8List> getNetworkImageAsUint8List(String imagePath) async { ByteData byteData = await NetworkAssetBundle(Uri.parse(imagePath)).load(""); return byteData.buffer.asUint8List(); } |
The sunmi_printer_plus
Sends print commands sequentially, meaning each function is executed in the order it’s called. This is crucial for formatting and flow.
1 2 3 |
await sunmiPrinterPlus.addText(...); await sunmiPrinterPlus.printImage(...); await sunmiPrinterPlus.printRow(...); |
Important Note: Always use await
to ensure each command completes before the next one begins. This guarantees proper alignment and avoids overlapping or out-of-order prints.
Check out the complete video guide on integrating the Odoo POS Mobile App with the SUNMI Mobile Terminal.
In this blog, we explored how to integrate the Odoo POS Flutter App with a SUNMI mobile terminal to leverage its built-in thermal printer.
By using the sunmi_printer_plus Flutter package, we demonstrated how to print text, images, and formatted invoice details directly from the app, all without relying on external hardware.
By combining Odoo’s powerful backend with SUNMI’s hardware and Flutter’s flexibility, you get a robust, professional-grade POS system — all from a single device.
Hungry for more tech insights? Explore a world of powerful integrations, smart development tips, and Flutter tricks on the Mobikul Blog – where innovation meets implementation!
If you have more details or questions, you can reply to the received confirmation email.
Back to Home
Be the first to comment.