Deep Dive: Purchasing Module (End-to-End)
Introduction
Zudello's Purchasing module is the central hub for managing the Procure-to-Pay (P2P) lifecycle. It provides tools to handle the entire process, from initial requests for goods and services through to ordering, receiving, invoice processing, and supplier credits. This end-to-end management within a single module streamlines workflows, enhances visibility, enforces compliance, and facilitates automation.
This guide walks through the typical P2P flow within the Purchasing module, highlighting key submodules, actions, and concepts.
See also: Zudello v3 Architecture Overview
The Procure-to-Pay Flow in Zudello Purchasing
The Purchasing module typically handles the following stages:
- Sourcing/Quoting (Optional): Capturing supplier quotes.
- Requisitioning: Creating internal requests for goods/services.
- Ordering: Creating and sending Purchase Orders (POs) to suppliers.
- Receiving (Optional): Recording the receipt of goods.
- Invoicing: Processing supplier invoices against POs/Receipts.
- Credit Processing: Handling supplier credit notes.
1. Quotes (Submodule: QUOTE
)
- Purpose: Capture quotes received from potential suppliers for requested goods or services.
- Creation: Can be created manually or potentially uploaded/extracted.
- Key Data: Supplier details, item descriptions, quantities, prices, validity dates.
- Workflow:
- Quotes are reviewed and potentially compared.
- A selected Quote can be Converted into a Requisition or directly into a Purchase Order using the
Convert
action (often configured with "Duplicate" enabled). See Converting a Quote.
- Status: Typically moves from
DRAFT
->ACTIVE
->CONVERTED
orEXPIRED
.
2. Requisitions (Submodule: REQUISITION
)
- Purpose: Formal internal request to purchase goods or services, often requiring approval before becoming a PO.
- Creation: Can be created manually or converted from a Quote.
- Key Data: Requester details, suggested supplier, items/services needed, quantities, estimated prices, delivery information, coding (Department, Project, GL Account, etc.).
- Workflow:
- Created in
DRAFT
orREVIEW
. - Coded and validated.
- Submitted for approval (
APPROVAL
status) using Sentences (often DOA or Management Tree based). - Once approved, a Requisition is typically Converted into one or more Purchase Orders using the
Convert
action (often configured with "Duplicate" enabled). See Creating and Coding a Requisition.
- Created in
- Status:
DRAFT
->APPROVAL
->APPROVED
->CONVERTED
.
3. Purchase Orders (Submodule: ORDER
)
- Purpose: Formal external document issued to a supplier to order goods or services.
- Creation: Can be created manually, converted from a Quote, or converted from an approved Requisition.
- Key Data: Supplier details, PO number (often auto-generated), items/services, quantities, agreed prices, delivery details, terms, coding.
- Workflow:
- Created in
DRAFT
orREVIEW
. - Coded and validated (may involve Contract pricing enforcement).
- Submitted for approval (
APPROVAL
status) using Sentences (if required, often higher value POs). - Once approved (or if no approval needed), moves to
PENDING
status. - Place Order Action: User clicks
Place Order
.- Optionally generates a PDF based on a template.
- Optionally emails the PDF to the supplier.
- Sets
is_placed
flag,placed_by
user,placed_at
timestamp. - Moves PO status to
PLACED
. See Place Order Overview.
- Subsequent statuses (
PARTIALLY_RECEIVED
,RECEIVED
,PARTIALLY_INVOICED
,INVOICED_NOT_RECEIVED
,COMPLETE
) are often updated automatically based on related GR/Invoice processing via Procurement Status Automations. See Automation with Sentences.
- Created in
- Status:
DRAFT
->APPROVAL
->PENDING
->PLACED
-> ... ->COMPLETE
.
4. Goods Receipts (Submodule: RECEIPT
- often in Inventory Module)
- Purpose: Record the physical receipt of goods ordered via a PO. Crucial for 3-way matching.
- Creation: Typically created from a
PLACED
orPARTIALLY_RECEIVED
Purchase Order using the Create Goods Receipt action. - Key Data: Link to PO, date received, items received, quantities received (can differ from ordered quantity for partial receipts), receiving location/user.
- Workflow:
- User initiates "Create Goods Receipt" from the PO.
- A modal appears showing PO lines with ordered quantities vs previously received quantities.
- User enters the quantity actually received in this instance for each line.
- User submits the Goods Receipt (GR).
- The GR is created (often in
ACTIVE
orCOMPLETE
status). - Allocations are automatically created linking the GR lines back to the PO lines.
- The PO status may be updated automatically (e.g., to
PARTIALLY_RECEIVED
orRECEIVED
). See Receive Goods Overview.
- Status:
DRAFT
->ACTIVE
/COMPLETE
.
5. Invoices (Submodule: INVOICE
)
- Purpose: Process supplier invoices for payment, matching them against POs and potentially GRs.
- Creation: Typically uploaded via email or web upload, triggering extraction and enrichment.
- Key Data: Supplier details, invoice number, dates, PO number (extracted), line items, quantities, prices, totals, tax.
- Workflow:
- Ingested (
SCANNING
). - Extracted and Enriched (
REVIEW
orREADY
). Enrichment attempts automatic matching (Allocations) based on PO number, supplier, and line details (if configured). See Deep Dive: Enrichment Engine, Deep Dive: Allocations and Matching. - User reviews coding, validates data, and handles matching exceptions (manual matching if needed).
- Submitted (
PROCESSING
). - Approval workflow runs (
APPROVAL
) based on Sentences (often checking Allocation Status, Variance, Budget Exceptions, DOA). - Approved (
COMPLETE
). - Integration workflow runs (via Sentence/Workflow) to send data to ERP.
- The related PO/GR statuses may be updated automatically.
- Ingested (
- Status:
SCANNING
->REVIEW
/READY
->PROCESSING
->APPROVAL
->COMPLETE
.
6. Credit Notes (Submodule: CREDIT
)
- Purpose: Process credit notes received from suppliers (e.g., for returned goods, price adjustments, rebates).
- Creation: Uploaded via email or web upload.
- Key Data: Supplier details, credit note number, dates, original invoice reference (optional), items/reasons for credit, amounts (usually negative or treated as such).
- Workflow:
- Similar initial flow to Invoices (Ingestion, Extraction, Enrichment).
- Enrichment links the Supplier.
- User codes and validates.
- Matching to original Invoices is possible but less common/automated than PO matching. Often processed as standalone credits.
- May require approval depending on value/policy.
- Sent to ERP for application against supplier account balance.
- Status:
SCANNING
->REVIEW
/READY
->PROCESSING
->APPROVAL
->COMPLETE
.
Key Features & Concepts Recap
- Conversion: Moving data from one document type to another (Quote -> Req/PO, Req -> PO) typically using the
Convert
action with "Duplicate" enabled. - Place Order: Action on POs to formally send to supplier and update status.
- Create Goods Receipt: Action on POs to generate a GR based on received quantities.
- Allocations (Matching): Automatic and manual linking of Invoices to POs and GRs. Critical for 2-way/3-way matching validation. Configured via the Allocation Extension.
- Procurement Status Automations: Using the "Related Resource Updated" Sentence trigger to automatically update PO statuses based on Invoice/GR completion.
- Automation (Sentences): Drives approval workflows, status updates, notifications, and integration triggers throughout the module.
Configuration Highlights
- Document Types: Define forms, statuses, and extensions for each submodule (Quote, Requisition, Order, Invoice, Credit, Receipt).
- Allocation Extension: Configured on the Invoice (and potentially Credit Note) Document Type to define matching rules (2-way/3-way, Qty/Amount, Line/Document level, Matchable Statuses).
- Auto-Numbering: Configure sequences for PO Numbers, Requisition Numbers, etc.
- Sentences: Essential for defining approval logic, status transitions, and integration points.
The Purchasing module provides a robust framework for managing the entire P2P cycle within Zudello, offering significant opportunities for automation, compliance enforcement, and process visibility.