Odoo 16 to 20

Sales Order Amendments documentation

Installation, access responsibilities, guided eligibility, request and approval workflow, decision certificates, safety boundaries and troubleshooting.

CommunityEnterpriseOdoo.shSelf-hosted

Overview

Sales Order Amendments controls corrections to a confirmed sales order before delivery or invoicing. It preserves the order number, records immutable before-and-after values, requires approval by a different authorized approver and retains replaced delivery records in the audit trail.

Sales Order Amendments request and approval workflow
The module separates the request, review and application of a confirmed-order correction.

Final product screens

These are genuine screens captured from the tested release build with synthetic records.

Eligible sales order with amendment guidance
Eligibility and entry point on the confirmed order.
Awaiting My Approval queue
Dedicated independent-manager approval queue.
Submitted before and after review
Frozen proposal, actions and review activities.
Applied amendment audit
Applied decision with actor, time and certificate.
Rejected amendment audit
Rejected decision with rationale and certificate.
Grouped amendment history
Grouped terminal history.
Mobile amendment audit
Responsive narrow-screen audit.
Sales Order Amendment PDF certificate
Stored one-page decision certificate.

Requirements

ItemRequirement
OdooVersion 18 or 19, Community or Enterprise. Install the package matching your Odoo major version.
HostingOdoo.sh or self-hosted Odoo that permits custom add-ons
Dependencysale_stock; Odoo installs its standard Sales and Inventory dependencies
Unsupported hostingOdoo Online databases that do not permit third-party custom add-ons

Installation

  1. Place modapps_sale_order_amendment from the package matching Odoo 16, 17, 18, 19 or 20 in the server add-ons path.
  2. Restart Odoo, enable developer mode and update the Apps list.
  3. Search for Sales Order Amendments and select Activate.
  4. Assign requesters Sales / User access and the dedicated Sales Amendment Approver role to reviewers.
  5. Use at least two accounts for testing because a requester cannot approve their own request.
No threshold, approval route or email template configuration is required.

Roles and responsibilities

RoleAccess
Sales / UserCreates and manages their own amendment requests in allowed companies.
Sales / AdministratorReviews company requests and approves, rejects or cancels them.

The server blocks self-approval even when the requester also has administrator access. Other salespeople cannot browse another requester's amendments.

Supported proposal values

An amendment can change the commitment date, product, line description, quantity, unit of measure, unit price, discount, taxes, sequence, sections, subsections and notes. Lines can be added. Clear Included to remove an original line while preserving it in the comparison.

Request and approval workflow

  1. Open a confirmed sales order. Its eligibility banner explains whether a controlled amendment is available and why.
  2. Select Request Amendment.
  3. Enter a business reason and change a proposed date or at least one After value.
  4. Select Submit for Approval. The proposal freezes and review activities go only to eligible independent managers.
  5. A different Sales Amendment Approver opens Awaiting My Approval, the activity, or the source order's Amendments smart button.
  6. The approver reviews the comparison and selects Approve and Apply, or enters a decision note and rejects it.
  7. Odoo locks and revalidates the source order. If still safe and unchanged, it applies the proposal through standard Odoo logic.
  8. The terminal audit exposes its stored Download Certificate action.
Stale request: if the source order changes after the snapshot, cancel the request and create a new one.

Request states

StateMeaning
DraftEditable request and proposal.
Awaiting ApprovalFrozen proposal waiting for a different administrator.
AppliedProposal passed final validation and was applied.
RejectedAdministrator rejected it with a decision note; order unchanged.
CancelledRequester or administrator cancelled it; order unchanged.

Audit and decision certificate

The record keeps its reference, source order, company, customer, requester, decision actor, timestamps, reason, decision note, original and proposed dates, before-and-after line values, change type and replaced deliveries.

Every amendment applied or rejected after 19.0.1.2.0 stores a one-page PDF certificate. Certificate rendering belongs to the same transaction: a rendering failure rolls back the decision instead of leaving an incomplete audit.

Approval preserves the sales order number and original order date. The old unprocessed delivery is cancelled and linked to the amendment; standard confirmation creates its replacement.

Safety boundary

The module accepts only a confirmed order with a direct, unprocessed warehouse-to-customer delivery and no downstream work that would make automatic correction ambiguous.

It refuses

  • Invoices or refunds, including drafts; payment transactions; and down payments.
  • Picked, completed, returned or manually cancelled stock.
  • Orders changed after the amendment snapshot was captured.
  • Dropship, make-to-order, multi-step or other special routes.
  • Configured or combo products, subscriptions and expense-derived lines.
  • Services that create projects or tasks.

These checks run when the request is created, submitted and approved.

Operational expectations

  • Only one Draft or Awaiting Approval request can exist per order.
  • The module does not send automatic email. It creates standard Odoo review activities for eligible independent managers and closes only amendment-owned activities on terminal actions.
  • It does not implement pre-confirmation thresholds or a multi-level approval matrix.
  • There is no automatic rollback after application.
  • Back up the database before uninstalling a production module.

Upgrade to 19.0.1.4.2

  1. Back up the database and filestore.
  2. Replace the add-on directory with the package for the same Odoo major version.
  3. Restart Odoo and update Sales Order Amendments from Apps.
  4. Reload long-lived browser tabs.
  5. Validate one new decision and download its certificate.

Existing requests and audit records are preserved. Older terminal records do not receive certificates retroactively.

Changelog

19.0.1.4.2: corrected certificate currency and change labels, encoding regression coverage, and rebuilt release media.

19.0.1.4.1: compact eligibility, clear state ribbons, field comparison badges, and separated approval actions.

19.0.1.2.0: actionable eligibility guidance, stored applied/rejected decision certificates, rejection actor/time, and transactional report-failure protection.

Troubleshooting

SymptomCheck
Submit button missingA real date or line-value difference is required; a reason alone is not a proposal.
Approval buttons missingOpen through the source order's Amendments smart button. Confirm Sales / Administrator access and a different requester.
Unsafe-order messageInspect invoices, payments, deliveries, returns, routes and special product or service lines.
Stale-request messageThe source order changed after capture. Cancel and create a fresh request.
Active-request messageComplete or cancel the current Draft or Awaiting Approval request.

Support

Email info@modapps.dev. Include the Odoo 16, 17, 18, 19 or 20 build, module version, request reference, relevant company and route configuration, reproduction steps and server traceback. Do not send passwords, API keys, customer secrets or unredacted personal data.

Response target: initial response within one business day. Resolution time depends on reproducibility, Odoo configuration and severity.

Open Sales Order Amendments on Odoo Apps →