Owner stock and own stock
3PL add-on For: Administrator, Compliance manager, Warehouse staff, Sales and purchasing Checked on 18.0.0.2.0, 18.0.1.0.0
With the 3PL add-on, one warehouse can hold two kinds of DSCSA stock: own stock, which your company owns, and owner stock, which you hold as third-party logistics provider (3PL) for other companies, the owners. The software keeps the two apart, unit by unit, so that an owner's goods are never sold, bought, reserved or documented as yours.
What it is
- An owner is a company whose DSCSA stock you hold: your 3PL client. It needs an owner profile, which says how its documents are issued, which of its instructions you need, who receives its notices and whether you may buy its stock. Profiles are in Inventory ‣ Rx Tracking ‣ Owners (in the 3PL ‣ Configuration section). See Create an owner profile.
- Owner stock is marked Held for Owner with the owner's name, on the receipt or delivery, on its lines, on Odoo's stock quantities and on each package of the ledger. Empty means your own stock (as does your own company's name).
- Own stock follows the core module exactly as without the add-on.
Owners share your warehouse, locations, shelves, routes and operation types; adding an owner needs a profile, not a new company or warehouse. Third-party logistics is switched on per company, and while it is off the add-on changes nothing (Turn on third-party logistics for a company).
A partner can be an owner and, in other transactions, your customer or supplier. What decides is the operation: an owner receipt or owner order is the owner's; your purchase order or sales order is yours.
How the software keeps owners apart
| Where | What happens |
|---|---|
| Receiving | an owner's goods arrive on a receipt held for it, with no purchase order of yours. The supplier's data names the owner as the buyer, and the inbound document is the owner's. Goods from the owner's own site arrive as a custody receipt, which posts no document (Receive stock for an owner, Receive the owner's own goods as a custody receipt) |
| One owner per transfer | a receipt, delivery or return holds one owner's DSCSA units, or only yours; a transfer that mixes them is refused |
| Reservation | a delivery reserves only units of its own owner: an owner order takes that owner's units, your sale takes yours |
| Scanning | a scan of a unit that belongs to anyone other than the transfer's owner is refused, on every capture path (Scan Serials, returns, counts, scrap, the opening balance, and the Barcode app with Odoo Enterprise) |
| Validation | each line's owner must match its transfer's owner and the owner of every package it carries |
| Changing an owner | the owner of DSCSA units in stock, or of a done operation's units, can't be changed: the forms show it read-only, and imports and API calls are refused. Units change owner only through a title transfer (The title model) |
| Shipping | an owner's goods leave on an owner order, the owner's sale: no sales order, no invoice and no revenue of yours; the outbound document names the owner as seller (Ship owner orders) |
| Your own figures | On Hand, Forecasted, a quotation's availability and replenishment count your own units only (Read our own stock figures while we hold owners' stock) |
| Holds | every hold of a lot that holds owner units notifies each owner, and an owner hold holds one owner's units only (Quarantine and holds) |
The owner is always your 3PL client's company: every owner check (the owner, its supplier or customer, your facility's license) runs on it and is written to the Gate Log (Authorized trading partners and the gates). Owners see their own stock and documents, and nothing of other owners', in the owner portal (The owner portal).
Isolation applies to DSCSA products. Owners' stock of other products follows standard Odoo unless the 3PL setting Owner isolation for non-DSCSA products is selected (Choose the company's 3PL policies).
Keep owner stock off our sale and purchase orders
Your sales orders and purchase orders are your own transactions. An owner's goods are never on them: you don't buy, sell, invoice or book revenue for an owner's units. This shows in three ways.
Your sale doesn't take an owner's units. Confirming your own sales order reserves your own units, and never those of an owner, except an owner you buy from just in time (see below). If you don't have enough, the rest of the delivery stays unreserved until your own stock arrives, even when an owner holds that product on the next shelf. For example, a sale of 100 Demoprazole in the example database reserves the 23 free units of your own stock and none of the 23 units held for Northwind Generics LLC.
An owner can't be put on your order's transfer. Setting Held for Owner on the receipt of one of your purchase orders, or on the delivery of one of your sales orders, is refused when you save:
DSCSA owner isolation (3PL):
- WH/IN/00021 is on our sale or purchase order: its DSCSA units can't be held for Northwind Generics LLC. An owner's goods ship on an owner order and arrive on an owner receipt.
A line created by an import or an API call that carries both your order and an owner is refused when the transfer is confirmed or at Validate: "LABEL: units held for OWNER can't be on our sale or purchase order. An owner's goods ship on an owner order; our order takes them only after a title transfer." In the form, select Discard changes. Then receive the owner's goods on a receipt held for the owner (Create a receipt held for an owner) or ship them on an owner order (Record an owner order). The error entry is Error: "… is on our sale or purchase order: its DSCSA units can't be held for …".
Your order takes an owner's units only after you buy them. To sell units you hold for an owner as your own, your company first buys them in place with a title transfer, either chosen serials on a title purchase order or, for an owner you buy from just in time, the units your delivery picks. Just-in-time owners' units are the one case where your sale's delivery may reserve owner units: after your own, and bought from the owner when the delivery becomes Done (in the example above, the 10 units of Summit Specialty Pharma Inc., a just-in-time owner). See The title model and Buy an owner's units just in time.
When the owner is also your customer or supplier
A sale to an owner company, as your customer, is your own sale: it reserves your own units, never the units you hold for that owner, and its delivery posts your own outbound document with the owner as the buyer. In the same way, buying from an owner company as your supplier is your own purchase. For example, a sale of 2 Demoprazole to Northwind Generics LLC reserves 2 of your own units.
Background: the modules follow the reading that an owner's shipment is the owner's sale, with no invoice or revenue of the 3PL, and that our own sale takes an owner's units only after a title transfer (FD&C Act § 582(c)(1)(A)(ii)–(iii), § 582(g)(1)(A)–(B); § 581(22), (24), (26), (27); FD&C Act § 581(6), (22), (24), (26), (27); § 582(a)(1), (a)(7); § 584(d); see Compliance background).
Why it exists
Background: the modules follow the reading that a 3PL is never a party to its owner's transaction: receiving and shipping an owner's goods changes no ownership, and the documents, verification and record-keeping duties about them are the owner's, while the 3PL's own duties are a license per facility and a yearly report to FDA (FD&C Act § 581(6), (22), (24), (26), (27); § 582(a)(1), (a)(7); § 584(d); see Compliance background). The add-on therefore records the owner on every unit, treats own stock as the unmarked case, keeps one shared warehouse, and lets a partner be owner and customer at once (FD&C Act § 581(6), (22), (24), (26), (27); § 582(a)(1), (a)(7); § 584(d); see Compliance background), and it never lets one owner's units serve another owner's order, because Odoo's own reservation ignores the owner. This is how the modules read the law; it has not been reviewed by counsel. See the disclaimer.
Your procedure decides which companies you serve as a 3PL, what your service agreement with each says, and how you receive their instructions; the software requires an owner profile and records each instruction you enter.
Where to go next
- Try it on a demo database: 3PL quick start, in particular 5. Create Northwind's owner profile, 6. Create Northwind's receipt and 9. Record Northwind's order
- Owner stock already on your shelves: Go live as a 3PL, part 2
- Receive stock for an owner
- Ship owner orders
- 3PL settings and the fields the add-on adds to existing screens
- Glossary