メインコンテンツにスキップ
商品詳細は英語で表示されます。翻訳は近日公開予定です。
Sale Order Payment Status — A made-to-order Odoo module that surfaces live payment status, paid/due amounts, and linked trans — 1/1イメージプレビュー

A made-to-order Odoo module that surfaces live payment status,

paid/due amounts, and linked transactions directly on the sale order — no digging through the accounting back office.

ECOSIRE builds, installs, and supports it for your Odoo 17/18/19.

Sale Order Payment Statusとは?

A made-to-order Odoo module that surfaces live payment status, paid/due amounts, and linked transactions directly on the sale order — no digging through the accounting back office. ECOSIRE builds, installs, and supports it for your Odoo 17/18/19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

主な機能

Adds a stored, computed `payment_state` Selection field on `sale.order` mirroring Odoo's `not_paid` / `partial` / `in_payment` / `paid` / `reversed` states
Computes `amount_paid`, `amount_residual` (due), and `payment_percentage` via `@api.depends` methods walking `invoice_ids` and their reconciled `account.payment` / `account.move.line` records
Correct handling of down payments, partial settlements, and credit notes so the paid/due figures reconcile to the accounting truth
Colour-coded payment status badge rendered in the sale order form header via XML view inheritance (or an OWL widget for a richer visual)
Embedded payments panel on the order showing date, journal, payment method, and amount for each linked transaction
Optional `payment_state` column on the sale order list/tree view for at-a-glance scanning
Search filters (Fully Paid / Partially Paid / Unpaid) and a group-by on payment state, enabled by storing the computed fields
Kanban card colour decoration driven by payment state for the sales pipeline view
Multi-currency-aware amounts that respect the order and company currency conventions
Access controlled via `ir.model.access.csv`, with optional `record rules` so reps see figures only for their own teams
Optional QWeb addition to stamp payment status and paid/due totals onto the quotation/order PDF
Optional automated action / server action to flag or notify on orders left unpaid past a configurable threshold
Fields exposed to the XML-RPC / JSON-RPC API so external systems can read payment status per order
Built and tested against your exact target: Odoo Community or Enterprise, version 17.0, 18.0, or 19.0

受注生産、すべておまかせ

自分での設定は不要 — ECOSIRE が構築・インストール・サポートする実働アプリです。

  1. 1

    ご注文

    一回限りの構築料金から始めます。キックオフで一緒に範囲を決めます。

  2. 2

    構築とインストール

    ECOSIRE がお客様の Odoo 上で構築・設定・インストールします。

  3. 3

    本番稼働 + サポート

    約1週間(営業日ベース)で稼働し、本番稼働後2週間のサポートが付きます。納品したコードの不具合は無償で修正します。

技術仕様

Odoo互換性
Odoo 17, Odoo 18, Odoo 19
エディション
Enterprise&Community
ライセンス
ライセンスの確認が必要です
Python要件
Python 3.10+
データベース
PostgreSQL 12+

この製品について

Sales reps and order-desk teams lose time every day answering one question: "has this order actually been paid?" In native Odoo the answer lives one or two clicks away — you open the sale order, jump to the related invoice, then to the payments, and reconcile in your head across down payments, partial settlements, and credit notes. The sale.order form exposes an invoice_status field ("to invoice", "invoiced", "nothing to invoice"), but that describes invoicing progress, not money received. There is no core field on the order that tells you at a glance that a customer paid 60% up front and still owes the balance. That gap is where goods get released against unpaid orders and where finance and sales end up maintaining two different versions of the truth.

We build a made-to-order module that pulls the payment picture back onto the sale order where the people who need it actually work. Technically it adds computed, stored fields to sale.order — for example payment_state (a Selection mirroring the standard not_paid / partial / in_payment / paid / reversed values), amount_paid, amount_residual (due), and a payment_percentage — driven by @api.depends compute methods that walk the order's invoice_ids, their own payment_state, and the reconciled account.payment / account.move.line records. Because the fields are stored, they are filterable and groupable in list views, usable in search domains, and available to reports and the XML-RPC/JSON-RPC API. Recomputation is triggered cleanly off invoice and payment changes so the status stays accurate without a manual refresh.

On the UI side we extend the sale order form (XML view inheritance, or an OWL widget where a richer visual is wanted) to show a colour-coded status badge in the header, a paid-versus-due summary, and an embedded list of the linked payments with date, journal, method, and amount. The order list view gets an optional payment_state column and a set of filters ("Fully Paid", "Partially Paid", "Unpaid") plus a group-by so a rep can slice their pipeline by cash position in one click. Access is governed by ir.model.access.csv and, where you need reps to see only their own teams' figures, record rules — so the payment data respects the same visibility model as the rest of your Odoo. Optional add-ons we scope on request include a QWeb payment-status stamp on the order/quotation PDF, an automated action or server action that flags orders unpaid past a threshold, and a colour decoration on the kanban card.

Because this is built to order, nothing ships until we agree the scope. After a short scoping call we confirm exactly which fields, filters, views, and any automation or reporting you need, then hand back an installable module targeting your specific Odoo edition and version (Community or Enterprise, 17.0 / 18.0 / 19.0), tested on a staging copy of your database before it touches production. Typical delivery is one working week from confirmed scope. Pricing starts from $999 (indicative, single-company base scope); multi-company payment consolidation, deeper multi-currency handling, extra automation or reporting, and integration with non-standard payment/reconciliation flows increase the quoted scope.

得られるもの

  • Installable, version-pinned module source code for your Odoo edition and version (17.0 / 18.0 / 19.0)
  • Installation and configuration on your environment, including access-rule and record-rule setup
  • Technical documentation: model fields, compute dependencies, view inheritance points, and security rules
  • End-user guide plus a live training session for your sales and finance teams
  • UAT on a staging copy of your database with a documented rollback plan before production
  • A defined post-go-live support window for fixes and questions
  • Git repository handover with full commit history and tagged release
  • Manifest (`__manifest__.py`) and dependency notes so future upgrades are traceable

これは誰のためのものですか

Sales Manager / Order Desk Lead

Needs to see cash position across the pipeline without asking finance. Wants list filters and a group-by on payment state so the team can prioritise fulfilment and follow-ups by who has actually paid.

Finance / AR Controller

Owns the payment truth and wants sales looking at the same numbers. Values that the fields compute from real reconciled `account.payment` records rather than a manually maintained flag, keeping AR and sales aligned.

Odoo Administrator / Internal IT

Responsible for the instance and its upgrades. Wants a clean, version-pinned module with documented fields, proper `ir.model.access.csv` security, and a git handover — not a black-box customisation that breaks on the next migration.

Operations / Fulfilment Coordinator

Releases goods and schedules delivery. Needs an unambiguous unpaid/partially-paid signal on the order itself to avoid shipping against orders that are not yet settled.

Sale Order Payment Status の比較方法

基準エコシエールカスタムビルド競合他社Odoo 標準機能
Fit to your workflowBuilt to your confirmed scope, fields and filters match how your team worksFully bespoke but you specify and manage everythingGeneric feature set, take it as shippedPayment lives in accounting, not on the order
Payment status on the sale orderStored `payment_state` + paid/due badge directly on the orderPossible, depends on your developer's designUsually a basic status fieldOnly `invoice_status` (invoicing, not money received)
Accuracy sourceComputes from reconciled `account.payment` / move lines via `@api.depends`However it is coded and maintainedOften a lighter compute, varies by vendorAccurate in accounting, not surfaced on the order
Version & edition targetingPinned and tested for your 17/18/19, Community or EnterpriseWhatever you build forDepends on the listing's supported versionsBuilt in, no targeting needed
Security model`ir.model.access.csv` + optional record rules for team-scoped visibilityOnly if you build it inBaseline access rules, rarely team-scopedStandard Odoo access rules
Delivery timeone working week from confirmed scopeWeeks to months depending on hiring and specsInstant install, but genericAlready present, but not on the order
Support & handoverSupport window, docs, training, full git repo handoverDepends on your team's retentionVendor support tickets, no source ownershipCovered by your Odoo support/partner
Cost modelIndicative from $999, fixed quote after scopingDeveloper time, often the most expensiveLow per-listing licence feeNo extra cost, but the gap remains

Sale Order Payment Status に関するよくある質問

Is this a ready-made module I can download and install today?

No. This is a build-to-order productized service. We build the module to your confirmed scope and target it precisely to your Odoo edition and version, then install and support it. There is no instant download — the value is that it fits your data model, security rules, and workflow rather than being a generic drop-in.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we agree the fields, views, filters, and any automation or reporting, then build and test on a staging copy of your database before go-live. Tight, single-company base scopes land at the shorter end; multi-company or heavier automation extends it.

How does pricing and scoping work?

Pricing starts from $999 as an indicative from-price for a single-company base scope. We confirm requirements on a short scoping call and then send a fixed written quote — no surprises. Drivers such as multi-company consolidation, deeper multi-currency handling, extra automation, custom reporting, or unusual payment/reconciliation flows increase the quoted scope.

Which Odoo versions and editions do you support?

We build for Odoo 17.0, 18.0, and 19.0, on both Community and Enterprise. The module is pinned to your specific version in its `__manifest__.py` and tested against that target. If you run a customised or hosted instance (Odoo.sh, on-prem, or a partner host), we account for that during scoping.

What about support and future updates?

Every engagement includes a defined post-go-live support window for fixes and questions. Because you receive the full git repository and technical docs, your own team can maintain it too. When you upgrade Odoo to a new major version, we can quote a migration pass to re-target and re-test the module against the new release.

Will it stay accurate as invoices and payments change?

Yes. The status fields are computed with `@api.depends` off the order's invoices and their reconciled payments, and recomputation is triggered when those records change — so a partial payment, a new down payment, or a credit note updates the sale order's paid/due figures without any manual refresh.

Can we get payment status on the order PDF or trigger alerts?

Both are optional add-ons we scope on request. We can extend the QWeb quotation/order report to stamp payment status and paid/due totals, and add an automated action or server action to flag or notify on orders left unpaid past a threshold you define. These affect the quoted scope but are common requests.

見積もりを依頼

Sale Order Payment Status

A made-to-order Odoo module that surfaces live payment status, paid/due amounts, and linked transactions directly on the sale order — no digging through the accounting back office. ECOSIRE builds, installs, and supports it for your Odoo 17/18/19.

  • Adds a stored, computed `payment_state` Selection field on `sale.order` mirroring Odoo's `not_paid` / `partial` / `in_payment` / `paid` / `reversed` states
  • Computes `amount_paid`, `amount_residual` (due), and `payment_percentage` via `@api.depends` methods walking `invoice_ids` and their reconciled `account.payment` / `account.move.line` records
  • Correct handling of down payments, partial settlements, and credit notes so the paid/due figures reconcile to the accounting truth
  • Colour-coded payment status badge rendered in the sale order form header via XML view inheritance (or an OWL widget for a richer visual)

見積もりを依頼

Sale Order Payment Status のご要望をお知らせください。価格、ライセンスの選択肢、貴社に合わせたご提案を、通常1営業日以内にお送りします。

今すぐのお支払いはありません。これはチームへの見積もり依頼を送信します。価格と次のステップをメールでご案内します。