Documentation
Purchase Orders
Purchase Order is the supplier commitment that connects commercial terms, item quantities, pricing, tax and financial dimensions to controlled Inventory receipt, supplier invoicing, traceability and reversal.
What Purchase Order controls
Purchase Order is the formal supplier commitment in AkshaERP. It can be created directly, seeded from an Approved Purchase Requisition, or created from an Approved RFQ Award.
The document does more than store supplier, item and price. It carries the receiving location, commercial dates, payment terms, pricing source, price list, currency, discounts, tax snapshot, financial dimensions and item-line details that later become Stock Receipt and Purchase Invoice data.
A Purchase Order therefore sits at the boundary between Procurement, Pricing, GST/Tax, Inventory, Accounts Payable and Traceability. A change that looks small on the PO can affect what is received, invoiced or reversed later.
Before you begin
Before creating a live Purchase Order, confirm that the Supplier, Item/UOM setup, receiving Location, purchasing price source, tax setup and any required Business Unit / Cost Center configuration are ready.
For an RFQ-driven purchase, normally create the PO from the approved award so supplier, quantities and negotiated commercial values remain traceable to the sourcing decision.
What is mandatory?
AkshaERP has both hard save validations and fields that are mandatory for a correct downstream process. The table below distinguishes them so users do not confuse “screen lets me save” with “document is operationally complete”.
Purchase Order minimum requirements
| Requirement | Mandatory level | Why it matters |
|---|---|---|
| Supplier | Hard save requirement | The PO cannot be saved without a Supplier. Supplier also drives batch lookup context, tax/commercial context and downstream AP documents. |
| At least one active line | Hard save requirement | The PO cannot be saved or tax-previewed with no order lines. |
| Product / Service | Required for a usable line | Pricing and downstream receipt/invoice need an Item/Service identity. Automatic pricing requires an item ID. |
| Quantity > 0 | Required for automatic pricing and processing | The pricing service rejects zero/non-positive quantity. Quantity becomes ordered/received/invoiced quantity in automated processing. |
| UOM | Required line field | Automatic pricing requires Unit of Measure and downstream documents carry the UOM. |
| Payment Terms | Required UI field | Carries supplier payment timing/condition into the commercial flow. |
| Price Fetch Source | Required UI field | Controls whether price comes from Pricing Engine, Item Master, or fallback logic. |
| Currency | Required UI field | Defines purchase currency. Defaults to INR unless another currency/price list is chosen. |
| Price List | Conditional | Required only when a Pricing Engine source is active. Disabled in Item Masters mode. |
| Discount Type | Required UI field | Controls whether header discount is Percentage or Amount. Defaults to PERCENT. |
| Location Type / Location | Operationally required for normal downstream receipt | Usually defaulted from the user. Stock Receipt and inventory processing use the PO location. |
| Business Unit / Cost Center | Configuration-dependent | Required when your Financial Dimensions policy marks them mandatory; carried into the transaction context. |
Understand the screen before entering data
Purchase Order screen areas
| Area | What it is for |
|---|---|
| General tab | Supplier, Order Date, Payment Terms and receiving/operating Location. |
| Delivery tab | Expected delivery, validity, freight and shipment reference information. |
| Price & Pay tab | Price source, Currency, Price List, header discount and fixed PURCHASE pricing context. |
| Accounting tab | Financial Dimensions such as Business Unit and Cost Center. |
| Lines tab | Items/services, UOM, Quantity, Unit Price, discount, tax, batches, item sets and totals. |
| Right-side Insights | Order value, discount/net/tax/freight summary, tax warning, supplier/date/location context. |
| Actions menu | Save/Apply, tax preview, Process Order, approval, receipt, invoice, copy, unconfirm and cancellation actions. |
| Traceability icon | Read-only procure-to-pay relationship, milestone, event and document graph view. |
General tab – field reference
| Field | Required | Meaning / system behavior |
|---|---|---|
| Order Number | No before first save | Purchase Order identifier. Leave blank to let the Purchase Order sequence allocate the number. Once the PO exists, the field is locked. |
| Supplier | Yes | Supplier receiving the commitment. Lookup is restricted to Supplier business partners in the current organization context. |
| Order Date | Defaulted / expected | Defaults to today. Used as the commercial PO date and contributes to pricing/tax/document context. |
| Payment Terms | Yes | Supplier payment condition from the shared SAL_PAYMENT_TERMS value set. Current active options are administrator-maintained. |
| Location Type | Defaulted | Selects the location class, normally Branch, Store or Warehouse according to configured INV_PARENT_LOCATION_TYPES values. |
| Location | Defaulted | Actual receiving/operating location. The available lookup changes when Location Type changes. |
Delivery tab – field reference
| Field | Required | Meaning / when to use |
|---|---|---|
| Expected Delivery Date | No | Date by which the supplier is expected to deliver. Useful for procurement follow-up and supplier-performance context. |
| Order Valid Until | No | Commercial validity/end date for the PO commitment. Use when the order terms should not remain open indefinitely. |
| Freight Charge | No | Header freight amount. It is added to the PO header Total Amount in the current calculation. |
| Carrier Name | No | Transport/carrier reference when known at PO stage. |
| Tracking Number | No | Shipment tracking/reference number when available. |
Price & Pay tab – field reference
| Field | Required | Meaning / behavior |
|---|---|---|
| Price Fetch Source | Yes | Selects the pricing strategy used when Item/UOM/Quantity/Price List changes. It may default from the PUR / FETCH_PRICE_FROM application setting for the current organization/location scope. |
| Currency | Yes | PO currency. Defaults to INR. When a Pricing Engine Price List is selected, Currency is taken from that Price List and becomes locked while that Price List is active. |
| Price List | Conditional | Applicable Purchase Price List. Enabled/required only in Pricing Engine modes. The screen can auto-pick the default or first applicable list when none is selected. |
| Discount Type | Yes | PERCENT or AMOUNT. Defaults to PERCENT. |
| Discount Value | No | Percentage or fixed amount according to Discount Type. The value is distributed to active lines by the Lines logic. |
| Pricing Context | System | Read-only PURCHASE context used to resolve applicable purchasing price lists/rules. |
Price Fetch Source – what each value means
| Value | What the system does | Best use case |
|---|---|---|
| PRICING_MODULE | Uses AkshaERP Pricing Engine with an applicable Purchase Price List and pricing context. | Use when purchase prices are centrally governed by effective price lists/rules. |
| ITEM_MASTERS | Uses Item Master purchasing price. Price List is cleared/disabled. | Use when each Item carries the approved purchasing price directly. |
| PRICING_THEN_ITEM | Tries Pricing Engine first; if a price is not found, falls back to Item Master purchasing price. | Use when controlled pricing is preferred but Item Master price is an approved fallback. |
Accounting tab – Business Unit and Cost Center
The Accounting tab uses the shared Financial Dimensions framework for module PUR, function PURCHASE_ORDER and source document PURCHASE_ORDER.
Business Unit and Cost Center are governed by the Financial Dimensions configuration. They may be optional, defaulted or mandatory depending on your organization setup.
When the PO is saved, the current client normalizes line Business Unit and Cost Center to the header values; the server then enriches/validates the transaction again through Financial Dimensions.
Lines tab – why each line matters
A PO line is the commercial definition of what is being bought. Item, UOM and Quantity determine the requirement; Unit Price and discount determine commercial value; tax fields determine statutory value; Batch/Item Set controls add inventory-specific context.
Line changes also recalculate PO header Gross, Discount, Net, Taxable, Tax and Total values automatically.
Purchase Order line fields
| Field | Required | Meaning / system behavior |
|---|---|---|
| Line No | System | Sequence within the PO. Generated/maintained automatically. |
| Actions | Contextual | Shows Item Set actions when the selected item supports Item Set behavior. |
| SKU | System/reference | Read-only SKU copied from the selected Item. |
| HSN | System/reference | Read-only HSN copied from Item master for tax/reference context. |
| Price List | Conditional | Line Price List in Pricing Engine mode. Defaults from header; changing it triggers repricing. |
| Product/Service | Required for usable line | Item/service being purchased. Selection fills item identity, SKU/HSN/SAC and default UOM fields. |
| Batch Number | No / inventory-specific | Optional batch reference. Lookup is restricted by selected Item and, when Supplier exists, is supplier-aware. |
| UOM | Yes | Unit of Measure used for quantity and pricing. Defaults from Item but can be changed. UOM change triggers repricing. |
| Quantity | Must be > 0 for pricing/process | Ordered quantity. Changing Quantity triggers repricing and tax recalculation unless the line is manually priced. |
| Unit Price | Auto or manual | Resolved from pricing source or entered manually. Manual entry changes the line to MANUAL pricing so auto-pricing does not overwrite it. |
| Pricing | System status | Shows pricing state such as PRICING, PRICED, ITEM_PRICE, MANUAL, NOT_FOUND, ERROR or SET_PRICE. |
| Tax Mode | System status | Shows whether tax was manually overridden versus engine/server-derived. |
| Gross Amt | System | Quantity × Unit Price. |
| Discount % | No | Line discount percentage. Header discount can populate/distribute this value. |
| Disc Amt | System | Gross × Discount %. |
| Net Amt | System | Gross − Discount. |
| Tax % | Auto or manual | Tax rate from pricing/GST preview or manual override. Editing it marks tax manual for the line. |
| Tax Amt | System | Calculated tax value. |
| Line Total | System | Taxable value + Tax Amount. |
Item selection – what happens automatically
Selecting Product/Service maps Item ID, SKU, HSN, SAC and default UOM information into the PO line. If Quantity is empty/zero when a different item is selected, the line is initialized to Quantity 1.
The selected Item is also link-enabled so authorized users can open the Item master from the line for reference.
The Item lookup includes the Item purchasing price as reference, but the line Unit Price is still resolved according to the active Price Fetch Source.
UOM – why it is not just a label
UOM identifies the unit in which the ordered Quantity is expressed. A price for Each may not be the same as a price for Box, Pack, Kg or another purchasing unit.
The UOM lookup stores UOM ID, code and name. Automatic line pricing requires a UOM and treats UOM change as a pricing trigger.
UOM is carried into Stock Receipt and Purchase Invoice created from the PO, so an incorrect UOM can affect quantity interpretation across the procure-to-pay chain.
Quantity – what changes when you edit it
Quantity is a pricing trigger. In automatic pricing mode, changing Quantity requests a fresh price because quantity breaks/tiers can affect the applicable purchase price.
Quantity also recalculates Gross Amount and therefore Discount Amount, Net, Tax and Line Total.
When Process Order automatically creates a Goods Receipt, the current automated payload carries the full active PO line Quantity as both Ordered Qty and Received Qty.
How line pricing actually works
- 1. AkshaERP determines the current Price Fetch Source from the PO header. If not already set, it can be defaulted by the PUR / FETCH_PRICE_FROM application setting for the organization/location scope.
- 2. Automatic pricing requires Item, Quantity greater than zero and UOM. In Pricing Engine mode, an applicable Price List is also required.
- 3. Changing Item, UOM, Quantity or Price List queues the line for repricing.
- 4. The pricing resolver returns Unit Price and source information. It also attempts line-level GST/tax preview so price and tax stay synchronized.
- 5. The line recalculates Gross, Discount, Net, Taxable, Tax and Total.
- 6. If the buyer edits Unit Price manually, the line becomes MANUAL and later automatic pricing triggers do not overwrite that buyer decision.
Pricing status meanings
| Status | Meaning |
|---|---|
| PENDING | A pricing-relevant value changed and the line is waiting for a fresh pricing evaluation. |
| PRICING | Pricing request is currently running. The line grid shows a pricing-in-progress overlay in Pricing Engine mode. |
| PRICED | Pricing Engine supplied the line price. |
| ITEM_PRICE | Item Master supplied the price, including Pricing-then-Item fallback. |
| MANUAL | Buyer manually edited Unit Price. Automatic pricing will not overwrite it unless the line is reset by another supported flow. |
| SET_PRICE | Price came from Item Set setup when the Item Set is kept as a single purchase line. |
| NOT_FOUND | No price was found for the requested pricing context. Unit Price/tax may remain zero and needs user attention. |
| ERROR | Pricing request failed. Review configuration/data before approval. |
Price List behavior at header and line level
In Pricing Engine mode, the header can auto-select the default or first applicable Purchase Price List for organization, PURCHASE pricing context and currency.
A line normally inherits the header Price List. The line also exposes Price List so a different applicable list can be chosen where policy permits.
Changing the header Price List updates active lines to the new list and requeues automatic pricing for lines that are not manually priced.
Discounts – Percentage versus Amount
Line Discount % can also be edited directly. Gross, Discount Amount and Net recalculate immediately.
| Discount Type | How it is applied |
|---|---|
| PERCENT | Header Discount Value becomes the discount percentage on every active line. |
| AMOUNT | Header Discount Value is distributed proportionally across active line gross values; each line receives an equivalent discount percentage so the total distributed amount equals the requested header discount. |
Tax behavior and Preview Tax
Tax-relevant changes include Supplier, Order Date, Location, Currency, Price List, Price Fetch Source, commercial totals and line changes. These changes can mark the tax state NOT_CALCULATED or STALE.
Preview Tax requires a Supplier and at least one line. If the PO is new or has unsaved line changes, AkshaERP saves those changes first and then asks the server GST adapter to recalculate/store the Purchase Order tax preview.
The right-side Insights panel warns when tax status is not CALCULATED. It also shows Tax Regime, Tax Status and Tax Jurisdiction.
Barcode entry
The Lines toolbar contains Scan or Enter Barcode. Enter/scan a barcode and press Enter.
If the Item is already on the PO, its Quantity is increased by 1 and the line is re-priced. If it is not present, AkshaERP adds a new line with Quantity 1, Item identity, default UOM and then triggers pricing.
Item Sets on Purchase Order lines
When the selected Item represents an Item Set, the line Actions control can open the Item Set drawer.
You can keep the Item Set as one PO line, in which case AkshaERP applies the configured Set Unit Price and marks the line as SET_PRICE/manual, or explode selected Item Set components into separate Purchase Order lines.
When exploded, component lines inherit document pricing context and are individually priced unless they carry an intentional manual/set price.
How totals are calculated
| Value | Calculation / source |
|---|---|
| Gross Amount | Sum of Quantity × Unit Price for active lines. |
| Total Discount | Sum of line Discount Amount. |
| Net Amount | Gross − Discount. |
| Taxable Amount | Current client totals use line Net Amount; server tax preview can preserve governed taxable values. |
| Total Tax | Sum of line Tax Amount. |
| Freight Charge | Header Delivery-tab freight amount. |
| Total Amount | Sum of active line totals + Freight Charge. |
Save and Apply – what is the difference?
| Action | What happens |
|---|---|
| Save | Saves the Purchase Order and returns to the Purchase Order list. |
| Apply | Saves the Purchase Order but keeps the document open so you can continue pricing, tax review or other work. |
Confirm versus Approve
AkshaERP checks whether an active Purchase Order approval template/chain is configured for module PUR and function PURCHASE_ORDER.
If no approval flow is configured, use Confirm. If an approval flow is configured, use Approve. The current screen prevents using the wrong action and shows a warning telling the user which action is expected.
In the current implementation, both actions save the Purchase Order with final user-facing status Approved. The Confirmed stage remains visible in the status path for compatibility/history but Confirm does not persist a separate Confirmed result in this flow.
| Status | Meaning / what becomes possible |
|---|---|
| DRAFT | Editable PO. Add/change lines, pricing, discount, delivery, dimensions and tax. |
| CONFIRMED | Compatibility/intermediate status recognized by the status path; current Confirm action normally persists Approved directly. |
| APPROVED | Commercially approved. Stock Receipt and Process Order fulfillment steps become available. Unconfirm is possible only while no downstream receipt/invoice exists. |
| RECEIVED | Physical receipt has been completed. Create Purchase Invoice becomes available. |
| INVOICED | Linked Purchase Invoice has been posted/processed and the PO has advanced to Invoiced. |
| CANCELLED | PO was cancelled through the controlled cancellation service, including reversal/cancellation of linked effects where applicable. |
Process Order – what it is for
Process Order is AkshaERP’s straight-through procure-to-pay orchestration for a Purchase Order. It previews the remaining steps, shows what is already complete, lets the user choose how far to process, requires explicit consent, and then executes the selected chain.
The default recommended target for Purchase Order is Purchase Invoice Post. You do not have to run all the way to invoice; the “Process up to” choices let you stop at an earlier remaining milestone.
Process Order – the six Purchase Order steps
| Step | Process milestone | What AkshaERP does |
|---|---|---|
| 1 | Approve Purchase Order | If the PO is not already Approved/Received/Invoiced, updates it to Approved. |
| 2 | Create Stock Receipt | Creates a Goods Receipt linked to the PO with Supplier, Organization, Location, PO reference, currency/price-list context and active PO lines. |
| 3 | Receive Stock Receipt | Moves the linked Goods Receipt to Received. |
| 4 | Post Stock Receipt | Moves the linked Goods Receipt to Posted, completing the Inventory posting stage. |
| 5 | Create Purchase Invoice | Creates a Purchase Invoice linked to the PO using the PO supplier, location, payment/currency/pricing context and commercial/tax line snapshot. |
| 6 | Post Purchase Invoice | Ensures the Purchase Invoice reaches a posting state. Purchase Invoice posting finalizes GST/accounting and advances the linked PO to Invoiced. |
Process Order – step statuses in the drawer
| Status | Meaning |
|---|---|
| DONE | The milestone or linked document already exists/is complete. Process Order reuses it instead of creating a duplicate. |
| WILL_RUN | The step is available and will run if it is at or before the selected target. |
| BLOCKED | A validation/problem prevents processing. Resolve the blocker before continuing. |
| SKIPPED | The shared Process Order framework can mark non-applicable steps skipped. Purchase Order normally uses all six milestones. |
Process Order – blockers and duplicate protection
The preview blocks processing when the PO has no active lines or is Cancelled.
It also checks existing Goods Receipts by PO source reference. If multiple active Goods Receipts already exist for the same PO, Process Order blocks rather than guessing which one should continue.
When one active Goods Receipt or an existing Purchase Invoice already exists, Process Order detects and reuses that document. This makes retry/re-entry idempotent instead of generating duplicates after a partial failure.
Process Order – consent and target selection
The drawer shows the recommended target and the remaining runnable steps. Select the milestone you want to process up to.
Before execution you must select “I confirm the listed documents can be created and posted by this process.” The server also requires this consent flag; it is not only a visual checkbox.
What Process Order creates in Stock Receipt
The auto-created Goods Receipt references the Purchase Order as its source and carries Supplier, Organization, PO Location, PO number, purchase Price List, Currency and Exchange Rate.
Each active PO line becomes a receipt line carrying Item, source PO line, UOM, full ordered quantity, full received quantity, Batch where selected, Unit Price, discount and line amount.
What Process Order creates in Purchase Invoice
The automated Purchase Invoice references the Purchase Order and carries Supplier, Organization, Location, payment terms, Currency/Exchange Rate, Price List/Pricing Source, GST regime and the active PO line commercial/tax values.
Line mapping carries Item, PO line reference, UOM, Quantity, Unit Price, discount, taxable value, tax code/category/rate/amount, Batch and Line Total.
Process Order treats “Create Purchase Invoice” and “Post Purchase Invoice” as separate milestones and ensures the invoice is in a posting state by the final milestone. Do not depend on an editable intermediate Draft invoice when using straight-through Process Order.
Stock Receipt action versus Process Order
| Use | Choose this when |
|---|---|
| Stock Receipt action | You want receiving staff to review actual delivered quantity, rejected quantity, batch/allocation or partial delivery before posting. It opens Inventory Stock Receipt seeded with the PO. |
| Process Order to receipt | The PO is straightforward and the full active PO quantity can be received/posted without exception. |
Create Purchase Invoice action versus Process Order
Create Purchase Invoice is enabled only when the PO is Received and not Cancelled. It opens the Purchase Invoice screen with the PO reference so AP can review the supplier invoice before posting.
The Purchase Invoice service also independently enforces receipt-before-invoice for a PO-linked invoice. A user cannot bypass the receiving control merely by navigating to the invoice function.
Traceability icon – what it shows
The header also shows counts of Documents, Links, Events and Flows. Where the Traceability Framework knows the route for a document, Open Source / document links open the underlying business document in a new tab.
Traceability tabs
| Tab | What you can understand |
|---|---|
| Milestones | Business process flows/milestones recorded for the document chain. |
| Graph | Visual relationship graph of connected source/downstream documents. Select nodes to inspect the chain. |
| Events | Chronological event history showing Date & Time, Event, Status, Message and Source Reference. |
| Relationships | From document → relationship type → To document, including relation status, quantity and amount where recorded. |
How Process Order updates Traceability
After the Purchase Order processing chain runs, the server registers/refreshes the Purchase Order trace node and links the Goods Receipt and Purchase Invoice where those documents exist.
This is why Process Order and Traceability work together: Process Order performs the governed chain, while Traceability explains the chain afterward.
Unconfirm – when you can return an Approved PO to Draft
Unconfirm is available only for an Approved Purchase Order. The user may enter an optional reason.
Before unconfirming, the server checks for any active Stock Receipt or Purchase Invoice linked to the PO. If either exists, Unconfirm is blocked.
When allowed, the PO returns to Draft, Approved By/At are cleared, and an “Unconfirmed by …” note is appended to Comments. Leaving Approved also reverses the PO’s approval-stage stock transaction/reference through the Stock service.
Copy Order – what is copied and what is not
Copy Order creates a brand-new editable Draft with a new Purchase Order number and today’s Order Date.
It carries reusable commercial/header details and PO lines, but clears source Requisition, approval/cancellation state, persistent line IDs and batch IDs. Tax is marked for recalculation.
Stock Receipt, Purchase Invoice and journals are not copied.
Cancel Order – controlled reversal of the procurement chain
Cancel Order is available for a saved non-Draft, non-Cancelled PO and requires a Cancellation Reason.
Cancellation is not a simple PO status change. The cancellation service inspects linked Goods Receipts and Purchase Invoices and reverses/cancels the chain inside one controlled transaction.
What controlled PO cancellation can reverse/cancel
| Area | Cancellation behavior |
|---|---|
| AP payments applied to linked invoices | Posted AP payments are reversed through the AP Payment service before invoice cancellation. |
| Supplier advance applications | Active supplier-advance applications on linked invoices are reversed and advance balances are refreshed. |
| Purchase Invoice | Linked Purchase Invoice journal entries are unposted/cancelled, then invoice status/balance/approval state is cancelled/reset. |
| Goods Receipt | Received stock is reversed, linked Goods Receipt journal entries are unposted/cancelled, and the receipt is marked Cancelled. |
| PO approval-stage stock transaction | The Purchase Order stock transaction/reference is reversed for Approved/Received/Invoiced states. |
| Purchase Order | Finally marked Cancelled with reason, user and timestamp recorded. |
Actions – complete operating reference
| Action | Available when | What it does / key caution |
|---|---|---|
| Save | Draft | Saves and returns to list. Requires Supplier and at least one line. |
| Apply | Draft | Saves and remains on the document. |
| Preview Tax | Draft with Supplier + line(s) | Saves pending changes if necessary, then recalculates/stores GST tax preview. |
| Process Order | Saved, not Cancelled | Opens orchestration preview; can create/post downstream documents after explicit consent. |
| Stock Receipt | Approved only | Opens Inventory Stock Receipt seeded from PO. Best for actual/partial receiving. |
| Confirm | Draft, no approval flow | Persists Approved. |
| Approve | Draft, approval flow configured | Persists Approved under the configured approval path. |
| Unconfirm | Approved only, no active receipt/invoice | Returns PO to Draft and records unconfirm note. |
| Copy Order | Saved PO | Creates a new independent editable Draft from last saved PO. |
| Create Purchase Invoice | Received only | Opens Purchase Invoice seeded from PO. Server also enforces receipt-before-invoice. |
| Cancel Order | Saved non-Draft, non-Cancelled | Requires reason and performs controlled downstream reversal/cancellation. |
| Traceability | Saved PO | Opens read-only procure-to-pay lineage, milestones, events and relationships. |
Recommended operating sequence – normal direct purchase
- 1. Create the PO and select Supplier, Location and Payment Terms.
- 2. Set Price Fetch Source, Currency and Price List (when applicable).
- 3. Add Item/Service lines and verify UOM and Quantity.
- 4. Allow automatic pricing to complete or enter an approved manual Unit Price.
- 5. Review discounts, tax and header totals; run Preview Tax.
- 6. Confirm/Approve the PO.
- 7. Receive actual goods through Stock Receipt, especially for partial/rejected receipts.
- 8. After receipt, create/review Purchase Invoice.
- 9. Post the invoice through the normal AP flow.
- 10. Use Traceability to verify the final PO → Receipt → Invoice chain.
Recommended operating sequence – straight-through full receipt
- 1. Prepare and review a complete PO with full quantities, correct UOM, price and tax.
- 2. Open Process Order.
- 3. Review each listed step and confirm there are no blockers or unexpected existing documents.
- 4. Choose the target milestone; for full straight-through processing choose Purchase Invoice Post.
- 5. Confirm that full PO quantities really can be received/invoiced without exception.
- 6. Tick the consent checkbox and run Process Order.
- 7. Open Traceability and verify the linked Goods Receipt and Purchase Invoice.
Operational checks before approval
| Check | What to verify |
|---|---|
| Supplier | Correct supplier/legal business partner selected. |
| Location | Correct Branch/Store/Warehouse that will receive the goods. |
| Items | Correct Product/Service; SKU/HSN references look reasonable. |
| UOM | Correct purchase unit for every line. |
| Quantity | Positive and matches business requirement. |
| Price source | Correct PRICING_MODULE / ITEM_MASTERS / PRICING_THEN_ITEM strategy. |
| Unit Price | Automatic price completed or documented manual override is correct. |
| Price List | Correct applicable list where Pricing Engine is used. |
| Discount | Header/line discounts reflect supplier agreement. |
| Tax | Tax preview completed and no unresolved tax warning. |
| Delivery | Expected date/freight/carrier context entered if operationally required. |
| Financial Dimensions | Business Unit / Cost Center match the responsibility for the spend. |
| Total Amount | Gross, discount, tax, freight and total match the commercial commitment. |
Common problems and what to check
| Problem | Likely cause / action |
|---|---|
| Price List is disabled | Price Fetch Source is ITEM_MASTERS. Choose a Pricing Engine source if a Purchase Price List should be used. |
| Pricing remains NOT_FOUND | No applicable Pricing Engine price and no approved fallback price. Check Price List, Item/UOM/Quantity, effective dates and source configuration. |
| Line stopped repricing | Unit Price was manually edited, so the line is protected as MANUAL. |
| Cannot Preview Tax | Supplier or line(s) are missing. Save a valid Draft first. |
| Cannot Unconfirm | PO is not Approved, or an active Stock Receipt/Purchase Invoice already exists. |
| Cannot Create Purchase Invoice | PO is not Received. Complete Stock Receipt/Goods Receipt first. |
| Process Order is blocked | No active lines, PO is Cancelled, or multiple active Goods Receipts already exist. Resolve the reported blocker instead of retrying. |
| Process Order shows DONE | That milestone/document already exists; the framework intentionally reuses it rather than creating another document. |
| Tax needs review warning | Tax status is not CALCULATED. Re-run Preview Tax after commercial/tax-relevant changes. |
| Copied PO does not include receipt/invoice | By design. Copy Order copies reusable commercial PO data only, not downstream execution/accounting. |
Related pages
Frequently asked questions
Which Purchase Order fields are truly mandatory?
Supplier and at least one active line are hard save requirements. UOM, Payment Terms, Price Fetch Source, Currency and Discount Type are required UI/process fields; Price List is conditional on Pricing Engine mode. Item and positive Quantity are required for a usable automatically priced/processed line, while Location is normally defaulted and is needed for downstream Inventory receipt.
Why does changing Quantity fetch price again?
Quantity is part of the pricing signature because pricing rules can have quantity breaks/tiers. Changing Quantity therefore requests a fresh automatic price unless the line has been manually priced.
Why does changing UOM fetch price again?
UOM changes the commercial unit being purchased. Pricing for EA, BOX, PACK or another UOM can differ, so UOM is a pricing trigger and is also carried to receipt/invoice.
What happens if I type Unit Price myself?
The line becomes MANUAL pricing. AkshaERP treats this as an intentional buyer override and does not silently overwrite it during later automatic pricing triggers.
What exactly does Process Order create for a Purchase Order?
It can approve the PO, create a linked Stock Receipt/Goods Receipt, move that receipt through Received and Posted, create a linked Purchase Invoice and ensure the invoice reaches Posted. You choose how far to process and must explicitly consent.
Should I use Process Order for partial supplier delivery?
No. The current automated purchase receipt initializes Received Qty equal to full active PO quantities. Use Stock Receipt manually for partial delivery, rejected quantity, split receipt, batch/allocation exceptions or other receiving differences.
Can Process Order accidentally create duplicate Stock Receipts?
The service detects existing active PO Goods Receipts and reuses one where appropriate. If multiple active receipts already exist, it blocks processing rather than creating another receipt.
What does the Traceability icon show?
It shows the Purchase Order as the root document and provides Milestones, Graph, Events and Relationships views across upstream/downstream documents. Linked documents can be opened when route mapping exists.
Why can’t I unconfirm an Approved PO?
Unconfirm is blocked when an active Stock Receipt or Purchase Invoice already exists. At that point downstream execution has started and must be reversed/cancelled through controlled flows.
What does Cancel Order reverse?
The controlled cancellation service can reverse posted AP payments, supplier-advance applications, Purchase Invoice journals/status, Goods Receipt stock/journals and the PO approval-stage stock transaction before marking the PO Cancelled with the reason/user/time.