Skip to content

Setup & Configuration

Who this is for

The operator standing up the system for the first time, or anyone verifying setup after a migration. Day-to-day users don't need this page.

What you'll accomplish: configure the accounting, journals, inter-company partners, M360 integration, grades, and users so the module is production-ready.

Before you start: the Device Inventory module is already installed and both companies (Reyder Enterprises, Axis Mobile) exist. If not, do that first.


Setup checklist

Work through these in order. Each one links to the detailed section below.


Where the settings live

All module settings are on the Settings → Inventory page, grouped at the bottom:

  • Inter-Company Device Transfers
  • Device Inventory Accounting
  • Consignment Settlement
  • M360 QC Integration

Some rely on the standard Odoo settings elsewhere — specifically Inter-Company Transactions under General Settings. Those are called out below.


Company roles

The module is built for a two-company consignment model:

Company Role Odoo ID
Reyder Enterprises Consignee — runs the warehouse, handles all sales and customer invoices 1
Axis Mobile Device owner — consigns devices to Reyder; receives owner-settlement payouts 2

You can run with a different split (different names, different owner arrangement), but the system is designed around one consignee + one owner. Multiple owners would require multiple agreements, and are supported — multiple consignees against the same owner are not.


Inter-Company Transactions (Odoo general settings)

Only needed if Reyder and Axis will transfer devices between each other.

Settings → General Settings → Companies → Inter-Company Transactions

Inter-company in general settings

Set Inter-Company to Synchronized Orders (or Create Purchase Order). This is what makes a sales order in Reyder auto-spawn a purchase order in Axis when they're buying from each other — it's a standard Odoo feature, not device-inventory-specific.


Device Inventory Accounting

Settings → Inventory → Device Inventory Accounting

Device Inventory Accounting settings

Configure all four before using the module in production. Failure behavior is asymmetric: delivery COGS and retail invoice/COGS hard-fail on missing config (v2.28), but the receiving GL entry still soft-fails — the manifest completes, a chatter warning is posted, and stock lands on-hand with no GL impact. See Accounting Reference — Failure modes for the per-entry breakdown.

Setting What it is Example
Device Stock Journal Journal for all device inventory moves (receiving, COGS, adjustments) Inventory Valuation
Device Valuation Account Asset on balance sheet — holds value of stock on hand Stock Valuation
Device Stock Input Account Liability / expense for Goods Received Not Invoiced (GRNI) — cleared when supplier bill arrives Products to Receive
Device COGS Account Expense — debited when a device sells Cost of Goods Sold

How these accounts are used

  • Receiving: DR Valuation / CR Stock Input — increases stock on hand, records obligation to pay the vendor
  • Sale: DR COGS / CR Valuation — moves value from asset to expense
  • Customer invoice: DR AR / CR Revenue (standard Odoo — uses the customer's sales journal, not the Device Stock Journal)

See Accounting Reference for the full entry table including settlement, retail, and inter-company.

Steps

  1. Go to Settings → Inventory and scroll to Device Inventory Accounting.
  2. Pick the Device Stock Journal (Miscellaneous or Inventory type).
  3. Pick each of the three accounts.
  4. Save.

Consignment Settlement

Same settings page, next section. One field:

Setting What it is
Settlement Journal Purchase journal used for auto-generated vendor bills to device owners (Axis)

Consignment settlement section

When a consignee settlement report is confirmed, the system auto-posts a vendor bill to Axis for the owner-amount total. That bill posts against this journal.

Steps

  1. In Device Inventory Accounting, find Settlement Journal.
  2. Pick a purchase-type journal.
  3. Save.

Inter-Company Device Transfers

Settings → Inventory → Inter-Company Device Transfers

Inter-company transfer settings

Only needed if you use the Inter-Company Transfer Orders feature. Skip this if devices never move between Reyder and Axis.

Setting What to set it to
Inter-Company Partner Partner record representing the other company (as seen from this company). For Reyder's settings, point at the Axis contact; for Axis's settings, point at the Reyder contact.
Inter-Company Sale Journal Sales journal used for inter-company invoices — typically just the standard Sales journal
Default Transfer Location Where incoming transfers land on receipt, e.g. WH/Input

Both companies need their side configured, each pointing at the other company.


M360 QC Integration

Settings → Inventory → M360 QC Integration

M360 settings

M360 is a third-party diagnostic service. Integration is optional — if you don't use M360, leave this disabled.

Setting What it is
Enable M360 Integration Master toggle
Auth Code Provided by M360
Auth Token Provided by M360
API Mode test during setup, live for production

Steps

  1. Tick Enable M360 Integration.
  2. Paste the Auth Code and Auth Token from M360's portal.
  3. Set API Mode to test.
  4. Save.
  5. On the device form, test the Sync M360 button on a known test device. If it pulls data back, credentials are working.
  6. Set API Mode to live when you're ready.

Device Grades

Inventory → Device Inventory → Configuration → Device Grades

Device grades configuration

Four standard grades install with the module: Excellent, Good, Fair, Poor. They cover most use cases. Don't rename or delete them — existing records point at these.

You can add custom grades (e.g. a "Refurbished" grade). Click New, set a name and optional description, save.


Users and permissions

Settings → Users & Companies → Users

User groups

Each user needs the right security groups for their role:

Role Assign these groups
Warehouse operator Stock User
Warehouse supervisor Stock Manager
Sales Salesman + can allocate devices
Sales manager Sales Manager + Stock User
Accounting Accountant + Stock User + Sales Manager (read settlement reports)
Admin All of the above + both companies

Company assignment — critical for separation

  • A person who works only for Axis should have Allowed Companies = Axis Mobile only.
  • A person who works only for Reyder → Reyder only.
  • A person who works for both → both. But this disables data-separation testing for that user.

For the axis_user test account used to verify isolation, Allowed Companies must be Axis Mobile alone. Any extra company breaks the test. See Security & Multi-Company for the verification procedure.


Your first consignment agreement

Once setup is done, create the Reyder ↔ Axis consignment agreement so devices can actually flow. This is a separate page: Consignment Agreements.

Without an active agreement, Reyder can't see Axis's devices, can't allocate them, and can't sell them. It's the last step that turns setup into a working system.


Common setup problems

I filled in all the accounting fields but saves aren't sticking

Most likely you're editing under the wrong company context. Each company has its own Device Inventory Accounting settings. Switch companies via the header dropdown, re-open Settings, and configure each side separately.

The Device Inventory menu doesn't appear

Check that the current user has at least the Stock User group. The menu is gated by group membership.

M360 integration keeps failing with 401

Regenerate the Auth Token in M360's portal — copied tokens sometimes have trailing whitespace. Paste into a plain-text editor first to verify the value, then paste again into Odoo.

After neutralizing, certain crons I want running are disabled

--neutralize disables all crons by design. Re-enable specific ones:

UPDATE ir_cron SET active=true WHERE cron_name ILIKE '%m360%';
Or via the UI at Settings → Technical → Scheduled Actions (requires Developer Mode).