Skip to content
Back to catalog
ConnectorConnectorsNew

OneButtonPrint

Scan the product and the waybill comes out, without opening Odoo

A printing station for the packing bench: the operator scans the SKU and out comes the courier's waybill already trimmed, with its content label attached and the transfer validated. It doesn't install into Odoo, it connects to it.

Compatibility
Odoo 19Odoo 18Odoo 17Odoo 16

How you get it

Every development works in all three Odoo environments. The only thing that changes is how we deliver it.

Nothing to install

Odoo Online (SaaS)

You do not need the ability to install modules. A Millora consultant comes in with temporary access that you authorize and implements it with Odoo Studio. When they are done, you revoke the access.

Install it today

Odoo.sh or your own server

You receive the module and the installation guide by email as soon as payment clears. Install it yourself, or we install it with you.

Installation · shell
# 1 · copia el módulo a tu addons_path
cp -r millora_onebuttonprint /mnt/extra-addons/

# 2 · reinicia y actualiza la lista de apps
odoo-bin -u all -d tu_base --stop-after-init

# 3 · instala desde Apps
#     busca "OneButtonPrint"

What it solves

The problem

Printing the waybill for a marketplace order is six steps: open Odoo, find the transfer, open the waybill, print it, check it came out right, and validate. Multiply that by two hundred parcels a day, done by somebody standing at a packing bench with a scanner in hand and no time.

And the PDF each courier sends does not help. Some carry extra pages — terms, receipts, adverts — others come rotated, others with margins the thermal printer clips right where the barcode is. Somebody ends up adjusting the print parcel by parcel, or throwing labels away.

And there is an error costlier than the slowness: printing the wrong waybill. That parcel reaches the wrong person, the customer complains, the marketplace penalises you and the return comes out of your pocket. Deciding by hand which waybill goes with which parcel, in a hurry, is exactly where that happens.

How it works

The operator signs in with their own Odoo user, picks the channel and scans the SKU. From there it is a single motion:

  1. It finds the open transfer for that channel.
  2. It pulls the waybill the courier already issued.
  3. It processes it per channel: which pages to print, which margins to trim, how far to rotate it.
  4. It generates a 4×6 content label: the total quantity in large type, the order's barcode and the product breakdown, to verify the parcel at a glance before sealing it.
  5. It merges both into a single PDF.
  6. It validates the transfer, if configured to.
  7. It opens the viewer and sends it to print.

And when it can't find the parcel, it doesn't go quiet. Instead of a bare "not found" it diagnoses: whether the product isn't in the catalogue, whether there are no open transfers of that type, or whether that parcel belongs to another channel — with what to check in each case. That is the difference between a scanner that fails and one that teaches you why it failed — and, above all, one that won't print the wrong waybill for want of saying no.


Try it now

Open the demonstration

Sign in with any username and password. With the Mercado Libre channel selected, scan DEMO-001: out comes the waybill with its content label. Then scan DEMO-002 on that same channel — that product belongs to Amazon — and you'll see what it does when something doesn't add up.


It doesn't install into Odoo

That is what changes the project most. The application lives outside and connects to your Odoo, so it works the same on Odoo Online, on Odoo.sh and on-premise: no modules installed, no special licence. On the ERP side all it needs is a few fields, and those are created with Studio.

Authentication is Odoo's too: there are no application users. Every operator signs in with their usual credentials, so permissions and the record of who validated what stay in your ERP.

And since it all happens in the browser, the packing bench can be a computer, a tablet or a phone.

White-label throughout

Name, slogan, logo, colour palette, channels and the label's texts are all configured without touching a line of code. And the per-channel print configuration can be adjusted from Odoo itself, with no redeploy: if a courier changes its format tomorrow, it gets fixed from the ERP and every packing station picks it up.

It also ships with a demonstration mode running on fake data, useful for training someone without touching live operations.

What it does not do

It does not generate waybills. It prints the one the courier already issued and that reached Odoo. If an order carries no waybill — no link, no attachment — there is nothing to print, and it says so rather than producing a blank sheet.

It is not a module you install and forget. It runs on its own server, and that carries an annual cost separate from this development. Millora recommends where to host it and leaves it running; if you would rather use your own infrastructure, it installs there too. What is quoted here is the implementation: the branding, the connection to your Odoo and each channel's print configuration.

And it deliberately has no list price. The scope depends on how each operation packs — how many channels, which couriers, how the flow is set up in Odoo today — and that varies enough between clients that a fixed figure would be a lie in half the cases.

It depends on Odoo answering. If the ERP is unavailable, there is no printing. That is the flip side of duplicating no data anywhere: there is no second database to maintain, but there is nothing to print from without the first.

It does not weigh, rate shipments or pack anything. It is the printing station, not a shipping management system.

It needs the waybill to reach Odoo. That data is put there by the marketplace integration, not by this application.

What changes

The packing bench stops touching Odoo. Whoever packs no longer navigates an ERP between parcels: they scan, take the sheet and move on.

And the print adjustment — that daily, silent fight with each courier's PDF — gets solved once, per channel, and stops existing.

What's included

  • Scans the SKU and prints the order's waybill without opening Odoo
  • Processes each courier's PDF per channel: which pages, which margins and how much rotation
  • Generates a 4×6 content label with the total quantity in large type, the order code and the breakdown
  • Validates the transfer on printing, when configured to
  • Diagnoses when it can't find the parcel, instead of just answering "not found"
  • Every operator signs in with their own Odoo user: there are no application users
  • Doesn't install into Odoo but connects to it, so it works alike on Online, Odoo.sh and on-premise
  • Runs from the browser: the packing bench can be a computer, a tablet or a phone
  • Fully brandable — name, logo, colours, channels and texts — without touching code
  • Lets the print configuration be adjusted from Odoo, with no redeploy
  • Includes a demonstration mode on fake data, for training without touching live operations

Requirements

  • An Odoo reachable from the internet, with its connection service enabled
  • The courier's waybill reaching Odoo, by link or attachment: that is what gets printed. On marketplace sales, Odoo Marketplugin is what puts it there
  • A few fields in Odoo for the waybill and the print configuration, created with Studio
  • A server for the application to live on, separate from the ERP: Millora recommends one, with an annual cost, or it installs on yours
  • A barcode scanner and a printer at the packing bench
  • One Odoo user per operator, with permission over transfers