Skip to main content

Website Customer PO Rules

Purpose​

Website Customer PO Rules connects Customer PO Validation to eCommerce. It uses Odoo's existing Extra Info checkout step and Customer Reference field, then checks the cart against the Sales PO policy before payment. It has no standalone staff menu or policy editor.

This guide follows Odoo 19 source with a targeted Odoo 20 comparison. No checkout or payment was executed during review.

Before you start​

The helper corvus_sale_customer_po_guard_website requires corvus_sale_customer_po_guard and website_sale. It is marked for automatic installation with those dependencies. The reviewed manifest declares no Enterprise-only dependency. Install packages for the same Odoo major version on hosting that supports custom addons.

A Sales Manager must configure and assign the customer's policy through the base module. Installing the bridge does not make every anonymous or unassigned customer subject to a policy. The bridge activates Odoo's Extra Info view and publishes checkout steps whose URL is /shop/extra_info; review that step in your website configuration.

Access and setup​

Policy administration and duplicate approvals retain the base module's Sales Manager controls. Customers enter their reference through the native website order form. They do not receive permission to browse policies, duplicate orders or approval records.

For a reference required during checkout, set Required Stage to Quotation send or Sales order confirmation on the applicable policy. These stages mark the Extra Info input required and disable express checkout for governed orders. Later required stages do not make the reference mandatory at checkout, although duplicate checks can still apply when a reference exists.

Workflow​

  1. Prepare the customer's policy and ensure the resulting website cart has that policy. Choose the intended enforcement and uniqueness scope in the base module.
  2. Add a product to the cart and use the normal checkout flow. At Extra Info, enter the customer's exact PO reference. The field retains the current order reference when the step is displayed again.
  3. Continue toward payment. In Odoo 19, a missing required reference produces Customer PO required with an instruction to return to Extra Info. A disallowed duplicate produces Customer PO needs review and asks the customer to contact Sales, without exposing the conflicting order.
  4. Correct an input mistake or have Sales review legitimate reuse. If the policy requires a manager override, the manager records it on the backend sales order using the base module's workflow. The customer then retries checkout.
  5. Proceed only when both the PO checks and Odoo's ordinary cart/payment requirements are satisfied. In Odoo 19 the final payment-readiness hook invokes the authoritative confirmation-stage PO gate as well.

Practice scenario​

In an authorised test website, assign fictional “North Pier Retail” a policy requiring a PO at confirmation with Block enforcement. Leave its cart reference empty and inspect the Extra Info requirement and payment error. Enter a fresh reference such as NPR-1048 and check whether the cart can continue. This expected behavior is derived from source; no order or payment was submitted.

Troubleshooting and limitations​

Missing prompts usually require checking the cart's policy, commercial customer, company and required stage. A policy that warns and continues does not server-block a PO violation, but its send/confirmation stage still marks the native form field required and disables express checkout; those UI choices are separate from enforcement.

The bridge does not add a Release ID input to Extra Info. Policies requiring distinct blanket-PO releases need a suitable backend process or an independently verified extension. Do not assume customers can enter that field with this bridge alone.

A retained old approval may become stale after material order or policy changes. Resolve that in Sales rather than asking the customer to bypass checkout. The addon does not configure payment providers or take payment on its own.

Catalogue-qualified versions are Odoo 15, 16, 18, 19 and 20. Odoo 17 source is also present, but that pair is not catalogue-qualified. The described flow is source-reviewed for 19.0; 15–18 workflows remain unreviewed here. The targeted 20.0 comparison removes the Odoo 19 payment-error controller and uses checkout-step completion validation: an invalid Extra Info step returns there with a blocking alert. This is a meaningful checkout integration change, so use the package for your exact version.

See Customer PO Validation for policies, approvals and invoices, and Customer PO on Deliveries for shipment checks. Use the Corvus apps catalogue to purchase the exact version.

Open the Odoo 19 demo selector for this catalogue-qualified module/version pair. The catalogue listing was verified; no demo was launched in this review.