Docs

How Odoomation works

Five minutes from sign-up to your first return order in Odoo.

Overview

Odoomation runs alongside your Odoo — nothing is installed on your instance. Each add-on reads the documents your retailers send, matches them against your Odoo data over the standard JSON-RPC API, and creates the resulting records only after you review them.

  1. 1
    Connect Odoo
    Paste your Odoo URL, database and API key. We test the connection first.
  2. 2
    Map your retailers
    Pick each key account in Odoo and the PDF template it uses.
  3. 3
    Drop in the PDF
    Lines parsed, barcodes matched, duplicates flagged. Fix the rest inline.
  4. 4
    Create in Odoo
    One click creates the return order, draft or confirmed, credit note included.

1. Connect Odoo

  1. In Odoo, create a dedicated user (e.g. Odoomation Integration) with Sales, Inventory and Invoicing access.
  2. Log in as that user, open Preferences → Account Security → New API Key, and copy the key.
  3. In Odoomation, open Settings → Odoo connection, enter your Odoo URL, database name, the user's login and the API key, then click Test & Save.

The key is encrypted with AES-256-GCM before it is stored. Odoo Online, Odoo.sh and self-hosted 16/17/18 are supported. If your database name is not obvious, it is shown in the Odoo URL after /web?db= or in Settings → Activate developer mode.

2. Map retailers to templates

Open PDF Returns → Clients. Search your Odoo contacts, pick the retailer, and choose the PDF template it sends. Every return note from that retailer will then be parsed with the right profile. Need a new template? Send us a sample PDF from the contact page.

3. Import a return note

Open PDF Returns → New return, select the client, upload the PDF and click Read PDF. Each line is matched by barcode:

  • Ready — one product matched, quantity and price read.
  • Pick one — several variants share the barcode; choose from the list.
  • No match — search your products inline, or skip the line.

If the return note number already exists in Odoo, the import is flagged as a duplicate and you must explicitly override it.

4. Create in Odoo

By default Odoomation creates a draft quotationwith negative quantities (Odoo's return sales order) referencing the return note number. Optionally:

  • Confirm immediately — generates the incoming return picking.
  • Validate return picking — receives the stock back (Odoo 17/18 field names; anything needing a wizard is reported, not forced).
  • Create a draft credit note — an out_refund invoice left in draft for accounting to review.

Each import lands in History with a deep link to the Odoo order. This is the moment that counts as one transaction on your plan.

Team & billing

Your subscription belongs to a company workspace. Invite colleagues under Settings → Team; they share the connection, history and plan. Plans, cards and invoices are managed in the billing portal under Billing. See pricing for limits.

Live Inventory Accounting

Odoo 19 stopped posting stock to the ledger at receipt and delivery. Under Perpetual (at invoicing) valuation the Stock Valuation account only moves when a vendor bill or customer invoice is posted, and a month-end Stock Closing entry books the remaining gap. Goods you have received but not been billed for are missing from the balance sheet until that closing, and no ledger line traces back to a transfer. This add-on brings back the Odoo 18 behaviour from outside: one journal entry per stock move, over the standard API, with nothing installed in Odoo.

Setup

  1. Connect an Odoo 19 database (Settings → Odoo connection). The API user needs Inventory › User and Accounting › Invoicing; no administrator rights.
  2. In Odoo, set the automatic Stock Closing to Manual (Accounting › Settings › Inventory valuation), so closings do not absorb the movements before the add-on posts them.
  3. Open Live Inventory Accounting → Setup: pick the company, the stock journal, and two interim accounts (received not billed, delivered not invoiced). Create them with one click if your chart has none.
  4. Choose a start date. Moves before it, and moves on or before the last posted Stock Closing, are never posted per move; the opening balance covers them in one entry.
  5. Save. The add-on starts in Review mode and lists what it would post. Check the entries and the reconciliation page.

What it posts

  • Receipt: Dr Stock Valuation / Cr Interim Received, at the move's value, dated the move day. Delivery: Dr Interim Delivered / Cr Stock Valuation. Returns reverse the leg they undo.
  • Vendor bill: Odoo debits Stock Valuation; the add-on moves that to Interim Received and reconciles it with the receipt. Customer invoice: the cost-of-goods credit is moved to Interim Delivered.
  • Revaluation: when a bill at another price or a landed cost changes a move's value, the difference is posted on the same accounts the day it is noticed.
  • Opening balance: one entry bringing each stock valuation account to the stock value at the day before the start date, against the stock variation account.
  • Scrap, inventory adjustments and manufacturing to a location that has an account are still posted by Odoo itself; the add-on lists what it leaves to Odoo.

Every entry carries a reference such as ODM/4812/in, is linked to its stock move in Odoo, and is never posted twice. Entries dated in a locked period are moved by Odoo to the first open period and flagged.

Modes and undo

  • Review plans entries and writes nothing. Draft creates them unposted for your accountant. Automatic creates and posts every 15 minutes.
  • Each transfer counts as one transaction on your plan the first time one of its entries reaches Odoo; posting pauses at the monthly limit and resumes next month.
  • Pause stops the runs. Reverse since a date (Setup page) deletes the drafts and reverses the posted entries with Odoo's own reversal, then pauses.
  • After three failed runs in a row the workspace admins get an email; on the first of each month, a summary with the month-end difference.