Skip to main content
Inbound ASN & Supplier Receiving Portal for Odoo — A build-to-order Odoo module that lets suppliers submit advance ship notic — 1/1Illustrative preview

A build-to-order Odoo module that lets suppliers submit advance ship notices through a portal and lets your

warehouse team receive against those ASNs with barcode scan matching, discrepancy capture, and pallet-level receiving.

ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19.

What is Inbound ASN & Supplier Receiving Portal for Odoo?

A build-to-order Odoo module that lets suppliers submit advance ship notices through a portal and lets your warehouse team receive against those ASNs with barcode scan matching, discrepancy capture, and pallet-level receiving. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

New `stock.asn` and `stock.asn.line` models with `@api.depends` computes for received-vs-expected quantities and automatic short/over flagging
Supplier-facing ASN submission through the native Odoo portal (`portal.mixin` + custom `/my/asn` controller routes), scoped so vendors see only their own documents
ASN raised against an open `purchase.order`, pre-filling expected products, quantities, and unit prices from the PO lines
Expected-receipt scheduling with a dock-planning calendar/Gantt view (Enterprise) and list/kanban fallback for Community
Receive-against-ASN flow that extends the incoming `stock.picking` / `stock.move.line` transfer instead of counting blind against the PO
Barcode scan verification in the OWL Barcode client with real-time match/mismatch feedback on SKU, quantity, and lot/serial
License-plate / pallet receiving — one scan of a pallet ID confirms all declared cartons on that pallet
Structured short/over and damage discrepancy capture recorded on the ASN line at the moment of receipt
Lot and serial number declaration on the ASN, reconciled against `stock.lot` on receipt for full traceability
`ir.model.access.csv` access rights plus `ir.rule` record rules enforcing per-supplier and warehouse-team data isolation
Automated actions (`base.automation`) to notify purchasing, open an activity, or flag a vendor on any discrepancy
QWeb PDF reports: receiving discrepancy report and printable pallet/carton manifest
ASN status lifecycle (draft → submitted → in-transit → receiving → done) driven by a `state` selection field with mapped stat buttons
XML-RPC / JSON-RPC API endpoints so a 3PL or supplier WMS can create and update ASNs programmatically
Chatter and activity tracking on every ASN for supplier-to-receiver communication and audit history

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Most warehouses running Odoo receive blind. The stock.picking incoming transfer is created from the purchase order, but nobody at the dock knows what is actually arriving, when the truck lands, or how many pallets to plan for until the driver is already backed into the bay. Odoo core has no concept of an Advance Ship Notice (ASN) — there is no supplier-facing document that says "here is exactly what I shipped, in these cartons, on these pallets, arriving Thursday." Receivers end up counting against the PO instead of against what was actually shipped, short/over discrepancies get discovered late (or absorbed silently), and dock scheduling lives in a spreadsheet or someone's head. The standard Barcode app helps scan lines, but it validates against the expected PO quantities, not against a shipment the supplier committed to — so it can't catch a supplier who shorted you before the goods hit your shelves.

This is where native Odoo runs out of road, and it is exactly what we build. ECOSIRE delivers a custom Odoo module that introduces a first-class ASN document. A new stock.asn model (with stock.asn.line children) is authored the Odoo way — models.Model, typed fields, and @api.depends computes for received-vs-expected roll-ups and short/over flags. Suppliers log into the standard Odoo portal (extending portal.mixin and the /my controller routes) to submit an ASN against an open purchase order: they declare quantities, lot/serial numbers, expected arrival date, carrier, and pallet/license-plate structure. Every ASN gets an expected-receipt date that feeds a dock-planning view (calendar and Gantt on Enterprise, list/kanban fallback on Community) so your team sees the inbound wave before it arrives. Access is locked down with ir.model.access.csv plus ir.rule record rules so a portal supplier only ever sees their own ASNs, never another vendor's.

At the dock, receiving flips from "count against the PO" to "verify against the ASN." We extend the incoming stock.picking / stock.move.line flow (and the OWL Barcode client where you use it) so a receiver scans each carton or pallet barcode and the system matches it to the declared ASN line in real time — green when it matches, a blocking discrepancy prompt when the scanned quantity, lot, or SKU does not. Short and over receipts are captured as structured data on the ASN line at the moment of receipt, not reconstructed afterward, and can trigger an automated action (base.automation) to notify purchasing or open an activity. License-plate/pallet receiving lets a single scan of a pallet ID confirm all the cartons declared on it, and a QWeb PDF gives you a receiving discrepancy report and a printable pallet manifest. Where you want machine-to-machine integration — a 3PL or supplier WMS pushing ASNs — the same models are exposed over Odoo's XML-RPC / JSON-RPC API so an ASN can be created programmatically instead of through the portal.

Because this is build-to-order, nothing ships until we agree on scope. After a short scoping call we confirm your Odoo version (17.0, 18.0, or 19.0), Community vs Enterprise, your PO and inbound workflow, and which capabilities you actually need. ECOSIRE then builds the module against your edition, validates it on a staging copy of your database through UAT, and installs it in production with a rollback plan. Typical delivery is one working week from confirmed scope. You receive the full installable source, documentation, a training session, and a post-go-live support window — plus the git repository, so the code is yours.

What you get

  • Installable module source code built for your exact Odoo edition (17.0, 18.0, or 19.0; Community or Enterprise)
  • Production installation and configuration, including portal access setup for your suppliers and dock-planning views
  • Technical documentation: data model, `ir.model.access.csv` / record-rule matrix, controller routes, and XML-RPC/JSON-RPC integration notes
  • End-user guide plus a live training session for warehouse receivers and purchasing staff
  • UAT on a staging copy of your database with a documented rollback plan before production go-live
  • Post-go-live support window for bug fixes and questions after launch
  • Git repository handover so you own the full source and version history

Who this is for

Warehouse / Inbound Operations Manager

Wants predictable inbound flow and faster receiving on Odoo. Needs to know what is arriving and when so dock labor and space are planned in advance, and wants receivers verifying against what the supplier actually shipped rather than counting blind against the PO.

Procurement / Purchasing Lead

Needs short and over shipments caught at the dock and captured as structured data, with automatic notification, so supplier performance disputes are backed by evidence instead of discovered weeks later at invoice reconciliation.

Supply Chain / IT Systems Owner

Runs Odoo internally and needs clean, upgrade-safe custom models with proper access rules and an XML-RPC/JSON-RPC surface so 3PLs and supplier WMS platforms can push ASNs without manual data entry.

3PL / Multi-Supplier Distributor

Receives from many vendors and wants each supplier submitting their own ASNs through a self-service portal, with strict per-vendor data isolation and pallet-level receiving to speed high-volume dock throughput.

How Inbound ASN & Supplier Receiving Portal for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Advance Ship Notice conceptFirst-class `stock.asn` document supplier-submitted before goods arriveWhatever you spec and build in-houseSometimes a basic ASN list, rarely portal-linkedNo ASN concept — receiving is against the PO only
Scan verification targetScans matched against the supplier-declared ASN in real timeDepends on your build effortUsually validates against PO quantitiesBarcode app validates against PO expected qty
Supplier self-serviceNative portal submission, per-vendor record-rule isolationMust design portal + security yourselfOften internal-only, no supplier portalNo supplier ASN entry point
Dock schedulingExpected-receipt calendar/Gantt with list/kanban fallbackBuild from scratchRarely includedNot available
Discrepancy captureStructured short/over/damage on ASN line at receipt + automated alertsYou define the schema and triggersLimited or manual notesManual quantity edit, no structured discrepancy record
Pallet / license-plate receivingOne pallet scan confirms all declared cartonsSignificant build effortSometimes, varies widelyPackage-level only, not ASN-aware
API for 3PL/WMSASNs created via XML-RPC/JSON-RPC, documentedYou expose and document itUsually noneGeneric RPC exists but no ASN model to target
Ownership & supportFull source + git handover, post-go-live support windowYou own it but carry all maintenanceVendor-locked, per-version repurchaseCore-supported but no ASN feature to support

Frequently Asked Questions about Inbound ASN & Supplier Receiving Portal

How long does delivery take?

This is a build-to-order module, not an instant download. After a short scoping call to confirm your Odoo version, edition, and inbound workflow, typical delivery is one working week from confirmed scope. Larger integrations (for example a 3PL pushing ASNs over the API, or heavy pallet-structure logic) sit at the upper end of that range, and we give you a firm timeline before any build starts.

Which Odoo versions and editions do you support?

We build for Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. Some capabilities differ by edition — for example the dock-planning Gantt and full Barcode app UX are Enterprise features, so on Community we deliver equivalent list/kanban planning views and a scanner-friendly receiving flow. We confirm exactly what your edition supports during scoping.

How do you handle support and future updates?

Every engagement includes a post-go-live support window for bug fixes and questions after launch. Because you receive the full source and the git repository, you (or we, under a separate support agreement) can maintain and extend it. When you upgrade Odoo, we can quote a migration of the module to the new version — the models are written to be upgrade-safe, but a version jump always needs testing.

Will this survive an Odoo upgrade?

We build the module cleanly on top of standard framework extension points — subclassing `stock.picking`/`stock.move.line`, adding our own `stock.asn` models, and using `ir.model.access.csv` and record rules rather than hacking core. That minimizes upgrade pain, but Odoo does change APIs between major versions, so we always recommend a scoped re-test (and, if needed, a migration pass) when you move from 17 to 18 or 18 to 19.

Can suppliers submit ASNs without an Odoo user license?

Yes. Submission runs through the standard Odoo portal, so suppliers use free portal access (portal users are not billed as internal Odoo users). Record rules ensure each supplier can only see and act on their own ASNs. If a supplier prefers system-to-system, the same ASN can be created over the XML-RPC/JSON-RPC API instead of the portal UI.

How does scan verification differ from Odoo's standard Barcode receiving?

Standard Barcode validates scanned lines against the purchase order's expected quantities. Our flow validates against the ASN — the shipment the supplier committed to — so a mismatch between what was ordered, what was declared as shipped, and what physically arrives is caught and recorded at the dock. Short, over, and wrong-SKU events become structured data on the ASN line instead of a silent adjustment.

Do we own the code?

Yes. We hand over the complete installable source and the git repository at the end of the engagement. There is no per-seat licensing lock-in on the module itself and no obfuscation — it is your code to run, audit, and extend.

Request a quote

Inbound ASN & Supplier Receiving Portal

A build-to-order Odoo module that lets suppliers submit advance ship notices through a portal and lets your warehouse team receive against those ASNs with barcode scan matching, discrepancy capture, and pallet-level receiving. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19.

  • New `stock.asn` and `stock.asn.line` models with `@api.depends` computes for received-vs-expected quantities and automatic short/over flagging
  • Supplier-facing ASN submission through the native Odoo portal (`portal.mixin` + custom `/my/asn` controller routes), scoped so vendors see only their own documents
  • ASN raised against an open `purchase.order`, pre-filling expected products, quantities, and unit prices from the PO lines
  • Expected-receipt scheduling with a dock-planning calendar/Gantt view (Enterprise) and list/kanban fallback for Community

Request a Quotation

Tell us about your Inbound ASN & Supplier Receiving Portal requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.