Lumadro

Direct Printing for Perfex CRM

Invoices, receipts and product labels straight from Perfex to a thermal printer, with no PDF download in between.

$59 one payment

Receipts are now tested on a real printer. A Rongta RP820 over USB, on 29 September 2026: the 80mm receipt, the 58mm receipt and the kitchen ticket all printed, cut, and matched what the renderer said they would. It found two layout faults on the first afternoon, both fixed and both now covered by tests.

Two things on this page are still not proved on hardware. The ZPL labels are checked by a real ZPL renderer but have never gone to a Zebra, and the network socket transport has never opened a connection to a printer that was not on the end of a USB cable. If you use either, say so and I will treat what you find as a priority.

Buy it, try it, and if something does not print, tell me what printer you have and what came out. I will fix it or refund you, your choice.

Buy Open the demo

Demo: crmdemo.lumadro.com/admin · demo@lumadro.com / demo · read-only, so the demo cannot configure a printer

What is verified, and how

Every image below is real: the interface running on the demo you can open, and the actual output the module produces, rendered from the bytes it sends.

An 80mm thermal receipt showing company details, invoice lines, totals aligned right, a balance due and a scannable barcode
An 80mm receipt, decoded from the bytes the module sends. The barcode is drawn by the same renderer that validates the labels.

What is not verified

The first buyer who sends me a printer model and a photograph of the output is doing me a favour, and I will treat it that way.

What you get

Print job history showing one job sent, one failed with a connection refused message, and one queued
What happens when the printer is off: the job fails with a reason, keeps its place, and the invoice still saves.
A 100 by 50 millimetre product label with company name, product name, SKU, price and a Code 128 barcode
A label, rendered from the module's ZPL by a real ZPL renderer.

Security, since this module connects outward

The socket transport refuses loopback, link-local and unroutable addresses, and allows only printer ports. API keys are encrypted at rest. Layout definitions run through a whitelist, so an unknown block is dropped rather than executed. A printing module that lets someone point your server at an internal service is a worse problem than a crooked receipt.

Requirements

Perfex CRM 3.2 or newer, PHP 8.1 or newer. For the free path, an ESC/POS thermal printer with an Ethernet or wifi port. USB and Bluetooth printers need PrintNode, because a server cannot reach them directly.

Custom work

If you need a different receipt layout, another transport, or support for the printer already on your counter, say so and I will quote it. That work is what I would rather be paid for than a licence fee.

Buy for $59 Open the demo first

Full refund, no argument, if it does not print on your hardware.