Scrap it at the register, not after the shift ends.

Point of Sale Scrap Orders lets cashiers record damaged, expired, broken or returned products the moment they spot them — with quantity, reason, location and customer captured for real backend traceability and shrinkage analytics.

The problem

Cashiers who spot a damaged, expired or broken product mid-shift have no way to act on it from the POS. The item gets sold at a loss, quietly disappears from stock accuracy, or waits for a supervisor to enter it in the backend after close — leaving persistent shrinkage with no record of who scrapped what, or why.

The solution

Point of Sale Scrap Orders adds a Scrap action directly to the POS screen. Cashiers pick the product, set a partial quantity, choose a reason and a destination location, and confirm — the app creates and validates a real stock.scrap record in the backend instantly, with full POS traceability and reporting.

Capabilities

Everything you need to control POS shrinkage

Every capability below is implemented in the module.

01

Scrap directly from the POS

A dedicated Scrap action on the product screen lets cashiers record damaged, expired or broken items the moment they see them, without leaving the register.

02

Partial-quantity scrapping

Scrap the exact quantity affected — three of twelve units broken — instead of writing off the whole line.

03

Scrap reason tags

Tag every scrap with a reason — damaged, expired, breakage, theft, customer return — so shrinkage becomes analysable loss data, not a mystery.

04

Scrap destination location

Choose the correct scrap or loss location for each item instead of relying on a single assumed default.

05

Batch review before confirming

Review every scrapped line on one screen and confirm them together in a single pass, with no repeating the flow per item.

06

Per-POS scrap mode

Configure each point of sale independently: disable scrap, validate only when stock is available, or always create a record.

07

Automatic in-stock / out-of-stock handling

Scraps validate immediately when stock exists and fall back to draft when it doesn't, so the cashier is never blocked.

08

In-POS scrap status

See every scrap created this session, with live state badges, right inside the POS — no trip to the backend needed.

09

Customer linkage & backend analytics

Optionally tag a scrap to a customer for defective returns, and track every POS scrap in the backend with a dedicated list, pivot and graph on value by reason and location.

Workflow

How it works

1

Spot it

A cashier notices a damaged, expired or broken product during service.

2

Scrap it

They open the Scrap action from the POS screen, pick the product and set quantity, reason and location.

3

Confirm

The app creates the scrap record in the backend instantly — validated if stock allows, held in draft if not.

4

Track it

Managers review every POS scrap in the backend list, pivot and graph to quantify shrinkage by reason, location and point of sale.

Questions

Frequently asked

No sales fog. If your question isn't here, email us and we'll answer it the same way.

Yes. Every POS scrap creates an actual stock.scrap record in the backend under the standard Odoo scrap workflow, so it shows up in your existing stock and traceability reports.

Get the app

Buy it on the Odoo App Store

Purchase, download and install directly from the official Odoo Apps Store — you'll always get the latest supported build.

Point of Sale Scrap Orders

Scrap damaged, expired or returned stock from the register with partial quantities, reason tags, a destination location, batch review and per-POS modes — plus customer linkage, backend traceability and shrinkage analytics.

Buy on Odoo App Store