Purchasing using ERPNext

By John Clarke October 4, 2017 ERP No comments yet

Purchasing using ERPNext

Note: This tutorial is based on Dale Scott's webERP tutorial series, and has been adapted from the original with Dale's permission under the Creative Commons License terms.

Highlights of ERPNext's purchasing features include:

  • Efficiency. Items, Suppliers, Purchase Orders, etc. are managed within one controlled system. Fix a problem once and it’s fixed everywhere.
  • Visibility. A visible, trusted, change management process and a chain of truth.
  • Scalable. Readily scales with users, items, vendors and orders, and adapts as your processes change over time.

We will explore using ERPNext for purchasing using the Swift Construction Company’s development of the Aircraft Wireless as an example.


The goals of this exercise are to:

  • Purchase items.
  • Receive goods into inventory.
  • Create a vendor invoice and pay the vendor.


Here are some terms in the context they will be used here.

  • Supplier. Who you purchase goods or services from. Also called a Vendor
  • Purchase Order. A request to purchase sent to a vendor. If the purchase order is accepted by the vendor, it becomes a legally binding contract between the two parties.

Purchasing Cycle

The general purchasing cycle in ERPNext is:

  • Create and print purchase order. The order will be approved automatically if the creator has authorization permission, otherwise it will be queued for authorization. “Printing” is really a euphemism for issuing the order to the vendor, and an order must be printed before stock can be received against it.
  • Receive stock against purchase order.
    • Print a Goods Received Note and submit to the Accounts Payable department for matching to the vendor invoice.
    • Print and attach QA labels to the received goods.
  • Pay Supplier. Paying is generally made after goods receipt according to the purchase terms (e.g. “30 day”), however prepayment  is also common.
    • A Vendor Invoice must be created first and matched to the order and a goods receipt note before paying the supplier. 

The following diagram from the ERPNext manual illustrates the purchasing cycle.

TODO replace diagram with swim-lane drawings: (1) Create and Issue PO,  (2) Receive Stock, (3) Pay Vendor.


Purchase Order Authorization

I will give myself purchase order authorization so that purchase orders I create will be automatically approved (automatic authorization must be enabled in Main > Setup > System Parameters). Note that separate authorization is required for each currency used in a purchase order.

Main > Setup > Receivables/Payables Setup > Set Purchase Order Authorisation Levels


Bank Accounts

Some basic bank account information must be entered before recording payment to a vendor will be possible (because payment will be made from a bank account). I setup the basic chequing, saving and petty cash accounts, although only the chequing account will be used in this tutorial. 

Main > General Ledger > Maintenance >  Bank Accounts

In addition to entering the bank account information, I also need to give myself authorization to use the bank accounts. You can access bank account authorization either by user, or by bank account, depending on which is more convenient at the time. 

Main > General Ledger > Maintenance > User Authorized Bank Accounts

Order Items

Before an Aircraft Wireless system can be manufactured, the raw material will be required must be procured. The items that must  be ordered have been documented through the SCC’s Aircraft Wireless product lifecycle. I will show details for purchasing item 90000001-00, electrical wire which is part of sub-assembly item 20000001-00, a custom electrical inductor.

This is the assembly tree for item 20000001-00.

|-- 90000001-00,"WIRE,MAGNET,38AWG,POLY"
|-- 90000002-00,"MAG,FERRITE ROD,1/4IN X 4IN,MATL=61"
\-- 90000003-00,"TAPE,ELECTRICAL,3/4"",BLUE,VINYL"

The unit of measure for item 90000001-00 wire is centimeters (cm), which means the wire will be inventoried and consumed by length as measured in centimeters. However, the wire will be purchased by the spool, which is the vendor unit of measure (the datasheet for the wire indicates there are 19,300 feet of wire on a spool).

Issue Order

Start the order process by selecting the item to purchase, in this case item 90000001-00. There are several ways to initiate a purchase order and this is only one, you will learn others as you gain familiarity with ERPNext. 

Select Item 90000001-00, here I have filtered the list of items with the item stock code.

Items > Search > Select

Now that I have selected item 90000001-00, I can place an order for a spool.

The order defaults to quantity 1 (spool), which is what I need. The order is complete and I can select Process Order. If you need to change the quantity from the default 1, you must first select Update Order Lines, then process the order.

Since I have order authorization privileges, and the system is configured for automatic authorization, the order will be authorized automatically and I can next print the purchase order and/or enter a vendor invoice.

Printing the order creates a PDF document that can be saved or printed locally, or emailed to the vendor directly from ERPNext. More significantly, printing an order means to ERPNext that the order has been accepted by the vendor. 

It can happen sometimes that a verbal order is given to a vendor, and the paperwork is “cleaned-up” later.  In those situations, it is often the arrival of an invoice from a vendor that initiates creation of a purchase order. This is why there a command to create a vendor invoice is provided on the same screen an order can be printed from. However, I will be receiving the order before creating a vendor invoice.

You can see that an order has been issued by searching for outstanding purchase orders.

Main > Items > Select Item > Search Outstanding Purchase Orders

Receive Stock

Stock is received in ERPNext when ownership transfers from the vendor. I will start the receiving process by searching for outstanding orders for item 90000001-00. After selecting the appropriate purchase order, I will be able to Receive the order so long as it has been authorized and printed. 

Main > Items > Select > Search Outstanding Purchase Orders > Select > Receive

The Goods Received screen shows and allows the quantities received to be entered. The quantity in purchase units is shown together with the conversion factor from purchase units to the item’s unit of measure, and the receive quantity must be entered in the item’s unit of measure. 

Finally a Goods Received Note (GRN) can be printed for signing and sending to the Accounts Payable department for matching with the vendor invoice before payment.

You can also print QA labels for attaching to the received goods from the same screen.

If you select Item 90000001-00 (likely still selected if you access Main > Items), you will see that the quantity on hand now reflects the received order.

Pay Supplier

Create Supplier Invoice

A supplier invoice is created to record an that an invoice has been received from a vendor for goods or services provided. The supplier invoice is matched to the purchase order and to a goods receipt note before paying the supplier. One way to start the supplier invoice process is to search for the supplier that provided the invoice. After selecting the Supplier access Supplier Transactions > Enter a Supplier Invoice.

Main > Vendors > Select > Newark

The first step is to enter a reference identifier for the supplier invoice. Supplier invoice references for each supplier must be unique. Next click the Purchase Order button and match the Supplier invoice to the purchase order. 

Main > Vendors > Vendor Transactions > Enter a Vendor Invoice > Purchase Order

Select the purchase order line item that the supplier invoice pertains to and add to the invoice.

After adding the order reference to the supplier invoice, return to invoice entry.

Add a comment and enter the invoice.

The vendor invoice has now been created. 

If desired, you could proceed with paying the invoice by using the Enter Payment command, but I will start over from the beginning in the next section.

Issue Supplier Payment

The supplier can be paid as soon after a purchase order has been printed, a goods receipt notice has been created, and a supplier invoice been created. However suppliers will typically be paid based on operational procedures and supplier payment terms. One way to start the supplier payment process is to select the supplier again.

Main > Vendors > Select Newark

Use the Enter a Payment to, or Receipt from the Vendor command to access the Bank Account Payment Entry screen.

Enter the cheque reference and description.

If desired, you can enter a Supplier Narrative, Reference and Transaction Text for the supplier transaction payment. I will leave them blank and they will populate as indicated. Finally process the payment.

Optionally print the cheque and complete the payment.

The payment can be allocated from the final screen, but this is the end of the purchasing cycle for this example.

Rinse and Repeat

Now that item 90000001-00 has been dealt with, I will order sufficient quantities of 90000002-00 and 90000003-00 to manufacture custom inductor item 20000001-00 (which I will describe in an upcoming tutorial on manufacturing).


A variety of reports are available for managing the materials procurement process, indicating demand, or orders that need to be issued, or following up on orders already issued.

  • Show all suppliers for a particular item.
  • Show Where-Used for an item.

Change Happens

When an custom item is revised, it may impact on items already purchased and waiting to be received, or items which are about to be ordered:

  • Cancel POs if possible for items no longer required
  • Modify POs to mitigate cost, possibly reducing quantities, extending delivery dates, stopping vendor work and paying only for work performed to date, and modifying  vendor work to meet new requirements.

It can be helpful to proactively check for new part numbers, or new revisions of existing part numbers. Presumably they will need to be ordered eventually, and in the case of a revision may indicate changes coming for orders of current revisions.


This completes the overview of purchasing using ERPNext. A future tutorial will detail purchasing using a BOM (Bill of Materials) to save time, instead of purchasing items individually ERPNext will create purchase orders for all items listed on a BOM.

No comments yet

No comments yet. Start a new discussion.

Add Comment