Skip to main content

Buy DSCSA product from a supplier

Core module For: Warehouse staff, Sales and purchasing Checked on 18.0.0.2.0

Buy DSCSA products on an ordinary Odoo purchase order. When the order is confirmed, Rx Tracking checks that the vendor is an authorized trading partner; the receipt Odoo then creates is where the warehouse imports the supplier's file and scans the units. Abbreviations: EPCIS: Electronic Product Code Information Services; GLN: Global Location Number (see the glossary).

Confirm a purchase of DSCSA product from an authorized supplier​

Confirm a request for quotation that contains DSCSA products. Only the confirmation (and, with order approval, the approval) is checked: you can prepare and send a request for quotation to any vendor. Background: the modules follow the reading that a wholesaler may buy only from authorized trading partners (FD&C Act § 582(c)(3), § 581(2); see Compliance background).

Note

With 3PL switched on, goods you hold for an owner don't come from your own purchase orders: they arrive on an owner receipt. See Create a receipt held for an owner.

Who: Purchase User or Administrator; no Rx Tracking right needed

Requires: Rx Tracking (DSCSA) and the Purchase app. Works in Odoo Community and Enterprise.

Before you start:

  1. Go to Purchase ‣ Orders ‣ Requests for Quotation and select New.

    Result: a new request for quotation opens in the RFQ state.

  2. In Vendor, choose the supplier, for example Bluepeak Pharmaceuticals Inc..

  3. On the Products tab, select Add a product, choose the product, for example [DEMO-DPZ-20] Demoprazole 20 mg Delayed-Release Capsules, 30 count, and enter the Quantity, for example 24.

  4. Select Confirm Order.

    Result: the status bar shows Purchase Order, the title above the order number changes from "Request for Quotation" to "Purchase Order", and the order gets its number, for example P00012. The header now offers Create Bill and Send PO by Email.

    Screenshot of purchase order P10002 after Confirm Order: the title reads Purchase Order, above the vendor Bluepeak Pharmaceuticals.

Result: the order is a Purchase Order. Records: the purchase order, and the receipt Odoo creates for it (WH/IN/NNNNN, Ready), which users with an Inventory right open from the order's Receipt smart button or from Inventory ‣ Operations ‣ Receipts. No DSCSA record is created yet: the receipt is where the supplier's file and the scans go (Import the supplier's EPCIS file on the receipt).

With purchase order approval​

When Purchase Order Approval is on (Purchase ‣ Configuration ‣ Settings) and the order total is above its Minimum Amount, step 4 puts the order in To Approve. A Purchase Administrator then opens the order and selects Approve Order. The vendor is checked again at that moment: if its license lapsed in between, approving is refused with "… can't be approved: …" and the order stays To Approve. A Purchase Administrator's own Confirm Order approves at once and is checked the same way.

Orders with products that are not DSCSA products​

The check reads only the DSCSA lines. An order with no DSCSA product (for example [DEMO-BND-100] Adhesive Bandages) confirms as in standard Odoo, whatever the vendor. On a mixed order, the refusal names only the DSCSA products: an order to Granite State Rx Supply LLC for Demoprazole and Adhesive Bandages is refused with "… it contains DSCSA products ([DEMO-DPZ-20] Demoprazole 20 mg Delayed-Release Capsules, 30 count). …".

If it doesn't work

Every form of this refusal is explained, with its fix, under Error: "… can't be confirmed: it contains DSCSA products …". Purchasing staff without an Rx Tracking right can't see licenses; see Error: "… not an authorized trading partner" when you have no Rx Tracking right.

Known issue

Known issue (PF-W20-05): a Purchase User without an Inventory or Rx Tracking right can't cancel a confirmed purchase order, even one without DSCSA products: Cancel shows an Access Error, "You are not allowed to access 'DSCSA Package' (dscsa.package) records.", and the order stays a Purchase Order. Ask someone with Inventory User (or an Rx Tracking right) to select Cancel on the order. See Error: "You are not allowed to … records".

Next: Import the supplier's EPCIS file on the receipt

Record or find a receipt by the supplier's document number​

Every receipt has a Supplier Document field for the supplier's own number for the shipment: its despatch advice (advance ship notice), packing slip or invoice number. Use it to find the receipt when the supplier, or its file, quotes that number.

Who: Inventory User or Administrator; no Rx Tracking right needed

Requires: Rx Tracking (DSCSA). Works in Odoo Community and Enterprise.

Before you start:

Record the number​

  1. Go to Inventory ‣ Operations ‣ Receipts and open the receipt.

  2. In Supplier Document (under Source Document, placeholder "e.g. the supplier's despatch advice number"), enter the number, for example BP-PS-20260926-0112.

    Screenshot of a receipt's Source Document and Supplier Document fields. The Supplier Document field is outlined.

  3. Select the ☁ (Save manually) icon next to the receipt's name.

    Result: the chatter logs the change of Supplier Document.

You can record or correct the number on a receipt in any state except Cancelled, including a Done one. When you import the supplier's EPCIS file (IN-03) and the field is empty, the import fills it with the file's despatch advice number (or, without one, its invoice number). It never overwrites a number that is already there. Duplicating a receipt doesn't copy the number.

Find a receipt by the number​

  1. Go to Inventory ‣ Operations ‣ Receipts.

  2. In the search box, enter the number, for example BP-ASN-20260924-0419.

    Result: the search offers "Search Supplier Document for: BP-ASN-20260924-0419".

  3. Select Search Supplier Document for: ….

    Result: the list shows the receipts with that number, for example WH/IN/00008 (source document P10002).

To see the numbers in the list, open the optional columns menu at the right end of the list header and select Supplier Document.

Result: the receipt carries the supplier's number, and you can find it by that number. Records: the receipt's Supplier Document field, with its change history in the chatter.

If it doesn't work

  • The field is read-only: the receipt is Cancelled. Record the number on the receipt that replaced it.
  • The field isn't on the form: it is shown only on receipts (incoming transfers), not on deliveries or internal transfers.