Alternative Workflows in The Purchasing Cycle
ERPNext's standard three-way-check between Purchase Order, Purchase Receipt, and Purchase Invoice provides robust tracking and control for inventory purchases. This article explores several alternative workflows that, while supported by the system, generally represent exceptions to this standard process.
These alternatives are typically used for non-inventory transactions or specific scenarios where the three-way-check isn't practical or necessary. When dealing with inventoriable goods, deviating from the standard three-way-check should be carefully considered, as it may impact stock tracking, valuation, and audit capabilities. The workflows described here are most appropriate for expenses, digital purchases, services, and specific situations where immediate payment or advance payment is required.
These decisions should be made according to, or incorporated into, company policy and should not be taken as the only correct approach given the accounting regulations in the applicable jurisdiction(s). ERPNext has a thriving community of people who leverage its best-in-class flexibility to do special and unusual things.
Three-Way-Check Between Request for Quotation, Supplier Quotation, and Purchase Order
Before a Purchase Order is created, ERPNext provides tools to manage the quotation and negotiation process through Request for Quotation (RFQ) and Supplier Quotation DocTypes. This process creates a documented history of negotiations and agreements that led to the final Purchase Order.
Consider a scenario where a company needs to secure their Cloudberry supply for the upcoming holiday season. They create a Request for Quotation detailing their requirements - 2,000 boxes of Cloudberries with specific quality standards and delivery schedule across the season. They send this RFQ to multiple suppliers, each responding with different pricing tiers, delivery commitments, and payment terms. Some suppliers provide multiple rounds of quotes as quantities are refined and terms are negotiated. ERPNext tracks this entire process, maintaining a clear record of how the final Purchase Order terms were established.
Purchase Orders with Advance Payment
In many business scenarios, suppliers require advance payments before fulfilling an order. While the payment amount is usually fixed, there is often uncertainty around when goods will be delivered, final quantities, or even whether the transaction will be completed as originally envisioned. These uncertainties make it important to track advances separately from regular payables. The most common uncertainty is delivery date - particularly in seasonal businesses like produce distribution where weather and growing conditions can affect timing. However, final quantities and prices might also change based on availability, quality, or market conditions.
ERPNext handles these uncertainties by using a party-specific advance account, treating the advance payment as a type of receivable until goods are delivered. This approach is fundamentally different from simply paying a Purchase Invoice early. The party subledger in the advance account allows tracking of outstanding advances by supplier, which is crucial for risk management, reconciliation, and follow-up. For instance, if a supplier holding advances experiences harvest difficulties or business problems, the company can quickly identify their exposure and take appropriate action.
For example, when ordering a large quantity of Cloudberries at the start of the season, a supplier might require a 30% advance payment with the Purchase Order, another 40% upon harvest confirmation, and the final 30% before shipment. ERPNext tracks these multiple advance payments and their application to the final Purchase Invoice.
Consider a $34,000 order (2,000 boxes at $17/box) requiring the payment schedule described above. The accounting entries would flow as follows:
First Advance (30%)
| Account | Debit | Credit | Party |
|---|---|---|---|
| Advance Paid to Supplier | $10,200 | Supplier A | |
| Bank Account | $10,200 |
Second Advance (40%)
| Account | Debit | Credit | Party |
|---|---|---|---|
| Advance Paid to Supplier | $13,600 | Supplier A | |
| Bank Account | $13,600 |
Purchase Receipt
| Account | Debit | Credit | Party | Stock Ledger |
|---|---|---|---|---|
| Inventory on Hand | $34,000 | +2000 @ $17 | ||
| Inventory Received But Not Billed | $34,000 |
Final Purchase Invoice:
| Account | Debit | Credit | Party |
|---|---|---|---|
| Inventory Received But Not Billed | $34,000 | ||
| Advance Paid to Supplier | $23,800 | Supplier A | |
| Accounts Payable | $10,200 | Supplier A |
Using the Purchase Invoice as both Payable and Payment Document
Some purchasing scenarios don't require the full three-way-check process. For recurring services, digital purchases, or small routine expenses, ERPNext allows the Purchase Invoice to serve as both the payment and payable document. This streamlines the process while maintaining necessary controls and records. This is especially helpful when used in combination with the Auto Repeat feature for recurring expenses like phone, internet and utilities.
A common example is utility payments. When a monthly electricity bill arrives, the company can create a Purchase Invoice that serves as both the record of the payable and the payment document. The accounting entry is straightforward but does include the immediate satisfaction of the payable.
Purchase Invoice
| Account | Debit | Credit | Party |
|---|---|---|---|
| Utility Expense | $1,000 | ||
| Accounts Payable | $1,000 | Utility Co | |
| Accounts Payable | $1,000 | Utility Co | |
| Bank Account | $1,000 |
Cash-on-Delivery and Point-of-Sales Purchases
The most immediate form of purchasing occurs when payment and receipt of goods happen simultaneously, such as when a warehouse manager purchases additional Cloudberry boxes from a local supplier to fulfill an unexpected order. In these cases, ERPNext can create all necessary stock and accounting entries from a single Purchase Invoice.
This can be executed with or without a Purchase Order, but it can only satisfy a three-way-check if a Purchase Order exists since the receipt and invoice documents are combined.
To achieve this, check the box for "Update Stock" in the Purchase Invoice.
Purchase Invoice
| Account | Debit | Credit | Party | Stock Ledger |
|---|---|---|---|---|
| Inventory on Hand | $850 | +50 @ $17 | ||
| Accounts Payable | $850 | Supplier A | ||
| Accounts Payable | $850 | Supplier A | ||
| Cash Account | $850 |
This streamlined process maintains accurate inventory and financial records while minimizing document processing overhead for immediate payment scenarios.
This workflow is equally applicable to Cash on Delivery (COD) scenarios, where suppliers require payment at the moment of delivery. In both cases - whether at a supplier's point of sale or during a COD delivery - the defining characteristic is that payment and physical receipt of goods occur simultaneously. While the location and specific circumstances may differ, the key requirement remains that payment and possession transfer happen at the same time, in the same transaction.
Purchase Invoice as Inventory and Payable Document
Some business scenarios require immediate possession of goods while payment is deferred or structured over time. A common example is the professional tool industry, where companies like SnapOn sell directly to mechanics at their shop. The mechanic takes immediate possession of the tools, but the payment may be structured over time, often as an installment plan with warranty terms included.
In ERPNext, this workflow can be handled by using the Purchase Invoice as the inventory document (by checking "Update Stock") while the payment follows a separate schedule. This differs from Point-of-Sale purchases because while possession and payable acknowledgment are simultaneous, the payment is intentionally separate.
| Account | Debit | Credit | Party | Stock Ledger |
|---|---|---|---|---|
| Inventory on Hand | $2,400 | +1 @ $2,400 | ||
| Accounts Payable | $2,400 | Tool Co |
When payments are made according to the schedule:
| Account | Debit | Credit | Party |
|---|---|---|---|
| Accounts Payable | $400 | Tool Co | |
| Bank Account | $400 |
Goods in Transit - A Livestock Example
While most inventory purchases in ERPNext follow the standard flow using Inventory Received But Not Billed, certain business scenarios require tracking stock ownership before physical receipt. Consider a purchase at a livestock auction:
A farm purchases cattle at auction for $100,000. When the auctioneer's hammer falls, ownership transfers immediately to the farm, including the associated risks. The farm wants their insurance coverage of these animals to begin at this moment, which most farm insurance policies do. In our example, a specialized livestock transportation company will take two days to deliver the cattle to the farm, beginning a few days after the auction.
The documents and accounting entries reflect this separation between ownership and physical receipt:
| Account | Debit | Credit | Party |
|---|---|---|---|
| Goods in Transit | $100,000 | ||
| Bank Account | $100,000 |
Stock Entry upon arrival at farm:
| Account | Debit | Credit | Party | Stock Ledger |
|---|---|---|---|---|
| Inventory on Hand | $100,000 | +30 @ $3,333 | ||
| Goods in Transit | $100,000 |
This example illustrates when Goods in Transit is appropriate: there's a clear ownership transfer point (the winning bid at auction), distinct risk assumption (insurance coverage) and possession at the place of the auction, and a necessary transit period where the company owns but hasn't physically received the goods. The progression of documents in ERPNext ensures proper tracking of both the financial commitment and the physical location of the livestock.
Generally "Goods in Transit" is not configured as an inventory account and exists outside of ERPNext's normal Perpetual Inventory features. Transaction posted to this account would normally be executed as Journal Entries since they represent an exceptional activity and circumstances. If this kind of workflow occurs more regularly, it would be appropriate to build something custom to limit user error and provide consistency.
Purchase Invoice - date of auction:
| Account | Debit | Credit | Party |
|---|---|---|---|
| Goods in Transit | $100,000 | ||
| Accounts Payable | $100,000 | Auction Co | |
| Accounts Payable | $100,000 | Auction Co | |
| Bank Account | $100,000 |
Purchase Invoice - due on receipt of goods at farm
| Account | Debit | Credit | Party |
|---|---|---|---|
| Freight and Haulage | $3,200 | ||
| Accounts Payable | $3,200 | Transport Co | |
| Accounts Payable | $3,200 | Transport Co | |
| Bank Account | $3,200 |
Landed Cost Voucher - to adjust basis
| Account | Debit | Credit | Party | Stock Ledger |
|---|---|---|---|---|
| Inventory on Hand | $103,200 | +30 @ $3,440 | ||
| Goods in Transit | $100,000 | |||
| Freight and Haulage | $3,200 |
Capital Lease
Some capital assets require substantial installation while retaining independent marketable value. Consider a processing line for Cloudberries that must be professionally installed but could be removed, repurposed and/or reinstalled elsewhere. When such equipment is acquired through a finance lease, the accounting needs to track both the lease and installation components separately. Several pieces of this example fall within the purchasing workflow.
For example, a company leases a Cloudberry processing line valued at $500,000 with a 5-year term. Installation costs of $75,000 are required to integrate it into their facility. The lease payments are $10,000 monthly ($120,000 annually) with a $100,000 buyout option. The equipment has an estimated 10-year useful life, but as a finance lease, the Right of Use asset is depreciated over the 5-year lease term since there's no certainty of purchase.
Initial Recognition:
While most asset acquisitions flow through the standard purchasing cycle documents, the initial recognition of a finance lease must be done through a Journal Entry. This is because standard purchasing documents (Purchase Orders, Purchase Receipts, and Purchase Invoices) cannot simultaneously create an asset and split the liability between current and long-term portions. Furthermore, the Right of Use asset created by a finance lease is a special class of asset that doesn't flow through the usual purchasing workflow. The Journal Entry provides the flexibility needed to properly establish both the asset and the split liability accounts:
Journal Entry for initial recognition
| Account | Debit | Credit | Party |
|---|---|---|---|
| Right of Use Asset | $500,000 | ||
| Lease Liability - Current | $90,000 | Lessor Co | |
| Lease Liability - Long Term | $410,000 | Lessor Co |
Purchase Invoice for installation services:
| Account | Debit | Credit | Party |
|---|---|---|---|
| Leasehold Improvements | $75,000 | ||
| Accounts Payable | $75,000 | Install Co |
Monthly Payment Processing
Since ERPNext doesn't have a dedicated debt service module, lease payments can be structured using standard Purchase Invoice features:
- Create an Item with a configuration in Item Defaults where an expense account is linked to the lease's liability account
- Thereafter, create a Purchase Invoice with:
- An Item line referencing the leased asset for the principal portion ($7,500)
- An entry in the Taxes and Charges table for the interest portion ($2,500)
Purchase Invoice for monthly payment:
| Account | Debit | Credit | Party |
|---|---|---|---|
| Lease Liability - Current | $7,500 | Lessor Co | |
| Interest Expense | $2,500 | ||
| Accounts Payable | $10,000 | Lessor Co |
Payment Entry:
| Account | Debit | Credit | Party |
|---|---|---|---|
| Accounts Payable | $10,000 | Lessor Co | |
| Bank Account | $10,000 |