Manuale ERPNext

Raccolta automatica progressiva dei contenuti di docs.frappe.io/erpnext/

Introduction

https://docs.frappe.io/erpnext/introduction

What is ERPNext?

ERPNext is business management software that helps companies stay on top of their operations, whether it's tracking inventory, managing finances, handling projects, or keeping customers happy. Think of it as the central nervous system for your business, bringing everything together in one place.

Most ERPs are clunky, expensive, and a headache to customize. ERPNext is different. It is open-source, cloud-ready, and built to be flexible. You get the power of an enterprise system without the usual complications.

ERPNext

Why ERPNext?

Because running a business is already hard enough. Your ERP should not make it harder.

With ERPNext, you get a complete set of tools for all your business needs, built in and ready to use. With ERPNext, you get:

  1. A complete suite of tools : From Assets to Accounting to Inventory, everything you need is built-in.
  2. No vendor lock-in : Open-source means you own your data and have the freedom to customize.
  3. Easy to use : A clean, modern interface that doesn't feel like it was built in the '90s.
  4. Cost-effective : No sky-high licensing fees. Just powerful software that works.

Whether you are a small business or a growing enterprise, ERPNext helps you stay organized, automate the boring stuff, and focus on what really matters - running your business.

Key features

ERPNext will help you:

  1. Keep track of the financial indicators of the organization.
  2. Track all invoices and payments.
  3. Know what quantity of product is available in stock.
  4. Identify and track your key performance indicators (KPIs).
  5. Identify open customer queries.
  6. Manage employee payroll.
  7. Assign tasks and follow up on them.
  8. Maintain a database of all your customers, suppliers, and contacts.
  9. Prepare quotations.
  10. Track your budgets and spending.
  11. Determine effective selling price based on the actual raw material, machinery, and effort cost.
  12. Get reminders on maintenance schedules.
  13. Publish your website.

And a ton more.

Under the Hood

  • Frappe Framework: A full-stack web application framework written in Python and Javascript. The framework provides a robust foundation for building web applications, including a database abstraction layer, user authentication, and a REST API.
  • Frappe UI: A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.

Installation

To install/setup the app, follow the guidelines here.

Learning and community

  1. Frappe School - Learn Frappe Framework and ERPNext from various courses by the maintainers or from the community.
  2. Documentation - Extensive documentation for ERPNext.
  3. User Forum - Engage with the community of ERPNext users and service providers.
  4. Telegram Group - Get instant help from the community of users.

2 Step 301 Redirect in your ERPNext Website

https://docs.frappe.io/erpnext/2-step-301-redirect-in-your-erpnext-website

What is 301 Redirect?
301 Redirect is used to make sure that search engines and users are sent to the correct page. A 301 status code is used when any page has been permanently moved to another location. Users will now see the new URL as it has replaced the old page.
2 Step 301 Redirects with ERPNext:
Step 1: Open Website Settings via the awesome bar (Global Search Bar) and expand the heading, "Redirects"

Step 2: Enter the old URL in Source and the new URL in Target and save the document.

Watch the Redirect in action:

Introduction to CRM

https://docs.frappe.io/erpnext/CRM

The CRM module in ERPNext is designed to enhance customer interactions and streamline sales processes.

  • Lead Management: Capture, track, and nurture potential leads through various stages of the sales funnel.
  • Opportunity Tracking: Manage sales opportunities, track progress, and forecast potential revenue.
  • Customer Management: Maintain detailed customer profiles, including contact information, transaction history, and communication logs.
  • Activity Management: Schedule and track meetings, calls, and follow-ups to ensure effective customer engagement.
  • Quotations and Sales Orders: Generate and manage quotes and sales orders to streamline the sales process and ensure accurate order fulfillment.
  • Reports and Analytics: Access comprehensive reports and analytics to gain insights into sales performance, customer behavior, and CRM effectiveness.

The CRM module helps businesses improve customer relationships, optimize sales efforts, and drive growth by providing a unified platform for managing customer interactions and sales activities.

Video Tutorials

  1. Lead, Opportunity and Quotation
  2. Newsletter

Selling in Different UoM

https://docs.frappe.io/erpnext/Selling-in-different-UOM

A sell price unit of measure (UOM) is the UOM with which you price items. You can have multiple sell price UOMs for any inventory item. However, when Customer places, UoM for an item could change.

For example an Item Pen is stocked in Nos, but sold in Box. Hence we will make Sales Order for Pen in Box.

Step 1: In the Item master, under Unit of Measure section, you can list all the possible UoM of an item, with its UoM Conversion Factor. Update UoM Conversion Factors In one Box, if you get 10 Nos. of Pen, UoM Conversion Factor would be 10.

Item Unit of Measure

Setp 2: In the Sale Order, you will find two UoM fields

  1. UoM
  2. Stock UoM

In both the fields, default UoM of an item will be fetched by default. You should edit UoM field, and select Sale UoM (Box in this case). Updating Sales UoM is mainly for the reference of the Customer. In the print format, you will see item quantity in the Sales UoM.

Sale Order Unit of Measure

Based on the Qty and Conversion Factor, qty will be calculated in the Stock UoM of an item. If you sell just one Box, then Qty as per stock UoM will be set as 10.

Stock Ledger Posting

Irrespective of the Sales UoM selected in the Sale Order, stock ledger posting will be done in the Default UoM of an item. Hence you should ensure that conversion factor is entered correctly while selling item in different UoM.

UOM in Stock Ledger

UAE Regional Fields

https://docs.frappe.io/erpnext/UAE-regional-fields

Fields added to the Standard DocTypes to help regional compliances.

1. Item Master

  1. Is Zero Rated: Tick this checkbox for items that are Zero Rated.
  2. Is Exempt: Tick this checkbox for items that are tax exempted.

2. Sales Invoice

  1. VAT Emirate: Select the Emirate of Place of Supply.
  2. Refund Provided to Tourists: Enter the Tax Amount that was refunded to tourists.

3. Purchase Invoice

  1. Recoverable Standard Rated Expense: Enter the Tax Amount that can be recovered.
  2. Reverse Charge Applicable: Choose 'Y' if Reverse Charge is applicable. Taxes would be made zero and a reverse GL Entry will be created.
  3. Recoverable Reverse Charge (Percentage): Enter the percentage for which the Tax Paid under Reverse Charge is recoverable.

Access Log

https://docs.frappe.io/erpnext/access-log

Introduced in Version 13

Access Log is a security feature that logs all data exports by all users in the system.

It is a tool for System Managers to track which files were accessed or exported by users on the system. This is useful for tracking your company's sensitive information like transactions or financials.

Access logs are created in the following events:

  • Printing of all Forms and Reports
  • Private file downloading
  • Exporting via XLSX/CSV formats

In ERPNext, Access Log is available to System Managers, it can be accessed using the Global Search or through:

Home > Users and Permissions > Logs > Access Log

Access Log

In case an access log is created on the event of exporting a Report, a Show Report button will be generated in the respective log. On clicking this button, the exported report can be viewed along with the set filters.

Access Log

Similarly, a Show Document button is generated in case of events related to documents directly such as document Printing and Private File download.

Access Log

Events such as Raw Printing save information along with the chosen template for the document.

Access Log

Accounting Dimensions Filters

https://docs.frappe.io/erpnext/accounting-dimension-filter

Introduced in Version 13

In ERPNext, you can control the tagging of various accounting dimensions against a specific account. You can either allow or restrict certain accounting dimensions against an account using the accounting dimension filters

To access the Accounting Dimension Filter list, go to:

Home > Accounting > Accounting Dimension Filters

1. How to create an Accounting Dimension Filter in ERPNext.

  1. Go to the Accounting Dimension Filter list and click on New.
  2. Select the Accounting Dimension on which restriction has to be applied.
  3. Select "Allow" or "Restrict" in the Allow Or Restrict field based on the type of restriction you want to apply.
  4. Add accounts on which restriction will be applied in the Accounts table. Optionally you can also check the "Is Mandatory" checkbox if the accounting dimension has to be made mandatory for any specific account.
  5. Add dimension values in the Dimensions table that will be allowed or restricted for the mentioned accounts.

Create accounting dimension filter

2. Features

2.1 Filtering accounting dimensions in transactions

Based on the restrictions applied on the account, only allowed dimensions will be filtered and shown in the transactions.

Accounting Dimension With Filters

2.2 Validations for Invalid and Mandatory Dimensions

In case any mandatory dimension is missing or a restricted dimension is tagged against any applicable account, the system won't allow submitting that transaction until the correct accounting dimension is selected.

Invalid DimensionMandatory Dimension
  1. Cost Center
  2. Budgeting
  3. Accounting Dimensions

Accounting Dimensions

https://docs.frappe.io/erpnext/accounting-dimensions

Introduced in Version 12

Dimensional accounting means tagging each transaction with appropriate dimensions like Branch, Business Unit, etc. This allows you to maintain each segment separately, thereby limiting the overall maintenance on GL accounts and your Chart of Accounts remains pure.

Cost Center and Project are treated as dimensions by default in ERPNext. On setting a field in Accounting Dimension, that field will be added in transactions reports where applicable.

In ERPNext you can create configurable accounting dimensions and use them in transactions and reports.

To access the Accounting Dimension list, go to:

Home > Accounting > Settings > Accounting Dimensions

1. How to create Accounting Dimension in ERPNext.

  1. Go to the Accounting Dimension list and click on New.
  2. Select the Reference Document which you want to use as a custom dimension. For example, if you select Department as Reference Document, the dimension will be based on Department.
  3. Enter the name of the dimension (This name will appear in the transactions for which dimensions are created).
  4. Inside the Dimension Defaults table you can mention company specific default dimensions as shown in the screenshot below. This dimension will be automatically fetched in the transaction against that specific company.
  5. Check "Mandatory" checkbox if you want the dimension to be mandatory in the transactions.

Creating Accounting Dimension

2. Features

As you create the dimension, custom fields will be created using a background job for that specific dimension. You can see them in Accounting Dimensions section inside the transactions which have an impact on Accounting entries (GL Entry).

2.1 Using dimensions in transactions

To tag a transaction with a dimension you can select the specific dimension in Accounting Dimensions section as shown in the screenshot below.

Accounting Dimension in Sales Invoice

2.2 Filtering Reports based on dimensions

You can also filter various financial reports like Profit and Loss Statement, Balance Sheet, General Ledger based on these dimensions.

Accounting Dimension in Reports

2.3 Making accounting dimensions mandatory for "Profit and Loss" and "Balance Sheet" Accounts

Profit and Loss is the group of Income and Expense accounts that represent your accounting transactions over a period.

The Balance Sheet accounts are Application of Funds (Assets) and Sources of Funds (Liabilities) that signify the net-worth of your company at any given time.

By selecting the check boxes 'Mandatory for Profit and Loss Account' or 'Mandatory for Balance Sheet' you can configure your dimensions to be mandatory for 'Profit and Loss' and 'Balance Sheet Accounts'.

Accounting Dimension Mandatory in Transaction

2.4 Disabling accounting dimensions when no longer required

You can also disable the dimensions if you don't require them anymore. The old transactions having accounting dimensions will remain intact.

Disable Accounting Dimension
  1. Cost Center
  2. Budgeting
  3. Accounting Reports

Accounting Entries

https://docs.frappe.io/erpnext/accounting-entries

Accounting Entries The concept of accounting is explained with an example given below: We will take a "Tea Stall" as a company and see how to book accounting entries for the business.

Mama (The Tea-stall owner) invests Rs. 25000 to start the business.

JE

1. Investment

Mama invested Rs. 25000 in Company, hoping to get some profit. In other words, company is liable to pay Rs. 25000 to Mama in the future. So, account "Mama" is a liability account and it is credited. Company's cash balance will be increased due to the investment. "Cash" is an asset to the company and it will be debited.

The company needs equipments (stove, teapot, cups, etc.) and raw materials (tea, sugar, milk, etc.) immediately. He decides to buy them from the nearest general store, "Super Bazaar" whose owner is a friend, so that he gets some credit. Equipments cost him Rs. 2800 and raw materials Rs. 2200. He pays Rs. 2000 out of the total cost which is Rs. 5000. This can be recorded in ERPNext using a Payment Entry.

JE

2. Assets

Equipments are "Fixed Assets" (because they have a long life) and raw materials are "Current Assets" (since they are used for day-to-day business), of the company. So, "Equipments" and "Stock in Hand" accounts have been debited to increase the value. He pays 2000, so "Cash" account will be reduced by that amount, hence credited and he is liable to pay Rs. 3000 to "Super Bazaar" later, so Super Bazaar will be credited by Rs. 3000.

Mama (who takes care of all entries) decides to book sales at the end of every day, so that he can analyze daily sales. At the end of the very first day, the tea stall sells 325 cups of tea, which gives net sales of Rs. 1625. The owner happily books his first day sales.

JE

3. Income

Income has been booked in "Sales of Tea" account which has been credited to increase the value and the same amount will be debited to "Cash" account. Lets say, to make 325 cups of tea, it costs Rs. 800, so "Stock in Hand" will be reduced (Cr) by Rs. 800 and expense will be booked in "Cost of goods sold" account by same amount.

At the end of the month, the company paid the rent amount of stall (Rs. 5000) and salary of one employee (Rs. 8000), who joined from the very first day.

JE

4. Booking Profit

As month progress, company purchased more raw materials for the business. After a month he books profit to balance the "Balance Sheet" and "Profit and Loss Statements" statements. Profit belongs to Mama and not the company hence its a liability for the company (it has to pay it to Mama). When the Balance Sheet is not balanced i.e. Debit is not equal to Credit, the profit has not yet been booked. To book profit, the profit and loss accounts have to be reset. The profit/loss is transfered to the Liability account and the profit/loss statement starts fresh. This is done using a Period Closing Voucher.

Explanation: Company's net sales and expenses are Rs. 40000 and Rs. 20000 respectively. So, company made a profit of Rs. 20000. To make the profit booking entry, "Profit or Loss" account has been debited and "Capital Account" has been credited. Company's net cash balance is Rs. 44000 and there are some raw materials available worth Rs. 1000.

  1. Payment Entry
  2. Advance Payment Entry
  3. Freeze Accounting Entries
  4. Post Dated Cheque Entry
  5. Adjust Withhold Amount in Payment Entry
  6. Difference Entry Button

Accounting for Bad Debts

https://docs.frappe.io/erpnext/accounting-for-bad-debts

Bad Debts is a type of expense which occurs due to Customer’s inability to pay back the amount outstanding invoices reflect, in such cases, when there is a sincere or reasonable belief that it cannot be recovered, it is considered to be a good practice to write-off the amount due.

It is treated as a business loss, which could have been the income is now treated as an expense and transferred to write-off account under Expense accounts.

Consider an example where Frank has an outstanding invoice of $200, he has gone out of business and won’t be able to clear it.

To write-off, follow the steps below:

  1. Create Journal Entry of type Write-Off Entry.
  2. Select Write Off account to debit and Debtors to credit.
  3. Select Party Type as Customer with Frank as Party.
  4. Choose Reference Type & Reference Invoice you want to write off (expand the Debtor's row and scroll down to Reference section).

Once the balance is written off, the amount will be booked as an expense and outstanding against Frank will start reflecting 0.

In future, if Frank becomes eligible to clear his dues later or in the next year, create a reverse journal entry to remove Frank from write-off account to adjust it with the payment received.

Accounting Masters

https://docs.frappe.io/erpnext/accounting-masters

In ERPNext, accounting masters refer to the foundational data elements used in financial accounting processes. These masters play a crucial role in ensuring accurate and compliant financial reporting.

By effectively managing these accounting master doctypes in ERPNext, organizations can maintain accurate financial records, comply with regulatory requirements, and gain valuable insights into their financial performance.

Accounting Of Inventory Stock

https://docs.frappe.io/erpnext/accounting-of-inventory-stock

The value of available inventory is treated as a Current Asset in the company's Chart of Accounts. To prepare a Balance Sheet, you should make the accounting entries for those assets. There are generally two different methods of
accounting for inventory.

Auto/Perpetual Inventory

Note: The user must define an inventory account (with Account Type set as Stock) either in the warehouse, the group warehouse, or at the company level (as the Default Inventory Account). If the user hasn't set an account in the warehouse or company, but an inventory account exists, the system will use that account to post GL entries against the respective warehouse.

In this process, for each stock transaction, the system posts relevant
accounting entries to sync stock balance and accounting balance. This is the
default setting in ERPNext for new accounts. By default, Perpetual Inventory is enabled in the Company.

When you buy and receive items, those items are booked as the company’s assets
(stock-in-hand). When you sell and deliver those items, an
expense (Cost of Goods Sold) equal to the landed cost of the items is booked.
General Ledger entries are created after every stock transaction. As a result,
the value as per Stock Ledger always remains the same with the relevant account
balance. This improves the accuracy of the Balance Sheet and the Profit and Loss
statement.

Read Perpetual Inventory documentation
to check accounting entries for a particular stock transaction.

Advantages of Perpetual Inventory

Perpetual Inventory system will make it easier for you to maintain the accuracy of the company's asset and expense values. Stock balances will always be synced with relevant account balances, so no more periodic manual entry needs to be done to balance them.

In case of new back-dated stock transactions or cancellation/amendment of an existing transaction, all the future Stock Ledger entries and GL Entries will
be recalculated for all items of that transaction. The same is applicable if
any cost is added to the submitted Purchase Receipt later through the Landed
Cost Voucher.

Note: Perpetual Inventory completely depends upon the item valuation rate.
Hence, you have to be more careful entering the valuation rate while making any
incoming stock transactions like Purchase Receipt, Material Receipt, or
Manufacturing/Repack.

2. Periodic Inventory

In this method, accounting entries need to be created manually in order to sync stock balance and relevant account balance. The system does not create
accounting entries automatically for assets at the time of material purchases
or sales.

In an accounting period, when you buy and receive items, an expense is booked
in your accounting system. You sell and deliver some of these items.

At the end of an accounting period, the total value of items to be sold, need
to be booked as the company’s assets, often known as stock-in-hand.

The difference between the value of the items remaining to be sold and the
previous period’s stock-in-hand value can be positive or negative. If
positive, this value is removed from expenses (Cost of Goods Sold) and is
added to assets (stock-in-hand). If negative, a reverse entry
is passed.

This complete process is called Periodic Inventory.

If you are an existing user using Periodic Inventory and want to use Perpetual
Inventory, you need to follow a few steps to migrate.

Accounting Period

https://docs.frappe.io/erpnext/accounting-period

An Accounting Period defines a time period in which financial statements are recorded.

In ERPNext, Accounting Period is a timeframe outside which selected submittable transactions (like Sales/Purchase Invoice, Stock Entry, Payroll Entry, Journal Entry etc) are not allowed to be created. In other words, the selected transactions are only allowed to be created within the defined Accounting Period.

Why is Accounting Period needed?

When transactions are submitted, they affect the ledgers and the reports which process the ledger data. This can cause issues when financial reports have to be generated for audit by authorities or for closing the accounting books for the financial year.

Here Accounting Period can be used to limit the time period within which transactions can be submitted to preserve the integrity of the corresponding reports.

  1. How to create an Accounting Period

1.1 What is the "Closed" option for the selected transactions used for?

Accounting Period Child Table

The "Closed" option in the child table for transaction doctypes is used to select which of them are to be restricted after the end of the Accounting Period.

Do note that if the Accounting Period ends and if any of the selected transactions in the child table don't have "Closed" checked, then they won't be restricted after the Accounting Period ends.

  1. Enter a name for the Accounting Period.
  2. Define a time frame by setting Start and End Dates.
  3. Add or remove transactions from the table. Note that all transactions listed in the table with "Closed" option checked will be restricted after the accounting period ends.
  4. Save and Submit.
Accounting Period

If you try to save a closed transaction after its Accounting Period ends, you will see a validation error preventing you from doing so.

Accounting Period

Note: No role can save or submit transactions defined in the Accounting Period, even the Role set in 'Role Allowed to Set Frozen Accounts & Edit Frozen Entries' in Account Settings.

  1. Related Topics

Accounting Reports

https://docs.frappe.io/erpnext/accounting-reports

Some of the major accounting reports are:

  1. Company and Accounts

General Ledger

Go to: Accounts > Company and Accounts > General Ledger.

The General Ledger is a detailed report for all transactions posted to each account and for every transaction there is a Credit and Debit account so it lists them all up.

The report is based on the table GL Entry and can be filtered by many pre-defined filters like Account, Cost Centers, Party, Project and Period etc. This helps you to get a full update for all entries posted in a period against any account. The result can be grouped by Account, Voucher/Transaction and Party with opening and closing balances for each group. In case of multi-currency accounting, there is also an option to check the amounts in any other currency than company's base currency.

General Ledger
  1. Accounting Statements

2.1 Accounts Receivable and Accounts Payable (AR / AP)

Go to: Accounts > Accounting Statements > Accounts Receivable.

These reports help you to track the outstanding amount of Customers and Suppliers. It also provides ageing analysis i.e. a break-up of outstanding amount based on the period for which the amount is outstanding.

Accounts Receivable

2.1.1 Accounts Receivables based on Payment terms

You can also see Accounts Receivables based on Payment Terms.

Accounts Receivable report based on payment terms can be seen by clicking the checkbox 'Based On Payment Terms' as shown in the following screenshot.

Accounts Receivable Based on Payment Terms

Outstanding amount against each payment term can be seen. Invoiced Amount shows each payment term amount and Paid Amount shows paid amount against each payment term. Payment against each term is allocated in FIFO order.

Accounts Receivable
![](/erpnext/v13/assets/img/accounts/)

2.1.2 'Revaluation Journals' filter on Accounts Receivable/Payable

'Revaluation Journals' filter allows the report to accurately report Invoice outstandings where currency conversion differences for parties are handled by Exchange Rate Revaluation journals. Only applicable, if there is heavy usage of Multi-Currency transactions and Exchange Rate Revaluation.

2.2 Trial Balance

Go to: Accounts > Accounting Statements > Trial Balance.

A Trial Balance is an accounting report which lists account balances for all your Accounts (“Ledger” and “Group”) for any given reporting period. A company prepares a trial balance periodically, usually at the end of every reporting period. The general purpose of producing a trial balance is to ensure the entries in a company's bookkeeping system are mathematically correct. The totals of Debit and Credit columns must be same for any given period, to ensure the entries are correct. In ERPNext, the report shows following columns:

  • Opening (Dr): Opening debit balance as on From Date
  • Opening (Cr): Opening credit balance as on From Date
  • Debit: Total Debited amount against the account between the selected period
  • Credit: Total Credited amount against the account between the selected period
  • Closing (Dr): Closing debit balance as on To Date
  • Closing (Cr): Closing credit balance as on To Date

There are some other options as well to include or exclude Period Closing Entries, show / hide accounts with zero balance and to show unclosed previous fiscal year's P&L (Income & Expenses) balances. All the figures in the report are shown in company's base currency.

Trial Balance

2.3 Balance Sheet

Go to: Accounts > Accounting Statements > Balance Sheet.

A Balance Sheet is the financial statement of a company which states assets, liabilities and equity at a particular point in time.

The Balance Sheet in ERPNext gives you more flexibility to analyse your financial position. You can run the report across multiple year to compare values. You can check values for a specific Finance Book or Cost Center. You can also choose any other currency to display the balances.

Balance Sheet

2.4 Cash Flow Statement

Go to: Accounts > Accounting Statements > Cash Flow.

A Cash Flow is a financial statement which shows the incoming and outgoing of cash or cash-equivalents for a company. It is used to analyse the liquidity position of the company.

Cash Flow

2.5 Profit and Loss Statement

Go to: Accounts > Accounting Statements > Profit and Loss Statement.

A Profit and Loss Statement is a financial statement which summarizes all the revenues and expenses in a given period. The report is also known as P&L Statement.

In ERPNext, you can run the report across multiple year / period to compare the values. You can also check values for a specific Finance Book, Project or Cost Center. You can also choose any other currency to display the balances. If you are running the report to see quarterly / monthly balances, you can choose whether you want to show accumulated balances or only for each period.

Profit and Loss Report

2.6 Consolidated Financial Statements

Go to: Accounts > Accounting Statements > Consolidated Financial Statement.

The report shows a consolidated view of Balance Sheet, Profit and Loss Statement and Cash Flow for a group company, by merging financial statements of all the subsidary companies. It shows balances for all individual company and as well as accumulated balances for a group company.

Consolidated Financial Statements

2.7 Financial Ratios Report

Introduction

A financial ratio is a measurement tool used to evaluate a company's financial condition or performance relative to other businesses. This tool is commonly used by investors to study and obtain insight about a company's financial history or the overall industry. The process of computing a financial ratio involves extracting numbers from the balance sheet, income statement, and cash flow statement. Rather than just being a calculation, a financial ratio offers an understanding of a company's economic status in areas such as profitability, liquidity, leverage, and market valuation. A ratio can act as a signal, alert, or hint towards various potential issues.

Assumptions

  1. Net Sales = Direct Income
  2. Credit Sales = Direct Income
  3. Credit Purchases = Direct Expense
  4. Share Holder Fund (SHF) = Total Asset - Total_Liability
  5. Net Profit After Income & Taxes(NPAIT)  = Total Income - Total Expense

Types of Ratios:

2.7.1 Liquidity Ratios

Consists of:

2.7.1.1 Current Ratio = Current Assets/Current Liability

2.7.1.2 Quick Ratio = Quick Assets/Quick Liability

Requires 2 types of accounts:

  1. Current Asset(e.g)

2. Current Liability(e.g)

As soon as you will set your account types for the relevant account in your “Chart of Accounts”, both Current Ratio and Quick Ratio will show the correct value.

2.7.2 Debt Equity Ratios

Consists of:

2.7.2.1 Debt Equity Ratio = Total Liability / SHF

2.7.2.2 Gross Profit Ratio = (Net Sales - COGS)/Net Sales

2.7.2.3 Net Profit Ratio = NPAIT /Net Sales

2.7.2.4 Return on Asset Ratio = NPAIT/Total Assets

2.7.2.5 Return on Equity Ratio = NPAIT/SHF

For Gross Profit Ratio and Net Profit Ratio to show the correct data we need to add the relevant account type to “Direct Income” (as direct income is treated as Net Sales). (e.g.)

2.7.3 Turnover Ratios

Consists of:

2.7.3.1 Fixed Asset Turnover Ratio = COGS/ Avg. Stock

2.7.3.2 Debtor Turnover Ratio = Credit Sales / Avg. Debtors

2.7.3.3 Creditor Turnover Ratio = Credit Purchases / Avg. Purchases

2.7.3.4 Inventory Turnover Ratio = Net Sales / Total Assets

Average of Stock / Debtors / Purchases is calculated by ⇒

(opening of first year + closing of last year) / 2

  1. Taxes

3.1 Sales and Purchase Register

Go to: Accounts > Taxes > Sales Register or Purchase Register.

The Sales and Purchase Register report shows all the Sales and Purchase transactions for a given period with invoiced amount and tax details. In this report, each taxes has a separate column, so you can easily get total taxes collected / paid for a period for each individual tax type, which helps to pay the taxes to government.

Sales Register
  1. Budget and Cost Center

4.1 Budget Variance

Go to: Accounts > Budget and Cost Center > Budget Variance Report.

In ERPNext, you can assign expense budget for an expense account against any specific cost center. This report gives a comparison between budgeted and actual expenses and the variance (the difference between the two) in monthly / quarterly / yearly view.

Budget Variance
  1. Tax reports for India

5.1 GSTR-1 (India)

Go to: Accounts > Goods and Services Tax (GST India) > GSTR-1.

The GSTR-1 report helps Indian users to file monthly return of outward supplies. This report shows all the sales transactions of the company in Govt specified format. The output of the report is changed based on the selected type of business (B2B, B2C Large, B2C Small, CDNR and Export).

GSTR-1

5.2 GSTR-2 (India)

Go to: Accounts > Goods and Services Tax (GST India) > GSTR-2.

The GSTR-2 report helps Indian users to file monthly return of inward supplies. The report gives the details of all inward supplies of goods or services received during a month, in Govt specified format.

GSTR-2
  1. Analytics

6.1 Item wise Sales and Purchase Register

Go to: Accounts > Analytics > Item-wise Sales Register or Item-wise Purchase Register.

The Item Wise Sales and Purchase Register report shows all the Sales and Purchase transactions for a given period with item rate, quantity, amount and tax details. In this report, taxes has a separate column, so you can easily get individual taxes for each individual item. From this report you can have a look of which items are sold or purchase most.

Item Wise Sales Register

More detailed analysis can also be done by using the 'Group By' filter which gives sales data for a specific Customer, Supplier, Territory, etc. You can find out which Item is more popular in which region or which Customer is buying which Item more.

Group By Sales Register

Go to: Accounts > Analytics > Sales Invoice Trends or Purchase Invoice Trends.

Another very useful report is invoice trends, From this report you can easily get the trending items on monthly, quaterly, half yearly or yearly basis. You will get the idea of sales and purchase both in quantity and amount.

Sales Invoice Trends
  1. To Bill
  • Ordered Items To Be Billed: The report shows the items which has been ordered by customers, against which Sales Invoice has not been created / partially been created.
  • Delivered Items To Be Billed: The items which has been delivered to the customers, but Sales Invoice has not been created / partially been created.
  • Purchase Order Items To Be Billed: The report shows the items which has been ordered from the suppliers, but Purchase Invoice has not been created / partially been created.
  • Received Items To Be Billed: The items which has been received from the suppliers, but Purchase Invoice has not been created / partially been created.
  1. Other Reports

8.1 Party Wise Trial Balance

Go to: Accounts > Other Reports > Trial Balance for Party. Usually you might need to see the trial balance for your customesrs and suppliers. You can easily get for all of your customers or suppliers and also for individual.

Trial Balance for Party

8.2 Customer Credit Balance

The report shows the credit limit, outstanding and credit balance for each customer.

Customer Credit Balance

Overview

https://docs.frappe.io/erpnext/accounting/introduction

ERPNext integrates all your financial data originating from various business functions & translate them into meaningful insights, enabling organisations to take informed decisions based on accurate financial reports.

Accounting module is the core financial engine, which follows double-entry bookkeeping system to manage financial data. It acts as a single source of financial truth which is well integrated across core modules at different stages of Procurement, Sales, Manufacturing, Contracting, which delivers unified financial view of the whole organisation.

Core modules that integrate with accounting are:

  • Buying, Selling, Stock, Manufacturing, Subcontracting, Assets, Projects

‎Feature Suite

Multi-Company Setup

Manage accounting for multiple companies within the same system, while ensuring company-wise accounting & reporting remains separate.

  • Set default company for ease-of-access
  • Transaction can be mapped to a specific company during entry

Chart of Accounts

At the very core you needs a structured chart of accounts which can encompass all the financial pieces of your business.

  • Parents Groups & Child Accounts
  • Account Types
  • Tree View

Sales & Purchase

Manage purchase, sales & service invoices, where respective accounting entries are posted automatically based on the transaction lifecycle which originates from core modules that are Buying, Selling, Stock, Subcontracting.

  • Purchase & Sales Invoices
  • Pricing Rule based on Customers, Supplier & Groups
  • Shipping Rule Charges based on conditions
  • Point of Sales

Assets, Stock & Manufacturing

Although these components belong to their own separate module, its lifecycle have an impact on books of accounts when certain transactions takes place:

  • Asset-related activities such as purchase, capitalisation, depreciation, and value adjustments automatically generate corresponding accounting entries.
  • Stock movements and manufacturing processes create appropriate accounting entries, enabling accurate valuation and detailed stock reporting.

Ledgers

Manage General Ledger by creating Journal Entries to record accounting transactions & adjustments.

  • ERPNext takes care of generating Journal Entries for transactions which follows a lifecycle.
  • Adjustments occurring beyond the standard flow can be recorded with Journal Entries.
  • General Ledger shows all the accounting transactions & its impact.

Statutory Compliances & Taxes

Manage taxes & statutory compliance reporting specifically tailored for your region/country. Every region has a dedicated Localisation App which introduces fields, reports, integrations helping in seamless filing of tax & compliance returns.

Multi-Currency Accounting

Manage multiple currencies for customers, suppliers, bank accounts, while having a different base currency for your company.

  • Record transactions in different currency, while having accounting entries in base currency.
  • Fetch exchange rates & perform revaluations while recording gain/loss on fluctuations.

Accounts Receivables & Payables

Keep a track of receivables from customers & payables to suppliers to better manage cash flow.

  • Track ageing reports for Receivables & Payables
  • Ageing can be based on Due Date, Posting Date, Invoice Date
  • Report includes voucher reference through which the payable/receivable amount originates

Advances Management

Manage advance payments across customers, suppliers, employees.

  • Record advance payment entries & reconcile them to calculate net payable/receivable.
  • Adjust advance payments during invoice process.

Payments

Manage inward & outward payments related to supplier & customers

  • Send reminders with payment links to Customers
  • Raise Payment Request to release payment to a Supplier
  • Perform reconciliations to generate Payment Entry

Banking

Manage banking operations & reconciliations seamlessly with the option to manage value added services related to banking.

  • Perform deposits, withdrawals & reconcile them against vouchers.
  • Issue or receive bank guarantees against purchases & sales, respectively.
  • Create Invoice Discounting records against sales invoices yet to be settled.

Subscriptions

Manage recurring plans and automated invoicing for services that occur on a recurring basis.

  • Customer Subscriptions: Bill customers for services delivered at regular intervals.
  • Vendor Subscriptions: Track and manage recurring services procured from vendors on a fixed frequency.

Budgeting

Manage spending by allocating budgets to any accounting segment, identify & restrict over-spending at different stages of purchase cycle.

  • Allocate budgets for Month, Quarter, Half Year, Year
  • Budget Distribution can be equal, percentage based or ad-hoc
  • Configure threshold calculation logic for flexibility

Deferred Accounting

Manage income & expenses incurred but not yet accrued.

  • Configure Items to be processed for deferred accounting.
  • Process deferred accounting automatically or manually based on setup
  • Generate reports for transaction values that are deferred.

Shareholding Management

Manage equity holding for your organisation, maintain share transfers & view reports.

  • Shareholder Masters
  • Share Issue, Purchase (Buyback), Transfer
  • Reports of Share Balance & Share Ledger

Accounting Segments

Segmentation of company into different business verticals, divisions, regions, markets and generating independent financial reports for profitability & analysis based on these segments can be done with the help of:

  • Using Default Accounting Segments: Cost Center, Project
  • Create Custom Segments using: Accounting Dimension

Closing of Books

Manage period closures by transferring balances & restricting changes for already closed period.

  • Accounting Period: Block creation of transactions after the books are closed for a specific period, with an option to allow specific user role to by-pass restrictions.
  • Period Closing Voucher: Transfer Profit & Loss at the end of year to the specified ledger account.

Financial Reports & Profitability Analysis

Generate reports to analyse the financial position of the organisation with the help of various reports.

  • Financial Ratios
  • Profitability Analysis
  • Purchase & Sales Trends
  • Consolidated Financial Statements & Trial Balance
  • Balance Sheet, Profit and Loss, & Cash Flow Statement

Advanced Sales Features

Sales Commission

Sales Partner can be mapped to transactions, based on which commission reports can be generated for pay-outs.

  • Manage targets & generate variance reports
  • Setup rate of commission for Sales Partner.
  • Assign Sales Partners to a specific customer.

Sales Interest / Dunning

Interest, fees & charges can be collected from customers who fail to settle Sales Invoice within due dates.

  • Interest is calculated on the overdue amount & delay days.
  • Schedule of charges can be configured based on needs

Loyalty Program

Reward your loyal customers to retain them by issuing rewards points, which can be redeemed against future purchases.

  • Setup multiple-tiers based on total amount spent by customer (eg. Gold, Silver, Bronze)
  • Define, for how much amount spent, a single loyalty point must be credited
  • Configure loyalty points conversion amount in base currency

Promotional Schemes

Extend discounts to customers for a specified period as a part of campaign, or sale period.

  • Promotion can be applied to Item, Item Group, Brand or Transaction
  • Select whether scheme is applicable to buying, selling or both
  • Choose whether scheme leads to discount, free product or both

Accounts Receivable and Payable

https://docs.frappe.io/erpnext/accounts-receivable-and-payable

In ERPNext's accounting module, accounts receivable and payable play crucial roles in managing a company's finances.

Accounts receivable tracks the money owed to the company by its customers for goods or services provided on credit. This feature helps streamline invoicing, payment tracking, and ultimately, cash flow management.

Accounts payable monitors the money owed by the company to its suppliers or vendors. It facilitates the management of bills, outgoing payments, and ensures timely settlement to maintain healthy vendor relationships.

Both accounts receivable and payable modules in ERPNext provide real-time visibility into financial transactions supporting effective decision-making and monitoring of overall financial health of the organisation.

Accounts Settings

https://docs.frappe.io/erpnext/accounts-settings

ERPNext allows you to configure some aspects of Accounting as per your business rules. This page will help you understand how you can leverage this to cater to various scenarios encountered by you.

Transactions Settings

Screenshot 2024-06-03 at 11.08.05 AM

1. Over Billing Allowance (%)

The percentage by which you can overbill transactions. For example, if the order value is $100 for an Item and percentage here is set as 10% then you are allowed to bill for $110.

2. Role Allowed to Over Bill

Users with this role are allowed to over bill above the allowance percentage.

3. Check Supplier Invoice Number Uniqueness

When checked, Purchase Invoices with same 'Supplier Invoice No' will not be allowed. This is useful to avoid duplicate entries.

If checked, system will unlink the payment against the respective invoice. By default, if a Payment Entry is submitted, the linked invoice cannot be canceled until the Payment Entry is also canceled. On unlinking, you can now cancel and amend the invoices. But the payments not be linked and considered as advance payments.

5. Automatically Fetch Payment Terms from Order

The Automatically Fetch Payment Terms from Order setting in Accounts Settings controls whether payment terms and schedules are automatically copied from Sales Orders/Purchase Orders to their respective invoices.

When enabled (checked):

  • Sales Invoice & Purchase Invoice automatically inherit payment schedules from linked orders
  • Due dates are recalculated based on the invoice posting date (not order date)
  • Payment amounts are recalculated based on invoice grand total (not order total)
  • Sets to prevent Company defaults from overriding
  • Requires all invoice items to reference the same order
ignore_default_payment_terms_template = 1

When disabled (unchecked):

  • Payment terms are NOT fetched from linked orders
  • Falls back to Company-level payment terms or manual entry
  • More manual configuration required

6. Delete Accounting and Stock Ledger Entries on deletion of Transaction

Enabling this will allow the deletion of linked General Ledger and Stock Ledger Entries on deleting invoices and receipts. This can be checked if you don't want to lose the document ID after cancelling the document. You can now cancel and delete the document to get the same document ID again.

7. Book Asset Depreciation Entry Automatically

When checked, an automatic entry for an asset depreciation will be created based on the first date set. For example, yearly depreciation for an item will be scheduled for the next 3/4 years based on the Number of Depreciations Booked set in the Asset master. For more details, visit the Asset Depreciation page.

Similar to the previous option, this unlinks any advance payments made against Purchase/Sales Orders.

9. Enable Common Party Accounting

If checked, an adjustment Journal Entry will be posted automatically on creation of Sales/Purchase Invoices against common Customer & Supplier. For more details, visit Common Party Accounting

10. Allow multi-currency invoices against single party account

Enabling this will allow creation of multi-currency invoices against single party account in company currency.

11. Create Ledger Entries for Change Amount

If checked, for a Point of Sale invoice, the system will post ledger entries considering the change amount given.

12. Enable Discount Accounting

If checked, Discount Accounts can be added in the Items table of Sales Invoices, which will allow you to account for Discounts applied on Items more efficiently. It also lets you add Default Discount Accounts for Items, which will be fetched automatically when the Item is added to a Sales Invoice.

Tax Settings

Screenshot 2024-06-03 at 11.12.55 AM

1. Determine Address Tax Category From

Tax category can be set on Addresses. An address can be Shipping or Billing address. Set which addres to select when applying Tax Category.

2. Automatically Add Taxes and Charges from Item Tax Template

Enabling this will populate the Taxes table in transactions if an Item Tax Template is set for an Item and that Item is selected in the transaction.

3. Book Tax Loss on Early Payment Discount

Enabling this will split the Payment Entry discount deductions into Income Loss and Tax Loss if the document against the Payment Entry has an Early Payment Discount set.

Period Closing Settings

Screenshot 2024-06-03 at 11.14.36 AM

1. Accounts Frozen Till Date

Freeze accounting transactions up to specified date, nobody can make/modify entry except the specified Role.

2. Role Allowed to Set Frozen Accounts and Edit Frozen Entries

Users with this Role are allowed to set frozen accounts and create/modify accounting entries against frozen accounts.

3. Credit Controller

This role is allowed to submit transactions that exceed credit limit.

Deferred Accounting Settings

Screenshot 2024-06-03 at 11.16.37 AM

1. Book Deferred Entries Based On

Deferred revenue amount can be booked based on two criteria. The default option here is "Days". If "Days" is selected, the deferred revenue amount will be booked based on the number of days in each month and if "Months" is selected, then it will be booked based on number of months. For Eg: If "Days" is selected and $12000 revenue has to be deferred over a period of 12 months, then $986.30 will be for the month having 30 days and $1019.17 will be booked for the month having 31 days. If "Months" is selected, $1000 deferred revenue will booked each month irrespective of the number of days in a month.

2. Automatically Process Deferred Accounting Entry

This setting is enabled by default. In case you don't want the deferred accounting entries to be posted automatically you can disable this setting. If this setting is disabled deferred accounting will have to be processed manually using Process Deferred Accounting

3. Book Deferred Entries Via Journal Entry

By default Ledger Entries are posted directly to book deferred revenue against an invoice. In order to book this deferred amount posting via Journal Entry, this option can be enabled.

Screenshot 2024-06-03 at 11.19.05 AM

1. Show Inclusive Tax In Print

It allows you to display the tax amounts inclusive of the item prices on printed documents such as invoices and sales orders.

2. Show Taxes as Table in Print

It allows you to display tax details in a tabular format on printed documents such as invoices, purchase orders, and sales orders.

3. Show Payment Schedule in Print

The Payment Schedule table is visible on using Payment Terms. Enabling this will show this table in print view.

Currency Exchange Settings

Screenshot 2024-06-03 at 11.22.56 AM

1. Allow Stale Exchange Rates

This should be unchecked if you want ERPNext to check the age of records fetched from Currency Exchange in foreign currency transactions. If it is unchecked, the exchange rate field will be read-only in documents.

Stale Days is the number of days to use when deciding if a Currency Exchange record is stale. This is valid when 'Allow Stale Rates' is disabled. So, if the Stale Days is set as 10, stale rates that are 10 days will be allowed. If Allow Stale Rates is enabled, there is no time limit on the age of stale rates.

If stale rates are enabled, the order of fetching is:

  • Latest rate from Currency Exchange form
  • If no Currency Exchange is found latest rate as per market is fetched automatically

If stale rates are disabled, the order of fetching is:

  • Latest rate from Currency Exchange form upto number of days set in 'Stale Days'
  • If no Currency Exchange is found Latest rate as per market is fetched automatically

Report Settings

Screenshot 2024-06-03 at 11.23.29 AM

1. Use Custom Cash Flow Format

You may choose to use Custom Cash Flow Formats to customize what the Cash Flow report looks like. To know more, visit here.

Managing Transactions In Multiple Currency

https://docs.frappe.io/erpnext/accounts/articles/managing-transactions-in-multiple-currencies

In ERPNext, transactions can be created in the base currency as well as in parties' (customer or supplier) currency. If the transaction is created in the parties' currency, their currency symbol is updated in the print format as well.

If you are quoting to a Customer in a different currency, you will have to update the conversion rates to enable ERPNext to save the information in your standard currency. This will help you to analyze the value of your Quotations in your currency.

Let's consider a Sales Invoice, where your base currency is USD and party currency is EUR.

Create a new Sales Invoice: Home > Accounting > Billing > Sales Invoice > New.

Select Customer from the Customer master. If default Currency is updated in the Customer master, it'll be fetched here.

Currency Exchange between base currency and customer currency will auto-fetched.

Accounts Frozen Date

Update other details like Item, Taxes, Terms. In the Taxes and other Charges table. Charges of type Actual should be updated in the Customer's currency.

Save Sales Invoice and then check Print Format. For all the Currency field (rate, amount, totals) Customer's Currency symbol will be updated as well.

Accounts Frozen Date

Currency Exchange Masters

If you have come to terms with party to follow standard exchange rate throughout, you can capture it by creating a Currency Exchange master. To create one, go to:

Home > Accounting > Settings > Currency Exchange

In ERPNext, real-time exchange rates are fetched.

Note: If you create a Currency Exchange master with a specific rate, it will be given preference over real-time exchange rates. For example, if you set $1 = ₹65 in Currency Exchange, then even if live rate is ₹69, ₹65 will be used in transactions.

Activity Cost

https://docs.frappe.io/erpnext/activity-cost

Activity Cost records the per-hour billing rate and costing rate of an Employee against a particular Activity Type.

The system pulls this rate while making Timesheets. It is used to determine the Project Cost.

To access Activity Cost, go to,

Home > Projects > Time Tracking > Activity Cost

How to create Activity Cost

  1. Go to the Activity Cost list and click on New.
  2. Add the name of the Employee for whom you are configuring the Activity Cost.
  3. Add the Costing Rate and the Billing Rate for the Employee.
  4. Save.

Alternatively, an Activity Cost can also be created via the Activity List.

Activity Type

https://docs.frappe.io/erpnext/activity-type

Activity Type in ERPNext helps you maintain different types of activities against which a Timesheet can be made.

To access Activity Type, go to,

Home > Projects > Time Tracking > Activity Type

How to create Activity Type

  1. Go to the Activity Type List and click on New.
  2. Add the subject of the Activity Type.
  3. Specify 'Default Costing Rate' if any.
  4. Mention 'Default Billing Rate' is applicable.
  5. Save.

By default, the following Activity Types are created in ERPNext.

  • Planning
  • Research
  • Proposal Writing
  • Execution
  • Communication

Further, The Default Costing Rate and the Default Billing Rate for Individual Employees can also be configured using Activity Cost.

Add/Remove Fields from Print Format

https://docs.frappe.io/erpnext/add-remove-fields-from-print-format

To explain, let's consider Purchase Order which has the following fields in the Print Format, and here, I want to add 'Supplier's Contact Name' under Supplier Name and remove the 'Weight Per Unit' column from the Item's table.

Step 1: Navigate to the Print View of the document you want to change the Print Format of -> Menu (...) -> Customize

Step 2: Search for the field by name and add it to the desired location

Follow the same drag and drop method to remove the fields as well.

Step 3: To add/remove the fields from the child table of the document: Locate the table -> Select Columns -> Check/Uncheck as you wish.

The result:

Adding Attachments to Outgoing Messages

https://docs.frappe.io/erpnext/adding-attachments-to-outgoing-messages

You can add attachments to outgoing emails on-the-go in ERPNext.

If you have certain files attached to your document and wish to attach the same to the outgoing email, you can do so by simply picking it from the attachments list.

Attachments in Outgoing Messages

Adding Margin

https://docs.frappe.io/erpnext/adding-margin

User Can apply the margin on Quotation Item and Sales Order Item using following two options. 1)Price Rule: With the help of this method user can apply the margin on Quotation and Sales Order based on condition. You can find the section margin on pricing rule where a user has to select the type of margin whether it is Percentage or Amount and Rate or Amount. The system will apply the margin on quotation item and sales order item if pricing rule is enabled.

To setup Pricing Rule, go to:

or

Selling > Setup > Pricing RuleAccounts > Setup > Pricing Rule

####Adding Margin in Pricing Rule

Adding Margin in Pricing Rule

Total Margin is calculated as follows:

Rate = Price List Rate + Margin Rate

So, In order to apply the Margin you need to add the Price List for the Item

To add Price List, go to:

or

Selling > Setup > Item PriceStock > Setup > Item Price

####Adding Item Price

Adding Margin in Pricing Rule
  1. Apply margin direct on Item: If user wants to apply the margin without pricing rule, they can use this option. In Quotation Item and Sales Order Item, user can select the margin type and rate or amount. The system will calculate the margin and apply it on price list rate to calculate the rate of the product.

To add margin directly on Quotation or Sales Order, go to:

Selling > Document > Quotation

add item and scroll down to section where you can find the Margin Type

####Adding Margin in Quotation

Adding Margin in Quotation

Adding reference to Journal Entry

https://docs.frappe.io/erpnext/adding-reference-to-journal-entry

To link a Journal Entry to the document* of choice, expand the row you want to insert a reference with and choose the Reference Type and Reference Name.

Refer to the GIF to illustrating the same:

List of Documents one can link to a Journal Entry:

Sales Invoice, Purchase Invoice, Journal Entry, Sales Order, Purchase Order, Expense Claim, Asset, Loan, Payroll Entry, Employee Advance, Exchange Rate Revaluation, Invoice Discounting, Fees.

Adding Users

https://docs.frappe.io/erpnext/adding-users

User management in ERPNext includes creating and managing user accounts, defining roles, and assigning these roles to users based on their responsibilities. Administrators can configure detailed permissions for each role by specifying the level of access to modules within the system.

Users can be added by the System Manager. To add users go to: > Home > Users and Permissions > User

There are two main types of users:

Website users: Customers, Suppliers, Students, etc., who have access only to the portal and not to any modules. System Users: People using ERPNext in the Company with access to modules, company data, etc.

Read more about difference between system and website user.

Under User, a lot of info can be entered. For the sake of usability, the information entered for web users is minimal: First Name and Email.

An Email address is the unique key (ID) identifying the Users.

1. Creating New User

  1. Go to the User list, click on New.
  2. Add an Email address and name of the user.
  3. Save.

Details like Username and Language can also be changed.

2. Features

2.1 Setting Roles

After saving, you will see a list of roles and checkboxes next to them. Just check the roles you want the user to have and save the document. The roles have pre-defined permissions, to know more about roles, click here. You can set Role profiles to use as a template which selects multiple roles together.

2.2 More Information

More information about the employee can be set from this section:

  • Gender
  • Phone
  • Mobile No
  • Birth Date
  • Location
  • Interests
  • Bio

Ticking on 'Mute Sounds' will mute sounds that play on interacting with documents. The user may need to do a Settings > Reload for the changes to take place.

2.3 Change Password

  • Set New Password: As a System Manager, you can set a new password for the user if it needs to be changed.
  • Send Password Update Notification: Send an email notification to the user that their password has been changed.
  • Log out from all devices while changing Password: When changing the user's password, this logs out the user from PC and any mobile device they may have logged into.

2.4 Document Follow

With this option you can follow various documents in the system and get email notifications when they are updated. Know more here.

2.5 Email Settings

  • Send Notifications for Email threads: The user will get notifications for Email conversations that take place in document types like Opportunities.
  • Send Me A Copy of Outgoing Emails: Sends the user a copy of the emails they send. This is useful for keeping track if the email got sent.
  • Allowed In Mentions: Allow this user's name to appear in thread conversations so that they can be mentioned using '@'.
  • Email Signature: Adding an email signature here will set it as default for all outgoing emails for the user. This is different from a footer which is set from the Company master.

2.6 Email Inbox

Subscribe the user to different mailing lists of your company from this section. Add a new row and select the mailing list to assign this user. For example, mailing lists can be jobs, support, sales, etc. To know more about Email Inbox, click here.

2.7 Allow Module Access

Users will have access to all modules for which they have role-based access. If you want to restrict access of certain modules for this user, un-check the modules from this list.

2.7.1 Module Profiles

Role Profiles act as a template to store and select access to multiple modules. This Role Profile can then be assigned to a User. For example, HR Users will have access to multiple modules like HR, Payroll, etc. Role Profiles are useful to provide access to multiple modules at once when adding multiple users.

2.8 Security Settings

  • Simultaneous Sessions: Simultaneous login sessions the user is allowed. You can use the same set of credentials for multiple users by allowing more sessions. This can be restricted from System Settings globally. For cloud account, the total number of simultaneous sessions cannot exceed the total number of subscribed users.
  • User Type: If the user has any role checked other than Customer, Supplier, Patient, or Student they automatically become a System User. This field is read-only.
  • Login After, Login Before: If you wish to give the user access to the system only between office hours, or during weekends, specify it here. For example, if office hours are from 10 am to 6 pm, set the Login After, Login Before hours as 10:00 and 18:00.
  • Restrict IP: Restrict user login to the IPs specified here. This can be used so that the user can log in only from office computers. Multiple IPs can be added separated by commas.

This section also shows other details like Last Login, Last IP, and Last Active time for the user.

2.9 Third Party Authentication

This will allow users to use Facebook, Google, or GitHub to log in. To use this feature, signup for a developer account with Facebook, Google, GitHub, etc. Create an app on their console, specify an app name, the originating URL and callback URL, copy the client ID and client secret info here to start using.

For more details, go to this page.

2.10 API Access

You can generate API Secret keys from this section using the Generate Keys button. This can be used to access your account's data from another application, for example, an offline POS system.

2.11 After saving

After saving a user, these buttons will be seen on the dashboard area of the User master.

Permissions

  • Set User Permissions: Will take you to the User Permissions page of Bruce from where you can restrict Bruce's access to documents.
  • View Permitted Documents: Will take you to the 'Permitted Documents For User' report for this user. Here you can see which documents does Bruce have access to. For example, on selected Sales Order, the list of Sales Orders Bruce has access to will be displayed.

Password

  • Reset Password: An email with instructions to reset the user's password will be sent to the user's Email Account.
  • Reset OTP Secret: Reset OTP Secret for logging in via Two Factor Authentication.

Create User Email will let you create an Email Account for the user based on the email entered in the User master.

Impersonate

New in version 15.

Sometimes to understand a specific problem a user is facing, you might have to log in as that user. Administrator user can impersonate as any other user using the "Impersonate" button on the user document.

Note:

  • An activity log will be created whenever Administrators use "Impersonate" feature.
  • Any document change where track changes are enabled will also indicate original user who impersonated someone else while modifying the document.
  • The user you're impersonating will be notified.

3. Login Methods

In System Settings, under the Security section, if you check the 'Allow Login using Mobile No' checkbox, a mobile number can also be used to log in. While a Mobile No will be unique, it will not be treated as a user ID.

Login with Email:

Email Login

Login with Email or Mobile:

Mobile No Login

After adding these details, save the user.

  1. Role Based Permissions
  2. User Permissions
  3. Document Follow

Address

https://docs.frappe.io/erpnext/address

You can record the addresses associated with a Lead, Customer, Supplier, Shareholder, Sales Partner or a Warehouse.

You can also add an Address as a standalone record without linking it to any of the entities listed above.

To access the Address list, go to:

Home > CRM > Address

How to create an Address

  1. Go to the Address list and click on New.
  2. Select Address Type.
  3. Enter details in Address Line 1, Address Line 2, City/Town, County, State, Country.
  4. Enter Email Address, Phone and Fax.
  5. Enter Link DocType and Link Name to link this address to customer, supplier etc.
  6. Save. Contact

You can also add an Address from the Customer or Supplier record by clicking on “New Address" button as shown below.

To Import multiple addresses from a spreadsheet, use the Data Import Tool.

Features

An address may be linked to multiple customers or multiple suppliers.

An address can also be linked to customers and suppliers at the same time.

Address Title

If the address is not linked to any entity you need to manually add a title.

If the address is linked to an entity like a customer or supplier, the title is generated automatically in 'Entity Name-Address Type' format.

Preferred Billing Address and Shipping Address

If you check 'Preferred Shipping Address', the address would be automatically added in the Shipping Address in Sales Order, Sales Invoice and Delivery Note transactions.

Similarly, if you check 'Preferred Billing Address', the address would be automatically added in the Billing Address in Sales Order, Sales Invoice and Delivery Note transactions.

GST Localization for India

If the customer or supplier has registered under GST, you can enter GSTIN and GST State in Address. Make sure GSTIN entered is in valid format.

GST Details in Address

In sales transactions along with address, GSTIN is also fetched.

You can also add addresses of your own company's facilities. Check 'Is Your Company Address', select Company in Link DocType, and Company Name in Link Name for such addresses and you can select them in GST Sales Invoice to print your own address.

GSTIN is to be added in Address and not in Customer/Supplier, as one Customer/Supplier may have multiple GSTIN (one for each state where he conducts his business).

  1. Customer
  2. Supplier
  3. Sales Partner

Address Template

https://docs.frappe.io/erpnext/address-template

Address Template can store different formats of addresses based on the region.

Each region has its way of defining addresses. To manage multiple address formats for your Documents (like Quotations, Purchase Invoices, etc.), you can create country-wise Address Templates.

To access address template, go to:

CRM > Address Template

A default Address Template is created when you set up the system. You can either edit it or create a new template. This default template will apply to all countries not having a specific template.

Consider a customer from the United States where 'County' is a part of the address. If you set county in the address template for United States, then it'll show up in the address field and hence in the print preview. Fields like PIN code can be changed to be displayed as ZIP code and fields like county can be added by using Address Templates.

The Address Template checks the 'Country' field in the Address master to apply different address templates to transactions.

  1. How to create an Address Template
  1. Go to the Address Template list, click on Add Address Template.
  2. Select a country.
  3. Change the CSS and Jinja if required.
  4. Mark as default if it is going to be the default address template in the system
  5. Save.

Screenshot 2024-05-23 at 4.29.42 PM

Note: The template engine is based on HTML and the Jinja system. All the fields (including Custom Fields) will be available for creating the template.

  1. Terms and Conditions Template
  2. Cheque Print Template

Adjusting Withhold Amount

https://docs.frappe.io/erpnext/adjusting-withhold-amount

Let's assume that outstanding against a Sales Invoice is 20,000. When client makes payment, they will only pay 19,600. Rest 400 needs to be booked under tax withhold account. You can manage this scenario as described below.

Step 1: Setup Withhold Account

Create a Withhold Account in your Chart of Accounts.

Step 2: Payment Entry

To create Payment Entry, go to unpaid Sales Invoice and create click on Make Payment button.

Step 2.1: Enter Payment Amount

Enter Payment Amount as 19,600.

Paid Amount in Payment Entry

Step 2.2: Allocate Against Sales Invoice

Against Sales Invoice, allocate 20,000 (explained in GIF below).

Step 2.3: Add Deduction/Loss Account

You can notice that there is a difference of 400 in the Payment Amount and the Amount Allocated against Sales Invoice. You can book this difference account under Withhold Account.

Tax Withheld Adjustment in Payment Entry

Following same steps, you can also manage difference availed due to Currency Exchange Gain/Loss.

Administrator

https://docs.frappe.io/erpnext/administrator

The 'Administrator' in ERPNext is above the System Manager and has all the rights and permissions for an ERPNext account.

A System Manager also has permissions to most items in the system, but the Administrator has unrestricted access. The administrator ensures that the overall functioning of the ERPNext system meets the needs of the organisation.

  1. If your ERPNext account is cloud-hosted with us (Frappe Technologies Pvt. Ltd.), then you can access the "Administrator" user via the Frappe Cloud Dashboard.
  2. For cloud-hosted account, upgrades are managed from the backend. We reserve admin login credentials with us so that we can upgrade all the customer's ERPNext accounts from the backend.
  3. Since on a single server, we may host many customer's ERPNext accounts, as a security measure, we cannot share the credentials for administrator account with any cloud-hosted user. (an exception would be if you purchase a large number of users and your account is exclusively hosted on one server).
  4. For self-hosted on-premises accounts, the admin credentials are with the account user.
  1. Adding Users
  2. Role and Role Profile
  3. Role Based Permissions
  4. User Permissions
  5. Role Permission For Page And Report

Advance In Separate Party Account

https://docs.frappe.io/erpnext/advance-in-separate-party-account

From Version 15, ERPNext supports booking Customer advances under Liability and Supplier advance under Assets. These are only allowed through Payment Entry.

Note: Advance Accounts are restricted to Company currency

  1. Prerequisites

To use this functionality, these need to be created first:

  • 'Receivable' type account under Liability for Customer and 'Payable' type account under Assets for Supplier
  • Maintain the above accounts in Company -> Accounts -> Advance Payments section
  1. How to Create Advance Payments under Liability/Assets

Once a Sales Order or Purchase Order is submitted, you will find an option to create a Payment against it. You can also create new Payment Entry and manually select values (like Party and payment account). Here are the steps to create Advance Payment against Sales Order.

Go to Sales Order and click on Make > Payment Entry.

Set required details and Save

  1. Upon save, system will update the 'Paid To'/'Paid From' account with the advance account maintained in company master.

Submit

  1. Allocating Advance to Invoices

Allocation happens in the similar fashion on the Normal Advance Payments. Refer Advance Allocation

Limitations

Currently, this type of Advance booking is only supported for Customer and Suppliers party types.

  1. Normal Advance Payment

Advance Payment Entry

https://docs.frappe.io/erpnext/advance-payment-entry

Payment done by the Customer/Supplier before the invoice is sent is an Advance Payment.

Generally, advance payment is done in the case of high value deals. Consider a Customer- Jane D'souza placing an order for a luxury furniture item costing ₹24,000 She is asked to give some advance before the furniture house begins work on her order. She gives them ₹10,000 in cash.

In ERPNext, advance payment entry is created using Payment Entry. If there exist a Sales Order, you can directly create a Payment Entry for the advance amount. Or else, you can also create a standalone Payment Entry for the Customer. Same way, you can also create advance Payment Entry for Supplier, via Purchase Order.

Payment Entry From Sales Order

Note: If payment is not linked to an invoice, it is considered as an advance payment. The advance payments are reflected in the Accounts Receivable and Payable reports.

  1. Prerequisites

To create an advance payment entry, these need to be created first:

  • Party (Customer/ Supplier)
  • Payment Account (Bank or Cash account)
  1. How to create Advance Payment Entry

Once a Sales Order or Purchase Order is submitted, you will find an option to create a Payment against it. You can also create new Payment Entry and manually select values (like Party and payment account). Here are the steps to create Advance Payment against Sales Order.

  1. Go to Sales Order and click on Make > Payment Entry.
  2. Set/check the accounts.
  3. Save and Submit.

Any Payment Entry that is not linked to an invoice is considered as advance payment by the ERPNext system.

If the Customer has given $5,000 as cash advance, it will be recorded as a credit entry against the Customer's Receivable account. To balance it [as per the Double accounting system], $5000 is debited against the Company's cash account.

2.2 Allocating Advance Payment in Invoice

When creating an invoice, you can check if there is an Advance Payment against that Party.

Fetch Advance Payments in Sales Invoice

On clicking Get Advance Received button, it will fetch the Advance Payment Entries found for that party. Once Advance Payment Entries are fetched, you can allocate the Amount of advance against this invoice. The allocation will reduce the Outstanding Amount for that invoice right-away.

Save and submit the Sales Invoice.

  1. Sales Invoice
  2. Journal Entry
  3. Payment Entry
  4. Advance under Liability/Asset

Allocating Credit Note and Payment

https://docs.frappe.io/erpnext/allocating-credit-note-and-payment

Question: We have customers that return items after the invoice was paid. So, as usual, we create a credit note. But sometimes there are no other open invoices to which we can allocate the credit note to. So, in this case, we will need to pay customers back. How can I register this kind of transactions that we don't have negative credit on list invoices?

Answer

You should be able to manage this specific scenario by following the steps shared below.

  1. First, create a Credit Note against an Invoice
  2. Then create a Payment Entry for the return amount
  3. Use payment reconciliation to knock-off Payment against the original Sales Invoice (and not the Credit Note itself).

Note: In case of a Purchase cycle, where you create a debit note in the system for a similar scenario, the steps would be as follows:

  1. First, create a Debit Note in the system against the Purchase invoice
  2. Then create a Payment entry for the return amount
  3. Use payment reconciliation to knock-off Payment against the original Purchase Invoice (and not the Debit Note itself).

Allow Over Delivery/Billing

https://docs.frappe.io/erpnext/allow-over-delivery-billing-against-sales-order-upto-certain-limit

When creating a Delivery Note, system validates if item's qty is same as in the Sales Order. If item's qty has been increased, you will get the validation message of over-delivery or receipt.

Considering the case fo sales, if you want to be able to deliver more items than mentioned in the Sales Order, you should update "Allow over delivery or receipt upto this percent" in the Item master.

Itemised Limit Percentage

When creating an invoice, item's rate is also validated based on the preceding transaction like Sales Order. This also applies when creating Purchase Receipt or Purchaes Invoice from Purchase Order. Updating "Allow over delivery or receipt upto this percent" will be affective in all sales and purchase transactions.

For example, if you have ordered 100 units of an item, and if item's over receipt percent is 50, then you are allowed to make Purchase Receipt for upto 150 units.

Update global value for "Allow over delivery or receipt upto this percent" from Stock Settings. Value updated here will be applicable for all the items.

  1. Go to
  2. Set .
  3. Save Stock Settings.
Stock > Setup > Stock SettingsLimit Percentage

Amazon SP-API Integration

https://docs.frappe.io/erpnext/amazon_integration

The Amazon Connector pulls Products and Sales Orders from the Amazon marketplace.

How to Setup Amazon SP-API Connector?

Amazon Connector is moved out from ERPNext and is available through a Frappe App on Frappe Cloud Marketplace

App Installation

  • If you are hosting your ERPNext site on Frappe Cloud, you can quickly install the app by going to your site Dashboard. The app is available in Frappe Cloud Marketplace
  • If your site is hosted by Frappe, please raise a support ticket to get the app installed on your site.
  • If you are self-hosting ERPNext you can install the app using Frappe bench. Refer to bench documentation for installing Frappe Apps.
bench get-app ecommerce_integrations --branch main

The repository for the app is hosted on GitHub: <http://github.com/frappe/ecommerce_integrations/>

Setting Up Credentials in ERPNext

You can request the developer credentials from Amazon Seller Central once you are a registered seller on their website. For more details on the same, click here.

1. Setup SP-API Credentials

Enter the IAM ARN, Refresh Token, Client ID, Client Secret, AWS Access Key, AWS Secret Key and Country.

Credentials

2. Set up Order Details

Set up Company, Warehouse, Parent Item Group, Price List, Customer Group, Territory, Customer Type and Account Group. The Account Group is used to hold commissions, taxes etc. that Amazon charges.

setup

3. Setup Sync Configurations

Using the After Date, you can sync orders created after a particular date. In case you are importing a lot of historic data, it is suggested to start in the reverse chronological order of the After Date and import data in small chunks. After setting up all the configurations, click on Is Active and save the settings. You are now ready to use the integration.

Syncing

4. Amazon - ERPNext Item Mapping

Both ASIN and SellerSKU can be utilized to map Amazon items with corresponding ERPNext items. For instance, if you have pre-existing items in your system, created through other integrations, you can establish a custom field within the Item Master by using the Customize Form feature and setting the ASIN/SellerSKU as the value.

During the process of syncing orders from Amazon, the system will attempt to find the Item Code using the field configured to find the Item Code in the Amazon - ERPNext Item Mapping table. If the item is not found in the mapping table, you have the option to create a new item by checking the Create Item If Not Exists box.

Screenshot from 2023-07-31 13-52-50

5. Sync Orders

Click on this button to sync sales orders. Once this is successful you should see your Amazon Orders as Sales Orders in ERPNext. You can also set up a scheduler to sync orders automatically.

> In case your developer account does not have access to personally identifiable information. The customer name would be stored as a combination of the BuyerName + <Order ID> or Marketplace email ID. > >

Sales Order

Note

The connector won't handle Order cancellation. If you cancel any order in Amazon then manually you have to cancel the respective Sales Order and other documents in ERPNext.

Amending Purchase Order after Submit

https://docs.frappe.io/erpnext/amending-purchase-order-after-submit

Rate and Qty in Purchase Order can now be amended after Submit using the button.

Update Items

Update Items

To Update Rate and Qty in a Submitted Purchase Order, click on the button. A dialog will pop up to let you make the change.

Update Items

Update Items

Please Note the following validations and usecases:

  • Update Features checks if Purchase Order has Purchase Receipt and Purchase Invoice.
  • Qty can be updated for un-received and for partially-received Purchase Order. For Purchase Order with completed Purchase Receipt, it cannot be updated.
  • Rate can be updated for un-invoiced and partially-invoiced Purchase Order. For Purchase Order with submitted Purchase Invoice, it cannot be updated.

Amending Sales Order after Submit

https://docs.frappe.io/erpnext/amending-sales-order-after-submit

Rate and Qty in Sales Order can now be amended after Submit using the button.

Update Items

Update Items

To Update Rate and Qty in a Submitted Sales Order, click on the button. A dialog will pop up to let you make the change.

Update Items

Update Items

Please Note the following validations and usecases:

  • Update Features checks if Sales Order has Delivery Note and Sales Invoice.
  • Qty can be updated for undelivered Sales Order and for Partial Delivery Note. For Sales Order with completed Delivery Notes, it cannot be updated.
  • Rate can be updated for un-invoiced and partially-invoiced Sales Order. For Sales Order with submitted Sales Invoice, it cannot be updated.

Applying a Discount

https://docs.frappe.io/erpnext/applying-discount

There are several ways to apply a Discount on an item in a sales transactions. This can be done in all sales and purchase transactions.

1. Discount on Price List Rate of an item

You can find the Discount field in the Item table of a transaction, click on the downward arrow at the righ-hand side of a row. A Discount can be applied as a percentage or a fixed amount related to the Price List Rate of the Item.

Discount on Price List Rate

The feature of Discount (%) is available in all sales and purchase transactions.

If you want to apply a discount (as a Percentage) regularly for certain quantities you'd rather use a "Pricing Rule". Read Pricing Rule documentation to learn more.

2. Discount on Net Total or Grand Total

In the "Additional Discount" section (of a "Sales Order" or "Sales Invoice" alike), you can apply a Discount as a fixed amount or a percentage on the total sum of the Sales.

Additional Discount

2.1 Discount on "Net Total"

If a Discount is applied on Net Total, then item's Net Rate and Net Amount is calculated as per the Discount Amount. Net Rate and Amount field will be visible only if Discount is applied using this feature.

Discount on Net Total

2.2 Discount on "Grand Total"

If a Discount is applied based on the Grand Total, then with item's Net Rate, Net Amount as well as taxes are also re-calculated as per Discount Amount.

Discount on Grand Total

Appointment

https://docs.frappe.io/erpnext/appointment

An appointment is a prearranged meeting between a Lead and an Employee of your Company.

Appointment document type can be used to schedule and manage interaction with a Lead or an Opportunity.

To access Appointment list, go to:

Home > CRM > Sales Pipeline > Appointment

1. Prerequisites

  1. Appointment Booking Settings
  2. Holiday List
  3. Employee
  4. Lead
  5. Email

2. How to create an Appointment

  1. Go to Appointment list, click on New
  2. Select scheduled time of the appointment
  3. Enter customer details
  4. In linked documents, if you have already created a Lead for the Customer you can set it here. Otherwise the system will automatically create a new lead with the customer details from previous step.
  5. Save.
New Appointment

2.1 Creating appointments via website

Your Customers/Leads can create appointment using the webpage .

yoursitename.com/book_appointment

First they need to set a date, time.

Appointment Webform

Then, add more details:

Appointment Details

It'll match the customer email with leads in the system and if one is found, it is linked with the document. If no lead is found, the appointment is marked as "Unverified" and an email is sent to the customer to confirm their email

3. Features

3.1 Autoassign

Appointments are automatically assigned to employees as per the list in Appointment Booking Settings. The agent with the least number of assignments for the day of the appointment and who is free in the scheduled time is assigned to the appointment.

Agents

3.2 Email confirmation

If there is no matching lead in your system, an email will be sent to the email address in the appointment to confirm if the email address is valid. Upon confirmation, a new Lead will also be created in the system along with the Appointment.

Appointment Booking Settings

https://docs.frappe.io/erpnext/appointment-booking-settings

You can find all settings related to booking appointments in Appointment Booking Settings.

Appointment Booking Settings

1. Enable Appointment scheduling

This checkbox will enable appointment scheduling and also enable the Route for website users (your customers). Your customers will see a portal view. To know more, visit the Appointment Page

/book_appointment

2. Agent Details

In this section, you can add details about agents, such as their working hours and holidays.

2.1 Availability of Slots

Here you can set the timing in which your agents are available to attend an appointment. This is set per day of the week. Each row represents a continuous block of time, you can have multiple entries for each day of the week.

For example if your agents work Monday to Friday, 9am to 5pm but with a lunch break at 1.30 for half and hour. You will need to create two entries for each day. One from 9am to 1.30pm and another from 2pm to 5pm.

2.2 Agents

This is the list of agents which will be autoassigned to appointments. The number of appointments which can exist in one timeslot also depends upon the number employees in this list.

2.3 Holiday list

You can link a (holiday list)[https://erpnext.com/docs/v13/user/manual/en/human-resources/holiday-list] here to apply to the appointment schedule. If the day is a holiday, scheduling an appointment on that day won't be allowed.

3. Appointment Details

This section contains details about the appointment themselves.

3.1 Appointment Duration in minutes

The duration of appointment in minutes. This is used to calculate appointment timeslots for the web portal. Changing this does not affect the appointments created before the change.

3.2 Notify Via Email

Enabling this checkbox will send an email to the participants of the appointments i.e. your employee and the customer on the day of the appointment. Changing this checkbox does not affect the appointments created before the change.

3.3 Number of days appointment can be books in advance

This is the number of days the appointment can be booked in advance. If the Holiday List provided above ends before the date calculated using this number, appointment scheduling will be stopped at the end of holiday list end.

4. Success settings

4.1 Success Redirect URL

This is the URL where the user will be redirected on creation of successful appointment creation via Web Portal. This redirect will not occur when creating appointments from within Desk UI. Leave blank for home. This is relative to site URL, for example "about" will redirect to "https://yoursitename.com/about"

Asset

https://docs.frappe.io/erpnext/asset

An Asset is any valuable item owned by a company that is used in operations and has a useful life spanning multiple years.

Examples include furniture, computers, mobile phones, printers, cars, and manufacturing equipment. Assets can be tangible (physical items located at company premises or with employees) or intangible.

An asset's useful life spans across multiple years and hence its economic value is spread over corresponding years from the accounting perspective. If you buy a printer for $300 and it is expected to be useful for three years, from the accounting perspective $100 is recorded as the expense for three years each instead of all the $300 in the first year. Most countries have rules for such calculations.

In ERPNext, the Asset record is the core of the Asset Management module. All transactions related to an asset — purchasing, depreciation, maintenance, movement, scrapping, and sales — are recorded against this record.

To access the Asset list, go to:

Home > Assets > Assets > Asset

1. Prerequisites

Before creating and using Asset, it is advised to create the following first:

2. How to create an Asset

2.1 Prepare the Item

  • Create an Item representing the asset.
  • ‘Maintain Stock’ should be unchecked.
  • ‘Is Fixed Asset’ must be checked.

2.2 Auto Creation of Assets (Optional)

  • Enable ‘Auto Create Assets on Purchase’ in the Item if you want assets to be created automatically upon submission of a Purchase Receipt.
  • Provide Asset Location in the Purchase Receipt item table.
  • On submission, ERPNext displays a message confirming that assets have been created.

2.3 Manual Creation of Assets

If auto asset creation is not enabled:

  1. Go to the Asset list and click New.
  2. Enter a Name for the Asset.
  3. Select the Item Code.
  4. Link the Purchase Receipt/Purchase Invoice (Purchase Date and Gross Purchase Amount auto-filled).
  5. Select a Location (e.g., Mumbai).
  6. Set Available-for-Use Date — depreciation will start from this date.
  7. Click Save and Submit.

Note: One asset record is needed for each individual asset. For example, if you purchased 5 computers in one Purchase Receipt, create 5 separate asset records.

2.4 Creating Composite Assets

  • A Composite Asset can be created from multiple items (e.g., Computer made of Monitor, Keyboard, etc.).
  • Select asset type as ‘Composite Asset’ in the Asset form.
  • Tag this asset in the WIP Composite Asset field of items in Purchase Receipts/Invoices.
  • Once all items are received, use Asset Capitalization to capitalize the composite asset.

2.5 Importing Existing Assets

When migrating from a legacy system:

  1. Select asset type as ‘Existing Asset’.
  2. Provide:
  • Gross Purchase Amount
  • Purchase Date
  • Available-for-Use Date
  • Opening Accumulated Depreciation
  • Number of Depreciations Booked
  • Is Fully Depreciated (if applicable)

ERPNext will calculate the remaining depreciation schedule automatically.

3. Additional Options

  • Custodian: Employee responsible for the asset
  • Department: Department of the custodian
  • Calculate Depreciation: Enable to calculate depreciation automatically

4. Features

4.1 Depreciation

  • Frequency of Depreciation (Months): Time between depreciation entries
  • Total Number of Depreciations: Total entries over useful life (pending depreciations for existing assets)
  • Depreciation Method: Straight Line, Written Down Value, Double Declining Balance, Manual
  • Depreciation Posting Date: Start date for depreciation
  • Expected Value After Useful Life: Salvage or residual value
  • Salvage Value Percentage: Auto-calculate based on gross purchase amount
  • Rate of Depreciation: Calculated based on expected value
  • Finance Book: Book against which depreciation entries are recorded
  • Daily Pro-Rata / Shift-Based Depreciation: Options to adjust depreciation based on actual usage

4.2 Depreciation Schedule

  • View schedule in the Depreciation tab
  • Columns: Schedule Date, Depreciation Amount, Amount Depreciated, Journal Entry

4.3 Insurance Details

  • Policy Number
  • Insurer
  • Insured Value
  • Insurance Start/End Dates
  • Comprehensive Insurance (if applicable)

4.4 Accounting Entries

  • On submission: CWIP account credited, asset account debited
  • Submission requires Available-for-Use Date
  • If future date, accounting entry is posted automatically via scheduler

4.5 Maintenance

  • Enable Maintenance Required to record Asset Maintenance entries
  • Refer to Asset Maintenance page for details

5. After Submitting

Once an asset is created and submitted, you can:

  • Transfer the asset
  • Scrap the asset
  • Sell the asset
  • Adjust value or record depreciation entries using the action buttons

  1. Asset Maintenance
  2. Asset Movement
  3. Purchase Receipt
  4. Purchase Invoice

Asset Capitalization

https://docs.frappe.io/erpnext/asset-capitalization

Asset Capitalization is a transaction used to combine stock items or existing Assets into a new composite Asset and capitalize all related costs.

Example Scenario

A company is building a new production line. The production line consists of:

  • Conveyor Belt (Stock Item)
  • Industrial Motor (Stock Item)
  • Control Panel (Stock Item)
  • Installation Charges (Service Expense)

Instead of tracking these separately, the company wants to create a single Asset called “Production Line – Plant A” and capitalize all component and service costs into one composite Asset.

Asset Capitalization allows you to:

  • Combine multiple stock items into one Asset
  • Capitalize service and installation costs
  • Merge multiple existing Assets into one new Asset
  • Automatically generate the correct accounting entries

To access the Asset Capitalization feature, go to:

Home > Assets > Maintenance > Asset Capitalization

1. Convert Stock Items into a New Composite Asset

This is used when building a new Asset from inventory items.

1.1 Steps

  • Go to Asset Capitalization and click New.
  • Select the Target Asset (new composite Asset).
  • Update if required:
  • In the Consumed Stock Items table:
  • Click Save and Submit.
  • Open the newly created Asset.
  • Set Depreciation Details (if applicable).
  • Submit the Asset.
  • Naming Series
  • Company
  • Finance Book
  • Posting Date
  • Add stock items
  • Select Quantity and Warehouse

1.2 Accounting Effect

  • The Consumed Stock Items will be reduced by the selected qty from the selected warehouses and the Warehouse Stock Accounts will be credited with the issued stock value amount.
  • The system will first check if the target asset is in CWIP (Capital Work in Progress). If so, the CWIP account will be debited by the total value.
  • Upon submission of the target asset, the CWIP account will be credited, and the corresponding Fixed Asset account will be debited.

2. Convert Stock Items and Capitalize Service Expenses

This scenario includes service-related costs.

2.1 Steps

In addition to Consumed Stock Items, add:

  • Service Expenses
  • Corresponding Expense Accounts

2.2 Accounting Effect

  • Service Expense Accounts are credited.
  • Total Asset value includes:
  • Stock item value
  • Service expenses

All costs are capitalized together.

3. Convert Existing Assets into a New Composite Asset

Used when multiple Assets are merged into one.

3.1 Steps

  • Create a new Asset Capitalization.
  • Select the Target Asset.
  • Adjust Company, Finance Book, and Posting Date if required.
  • Add Assets in the Consumed Assets table.
  • Click Save and Submit.
  • Set depreciation details for the new Asset.
  • Submit the Asset.

3.2 Accounting Effect

When submitted:

  • Consumed Assets are depreciated up to the Posting Date.
  • Depreciation Journal Entries are created automatically.
  • Asset status changes to Capitalized.
  • Fixed Asset Accounts of consumed Assets are credited.
  • If CWIP is used:
  • CWIP is debited initially.
  • On final submission, CWIP is credited and Fixed Asset account is debited.

4. After Submitting

After completing Asset Capitalization:

  • Stock quantities are reduced.
  • Depreciation entries (if required) are posted.
  • GL Entries are created automatically.
  • The new composite Asset is ready for depreciation.

Asset Category

https://docs.frappe.io/erpnext/asset-category

Asset Category classifies different assets of a company and sets default accounting and depreciation rules for them.

The Asset Category DocType helps organize similar assets under a single classification and simplifies asset management. For example, all desktops and laptops can belong to an Asset Category called “Electronic Equipment”. Each category can have default depreciation methods, accounting settings, and cost centers, which are automatically applied to all assets in that category.

To access the Asset Category list, go to:

Home > Asset > Assets > Asset Category

1. Prerequisites

Before creating an Asset Category, it is advised to:

2. How to create an Asset Category

  • Go to the Asset Category list and click New.
  • Enter a Name for the category.
  • Configure optional depreciation and accounting details as needed.
  • Click Save.

Asset Category

2.1 Additional options when creating an Asset Category

  1. Enable Capital Work in Progress Accounting: On enabling this, accounting entry for assets under this category which are not in use are posted in the Capital Work in Progress accounts. This happens when you own the Asset but it isn't being used yet, i.e. 'Available for Use Date' is set at a later date. If you use all your assets immediately, disable this feature. On disabling this, CWIP accounting will be skipped.
  2. Non Depreciable Category: On enabling this, depreciation is skipped for assets under this category. Depreciation-related account fields are not required, and no depreciation schedule is generated. Use this for assets like land or other non-depreciable items. Disable if depreciation should apply.Features

3 Features

3.1 Finance Book details

You can link a Finance Book if you report depreciation in different ways. You can enter the following fields:

  • Depreciation Method: Choose a depreciated method on which you'll record the depreciation of assets in this category. To know more, visit this page.
  • Frequency of Depreciation (Months): The number of months within which the depreciation will be booked. The asset may be scrapped after this period.
  • Total Number of Depreciations: The number of deprecations to be booked in the selected time frame.
  • Rate of Depreciation: The rate of deprecation applied over the selected period. This will be calculated based on the Depreciation Method selected.

3.2 Accounting Details

The following account details can be set to record asset values in the ledger:

  • Company
  • Fixed Asset Account
  • Accumulated Depreciation Account
  • Depreciation Expense Account
  • Capital Work In Progress Account

4. After Creating an Asset Category

Once created, you can:

  • Create new Assets under this category.
  • Track depreciation, maintenance, transfers, or disposal using the Asset module.
  1. Finance Book
  2. Depreciation

Depreciation

https://docs.frappe.io/erpnext/asset-depreciation

Depreciation is the process of allocating the cost of an asset over its useful life.

In ERPNext, depreciation is calculated for fixed assets to reflect their gradual reduction in value over time. The Depreciation module allows businesses to:

  • Automate depreciation calculations based on predefined methods
  • Maintain accurate accounting records for asset value reduction
  • Track depreciation schedules for individual assets
  • Integrate with Finance Books for multiple reporting requirements

For example, if you purchase a printer for $300 that is expected to be useful for three years, ERPNext can allocate $100 as depreciation expense each year instead of recording the full $300 in the first year.

1. Features

  • Depreciation Methods: Straight Line, Written Down Value, Double Declining Balance, Manual
  • Frequency & Schedule: Set how often depreciation is booked (monthly, quarterly, annually)
  • Accounting Integration: Depreciation entries are posted automatically to ledger accounts
  • Asset-wise Tracking: View depreciation per asset, including partially depreciated or fully depreciated assets
  • Finance Books: Record depreciation differently for multiple reporting purposes

Note: Depreciation in ERPNext is linked directly to Assets. Before using this module, ensure that your Assets and Asset Categories are properly created.

Asset Location

https://docs.frappe.io/erpnext/asset-location

Asset Location shows where an Asset is located.

The assets that your organization owns can be located at various facilities like administrative offices, manufacturing plants, warehouses, etc. In ERPNext you can create a 'Location' for each of your facilities and track the assets which are present in these locations.

You can also add Latitude and Longitude of the location. When an asset is moved from one location to another, you need to create an Asset Movement record.

Map of the location is also shown:

Asset Location

Asset Maintenance

https://docs.frappe.io/erpnext/asset-maintenance

Asset Maintenance refers to any activity done on Assets to maintain their performance or condition.

ERPNext provides features to track the details of individual maintenance/calibration tasks for an asset by date, the person responsible for the maintenance, and future maintenance due date.

To access the Asset Maintenance list, go to:

Home > Assets > Maintenance > Asset Maintenance

1. Prerequisites

2. How to create an Asset Category

Create an Asset Maintenance Record

  1. Go to Asset Maintenance.
  2. Click New.
  3. Fill in the required details:
  • Basic Details
  • Schedule Details
  • Asset: Select the Asset requiring maintenance.
  • Maintenance Team: Select the responsible team.
  • Maintenance Type:
  • Preventive – Scheduled routine maintenance.
  • Calibration – Adjustment to restore measurement accuracy.
  • Start Date: Date when maintenance is scheduled to begin.
  • End Date: Expected completion date.
  • Last Completion Date: Enter the actual completion date if maintenance was performed later than scheduled.
  1. Save and Submit the document.

Asset Maintenance is a transaction and must be submitted to confirm the schedule.

3. Features

3.1 Asset Maintenance Log

Once submitted:

  • An Asset Maintenance Log is created.
  • The log tracks the execution of the maintenance task.
  • Future maintenance due dates are calculated based on the schedule.

3.2 Maintenance in ToDo

When a maintenance task is assigned to a user:

  • It automatically appears in the assigned user’s ToDo list.
  • This ensures responsible personnel are notified and reminded.

Asset Maintenance Log

https://docs.frappe.io/erpnext/asset-maintenance-log

Asset Maintenance Log logs the tasks carried out in an Asset Maintenance.

For each task in Asset Maintenance, Asset Maintenance Log is auto created to keep track of the upcoming maintenances. It will have a status, completion date and actions performed. Based on completion date here, next due date is calculated automatically and new Asset Maintenance Log is created.

To access the Asset Maintenance Log, go to:

Home > Assets > Maintenance > Asset Maintenance Log

1. Prerequisites

Before creating and using Asset Maintenance Log, it is advised to create the following first:

2. Options in Asset Maintenance Log

A Draft of the Asset Maintenance Log is created as scheduled in the Asset Maintenance form.
In order to submit an Asset Maintenance Log, the Asset Maintenance status has to either 'Completed' or 'Canceled'.

  • The status of the Asset Maintenance Log can be 'Planned', 'Completed', 'Canceled', or 'Overdue'.
  • Additional notes can be added in the Actions performed section to describe the activity in detail.

Asset Maintenance Team

https://docs.frappe.io/erpnext/asset-maintenance-team

Asset Maintenance Team is a master record used to define a group of employees responsible for carrying out maintenance activities on Assets.

Maintenance activities may include cleaning, polishing, servicing, inspection, calibration, or any other task required to keep an Asset in good working condition. Creating a maintenance team ensures accountability and proper assignment of maintenance schedules.

To access the Asset Maintenance Team, go to:

Home > Assets > Maintenance > Asset Maintenance Team

1. How to create an Asset Maintenance Team

  1. Go to the Asset Maintenance Team list, click on New.
  2. Enter a name for the team.
  3. Select a manager for the team.
  4. In the Maintenance Team Members table, add the team members and select their maintenance roles.
  5. Save.

Asset
  1. Asset Maintenance
  2. Asset Repair

Asset Movement

https://docs.frappe.io/erpnext/asset-movement

Asset Movement is a transaction used to transfer an Asset between locations and/or employees (custodians).

This feature helps you track the physical movement and custody of Assets within your organization. You can move an Asset from one warehouse to another, assign it to an employee, or record its return.

For example, a laptop can be issued from the Head Office location to an employee in the Sales department, and later transferred back to Stores when returned.

To access the Asset Movement list, go to:

Home > Assets > Assets > Asset Movement

1. How to Create an Asset Movement

  1. Go to the Asset Movement list.
  2. Click on New.
  3. Select the Purpose.
  4. Enter the required details.
  5. Click Save and Submit.

Asset Movement is a transaction and must be submitted to update the Asset’s location or custodian.

2. Features

2.1 Purpose of Asset Movement

The Purpose field determines what type of movement is being performed. Based on the selected purpose, the mandatory fields will change.

  1. Transfer: Move an asset from one location to another location.
  • Example: Transfer a molding machine from “Plant A” to “Plant B”.
  1. Issue: Move an asset from one employee to another employee
  • Example: Issue a company laptop from Stores to John Carter (Sales Executive).
  1. Receipt: Move an asset from an employee back to a location.
  • Example: Receive a laptop from an employee who has resigned and move it back to Stores.
  1. Transfer and Issue: An asset from one location to another location, and from one employee to another employee, all in a single entry.

This is useful when an Asset changes both physical location and custodian at the same time.

3. Moving Multiple Assets at Once

If you want to move multiple Assets together:

  1. Go to the Asset List.
  2. Select multiple Assets using the checkboxes.
  3. Click Actions (top right).
  4. Select Make Asset Movement.

This creates a new Asset Movement with the selected Assets pre-filled.

4. Initiating Asset Movement from Asset Form

There is also a Transfer Asset option in the Action dropdown on the top right of the Asset form to initiate Asset Movement. It auto fills available fields from Asset Form.

Asset Repair

https://docs.frappe.io/erpnext/asset-repair

Asset Repair refers to any activity carried to repair a broken Asset to restore full functionality.

You can also maintain the records of Repair/Failures of Assets which are not listed in Asset Maintenance.

To access the Asset Repair list, go to:

Home > Assets > Maintenance > Asset Repair

1. Prerequisites

Before creating an Asset Repair, ensure:

2. How to create an Asset Repair

  1. Go to the Asset Repair list, click on New.
  2. Select the Asset.
  3. Select the Failure Date.
  4. Enter the Repair Cost.
  5. Change the Repair Status from 'Pending' to 'Completed', or 'Canceled'.
  6. Select a Purchase Invoice if Repair Cost is greater than zero.
  7. Save and Submit.

Note: Alternatively, you could open the record for the Asset in question and click on the Repair Asset button under Manage, and then follow steps 3-8.

3. Features

3.1 Capitalize Repair Cost

If checked, the Repair Cost will be added to the Asset's value. This could also allow you to increase the Asset's life.

3.2 Increase In Asset Life(Months)

The number of months by which the Asset's life might be extended by the repair can be added here. This will modify the Depreciation Schedule of the Asset. This field will only be visible if Capitalize Repair Cost is checked.

3.3 Consumed Stock Items

Entering Stock Items consumed during the repair here will create a Stock Entry record of type Material Issue for them, thereby decreasing their quantity. GL Entries will also be created for each Item in the table. In case of Serialized Items, the Item row can be expanded to reveal the Add Serial No button.

  • Error Description: A detailed descripton of the problem can be entered here.
  • Actions Performed: A sequence of actions performed to carry out the repair can be noted down here.

3.4 Accounting Dimensions

Accounting Dimensions let you tag transactions based on a specific Territory, Branch, Customer, etc. This helps in viewing accounting statements separately based on the selected dimension(s). To know more, check help on Accounting Dimensions feature.

Note: Project and Cost Center are treated as dimensions by default.

3.5 Purchase Invoice

A Purchase Invoice can be linked with the Asset Repair, to account for any Items that need to be purchased to carry out the repair or the repair service offered.

3.6 Total Repair Cost

If Stock Consumed During Repair is checked, the Total Repair Cost will be computed based on the value of the consumed Stock Items and the Repair Cost entered.

Asset Reports

https://docs.frappe.io/erpnext/asset-reports

1. Asset Depreciation Ledger

This report shows the Purchase Amount, Depreciated Amount and accumulated total depreciation for all the assets under the selected date range. It also shows the current value and current depreciation status of the Asset.

2. Asset Depreciations and Balances

The Asset Depreciation and Balances Report in ERPNext provides a detailed overview of asset values, costs, and depreciation over a specified period. It allows users to track asset financials, assess depreciation, and calculate net asset value. With features like grouping by asset or Asset Category, flexible filtering, and real-time data retrieval.

2.1 Group By Asset Category

2.2 Group By Asset

3. Fixed Asset Register

Fixed asset register provides a unified view of all the details regarding current status of an asset. A Fixed asset register tracks all the fixed assets that the you have created. This not only includes assets that are currently in your possession, but also tracks those assets that are disposed.

Types of records based on depreciation:

  • ** In Location: All the assets that are currently in your possession are under this category.
  • ** Disposed: All the assets that are currently sold or scrapped come under this category.

4. Asset Activity

The Asset Activity report lets you see all the activities an asset went through at a single place.

Asset Shift Allocation

https://docs.frappe.io/erpnext/asset-shift-allocation

Asset Shift Allocation is a transaction that allows you to modify the shifts of an asset (with shift-based depreciation enabled) for a specific period while automatically adjusting the remaining depreciation schedule.

This feature is useful when an asset operates in more or fewer shifts than originally planned. Instead of manually recalculating depreciation, the system redistributes the remaining shifts automatically to maintain consistency in total depreciation.

For example, if a production machine runs additional shifts during peak season, you can adjust the shift for that period and let ERPNext recalculate the remaining schedule.

To access Asset Shift Allocation, go to:

Home > Assets > Asset > Asset Shift Allocation

1. Prerequisites

Before creating an Asset Shift Allocation, ensure:

  • An Asset is created.
  • Shift Depreciation is enabled for the asset.
  • A depreciation schedule has already been generated.

2. How to Create an Asset Shift Allocation

  1. Go to the Asset Shift Allocation list.
  2. Click on New.
  3. Select the Asset.
  4. Click Save.

Upon saving, the system automatically fetches the current depreciation schedule so you can edit the shift values.

Only after reviewing and confirming the updated schedule should you click Submit.

Note: Asset Shift Allocation is a transaction and must be submitted to apply changes.

3. What Happens Automatically?

When you save:

  • The system recalculates the total shift distribution.
  • To preserve the total planned depreciation:
  • The last row may be removed, or
  • The shift in the last row may be adjusted.

Example Outcomes:

  • If you change the any row to Triple, the last row is automatically removed to maintain the total shift count.
  • If you change the any row to Double, the last row’s shift is adjusted to Half.

This ensures:

  • Total shifts remain consistent
  • Total depreciation amount does not change
  • No manual recalculation is required

4. Submitting the Allocation

After reviewing the recalculated schedule:

  1. Click Submit.
  2. A new depreciation schedule is generated.
  3. Future depreciation entries follow the updated shift allocation.
  4. Past booked depreciation entries remain unchanged.

5. Key Features

5.1 Automatic Rebalancing

The system automatically adjusts remaining shifts to ensure the total shift factor across the asset’s life remains intact.

5.2 Preservation of Total Depreciation

Even if individual period shifts change, the total depreciation amount over the asset’s lifetime remains unchanged.

5.3 Controlled Period Adjustment

You can modify shifts for specific rows without manually recalculating the entire depreciation schedule.

Asset Value Adjustment

https://docs.frappe.io/erpnext/asset-value-adjustment

If the value of an Asset changed suddenly due to any damages, it can be recorded using Asset Value Adjustment.

In case of fixed asset management, sometimes the value of an asset needs some adjustment. For example, if a laptop gets damaged for some reason, and its value will be dropped instantly. And in that case, we have to readjust the value of the asset.

To access the Asset Value Adjustment, go to:

Home > Assets > Maintenance > Asset Value Adjustment

1. Prerequisites

Before creating and using Asset Value Adjustment, it is advised to create the following first:

  1. Asset

2. How to create an Asset Value Adjustment

  1. Go to the Asset Value Adjustment list, click on New.
  2. Select an Asset whose value is to be adjusted.
  3. Select a date.
  4. Enter the current and new value of the asset.
  5. Select adjustment account
  6. Save and Submit.

On saving the system will book a "Gain/Loss on asset revaluation" and adjust the valuation of the asset.
You can change the cost center and add a finance book.

On submitting, a Journal Entry is created under the 'Accumulated Depreciations' account.

Overview

https://docs.frappe.io/erpnext/assets/introduction

An asset is something a business owns and uses to run its operations over a long period of time. These are not items meant for resale, but resources that help the business carry out its activities.

  • Tangible assets – such as equipment, machinery, vehicles, furniture, and property.
  • Intangible assets – such as patents, trademarks, licenses, or software.

In ERPNext, The Asset Management module enables businesses to efficiently track, manage, and maintain these assets throughout their lifecycle. This includes recording asset details such as purchase information, depreciation methods, maintenance schedules, and disposal activities.

By leveraging ERPNext's asset management capabilities, organisations can ensure optimal utilisation of resources, accurate financial reporting, and compliance with accounting standards, ultimately contributing to improved operational efficiency.

Assignment Rule

https://docs.frappe.io/erpnext/assignment-rule

Introduced in Version 12

An Assignment Rule lets you set up automatic assignment of documents to Users.

To assign the support tickets automatically amongst the employees who work on support, an Assignment Rule can be used.

To access Assignment Rule, go to:

Home > Settings > Assignment Rule

1. How to create an Assignment Rule

To set up an automatic assignment:

  1. Go to the Assignment Rule list, click on New.
  2. Select the Document Type you want to assign automatically (for example Issue).
  3. Write the "Description" that will be added to the To Do.
  4. Select the condition for the assignment. You can write simple Python expressions for automatic assignment in the , and . You will have access to all the properties of the document and can use operators like >, <, ==, etc and also multiple conditions like and .
Assign RuleClose RuleUnassign Ruleandor

Examples:

status == "Open"issue_type == "Technical" and priority=="High" and status == "Open"
  1. Select the assignment rule.

Assignment Rule
  • Round Robin: Assign each document to a User in sequence.
  • Load Balancing: Assign new documents to the User who has the least number of assignments.

Select the list of Users to whom this Assignment Rule will apply:

Users in Assignment Rule
  • Based on Field: Introduced in v13, this rule can be used to assign a document to the User that is set in the configured field.

Select the User link field which will determine to whom this Assignment Rule will apply:

Field Assign
  1. Save.

You can use properties of the document in the Description field that will be part of the assignment. Higher 'Priority' Assignment Rules will be applied first.

Example:

High Priority Issue File Upload not working has been assigned to you.

1.1 Multiple Assignment Rules

You can also set up multiple auto assignments for each Document Type, the one with the highest Priority will be applied first.

Assignment Rule with Higher Priority

assignment-rule-with-higher-priority

1.2 Setting Due Date for assignment

You can auto set due dates for assignments based on the date field in the reference document.

Example:

If you want to set a due date on Issue assignment based on the "Resolution By" date of the Issue, you can do so by selecting "Resolution By" field in option in Assignment Rule.

Due Date Based On

Due Date Based On

Note:

  • "Due Date Based On" option will not be available if "Document Type" is not yet selected or if the selected Document Type does not have any "Date" or "Datetime" field.
  • Due Date in the assignment/ToDo will be updated whenever the "Due Date Based On" field value is updated in the reference document.
  1. Workflows
  2. Workflow Actions

Drop Ship Between Subsidiary Companies

https://docs.frappe.io/erpnext/assistance-sales-purchase-between-companies

Scenario:

Our Business has 2 sister companies where SAS is handling clients and sales orders and BV is handling stock, purchases but also some local clients.

Using ERPNext we wish to implement the following workflow.

  1. Client contacts SAS
  2. SAS generates a Sales order
  3. SAS turns the SO into a Purchase order for BV
  4. BV receives PO > SO from SAS
  5. BV Fulfils order from Stock to end-client
  6. BV Invoices SAS
  7. SAS pays to BV
  8. SAS invoices end- client and bills

Answer:

You can manage this scenario by using Drop Shipping feature of ERPNext. Check following link to learn how it functions in ERPNext.

Drop Shipping

Steps:

  1. For the SAS Company, create a Sales Order for the Customer. Ensure to check "Drop Shipping" for the item.
  2. For the Company SAS, add BV as a Supplier
  3. Create a Purchase Order (PO) against a Sales Order. In PO, select BV as a Supplier. But shipping address will be the client's address.
  4. SAS will create a Purchase Invoice, as they are liable to pay to BV.
  5. Against the original Sales Order, SAS will create a Sales Invoice for Customer, and create Payment Entry later.
  6. The company BV will add SAS as their Customer. They can create a Sales Order to book income in their accounts. Make Delivery Note for the Customer. Make Sales Invoice for SAS.

Authorization Rule

https://docs.frappe.io/erpnext/authorization-rule

Authorization Rule allows configuring a custom authorization / approval on a documents, based on conditions defined.

Example: If a Sales Order's Grand Total exceeds $1,000, then it should be verified/submitted by the Sales Manager only, even if the Sales User has "Submit" permission.

On the same lines, you can define Authorization Rule based on the fields like Net Total, Grand Total, Discount % and specify who would be the document approver if the authorization condition is matched.

Authorization Rule

Let's consider a detailed example of an Authorization Rule to learn better.

Assume that the Sales Manager needs to authorize Sales Orders, only if it's Grand Total value exceeds 10,000. If the Sales Order value is less than 10,000, then even the Sales User will be able to submit it. This means that the Submit permission of Sales User will be restricted only up to Sales Order of Grand Total less than 10,000.

1. How to create an Authorization Rule

  1. Go to the Authorization Rule list, click on New.
  2. Select the transaction on which Authorization Rule will be applicable. This functionality is available for limited transactions only.
  3. Enter the Authorized Value, etc. This depends on the field you selected in Based On.
  4. Select Based On. Authorization Rule will be applied based on the value selected in this field.
  5. Select Applicable Role. This is the role on which this Authorization Rule will be applicable. As per the example, it'll be Sales User.
  6. To be more specific, you can also select Applicable To User if you wish to apply the rule to a specific Sales User, and not to all Sales Users.
  7. Select Approving Role. This is the role that can approve forms over the Authorized value. As per our example, it is the Sales Manager.
  8. You can also select a specific Sales Manager.
  9. Save.

Authorization Rule

If the Sales User tries submitting the Sales Order of value higher than 10,000, then he will get an error message.

Authorization Rule Validation Message

If you wish to restrict Sales User from submitting Sales Orders, then instead of creating Authorization Rule, you should remove submit privilege for Sales User from Role Permission Manager.

Documents on which Authorization Rule can be applied

  1. Sales Order
  2. Purchase Order
  3. Quotation
  4. Delivery Note
  5. Sales Invoice
  6. Purchase Invoice
  7. Purchase Receipt
  8. Appraisal

Fields on which Authorization Condition can be based on

  1. Grand Total
  2. Average Discount
  3. Customer-wise Discount
  4. Item-wise Discount

Auto Creation of Material Request

https://docs.frappe.io/erpnext/auto-creation-of-material-request

To prevent stockouts, you can track item's reorder level. When stock level goes below reorder level, purchase manager is notified and instructed to initiate purchase process for the item.

In ERPNext, you can update item's Reorder Level and Reorder Qty in the Item master. If same item has different reorder level, you can also update warehouse-wise reorder level and reorder qty.

reorder level

With reorder level, you can also define what should be the next action. Either new purchase or transfer from another warehouse. Based on setting in Item master, purpose will be updated in the Material Request as well.

reorder level next action

When item's stock reaches reorder level, Material Request is auto-created automatically. You can enable this feature from:

Stock > Setup > Stock Settings

active auto-material request

A separate Material Request will be created for each item. User with Purchase Manager's role will receive email alert about these Material Requests.

If auto creation of Material Request is failed, User with Purchase Manager role will be informed about error message. One of the most encountered error message is:

An error occurred for certain Items while creating Material Requests based on Re-order level. Date 01-04-2016 not in any Fiscal Year.

One of the reason of error could be Fiscal Year as well. Click here to learn more about it.

Note:

The system creates a material request by comparing the projected quantity of the group warehouse with the reorder level. If the group warehouse is not set, then the system compares the projected quantity of the Request for Warehouse with the reorder level. If the projected qty is more than the reorder level then system doesn’t add that item in the material request.

Auto Email Reports

https://docs.frappe.io/erpnext/auto-email-reports

Auto Email Reports automatically sends reports for the selected document.

You can setup Auto Email Report to send reports at regular intervals. These must be saved reports of any type (Report Builder, Script or Query Report).

You can find Auto Email Report at:

Home > Settings > Auto Email Report

  1. How to create an Auto Email Report
  1. Go to the Auto Email Report list, click on New.
  2. Select the Report for which you want to generate emails.
  3. Select the user for which you want to create this report (permissions will apply for this user).
  4. Set the Email Addresses to which you want this report to be emailed and the frequency of the report. Emails will be sent at midnight. The date will be repeated in case of weekly/monthly/yearly frequency.

5. Save.

With Filters

You can test the report by clicking on "Download" or "Send Now". Here is an example of the email you will receive for a general ledger report:

Report by Email
  1. Features

2.1 Filter Data

  • Send only if there is any data: If enabled, emails will not be sent if there is no data in the report.
  • Only Send Records Updated in Last X Hours: If set to 24, an email will contain only records updated in the last 24 hours.
  • No of Rows: The number of rows to be sent in the email. The maximum is 500.

2.2 Report Filters

If your report has filters, you will be able to see them. Click on the table to edit it:

Edit Filters

For example, if the email is on the report 'Project Billing Summary' select the Project. The date range here is the date range of the 'Project Billing Summary'.

2.3 Message

A message can also be added to be sent with the email report. For example, 'This is your monthly Project Billing Summary Report:'

You can also change the file format in which the report is created. The available options are HTML, XLSX, and CSV.

  1. Email Digest
  2. Document Follow

Auto Repeat

https://docs.frappe.io/erpnext/auto-repeat

Auto Repeat feature helps you create certain documents automatically in a given time period.

From version 12, you can Customize any Form to make the documents repeatable.

For Example: Assuming that you follow deferred expense system for some items. It requires you to create same Journal Entry every month to credit Deferred Expense account and debit Expense Account. You can create first Journal Entry manually for it, and then create auto-repeat transaction for it.

To access Auto Repeat, go to:

Home > Settings > Automation > Auto Repeat

1. How to set up Auto Repeat

1.1 Customize the Form

  1. Go to: Home > Customization > Form Customization > Customize Form.
  2. Select the form in which you want to allow creation of repeatable documents.
  3. Check 'Allow Auto Repeat' to allow the creation of repeatable documents for that Form. This is necessary for the document type to show up in the Reference Document field under the Auto Repeat doctype.

Allow Auto Repeat

1.2 Set up Auto Repeat

  1. Go to Home > Settings > Automation > Auto Repeat > New.
  2. Select the Reference Document Type, like Journal Entry or Sales Invoice, etc.
  3. Select the Reference Document. This is the individual document that you want to repeat.
  4. Set the Start Date and End Date (optional). If End Date is not specified, recurring documents will be created, unless the Auto Repeat is disabled.
  5. Set the Frequency for creating repeatable documents (Daily, Weekly, Monthly, Quarterly, Half-yearly, Yearly).
  6. Save.

1.3 Set up Auto Repeat directly from the document

You can also set a document on Auto Repeat by clicking the Repeat option from the Menu in the Toolbar.

Note: If a document is already on Auto Repeat, the Repeat option is not available.

Repeat in Transactions

Once you click on Repeat, a prompt for Auto Repeat will show up. Fill in the details and click on Save.

Auto Repeat Prompt

2. Features

2.1 Submit on Creation

If the reference document type is submittable, you get an option called Submit on Creation. If this is checked, your document will be submitted on creation.

Auto Repeat Submit on Creation

2.2 Notify by Email

If you want to notify certain contacts whenever the recurring documents are created, you can check 'Notify by Email' in the Notification section of Auto Repeat. This will send the auto-generated recurring documents to the specified Email Addresses. Fields for the same are explained below:

  • Recipients: Defines the Email IDs of the recipients for recurring document creation emails.
  • Get Contacts: This button will fetch the contacts linked to the document that is set on Auto Repeat and fill up the Recipients field with the same.
  • Template: You can choose an Email Template for the email. This will fill up the Subject and Message fields as well.
  • Subject: Subject for your Email (example: Recurring ToDo created successfully).
  • Message: Message to be sent in the Email.
  • Preview Message: This button will show a preview of the message.
  • Print Format: Select a print format to define document view which should be emailed to customer.

Note: If the document you are setting up Auto Repeat for, is submittable, ensure that "Allow Print for Draft" is enabled in Print Settings to receive the new recurring document in Auto Repeat Notification Email. If this is not enabled, you will be notified about the recurring document creation without the document.

2.3 Repeat on a particular day

If the frequency is set as Monthly, Quarterly, Half-yearly or Yearly, then it will create recurring documents in the respective months on the same day as the 'Start Date' of Auto Repeat. If you want to create recurring documents on some other day then you can set one of the following:

  • Repeat on Day: Day of the month on which recurring document will be created. For example, if frequency is Monthly and you enter 7 then it will generate recurring document on 7th of the respective month.
  • Repeat on Last Day of the Month: This option is available as the last day of every month is different. For example, in a leap year last day of Feb is 29th, and it is 28th otherwise. If you check this option, it will create recurring documents on the last day of the respective months.

2.4 Ability to select weekdays for Auto Repeat

Introduced in version 13

Auto Repeat with Weekly frequency allows you to select the days on which you want the recurring documents to be created.

Auto Repeat Weekdays

2.5 Dashboard

You can see the Auto Repeat schedule in the Dashboard of Auto Repeat document. If you don't specify the End Date then the schedule will show only the Next Schedule Date.

Auto Repeat Dashboard

2.6 Auto Repeat Frequency on the sidebar

When a document is set on Auto Repeat you can see the Auto Repeat frequency on the sidebar. You can click on the status to see the linked Auto Repeat document.

Auto Repeat Frequency

2.7 Disable Auto Repeat

If you check this field it will stop creating recurring documents and unlink the Auto Repeat document from the Reference Document.

Automate Lead Creation

https://docs.frappe.io/erpnext/automate_lead_capturing

Leads come from many different sources. It is important that all leads are recorded, assigned to sales executives and followed up.

1. Create Leads From Emails

You may have an email address like 'sales@yourcompany.com' which is probably displayed on your website. People may send emails asking information about your products and services. You can enable Email Account to pull these emails and create a lead for each email.

2. Create Leads From Webforms

You can also map the Lead form to a Web Form and publish it on your website. When visitors of your website fill the form, it will be automatically added as a Lead.

3. Create Leads From Incomplete Orders in E-Commerce Module

You can publish an e-commerce website and allow users to place an order for your products. If a user selects items but doesn't complete the process you can pursue that user as a lead.

4. Create Leads By Importing Spreadsheet

If you have a spreadsheet with details of the leads, you can use the Data Import feature to import the leads.

Automating Issue Assignments in ERPNext

https://docs.frappe.io/erpnext/automating-issue-assignments-to-support-team-in-erpnext

Modern support automation tools demonstrably improve customer service. Automating the assignment of support issues ensure that every issue ticket has been assigned a product expert and the customer seeks resolution to their queries faster. Assignment Rule has been introduced in v12 and here's how you can automate your support team's troubles away.
First, we need to setup an email account that appends the incoming emails received there into the "Issue" DocType of ERPNext.**1) Create an Email Account:**You need to update email domain and setup your support email address in ERPNext's Email Account. To learn about email setup, please check out this link

**2) Append to Issue:**The checkbox, "Enable Incoming" has to be selected to allow emails sent on this email address to be received here. We need to capture them in a DocType, which is mentioned under "Appends To". In this case, we want to append all incoming emails to Issue

This is a one-time configuration and you won't have to worry about it unless you require to change the password of that email address via third party apps. The Issue List will get populated with the emails that are sent here. With the use of Assignment Rules, we can organise the customer support team's schedule and ensure timely resolution for all open support tickets.
3) Setting an Assignment Rule:

4) Based on the rule defined in step (3), the assignments will be done automaticallyThese are done as in when an Issue is created or updated. Check out below GIF to see automation in action when an issue ticket's status is updated:

Note: If needed, the rule can also be disabled/updated:

Similarly, you can automate the Sales process in ERPNext for assigning leads to your Sales team and ensure more conversion rates!! Thanks for reading this article! If you need further assistance with this, please reach our community here

Automation

https://docs.frappe.io/erpnext/automation

Automation in ERPNext is a game-changer, especially when it comes to streamlining complex processes like milestone tracking, task assignments, repetitive tasks, and event monitoring. These automation features in ERPNext not only save time and effort but also enhance overall efficiency and productivity across the organisation.

Upload Backups to Amazon S3

https://docs.frappe.io/erpnext/aws_s3

Note: If you are Frappe Cloud user, onsite and offsite backups are automatically created for you: https://frappecloud.com/docs/sites/backups

Prerequisites

To receive emails for failed and successful backups, please create an Email Account first.

Create S3 bucket and set up access

  1. Create a new s3 bucket.

In the bucket settings, enable "Block all public access" to keep your data private. Feel free to enable encryption, versioning or object lock as per your requirements (please refer to Amazon's documentation).
2. Open Identity and Access Management (IAM).
3. Create a new policy for the Service "S3", allowing the Actions "ListBucket" and "PutObject".

Screenshot of

Or, using the JSON editor:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::*/*",
                "arn:aws:s3:::YOUR TARGET BUCKET"
            ],
            "Condition": {
                "IpAddress": {
                    "aws:SourceIp": "YOUR SERVER IP"
                }
            }
        }
    ]
}
  1. Create a new user for programmatic access.

Screenshot of
  1. Attach the policy you created to the new user.
  2. Copy the user's access key and secret.

To automatically delete old backups or move them to a cheaper storage class, have a look at lifecycle management.

Create a Hetzner Bucket with Minio

Capital letters are variables you can choose freely. In this example, we use region nbg1 (Nuremburg).

  1. In the Hetzner Console at , create some S3 access credentials: key and secret.
  2. Install Minio
  3. Configure Minio to access your Hetzner buckets:
  4. Create a bucket with Object Locking enabled: . This ensures you cannot accidentally delete your backups.
  5. Set Object Locking period to 90 days:
  6. Check if everything is configured correctly:
  7. Enter configuration in S3 Backup Settings:
  8. Endpoint URL: https://nbg1.your-objectstorage.com/
  9. Bucket Name:
  10. Access Key ID:
  11. Access Key Secret:
https://console.hetzner.com/projects/YOUR_PROJECT/security/s3-credentialsmc alias set MY_ALIAS https://nbg1.your-objectstorage.com YOUR_S3_KEY YOUR_S3_SECRETmc mb MY_ALIAS/BUCKET_NAME --with-lock --region nbg1mc retention set GOVERNANCE 90d --default MY_ALIAS/BUCKET_NAMEmc retention info --json --default MY_ALIAS/BUCKET_NAMEBUCKET_NAMEYOUR_S3_KEYYOUR_S3_SECRET

Set up ERPNext

  • Open S3 Backup Settings.
  • Check "Enable Automatic Backup".
  • Paste the access key and secret from AWS.
  • Set an email address to receive a notification when a backup fails. If you would like an email for successful backups as well, enable "Send Email for Successful Backup".
  • Specify the name of the bucket that you created in step 1.
  • Choose how often you want to take and upload backups. This can range from monthly to daily. If you only want to take manual backups, set the frequency to "None".

S3 Backup Settings in ERPNext

Restore deleted files from versioned bucket

  • List all file versions:
  • Download a specific version:
mc ls -r --versions MY_ALIAS/BUCKET_NAME/mc get --vid TARGET_VERSION_ID MY_ALIAS/BUCKET_NAME/20260415_162402/20260415_162402-company_frappe_cloud-database.sql.gz ~/Downloads

Balance in Temporary Account

https://docs.frappe.io/erpnext/balance-in-temporary-account

Question:

We used Temporary Opening Account for updating opening balance. After having update balance in all the Balance Sheet account, there is still some balance in Temporary Account? What is the cause of this balance, and how to make balance in this account to zero?

Answer:

When updating an opening balances in ERPNext, you have to first ensure that Balance Sheet in the previous system is tallying (Asset = Liability).

Then you start updating the opening balances for above statement, using Temporary Opening as an account to balance the entry. In the end, when opening is updated for all Asset and Liability accounts, the Temporary account's balance becomes zero automatically.

If you still have balance in the Temporary Account, it could be for one of the two (or both) the reasons.

  1. The Balance Sheet followed for updating opening balance was not closed properly and it's Asset and Liability value was not tallying.
  2. When updated opening balance in ERPNext, the Temporary Opening Account was not used consistently.

Kindly review the above points as they could be the cause of balance left in the Temporary Opening Account.

Bank

https://docs.frappe.io/erpnext/bank

In ERPNext, saving different banks lets you upload an excel sheet and map the transactions to the ledger. The transactions are created as Bank Transactions. These can then be used for reference and reports. This is done using Bank Reconciliation.

To access Bank, go to:

Home > Accounting > Bank Statement > Bank

Bank

1. How to create a Bank

Creating a Bank is simple, go to the Bank list, click on New, and enter a name.

1.1 Configuring data import for a Bank

  1. Under 'Field in Bank Transaction' select the field to be updated in the 'Bank Statement Transaction Entry' form.
  2. Under 'Column in Bank File', enter the column in the excel file exported from the bank.

On setting this up, Bank Reconciliation can be done smoothly.

  1. Bank Account

Bank Account

https://docs.frappe.io/erpnext/bank-account

In ERPNext, Bank Accounts can be created for a Company as well as other parties like Customers, Suppliers etc. Doing this lets you record all the bank transactions correctly for accounting accuracy.

You can add Bank Accounts in ERPNext for Company. Supplier, Customer, or any other party with whom transactions are carried out. Then the Bank Account can be chosen in Payment Entries as a Mode of Payment.

To access Bank Account, go to:

Home > Accounting > Bank Statement > Bank Account

Bank Account

1. Prerequisites

Before creating and using Bank Account, it is advised to create the following first:

2. How to create a Bank Account

  1. Enter an Account Name.
  2. Link the General Ledger account set in 'Bank Accounts' in the Chart of Accounts.
  3. Select a Bank.
  4. Save.

2.1 Additional options when creating a Bank Account

  • Is the Default Account: Enabling this will use this as the default bank account for all journal transactions.
  • Is Company Account: Enable if this Bank Account a Company account.
  • An Account Type and Account Subtype can be set for further classification in reports etc.

3. Features

3.1 Party Details

  • Party Type: If this is not a company account, set who this account belongs to. The available options are: Customer, Employee, Member, Shareholder, Student, and Supplier.
  • Party: Select the specific Customer/Supplier, etc.

3.2 Account Details

For reference, the following details about a Bank Account can be stored in ERPNext:

  • IBAN
  • Bank Account No
  • Branch Code
  • SWIFT number

3.3 Address and Contact

  • Address: A bank may have multiple in the same locality. The bank branch address can be set here.
  • Contact: A Contact Person can be linked here. Banks usually provide a dedicated contact person for corporate accounts, you can add that person's contact here.
  • Website: You can add the bank's website here.

3.4 Integration Details

Last Integration Date: If your bank supports Plaid Integration, setting a date here will synchronize on the set date. This will create Bank Transactions entries.

Bank Guarantee

https://docs.frappe.io/erpnext/bank-guarantee

A Bank Guarantee is a guarantee from a lending institution such as a bank ensuring the liabilities of a debtor will be met.

In other words, if the debtor fails to settle a debt, the bank covers it. A Bank Guarantee enables the customer, or debtor, to acquire goods, buy equipment or draw down loans, and thereby expand business activity.

A client may ask you to provide a Bank Guarantee from a third party such as a Bank. This guarantee is for a specified amount, which is usually a percentage of the total value of the contract. The Bank Guarantee is valid for a specified duration after which it expires.

In a transaction between a large organization and a small organization, the larger organization (Supplier) is at risk of not receiving the money owed for providing Items/Services so it will receive a Bank Guarantee from the smaller organization (Customer). A Bank Guarantee ensures that the larger organization gets money in case the smaller organization is not able to deliver.

To access the Bank Guarantee list, go to:

Home > Accounting > Banking and Payments > Bank Guarantee

1. How to create a Bank Guarantee

  1. Go to the Bank Guarantee list and click on New.
  2. Select the type whether you're Receiving a Bank Guarantee from a Customer or Providing it to a Supplier.
  3. Set the Start Date and under 'Validity in Days' enter the number of days the guarantee is valid for.
  4. Select the Sales Order or Purchase Order depending on step 2.
  5. The Customer/Supplier and the Amount will be fetched automatically.
  6. Select a Bank and the Bank Account.
  7. Enter a Bank Guarantee number and name of the beneficiary.
  8. Save and Submit.
Bank Guarantee

This document allows you to track Bank Guarantees given to Suppliers and received from Customers. You can set Email Alerts as the Bank Guarantee expiry date approaches to remind yourself to get the Bank Guarantee back from your client.

1.1 Additional Options when creating a Bank Guarantee

  • Margin Money: This is some percentage of money paid to the Bank to proceed with the Bank Guarantee.
  • Charges Incurred: Handling charges charged by the Bank.
  • Fixed Deposit Number: In case the providing party has any Fixed Deposits, they can use them for proceeding with the Bank Guarantee.
  1. Chart Of Accounts
  2. Sales Order
  3. Purchase Order

Bank Reconciliation

https://docs.frappe.io/erpnext/bank-reconciliation

A Bank Reconciliation entry is used to match ERPNext account statements with your bank account statements.

If you are receiving payments or making payments via cheques, the bank statements will not accurately match the dates of your entry, this is because the bank usually takes time to “clear” these payments. Also, you may have mailed a cheque to your Supplier and it may be a few days before it is received and deposited by the Supplier.

In ERPNext you can synchronise your bank statements and your Journal Entries using the transaction dates.

1. What is a Bank Reconciliation Statement?

The Bank Reconciliation Report provides the difference between the bank balance shown in an organization's bank statement, as provided by the bank against the amount shown in the companies Chart of Accounts.

This is what a Bank Reconciliation statement looks like:

Bank Reconciliation statement

In the report, check whether the field 'Balance as per bank' matches the Bank Account Statement. If it is matching, it means that the Clearance Date is correctly updated for all the bank entries. If there is a mismatch, it's because of bank entries for which Clearance Date is not yet updated.

To access Bank Reconciliation, go to:

Home > Accounting > Banking and Payments > Update Bank Transaction Date

2. How to Update Bank Transaction Dates

  • Go to Bank Clearance.
  • Select your Bank Account.
  • Select a from and to date.
  • You can choose to include reconciled entries and POS transactions.
  • Click on the Get Payment Entries button.
  • Now you will get all the “Bank Voucher” type entries.
  • In each of the entries, on the rightmost column, update the Clearance Date field and click on the Update Clearance Date button. By doing this you will be able to sync your bank statements and entries into the system.

Screenshot 2023-06-19 at 6.16.32 PM

3. Types of reconciliation tools

ERPNext has two reconciliation tools:

  1. A manual reconciliation tool allowing to set clearance dates against payment entries, sales invoice payments or journal entries
  2. A semi-automatic reconciliation tool allowing to clear bank transactions against payment entries, sales, and purchase invoices payments, journal entries or expense claims.

3.1 Manual Bank Reconciliation Tool

To view this report, go to:

Accounts > Banking and Payments > Bank Reconciliation Statement

In the report, check whether the field 'Balance as per bank' matches the Bank Account Statement. If it is matching, it means that the Clearance Date is correctly updated for all the bank entries. If there is a mismatch, it's because the Clearance Date is not yet updated for the bank entries.

3.2 Semi-automatic Bank Reconciliation Tool

It is a two-step process:

  1. Add Bank Transactions into ERPNext via Bank Statement Import or Bank Account Synchronization
  2. Reconcile the Bank Statement

3.2.1 Bank Statement Import

  • Download a bank statement from your bank's website Make sure you have at least the date, the debit/credit and the currency on every row of your bank statement. To upload your Bank Statement, go to:
Reconcile bank transactions

Accounting > Bank Statement > Bank Statement Import

Or simply search for Bank Statement Import in the awesomebar.

  • Select your Company and Bank Account
  • Click Save
  • Attach the Bank Statement
  • Click on Map Columns to enter the mapping between columns in the uploaded Bank Statement and the Bank Transaction DocType
  • Click on Start Import to start the import process. The Bank Transactions will be created via a background job, although the progress will be shown here
  • The mapping that is done is stored in the Bank document linked to the corresponding Bank Account. In the next upload, the mapping is taken from here but the system allows the user to change it if needed. The changed mapping is updated in the Bank document too.
Reconcile bank transactions

3.2.2 Bank Account Synchronisation

You can use Plaid (see Plaid Integrations page) to automatically synchronise your bank account with ERPNext. All your bank transactions will be automatically imported into ERPNext.

3.2.3 Automatic Party Matching for Bank Transactions

You can optionally enable automatic party matching so that a party is auto set (if matched) in the Bank Transaction. To enable this, go to:

Accounts Settings > Banking > Enable Automatic Party Matching

Screenshot 2023-06-19 at 5.58.51 PM

You can additionally check Enable Fuzzy Matching where, the Party Name/Description in the Bank Transaction is approximately matched with all the parties in the system. This is useful when the party's Bank Account is not registered in the system.

Once enabled, party matching will automatically happen on submitting the Bank Transaction.

To aid the mapping, you can easily store Customer, Supplier and Employee bank data by creating a Bank Account against individual parties. After Submission, the Party Type and Party in the Bank Transaction will be automatically set and can be corrected/updated.

The fuzzy matching results depend on the nature of the party data there is in the system. It may fail to be accurate where multiple parties with extremely similar names exist.

It would be best to test this feature out first by:

  1. Enabling the feature
  2. Having some party records in the system
  3. Creating a Bank Transaction where the party name/description contains a target party's name
  4. Submitting the bank transaction after which the party should be automatically set in the Bank Transaction. Here you can determine if the results are acceptable.

3.2.4 Reconcile the Bank Statement

Once all your bank transactions are imported into ERPNext, you can reconcile them with your existing vouchers. Go to:

Accounting > Bank Statement > Bank Reconciliation Tool

Or simply search for Bank Reconciliation Tool in the awesomebar.

  • Select your Company, Bank Account, Bank Statement Start and End Date.
  • Make sure that the opening balance from ERPNext matches the opening balance of your Bank Statement.
  • Enter the Closing Balance of the Bank Statement.
  • Saving the document will show the matching bank transactions.
  • The final goal of Bank Reconciliation is to make the difference amount zero (green) by either matching to an existing voucher or creating a new voucher.
  • For all the bank transactions which are present in the Bank Statement but do not have a clearance date, click on the Actions Button to Match/ Create Vouchers
  • For matching, choose 'Match Against Voucher' in 'Action'. The vouchers that are related to this transaction will be displayed. They will be ranked on the basis of the maximum number of fields matched. You can match one or multiple vouchers against the same Bank Transaction using the checkboxes.
  • To create a new voucher, choose 'Create Voucher' in the 'Action' and then choose the document type. Fill in the details that were not available in the Bank Transaction. Clicking on Submit will create the corresponding voucher and update its clearance date.
  • It is also possible to update the Bank Transactions. Updating the Bank Transaction might help ERPNext in finding better matches. To Update a Bank transaction, choose 'Update Bank Transaction' in 'Action', fill in the required details, and click on Submit to save the Bank Transaction.
Reconcile bank transactionsReconcile bank transactionsReconcile bank transactionsReconcile bank transactions

Bank Transaction

https://docs.frappe.io/erpnext/bank-transaction

The Bank Transaction form shows bank transactions imported into ERPNext, typically from bank statements or integrations.

1. Prerequisites

Before using Bank Transaction, it is advised that you create the following first:

  1. Bank
  2. Bank Account

2. How to use Bank Transaction

A Bank Transaction is typically not created manually. It can be imported or created using:

  1. Bank Statement Import — import from CSV or XLSX files
  2. Data Import — standard data import tool
  3. Bank integration apps (e.g., Plaid or other third-party integrations)

Once imported, Bank Transactions can be reconciled with vouchers using the Bank Reconciliation Tool.

3. Fields

3.1 Basic Information

  • Date: The date of the bank transaction.
  • Status: The current status of the transaction:
  • Bank Account: The Bank Account from which the transaction was made.
  • Company: The Company associated with the bank account (auto-fetched from Bank Account).
  • Pending
  • Settled
  • Unreconciled
  • Reconciled
  • Cancelled

3.2 Transaction Amount

  • Deposit: The amount deposited (credited to your account).
  • Withdrawal: The amount withdrawn (debited from your account).
  • Currency: The currency in which the transaction was made.

3.3 Description and Reference

  • Description: A description from the bank statement.
  • Reference Number: A cheque number or other reference.
  • Transaction ID: A unique identifier from the bank (read-only).
  • Transaction Type: The type of transaction as reported by the bank.

3.4 Payment Entries

The Payment Entries table links the bank transaction to vouchers in ERPNext for reconciliation:

  • Payment Document: The document type against which the transaction was reconciled, such as Sales Invoice, Purchase Invoice, Payment Entry, Journal Entry, or Expense Claim.
  • Payment Entry: The specific document linked to this transaction.
  • Allocated Amount: The amount allocated from this bank transaction to the payment entry.
  • Clearance Date: The date when the payment was cleared (shown after submission).

3.5 Allocation Summary

  • Allocated Amount: The total amount that has been allocated to payment entries (read-only).
  • Unallocated Amount: The remaining amount that has not been allocated (read-only).

3.6 Payment From / To (Party Information)

  • Party Type: The type of party (e.g., Customer, Supplier, Employee).
  • Party: The specific party linked to this transaction.

The following fields contain party information as provided by the bank statement:

  • Party Name/Account Holder (Bank Statement): The party name from the bank statement.
  • Party Account No. (Bank Statement): The party's account number from the bank statement.
  • Party IBAN (Bank Statement): The party's IBAN from the bank statement.

Party information from the bank statement can be used for automatic party matching when enabled in Accounts Settings.

3.7 Extended Bank Statement (Fee Handling)

These fields handle bank fees that may be included in or excluded from the transaction amount:

  • Included Fee: A fee that is already included within the Withdrawal amount. For example, if a withdrawal of 100 includes a 5 fee, the net payment is 95.
  • Excluded Fee: A fee that was charged separately from the transaction. On save, this is automatically converted to an Included Fee by adjusting the transaction amount.

Note: Excluded fees adjust the transaction amount: they reduce Deposit or increase Withdrawal.

Banking

https://docs.frappe.io/erpnext/banking-in-erpnext

In ERPNext's accounting module, the banking section is a vital component that facilitates the management data specific to bank accounts. It provides a centralized platform to handle various banking activities seamlessly. Users can create and manage multiple bank accounts, record transactions such as deposits, withdrawals, and transfers, and reconcile bank statements to ensure accurate financial records.

Batch

https://docs.frappe.io/erpnext/batch

Allow Negative Stock has removed for Serial / Batch Items from version 15. So from version 15 users won't be able to make negative stock transactions for serial /batch items even though Allow Negative Stock has enabled in the Stock Settings.

To enable serial / batch feature for the item, first check the 'Enable Serial and Batch No for Item' checkbox in the 'Stock Settings'.

Batch feature in ERPNext allows you to group multiple units of an Item and assign them a unique value/number/tag called Batch No.

This is done based on the Item. If the Item is batched, then a Batch number must be mentioned in every stock transaction. Batch numbers can be maintained manually or automatically. This feature is useful to set the expiry date of multiple Items or move them together to different Warehouses.

To access the Batch No list, go to: > Home > Stock > Serial No and Batch > Batch

  1. Prerequisites

Before creating and using a Batch, it is advised that you create the following first:

  • Item
  • Enable 'Has Batch No' in the Item master
Batch No Enabled
  1. How to create a new Batch

To set item as a batch item, "Has Batch No" field should be checked in the Item master. If you have not selected "Automatically Create New Batch" when creating an Item, you will have to make Batches Manually as you go along.

To create new Batch No. master for an item, go to:

  1. Go to the Batch list, click on New.
  2. Set the Batch ID.
  3. Select the Item.
  4. If any transaction is done with an item, the batch cannot be set or unset.
  5. Save.

When Batches are enabled for an Item, the option to retain sample stock also becomes available.

2.1 Batch Auto Creation

If you want automatic batch creation at the time of Purchase Receipt, you must tick 'Automatically Create New Batch' in the Item master:

Item Setup for Batches
  1. Features

3.1 Splitting and Moving Batches

When you open a batch, you will see all the quantities that belong to that batch on the page.

Batch View
  • To move the batch from one Warehouse to another, you can click on the Move button.
  • You can also split the batch into smaller one by clicking on the Split button. This will create a new Batch based on this Batch and the quantities will be split between the batches.

Split Batch
  • If you set expiry date, the Batch will show 'Not Expired' until the expiry date, after which it'll show 'Expired'. If a date is not set, the Batch will show 'Not Set'.

3.2 Transacting Items with Batches

A Batch master should be created before the creation of Purchase Receipt. Hence, every time a Purchase Receipt or Work Order is being made for a batch item, you will first create its Batch No, and then select it in the Purchase order or Stock Entry.

On every stock transaction (Purchase Receipt, Delivery Note, Invoice) with a batch item, you should provide the Item's Batch No.

Note: In stock transactions, Batch IDs will be filtered based on Item Code, Warehouse, Batch Expiry Date (compared with a Posting date of a transaction) and Actual Qty in Warehouse. While searching for Batch ID without value in the Warehouse field, Actual Qty filter won't be applied.

  1. Serial Number
  2. Opening Stock Balance Entry For Serialized And Batch Item
  3. Managing Batch Wise Inventory

Bill Of Materials

https://docs.frappe.io/erpnext/bill-of-materials

A Bill of Materials is a list of items and sub-assemblies with quantities required to manufacture an Item.

A BOM may also contain the manufacturing operations required to manufacture the Item.

A Bill of Materials (BOM) is at the heart of the Manufacturing system and the most important document that will help to create other document types like Work Orders and Job Cards. ERPNext supports multi-level BOM. To know more, visit this page.

The BOM is a list of all materials (either bought or made) and operations
that go into manufacturing a finished product or sub-assembly. In ERPNext, each item (sub-assembly) could
have its own BOM hence forming a tree of Items with multiple levels.

Work Order

To make accurate Purchase Requests, you must always maintain correct BOMs.

To access the BOM list, go to:

Home > Manufacturing > Bill of Materials > Bill of Materials

Note that once a BOM is submitted, it cannot be edited. You can only cancel the existing, duplicate it and submit another one. A BOM is also linked to multiple places in the Manufacturing module, so making changes to it can be time-consuming and tedious. Hence it is a good practice to carefully think and fill out the BOMs before submitting.

1. Prerequisites

Before creating and using a BOM, it is advised that you create the following first:

2. How to create a Bill of Materials

  1. Go to the Bill of Materials list, click on New.
  2. Select the Item to be manufactured. The Item name, UoM, company, and currency will be fetched automatically.
  3. Enter the quantity of the Item that will be manufactured from this Bill of Materials.
  4. Under the Items table, select the raw materials (Items) required to manufacture the Item. Then proceed to:
  5. Select the quantity of Raw Material used.
  6. Set an Item operation here to be fetched in Work Orders later.
  7. If this Item is a sub-assembly, the default BOM for it will be fetched.
  8. Select the Source Warehouse to track inventory.
  9. Enter the scrap percentage that will remain after this raw material is used. BOM Materials](/files/bom-materials.png)
  10. Under the Scrap section, select the scrap Item that will be created when manufacturing and its quantity. The scrap Item can also have a Rate if it is a by-product and not waste. Skip this section if 100% of raw materials are completely utilized. If the scrap Item is the same as the Item to be manufactured, it is set as a Process Loss Item and its quantity is subtracted from the manufactured Item quantity.

In ERPNext v16, the Scrap Items table has been replaced with Secondary Items. Read more about it here.

  1. Save and Submit.

In the Items table, you'll see an option 'Include Item in Manufacturing'. Raw Materials need to have this checkbox ticked. In case there are Operations or services you need to include in the BOM that are not necessarily an Item used for manufacturing, uncheck this checkbox. For example, treating the plastic with a chemical involves some cost but it is not an Item and the cost needs to be tracked.

Task

2.1 Consume Components Based On

“Consume Components” in ERPNext automates raw material consumption when a Work Order is completed, reducing the need for manual inventory updates. It consumes stock automatically based on either the Bill of Materials (BOM) or actual material transfers, making it ideal for high-volume, standardized production environments that aim to improve inventory accuracy and minimize manual data entry.

  • Consumption Methods:
  • BOM: Automatically consumes raw materials based on the quantities defined in the BOM, multiplied by the finished goods quantity.
  • Material Transferred for Manufacture: Consumes only the materials that are physically transferred to the shop floor (Work In Progress Warehouse) through a stock entry.

If you want to set default "Consumption Components Based On" instead of BOM wise, set the "Backflush Raw Materials Based On" in the Manufacturing Settings.

2.2 Bill of Materials with Operations

To add Operations tick the 'With Operations' checkbox. Now, an Operations table can be seen. This option is useful for tracking the costing of various Operations performed to manufacture the Item. Operations can be added easily by setting a template with the Routing master.

Task
  1. In the “Operations” table, add the operations that need to be performed to manufacture this particular Item.
  2. For each operation, you will be asked to enter a Workstation where the Operation will be performed. A default Workstation can be set from the Operation document.
  3. Enter the Operating Hourly Rate, Operation Time in minutes, and the Batch Size created with the Operation. The Operating Cost will be calculated based on these values.

Note: Workstations are defined only for product costing and Work Order Operations scheduling purposes not tracking inventory. Inventory is tracked in Warehouses set in the Items table of the BOM.

Transfer Material Against needs to be set for a BOM With Operations. Materials can be transferred against a Work Order in bulk or individual Job Cards. Changing this affects whether the 'Material Transfer for Manufacture' is done against the Work Order at once or multiple times against the individual Job Cards. Setting this option depends on factors like time taken to manufacture the item, value of the items manufactured, number of parts used in manufacturing, the skill of your labor involved, etc.

BOM transfer materials against

2.3 Additional options when creating a Bill of Materials

  • Is Active: An Item could also be manufactured using an alternate set of materials/operations. In that case, uncheck this checkbox to disable this BOM and use another one.
  • Is Default: This BOM will be selected by default in Work Orders etc. when the Item selected.
  • Inspection Required: This will make 'Quality Inspection' mandatory for raw materials and the finished goods. Select the Quality Inspection Template after ticking this checkbox.
  • Allow Alternative Item: Sometimes when manufacturing a finished good, specific materials may not be available. If you tick this, you can create and select an alternative item from the Item Alternative list. For example, using plastic beads instead of plastic crystals. For more details visit this page.
  • Allow Same Item Multiple Times: In some manufacturing cases, the same item needs to be added twice. For example, two metal pipes of length 0.5m each to form another shape. Here the quantity cannot be simply set to 2 and be done since the UoM will show 1m as total but we need 0.5m + 0.5m in the form of two pipes for production. Ticking this checkbox allows you to select the same item multiple times.
  • Set rate of sub-assembly item based on BOM: Enabling this checkbox will set the rate of sub-assembly items based on their BOMs. If unchecked, the rate will be fetched from the Valuation Rate of the sub-assembly Item. Incase of Phantom Item, this setting is ignored and valuation rate of the phantom item will always be based on the contents of its BOM.
  • Is Phantom BOM: If this is checked, it means that this BOM does not produce any item. Instead, it is only a logical grouping of raw materials. The Production Item in this BOM should be a non-stock item. If this non-stock item is added as a "raw material" in any other BOM, the BOM will be exploded automatically regardless if explosion or multi-level BOM is enabled or not.
  • Rate Of Materials Based On: The Rate of raw materials used can be calculated based on different parameters.
  • Valuation Rate: The Valuation Rate set in the Item master.
  • Last Purchase Rate: The Rate is fetched from the last Sales Order/Invoice.
  • Price List: The Rate will be fetched from the Item Price.
    For more details, visit this page.

3. Features

3.1 BOM Costing

The Costing section in a BOM gives an approximate cost of manufacturing the Item.

The costing is calculated from the Valuation Rate of the raw materials/sub-assemblies involved and the Operation costs.

Costing

In case the BOM was submitted when the costs for Items/Operations were not updated, you can update the costs using the Update Cost button. This will fetch the latest price/costs.

Update Cost

The BOM cost can also be set to be updated automatically via Manufacturing Settings, 'Update BOM Cost Automatically' option.

3.2 Materials Required (Exploded)

This table lists down all the raw materials required to manufacture an Item. It also fetches raw materials for the sub-assemblies/phantom items along with the quantities. The non-exploded table will not list the raw materials required for producing the sub-assemblies.

For example, to manufacture a plastic shaving brush you need some raw materials and the bristles as a sub-assembly. For the handle, you manufacture your own plastic, but for the bristles, you use raw plastic crystals.

Exploded Section

3.2.1 Do Not Explode

If user wants to exclude the exploded items then they have to enable the checkbox "Do Not Explode" in the BOM Item table. This option is made read only and is unchecked by default if Item is a Phantom Item.

Use Case:
  • Laptop
  • Motherboard (Kept in stock)
  • Keyboard

A company manufacture the Laptop which required two sub-assembly items as Motherboard and Keyboard. The company does the manufacturing once they received the order from the customer. The Manufacturing Time required for the Motherboard is more than the Keyboard, therefore the company does the manufacturing of the Motherboard individually irrespective of the sales orders and kept in the stock. As the item Motherboard is already in stock it helps to reduce the overall Manufacturing Time of the main item Laptop.
Now while preparing the BOM for the Laptop in the ERPNext, they don't want to Explode the BOM of the item Motherboard but they want to Explode the BOM of the item Keyboard. Therefore we have added the checkbox "Do Not Explode" for the BOM Item. With this user will enable the checkbox "Do Not Explode" for the item Motherboard and not for the item Keyboard.

Exploded Section

3.3 Project and Website

The BOM can be linked to a Project to track progress, Project costing, etc. In case of engineer to order, every order could be a Project and the sub-assemblies would be Tasks. The completion can be tracked by linking to a Project in that case.

The BOM can also be shown in the Website for Open-source hardware products. Open-source hardware is similar to open-source where the product specifications are listed publicly.

3.4 BOM Template

BOM Template

With BOM template you can create BOMs for template items (against which you create variant items). These BOMs can be used as the default BOM while making Work Orders against the template Item's variants. You can also add the template items as raw materials in the template BOM. While making Work Order from the BOM Template, ERPNext gives provision to select the Item Variant against the template Item, for more details check following screenshot.

Variant Selection

The user can also make the BOM for the variant item using the template BOM. To make the variant BOM:

  • Go to the BOM Template.
  • Click on Create button.
  • Click on Variant BOM.
  • Select the Variant Item for which you want to make the BOM.
  • If the raw materials in the BOM is a template Item, then system gives provision to select the Item Variant.

Variant BOM

3.5 After Submitting

Once the BOM is submitted, the following document types can be created against the BOM from the Dashboard:

BOM submit

4. Video

  1. Scrap Management
  2. Material Consumption
  3. Nested BOM Structure

Blanket Order

https://docs.frappe.io/erpnext/blanket-order

A Blanket Order is an order from a customer to supply materials for specific items over a period of time at pre-negotiated rates.

From a blanket order, sales orders can be generated as per the delivery schedule provided by the customer. Blanket orders help customers avoid storing materials in huge quantities while allowing them to take advantage of fixed rates by committing volumes within a specific time period.

To access Blanket Order, go to:

Home > Selling > Sales > Blanket Order

Prerequisites

Before creating and using a Blanket Order, it is advised that you create the following first:

  • Customer or Supplier
  • Item

How to Create a Blanket Order for Sales and Purchase

  1. Go to the Blanket Order list, click on New.
  2. Select Selling/Purchasing in Order Type.
  3. Select Customer/Supplier.
  4. Specify the validity period of the order by selecting From Date and To Date.
  5. Enter Item Code, Quantity and Rate in the Item table. You can also mention the Terms and Conditions for each item.
  6. Submit.

Features

Create Sales Orders

The 'Ordered Quantity' field will be updated once a Sales Order is placed. Once a Blanket Order is submitted, you can create new Sales Orders by clicking on Sales Order under the Create button.

Create Purchase Orders

The 'Ordered Quantity' field will be updated once a Purchase Order is placed. Once a Blanket Order is submitted, you can create new Purchase Orders by clicking on Purchase Order under the Create button.

Create Quotations

Once a Blanket Order is submitted, you can create new Quotations by clicking on Quotation under the Create button.

Dashboard

You can view Purchase Orders, Sales Orders and Quotations against this Blanket Order through the Dashboard.

Note- Multiple Sales Orders, Purchase Orders, and Quotations can be created against one Blanket Order. Those Sales/Purchase Orders or Quotations can be processed further as per the regular Selling or Procurement cycle. But, there is no provision to close the Blanket Order.

  • Sales Order
  • Purchase Order

Blog Post

https://docs.frappe.io/erpnext/blog-post

A Blog Post is an article on your website.

Blogs are a great way to share your thoughts about your business. It helps keep your customers and readers updated on news related to your business.

In the age of the internet, writing assumes a lot of significance because when people come to your website, they want to read about you and your product.

To access the Blog Post, go to:

Home > Website > Blog > Blog Post

1. How to create a Blog Post

  1. Go to the Blog Post list and click on New.
  2. Enter the Title, Blog Category, Blogger, and the Content.
  3. Enable Published and click on Save.

The Blog Intro is a short description of your blog that appears just after the title and before the content.

New Blog Post

You can write your blog in Rich Text, Markdown, or HTML. If you want to write simple content pages, Rich Text and Markdown are great options. Learn how to attach images to your blog here.

Learn markdown in a few minutes at Mastering Markdown.

Blog Post in Markdown

Blog Post in Markdown

View your Blog Post by clicking on See on Website in the sidebar. Blog Post

Blog Post

Check the Disable Comments option if you'd like to disable the ability for readers to add comments to the current blog post.

Blog Post

Adding Comments Disabled

Blog Post

2. Features

2.1 Blogger

Blogger is a user who can post blogs. To create a Blogger, go to:

Home > Website > Blog > Blogger.

You can mention a short bio about the blogger and also set an avatar here.

Blogger

Blogger

The preview will be shown at the end of the blog post. Blogger Preview

Blogger Preview

2.2 Blog Category

You can group your blogs into categories. To create a new Blog Category, go to:

Home > Website > Blog > Blog Category.

Blog Category

Blog Category

If you click on See on Website in the sidebar, you'll be redirected to a list of blogs under that category.

Blog Category - General

Blog Category - General

2.3 Meta Tags

Meta tags are HTML tags which describe a page and its content to a search engine or a social media platform. A meta description provides a brief description of a webpage.

In HTML, the meta description tag will be written as follows:


Under the SEO section, you can add the meta description and image for your blog post. ERPNext will generate a preview of the blog when listed as a search result by Google.

If you leave this section empty, the blog introduction or the first 140 characters of the blog will be shown as the meta description. In the same way, if you leave the meta image empty, the first image in the blog will be selected.

Blog Post Google Search Preview

Google Search Preview

On submitting the blog, you can also preview how the blog will look when shared on a social media platform like Facebook or Twitter. To check this, use the debugging tools offered by the platforms:

Facebook: Sharing Debugger

Twitter: Card Validator

LinkedIn: Post Inspector

To check the post preview, simply enter the webpage/blog link in the tool:

Using Facebook's Sharing Debugger Tool

Facebook Sharing Debugger

Using these tools, you can optimize your blog post for sharing.

Blogs

https://docs.frappe.io/erpnext/blogs

Blogs in ERPNext provide a powerful platform for businesses to engage with their audience and share valuable insights to keep the audience informed about valuable updates. By publishing blogs in ERPNext, the users can easily create and publish content such as articles, news updates, tutorials, and case studies. The platform provides customisable templates and formatting options to enhance the visual appeal of blog posts and improve readability.

BOM Comparison Tool

https://docs.frappe.io/erpnext/bom-comparison-tool

Using the BOM Comparison Tool, you can compare two BOMs and see what changed between their iterations.

A BOM (Bill of Materials) of an Item undergoes several changes over time. When you need to change something in your BOM, you have to Cancel the BOM, Amend it, make the change and create a new version of the BOM. Now you have two different BOMs and change history is lost.

The BOM Comparison Tool lets you compare two different BOMs and will show you what changed between them.

To use the BOM Comparison Tool, go to:

Home > Manufacturing > Tools > BOM Comparison Tool

1. How to use the BOM Comparison Tool

  1. Select the old BOM against which you want to compare in BOM 1 field.
  2. Select the new BOM of which you want to see the changes in BOM 2 field.
  3. The changes will be shown as soon as you select both the values.

BOM Comparison Tool

BOM Costing in different Currency

https://docs.frappe.io/erpnext/bom-costing-in-different-currency

User can change the Currency in the BOM before submitting. The system calculates the costing based on the Price List currency. You can check the manufacturing cost in a particular Currency by changing the Currency in the BOM.

Consider that you import plastic as a raw material from Japan and the Sales Invoices are in the Yen currency. Your company Currency is INR but you want the BOM costing to be done in Yen. On setting 'Rate Of Materials Based On' to 'Price List' the raw materials used in the BOM will also have rates set in Yen. These rates are fetched from the Price List you create for Japan. In this case, it is a buying Price List called 'Import Japan'.

BOM in different Currency

If you select 'Rate Of Materials Based On' to 'Valuation Rate' or 'Last Purchase Rate', the prices will be fetched from the Item master or the Sales Invoice respectively. In case of Item master, you'll need to enter the Valuation Rate in your Currency. In the BOM, Valuation Rate will be converted to the Currency set in the BOM.

BOM in different Currency

Multi-level BOM Creator

https://docs.frappe.io/erpnext/bom-creator

The BOM Creator enables users to create multi-level BOMs using a single screen.

bom_creator_tree

Why use the BOM Creator?

Users often question why a separate BOM Creator is needed to create BOMs. The answer lies in eliminating the need for unnecessary back and forth. With the standard BOM screen, users are required to create all sub-assembly BOMs first and then create the BOM for the final product. This process often involves a lot of back and forth. Additionally, sometimes it's challenging to visualize the complete hierarchy using the standard BOM.

To address all of these problems, we have introduced the BOM Creator. Within the BOM Creator, users can construct a multi-level BOM using the tree component.

Here's how it works:

  • The user selects the Final Product and saves the record.

bom-creator
  • In the form, users will find an option to add Raw Materials and Sub-assembly items related to the Final Product.

toolbar_bom_creator
  • If a user wants to convert Raw Materials into Sub-assembly items, they need to click on the item first and then click the "Convert to Sub-Assembly" button.

convert_to_sub_assembly
  • Users can edit the Quantity as needed.

Final Step

One the BOM structure has made using the tree component, user has to submit the BOM Creator. On Submission of the BOM Creator, system will generate the BOMs using the background job.

submit-bom

BOM Operations Time

https://docs.frappe.io/erpnext/bom-operation-time

To access the BOM Operations Time, go to:

Home > Manufacturing > Reports > BOM Operations Time

Task

This report will give the information about the Bill of Material's total expected time in minutes as well the count of the current BOM used as a subassembly item for different Finished Goods.

BOM Stock Analysis

https://docs.frappe.io/erpnext/bom-stock-analysis

BOM Stock Analysis is a manufacturing report in ERPNext that tells you, for a given Bill of Materials (BOM), whether you have enough raw materials to fulfill a production run.

The report operates in 2 modes:

  1. Detailed Mode - Based on the provided Fg Items to produce, it gives a detailed breakdown of availability, shortfall, and purchase rates
  2. Summarised Mode - Given the BOM and the warehouse, it gives you how much Fg you can actually produce

To access the report:

Home > Manufacturing > Reports > BOM Stock Analysis

Detailed Mode

This mode can be used when you have a set production target and want to know which raw materials are in stock, which are short, and what it would cost to bridge the gap.

Entering the value in the FG Item to make directly enters the detailed mode

The maximum producible Item defines the maximum possible items producible based on the raw material availability. The green color indicates that it is possible to produce the FG item based on the Required Qty to make. The value turns red if the producible FG item is less than Required qty.

Summarised Mode

This mode can be used for quick answers to questions like - "How many finished goods can we make right now?" without specifying the production target. To enter this mode, we leave the Fg Item to Make empty and define the warehouse and BOM.

BOM Stock Report

https://docs.frappe.io/erpnext/bom-stock-report

This Report is deprecated in V16, please refer to Bom Stock Analysis for the same

To access the BOM Stock Report, go to:

Home > Manufacturing > Reports > BOM Stock Report

Task

The BOM Stock Report provides information about the raw materials required quantity and the in-stock quantity of the warehouse (which is selected in the filter). As you can see, the items which have insufficient quantity are shown in red and ones with enough quantity to manufacture the BOM Item are shown in green.

BOM Update Tool

https://docs.frappe.io/erpnext/bom-update-tool

From the BOM Update Tool, you can replace a sub-assembly BOM and update costs of all parent BOMs.

Using this utility, you can replace an existing BOM of a sub-assembly item which is linked to a parent BOM. The system will update the new BOM in all the parent BOMs where it was used. You need to create a new BOM first.

To use the BOM Update Tool, go to:

Home > Manufacturing > Tools > BOM Update Tool

1. How to use the BOM Update Tool

Let's consider a scenario to understand this better.

Suppose a company manufactures computers, Bill of Materials for the computer will look like this:

  1. Monitor
  2. Key Board
  3. Mouse
  4. CPU

Out of all the items above, CPU is assembled separately. Hence separate BOM will be created for the CPU. Following are the items from the BOM of CPU.

  1. 250 GB Hard Disk
  2. MotherBoard
  3. Processor
  4. SMTP
  5. DVD player

If more items need to be added, or existing items to be edited in the CPU BOM, then create new BOM for it.

  1. 950 GB Hard Disk
  2. MotherBoard
  3. Processor
  4. SMTP
  5. DVD player

Select Current BOM and New BOM of the sub-assembly Item:

BOM Update Tool

To update the new BOM in all the parent BOMs, where CPU is selected as sub-assembly, you can use the Replace button.

On clicking Replace button, old BOM of CPU will be replaced with the new BOM in the BOM of finished Item (Computer).

Will BOM Replace Tool work for replacing the exploded Items in the parent BOM?

No, exploded Items which do not have any BOMs of their own cannot be replaced in the parent BOM. For example, consider if the Item Monitor does not have a sub-assembly and it cannot be updated using this tool. For updating exploded Items you should Cancel and Amend current BOM, or create a new BOM for the finished item.

Update BOM Cost

Using the button Update latest price in all BOMs, you can update the cost of all Bill of Materials, based on the latest purchase price/price list rate/valuation rate of raw materials. This is useful if your updated BOM has materials with different Rates.

On clicking this button, the system will create a background process to update all the BOM's cost. It is processed via background jobs because this process can take a few minutes (depending on the number of BOMs) to update all the BOMs.

This functionality can also be executed automatically daily. For that, you need to enable "Update BOM Cost Automatically" from Manufacturing Settings.

BOM Explorer

https://docs.frappe.io/erpnext/bom_explorer

BOM Explorer Report shows a complete hierarchy of the Bill of Materials (BOM) with its raw materials in the form of the tree view.

You need to select the BOM in the filter then the report will show the quantity of required raw materials and scraps for manufacturing the item. It is the complete tree view of assemblies, sub-assemblies i.e. all exploded items.

Using the BOM Explorer, user can view the quantity of raw materials and scraps from all exploded items and print it.

reorder level

Book discount allowed and received separately

https://docs.frappe.io/erpnext/book-discount-allowed-and-received-separately

Discounts are part of everyday businesses. A discount allowed is when the supplier of goods or services grants a payment discount to a customer. On the other hand, a discount received is the reverse situation, where the customer is granted a discount by the supplier.

When you are a supplier, and you grant a discount to your customer, it is treated as a type of Expense, whereas, if you receive a discount from your supplier, it is considered as an income.

In ERPNext, discount allowed or received is not booked separately. It is typically the final amount of the invoice (after discount) that is booked. However, if you wish to book the discounts separately, you can follow the below steps:

  1. "Discount Allowed" is a type of Expense and "Discount Received" is a type of Income. Hence, first create these two accounts in the Chart of Accounts.

  1. Create an invoice, select the item. Now, under the "Sales/Purchase Taxes and Charges" table, select the discount account head depending on the transaction, and enter the discount rate as a negative value.

For example, if we are creating a Sales Invoice, and we are giving a discount of 10% to the customer, the 10% discount is booked in a separate "Discount Allowed" account. Check the screenshot below to understand the same.

As seen in the screenshot above, the total value of the invoice without discount is Rs. 350. On applying 10% discount, the total value of the invoice now comes down to Rs. 315. The discount amount of Rs. 35 is booked under the Discount Allowed account which is a type of expense for the supplier. Check the below screenshot to understand how the accounts are booked.

  1. Proceed to making the final payment via Payment Entry as shown in the screenshots below:

Note: The same process can be followed while creating a Purchase Invoice. However in this case, the account selected in the Purchase Taxes and Charges table will be "Discount Received" which will be an income account.

Setting up Braintree

https://docs.frappe.io/erpnext/braintree-integration

To setup Braintree, go to

Explore > Integrations > Braintree Settings

Setup Braintree

To enable Braintree in your ERPNext account, you need to configure the following parameters:

  • Merchant ID
  • Public Key
  • Private Key

You can setup several Braintree payment gateways if needed. The choice of payment gateway account will determine which braintree account is used for the payment.

Braintree Settings

On enabling service, the system will create Payment Gateway record and an Account head in chart of account with account type as Bank.

Braintree COA

It will also create a payment gateway account. You can change the default bank account if needed and create a template for the payment request.

Payment Gateway Account

After configuring the Payment Gateway Account, your system is able to accept online payments through Braintree.

Supporting transaction currencies

"AED","AMD","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BIF","BMD","BND","BOB",
"BRL","BSD","BWP","BYN","BZD","CAD","CHF","CLP","CNY","COP","CRC","CVE","CZK","DJF","DKK",
"DOP","DZD","EGP","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD",
"HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","ISK","JMD","JPY","KES","KGS","KHR","KMF",
"KRW","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","MAD","MDL","MKD","MNT","MOP","MUR",
"MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","PAB","PEN","PGK","PHP",
"PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SEK","SGD","SHP","SLL",
"SOS","SRD","STD","SVC","SYP","SZL","THB","TJS","TOP","TRY","TTD","TWD","TZS","UAH","UGX",
"USD","UYU","UZS","VEF","VND","VUV","WST","XAF","XCD","XOF","XPF","YER","ZAR","ZMK","ZWD"

Brand

https://docs.frappe.io/erpnext/brand

A Brand identifies items with a specific name.

Usually, a Brand is the manufacturer or packer of a specific product. For example, Apple is a brand that manufactures laptops. A Brand is not necessarily the Manufacturer of an Item, it's only the name under which a product is sold. For example, if you manufacture plastic cups, you may license them to a big brand so that they sell them under their Brand.

In ERPNext, Brands can be assigned to Items for identifying and assigning certain defaults.

To access the Brand list, go to:

Home > Selling > Sales > Brand

1. How to Create a Brand

  1. Go to the Brand list and click on New.
  2. Enter a Brand name and enter a description if needed.
  3. Save. Brand

Now this Brand can be associated with different Items.

2. Features

2.1 Setting defaults for Items of this Brand

The following defaults can be set for a Brand. On assigning this brand to an Item, the set defaults will be fetched when performing Sales/Purchase transactions with Item of this Brand.

  • Default Warehouse: The Warehouse from which the Item will be sourced/stored depending on the transaction.
  • Default Price List: The Price List set here will be fetched in Purchase/Sales transactions.

Purchase Defaults

When performing Purchase transactions like Purchase Order, Purchase Receipt, or Purchase Invoice, the defaults set here will be fetched on selecting Item of this Brand.

  • Default Buying Cost Center
  • Default Supplier
  • Default Expense Account

Sales Defaults

When performing Sales transactions like Sales Order, Delivery Note, or Sales Invoice, the defaults set here will be fetched on selecting Item of this Brand.

  • Default Selling Cost Center
  • Default Income Account
  1. Purchase Order
  2. Sales Order
  3. Purchase Receipt
  4. Delivery Note
  5. Sales Invoice
  6. Purchase Invoice

Budget

https://docs.frappe.io/erpnext/budget

Budgeting is a financial plan that helps controlling company expenses.

Budgeting helps control company expenses by defining how much can be spent, where it can be spent, and within which fiscal years.

In ERPNext, budgets are created against a single dimension (Cost Center, Project, or Accounting Dimension) and are used to plan expenses and prevent overspending.

To access the Budget list, go to:

Home > Accounting > Cost Center and Budgeting > Budget

1. Prerequisites

Before creating and using Budgets, ensure the following are set up:

  • Cost Center
  • Project
  • Fiscal Year

2. How to Create a new Budget

  1. Go to the Budget list and click Add Budget.
  2. Select the Company.
  3. Select Budget Against (Cost Center, Project, or an Accounting Dimension).
  4. Select the From Fiscal Year and To Fiscal Year.
  5. Select the Account for which the budget is being created.
  6. Enter the Budget Amount for the selected account.
  7. Configure the Distribution Frequency (Monthly, Quarterly, Half Yearly or Yearly).
  8. Enable Distribute Equally to automatically split the budget across periods, or manually define Budget Distribution rows with amounts, or percentages.
  9. Save and Submit the Budget.

A single Budget applies to one account and one dimension, and can span multiple fiscal years.

3. Budget Distribution

Budget Distribution controls how the total budget amount is allocated across time within the selected fiscal years. Each row of budget distribution child table contains - Start Date, End Date, Amount, Percentage.

Distribution Frequency

Distribution Frequency defines the time interval used for budget allocation:

  • Monthly – Budget is distributed across months
  • Quarterly – Budget is distributed across fiscal quarters
  • Half-Yearly – Budget is distributed across half-year periods
  • Yearly – Budget is applied at the fiscal year level

Distribute Equally

On budget there is a checkbox , when this checkbox is enabled, the total budget amount is split evenly across all periods. Budget Distribution rows are generated automatically.

Distribute Equally

When Distribute Equally is disabled, budget distribution rows are still generated automatically based on the selected distribution frequency but Start Date and End Date are not editable and you can manually adjust: Amount or Percentage.

4. Control Actions (Alerts)

Control actions can be triggered when:

  • A Material Request is being submitted
  • A Purchase Order is being submitted
  • When an actual expense is being posted (through a journal entry or a purchase invoice).

You can set a control action in the Budget based on Material Requests, Purchase Orders, or on actual expenses. Further, you can set a control action for annual or monthly budgets.

There are three types of control actions.

  • Stop: This will not allow users to submit the transaction.
  • Warn: This will show a warning message but lets the user submit the transaction.
  • Ignore: This will neither prevent the user from submitting transactions nor show an error message.

You can set separate actions for monthly and annual budgets. If you exceed the budget, a warning will be shown:

Note that a similar warning will be triggered for any type of transactions set in the budget for the particular Account heads.

5. Exception Budget Approver Role

This setting allows selected users to bypass budget restrictions even when the budget is exceeded.

  • Configure this role in Company settings

  1. Video

Here is a video demonstration:

Related Topics

  1. Budget Revision
  2. Cost Center

Budget Revision

https://docs.frappe.io/erpnext/budget-revision

A Budget Revision allows you to update an existing budget when plans change during the fiscal year.

Instead of editing a submitted Budget, revisions help maintain:

  • Audit history
  • Clear tracking of changes
  • Accurate budget vs actual analysis

1. How can you revise an existing budget

  • Open the Budget you want to revise.
  • Click Revise Budget from the Actions menu.

  • A confirmation message is shown: click Yes to continue.

  • A new Budget draft is created automatically.
  • Update the Budget Amount and modify the Budget Distribution as required.
  • Save and Submit the revised Budget.

The previous Budget is cancelled, The revised Budget becomes active.

2. When to Use a Budget Revision

Use a Budget Revision when:

  • Budget amounts need to be increased or reduced
  • Budget distribution needs to be adjusted
  • Business priorities change mid-year
  • Additional funds are approved for an account or dimension

Budget Variance Report

https://docs.frappe.io/erpnext/budget-variance-report

The Budget Variance Report helps you compare distributed budget amounts with actual expenses over time.

The report:

  • Is fully budget-driven
  • Supports monthly, quarterly, half-yearly, and yearly views
  • Optionally shows cumulative budget and actual amounts

This report helps you:

  • Track spending against plan
  • Review budget performance across periods and fiscal years

To check the Budget Variance report, go to:

Home > Accounting > Cost Center and Budgeting > Budget Variance Report

Bulk Assign Tasks in a Project

https://docs.frappe.io/erpnext/bulk-assign-tasks-in-a-project

Use Case: Need to bulk assign all the Tasks in a Project to aUser.
Steps:

  1. Create a Project.
  2. Create Tasks in that Project.
  3. Go to Task List and filter the Tasks based on the Project as shown below:
  4. Select all the Tasks (or the Tasks you wish to assign to the User).
  5. Go to Actions > "Assign To" and select the User to whom you wish to assign these Tasks.


    You can also enter other details such as Comments, Completed By and bulk set the Priority of the Tasks.
  6. Click on Add.
    Note: You can follow the above steps to bulk assign any documents in ERPNext.

Bulk Rename

https://docs.frappe.io/erpnext/bulk-rename

Renaming a single document

You can rename a document in ERPNext by going to Menu > Rename. This option will only be visible if you have the required permissions.

Rename Tool

Alternatively, using the Rename Tool, you can rectify or change multiple document IDs at once. You can rename IDs of up to 500 records at a time.

This tool is only accessible to the User who has the System Manager role assigned.

Let's assume you've realized your manual naming convention is making your inventory reports verbose. You need to convert 500 legacy item codes into your new naming standard. Now to rename these items:

Step 1: Create the spreadsheet

In a spreadsheet file, enter old Item IDs in the first column, new Item Ids in the second column. Save the spreadsheet file in a .csv format without the header.

Old Name New Name
Large Blue Shirt SHIRT-BLUE-L
Small Red Shirt SHIRT-RED-S
Medium White Shirt SHIRT-WHT-M
AA Batteries 4pk BATT-AA-04
AAA Batteries 8pk BATT-AAA-08

Step 2: Upload data file

To upload the data file, search for "Rename Tool" on the awesomebar.

Select the DocType that you want to rename. Here, DocType will be Item. Then browse and upload the data file and click Rename.

The Bulk Rename Jobs shows the progress of the process for each entry, from the queuing state to either finished or failed.

Merging Documents

You can also merge documents by renaming them. For example, if you have a customer named Steve and a duplicate named Steve1, you can go to either of them, click on Menu > Rename, and tick the 'Merge with existing' checkbox. This will merge all the linked documents of both documents.

To do this in bulk with the Rename Tool, change the "Merge" column to "1" or "TRUE" and upload this file to trigger renaming.

Old Name New Name Merge
Steve1 Steve 1

Bulk Update

https://docs.frappe.io/erpnext/bulk-update

Bulk Update allows you to update a particular field of a DocType for all documents.

To access Bulk Update, go to:

Home > Bulk Update

Consider that you have 20 quotations in which you had selected 'All Territories' and now you want to change the Territory to France. Instead of updating the individual quotations manually, you can use Bulk Update to update all 20 Quotations at once.

To do this,

  1. Go to Bulk Update.
  2. Select the Document Type, like Quotation.
  3. Select the field to update, like territory.
  4. Enter a valid new value to be updated.
  5. Enter any conditions that apply, for example: {"status":"Draft"} will only affect documents in the Draft stage.
  6. Select the limit, i.e. number of documents (Quotations) to be updated.
  7. Click on Save

You can only update fields that can be updated normally in a particular stage. For example, valid till date cannot be updated for submitted Quotations.

Introduction to Buying Module

https://docs.frappe.io/erpnext/buying

The Buying module in ERPNext is designed to manage procurement processes and optimise supplier relationships.

  • Requests for Quotation (RFQs): Evaluate quotations from suppliers to make informed purchasing decisions.
  • Supplier Management: Maintain detailed records of suppliers, including contact details, terms, and performance metrics.
  • Purchase Orders: Create and track purchase orders to ensure timely and accurate order fulfillment.
  • Purchase Invoices: Process and manage invoices from suppliers, including payment handling.
  • Stock Management: Update inventory levels and manage stock replenishment.

The Buying module helps businesses streamline their procurement activities, control purchasing costs, and strengthen supplier relationships.

Watch this Frappe School Course on Procurement to learn more.

Buying Settings

https://docs.frappe.io/erpnext/buying-settings

ERPNext allows you to configure various settings and configurations that help streamline and automate the purchasing workflow.

Naming Series and Price Defaults

Screenshot 2024-08-29 at 1.23.09 PM

1. Supplier Naming By

When a Supplier is saved, system generates a unique identity or name for that Supplier which can be used to refer the Supplier in various Buying transactions.

If not configured otherwise, ERPNext uses the Supplier's Name as the unique name. If you want to identify Suppliers using names like SUPP-00001, SUPP-00002, or such other patterned series, select the value of Supplier Naming By as "Naming Series".

2. Default Supplier Group

Configure what should be the default value of Supplier Group when creating a new Supplier. For example, if most of your suppliers supply you hardware, you can set the default as 'Hardware'.

3. Default Buying Price List

Configure what should be the default Price List when creating a new Buying transaction, the default is set as 'Standard Buying'. Item prices will be fetched from this Price List. You can modify the 'Price List' by using the arrow at the right-end of the field to change the currency and country.

4. Action if Same Rate is Not Mentioned

It defines the action the should take when it encounters a purchase order, material request, or any other buying transaction where the same rate of an item is not mentioned.

There are two possible actions the user can take.

  • Stop: The system will stop the transaction preventing the user from proceeding without specifying a rate. This ensures that all transactions have explicit rates mentioned, avoiding potential discrepancies.
  • Warn: The system will allow the transaction happen but will display a warning message to alert the user that the same rate has not been mentioned.

5. Role Allowed to Override Stop Action

This setting specifies which user roles have the permission to override the "Stop" action in the buying transaction due to discrepancy in the rate.

Transaction Settings

Screenshot 2024-08-29 at 1.24.53 PM

1. Is Purchase Order Required for Purchase Invoice & Receipt Creation?

If this option is configured "Yes", ERPNext will prevent you from creating a Purchase Invoice or a Purchase Receipt directly without creating a Purchase Order first.

If retail transactions are involved where the order happens offline, then Purchase Orders can be skipped. If you're accepting sample Items, you can directly create a Purchase Receipt to receive the Items to your Warehouse.

This configuration can be overridden for a particular supplier by enabling the "Allow Purchase Invoice Creation Without Purchase Order" checkbox in supplier master

2. Is Purchase Receipt Required for Purchase Invoice Creation?

If this option is configured "Yes", ERPNext will prevent you from creating a Purchase Invoice without creating a Purchase Receipt first. In case the Item being transacted is a service, it'll not require a receipt, you can directly create an Invoice.

This configuration can be overridden for a particular supplier by enabling the "Allow Purchase Invoice Creation Without Purchase Receipt" checkbox in the supplier master

3. Blanket Order Allowance (%)

You can set the percentage you are allowed to order more against the Blanket Order Quantity. For example: If you have a Blanket Order of Quantity 100 units. and your Allowance is 10% then you are allowed to order 110 units.

4. Update frequency of Project

It indicates how often should Project be updated of Total Purchase Cost.

5. Maintain Same Rate Throughout Purchase Cycle

If this is enabled, ERPNext will validate whether an Item's price is changing in a Purchase Invoice or Purchase Receipt created from a Purchase Order, i.e. it will help you maintain the same rate throughout the purchase cycle.

You can configure the action that system should take if the same rate is not maintained in the "Action If Same Rate is Not Maintained" field:

  • Stop: ERPNext will stop you from changing the price by throwing a validation error.
  • Warn: The system will let you save the transaction but warn you with a message if the rate is changed.

Note: This field will only be visible if Maintain Same Rate Throughout Purchase Cycle is enabled.

6. Allow Item to be added multiple times in a transaction

When this checkbox is unchecked, an item cannot be added multiple times in the same Purchase Order. However, you can still explicitly change the quantity. This is a validation checkbox for preventing accidental purchase of the same item. This can be checked for specific use cases where there are multiple sources for the same material, for example in manufacturing.

7. Bill for Rejected Quantity in Purchase Invoice

If checked, Rejected Quantity will be included while making Purchase Invoice from Purchase Receipt.

7.1 Set Valuation Rate for Rejected Materials

For rejected materials, the valuation rate is set to zero, and no accounting ledger entry is created for them in the Purchase Receipt. To apply a valuation rate and generate accounting entries for rejected materials, enable the 'Set Valuation Rate for Rejected Materials' option in Buying Settings. This option is only applicable when has enabled in the Buying Settings.

Bill for Rejected Quantity in Purchase Invoice

8. Set Landed Cost Based on Purchase Invoice Rate

If the 'Maintain Same Rate Throughout the Purchase Cycle' is disabled then this field shows in the buying settings. If user wants to adjust the product valuation as per the purchase invoice cost then this option needs to be enable.

How It Works

  • Created Purchase Receipt for item A with rate as 100
  • System has booked Stock In Hand with 100 rate
  • After 2 days, user has created purchase invoice against the above purchase receipt
  • After 2 days because of change in exchange rate the rate in the invoice changed to 150
  • Now purchase receipt has rate 100 where as Purchase invoice has rate 150
  • If you want to adjust the Stock In Hand with Purchase invoice Rate (150) then enable "Set Landed Cost Based on Purchase Invoice Rate".

Note: on submission of the purchase invoice, system creates the repost item valuation record to update the cost of the purchase receipt. User has to wait to complete the repost item valuation to see the impact of the invoice cost on the stock in hand.

9. Disable Last Purchase Rate

It prevents the system from automatically using the rate from the last purchase transaction when creating new purchase orders or transactions.

10. Use Transaction Date Exchange Rate

While making Purchase Invoice from Purchase Order, use Exchange Rate on Invoice's transaction date rather than inheriting it from Purchase Order. Only applies for Purchase Invoice.

11. Over Order Allowance (%)

The percentage by which you are allowed to order more on a Purchase Order than the quantity requested on the originating Material Request. For example, if the Material Request has 100 units and the allowance is 10%, you can order up to 110 units.

Subcontracting Settings

Screenshot 2024-08-29 at 1.32.06 PM

1. Backflush Raw Materials of Subcontract Based On

  1. BOM: system will consume raw materials in the subcontracting receipt as per the FG BOM
  2. Material Transferred for Subcontract: system will consume raw materials based on the materials transferred against the Subcontracting Order. If no stock transferred then no materials will be consume at the time of Subcontracting Receipt.

2. Auto Create Subcontracting Order

System will auto create the subcontracting order in a Draft state on submission of the purchase order which has "Is Subcontracted" enabled.

3. Auto Create Purchase Receipt

System will auto create the purchase receipt for the service items in a Draft state on submission of the subcontracting receipt.

4. Over Transfer Allowance (%)

It is the percentage you are allowed to transfer more against the quantity ordered. For example: If you have ordered 100 units. and your Allowance is 10% then you are allowed to transfer 110 units.

Buying Reports

https://docs.frappe.io/erpnext/buying_reports

Data pertaining to purchases made by an organization can be analyzed and visualized through various reports available in the buying modules. Normally, each report has three sections: Filter toolbar, a chart, and data. Changes in the filters and selections are immediately reflected in the chart.

Purchase Analytics

To access the report, go to:

Home > Buying > Key Reports > Purchase Analytics

Through the Purchase Analytics report, the purchase-related data against the supplier, supplier groups, items and item group can be analyzed over a given period and frequency.

Purchase Order Analysis

To access the report, go to:

Home > Buying > Key Reports > Purchase Order Analysis

This report is helpful in analyzing the items and their billing status in a purchase order over a given period.

Supplier-Wise Sales Analytics

To access the report, go to:

Home > Buying > Key Reports > Sales-Wise Sales Analytics

This report provides extensive data on different items purchased from the suppliers.

Items to Order and Receive

To access the report, go to:

Home > Buying > Key Reports > Items to Order and Receive

This report visualizes and shows data for the purchase requests created.

To access the report, go to:

Home > Buying > Key Reports > Purchase Order Trends

Through this report, the trends for purchase orders for a given financial year can be visualized. The trend can be grouped based on Suppliers, Supplier Group, Item, Item Group, and Project.

Procurement Tracker

To access the report, go to:

Home > Buying > Key Reports > Purchase Order Trends

This report presents extensive purchase-related data including material requests, purchase orders created for the items.

Other Reports

To access, go to:

Home > Buying > Other Reports

In other reports section, the following reports can be accessed:

  1. Items To Be Requested
  2. Item-Wise Purchase History
  3. Purchase Receipt Trends
  4. Purchase Invoice Trends
  5. Subcontracted Item To Be Received
  6. Supplier Quotation

Calculate Incentive For Sales Team

https://docs.frappe.io/erpnext/calculate-incentive-for-sales-team

You can Calculate Incentives for sales team using custom scripts.

Can be used in any Sales Transaction with Sales Team Table:

cur_frm.cscript.custom_validate = function(doc) { // calculate incentives for each person on the deal total_incentive = 0 $.each(wn.model.get("Sales Team", {parent:doc.name}), function(i, d) {

// calculate incentive var incentive_percent = 2; if(doc.grand_total > 400) incentive_percent = 4;

// actual incentive d.incentives = flt(doc.grand_total) * incentive_percent / 100; total_incentive += flt(d.incentives) });

doc.total_incentive = total_incentive; }

Calculating Freight in taxes in ERPNext

https://docs.frappe.io/erpnext/calculatin-freight-in-taxes-in-erpnext

Use case: To calculate freight forwarding charges with tax rate

When freight is supposed to be calculated in forwarding charges as a tax rate, we can follow the steps as below:

  • You can create a ledger in the taxes account specifically in Chart of Accounts, else you can consider GST tax account in the taxations for calculation of the Freight charges.

  • Now create an Item with the name : Freight and Forwarding

  • You can now create Purchase Invoice for the Supplier and add this item to calculate the Taxes related to the freight. You can set the freight tax based on the Net total or Item Quantity as per the company policy.

FIFO and Moving Average calculation difference

https://docs.frappe.io/erpnext/calculation-of-valuation-rate-in-fifo-and-moving-average

Valuation Rate of an item is calculated based on the total expense incurred to make the product available for sale like freight, labour, cost of raw materials, etc.

In ERPNext, Valuation Rate is calculated based on the valuation method selected for the particular item.

An item can have either FIFO or Moving Average selected as a valuation method.

Consider the following example to know how it impacts your stock:

| Date      | Transaction | Qty | Unit Cost |
| 1-4-2020  | Purchase    | 10  | 100       |
| 6-4-2020  | Purchase    | 20  | 120       |
| 10-4-2020 | Sale        | 15  | ?         |

Calculating Valuation Rate at the time of sale:

As per FIFO:

Since this is FIFO, we will consume quantities from the earliest transactions, therefore, to make a sale of 15 qty, we will take 10 qty from the first transaction and 5 qty from the second one.

(10 * 100) + (5 * 120) = 1600, which leaves us 15 qty in stock at cost of 120 amounting to 1800.

As per Moving Average:

In the Moving Average method, the value of an item is recalculated every time when an item is acquired. This is done by adding the cost of the newly acquired items to the existing inventory’s value and then dividing it by the total quantity available.

((10 * 100) + (20 * 120)) / 30 = 113.33

To make a sale of 15 qty, we will directly multiply it by the average value we received just now.

15 * 113.33 = 1700, which leaves us 15 qty in stock amounting to 1700.

If you check, even though the quantity is same the stock value is different but both amounts to a total of 3400 only.

Campaign

https://docs.frappe.io/erpnext/campaign

A Campaign is a full-scale implementation of a sales strategy to promote a
product or service.

In ERPNext CRM, a campaign refers to a structured marketing initiative aimed at achieving specific business objectives, such as generating leads, increasing sales, or promoting brand awareness.

The Campaign feature allows users to plan, execute, and monitor marketing campaigns effectively within the CRM module. By leveraging the Campaign feature in ERPNext CRM, organizations can streamline their marketing efforts, target the right audience with personalized messages, track campaign performance, and ultimately drive business growth through effective marketing initiatives.

This is done in a market segment of a particular geographical area to achieve specified objectives.

To access Campaign, go to:

Home > CRM > Campaign > Campaign

Campaign

1. How to Create a Campaign

  1. Go to the Campaign list, click on new.
  2. Enter a name for the campaign.
  3. Enter a description to describe what the campaign is about.
  4. Save.

2. Features

2.1 Tag Campaign in Lead, Opportunity, and Quotation

When a marketing campaign generates a lead or an opportunity, you can tag the campaign while creating the Lead or Opportunity. You can also tag the campaign in Quotation.

This helps in assessing the effectiveness of a marketing campaign by calculating the return on investment.

Campaign in Lead

2.2 View Leads Generated by a Campaign

  1. Click on 'View Leads' button in the campaign. Campaign - View Leads
  2. You will see a filtered list of leads made against the campaign.
  3. You can also create new leads against the campaign by clicking on 'New' Campaign - New Lead

2.3 Set up email schedules for Email Campaigns

If you want to carry out a campaign using emails for your leads or contacts, Email Campaign serves the purpose.

You will have to set up a schedule for the campaign. Click on 'Add Row' to add an entry to the campaign schedule.

Campaign Schedule
  • In Email Template, select an 'Email Template' which you would like to send via email to the lead or contact. You can create one as follows:

Campaign - Email Template
  • In Send After (days), specify the number of days after which the respective email should be sent. Using this field, the day on which email is to be sent is calculated relative to the Start Date of Email Campaign.

2.4 Dashboard

The Campaign dashboard shows you all the Email Campaigns and Social Media Post linked to the Campaign. You can also create a new Email Campaign and Social Media Post from here.

Campaign Dashboard
  1. Lead
  2. Opportunity
  3. Quotation
  4. Email Campaign

Next: Email Campaign

Fetch shipping charges based item's value or weight

https://docs.frappe.io/erpnext/can-we-fetch-shipping-charges-based-items-value-or-weight-in-po

In a Purchase order, we can fetch the Shipping Charges of an item based on its Value or weight.
Go to Shipping Rule list --> Calculate based on : Net Total or Net Weight --> Select Shipping rule conditions --> Fill table

This way, while creating a PO, shipping charges will be fetched for the item based on item's weight or Value.

Capacity Planning based on Work Order

https://docs.frappe.io/erpnext/capacity-planning

Capacity Planning functionality helps you in tracking production jobs allocated on each Workstation.

Role Desk Permission

Follow are the steps to use Capacity Planning Feature in your ERPNext account.

  1. Operations

To add operations, go to:

2. Workstation

Manufacturing -> Bill of Materials -> Operations

Add each Workstation in your ERPNext account from:

Manufacturing -> Bill of Materials -> Workstation

In the Workstation master, you can define which operations will be performed on it, what are the cost associated with it, and what are the working hours of that Workstation. 3. Bill of Materials (BOM):

In a BOM, with the list of raw material needed, for manufacturing, you can also list operation and workstations through which those raw materials will be processed. 4. Work Order:

On submission of Work Order, Timesheet for Operations. This helps you allocate production jobs on each Workstation, as well as you can update actual time taken for each Operation.

Error due to Capacity Planning

Question: On Submission of Work Order, we are getting following error message.

Role Desk Permission

**Answer: **Please check if you have updated Working Hours in the Workstation master? If not, then please update it and then try to submit Work Order.

On submission of Work Order, Operations (as added in the BOM) are allocated on the workstation. Each operation should start and end on the same day. If a system is not able to schedule that operation in a day, then system request you to divide that Project, so that system can allocate smaller operations in a day.

If you have update working hours in the Workstation, but still getting this issue, that because one of your operation is taking too long, and cannot be completed in a day. Please divide that operation into smaller operations, so that it can be allocated on Workstation and completed on the same day.

Avoid Working Hours of Workstation

If you want to ignore above validation and allow scheduling of production job beyond the working hours of the Workstation, enable Overtime in the Manufacturing Settings.

Role Desk Permission

If you want to complete disable Capacity Planning feature, in the Manufacturing Settings, check field "Disable Capacity Planning and Time Tracking".

Capacity Planning based on Production Order

https://docs.frappe.io/erpnext/capacity-planning-based-on-production-order

Capacity Planning functionality helps you in tracking production jobs allocated on each Workstation.

Follow are the steps to use Capacity Planning Feature in your ERPNext account.

Operations

To add operations, go to: Manufacturing > Bill of Materials > Operations

Workstation

Add each Workstation in your ERPNext account from: Manufacturing > Bill of Materials > Workstation

In the Workstation master, you can define which operations will be performed on it, what are the cost associated with it, and what are the working hours of that Workstation.

Bill of Materials (BOM)

In a BOM, with the list of raw material needed, for manufacturing, you can also list operation and workstations through which those raw materials will be processed.

Production Order

On submission of Production Order, Timesheet for Operations. This helps you allocate production jobs on each Workstation, as well as you can update actual time taken for each Operation.

--

Question : On Submission of Production Order, we are getting following error message.

Answer : Please check if you have updated Working Hours in the Workstation master? If not, then please update it and then try to submit Production Order. On submission of Production Order, Operations (as added in the BOM) are allocated on the workstation. Each operation should start and end on the same day. If a system is not able to schedule that operation in a day, then system request you to divide that Project, so that system can allocate smaller operations in a day. If you have update working hours in the Workstation, but still getting this issue, that because one of your operation is taking too long, and cannot be completed in a day. Please divide that operation into smaller operations, so that it can be allocated on Workstation and completed on the same day.

Change User Password

https://docs.frappe.io/erpnext/change-password

'Change Password' is used to change the password of any existing user.

Each ERPNext user can change password for his/her ERPNext account. Also user with System Manager role will be able to reset password for himself as well as for other users.

How to change password?

  1. Go to User List
  2. Open the user for whom the password needs to be changed
  3. Go to 'Settings', and expand the section named 'Change Password'
  4. Enter the new password and save the form

Note:- Based on the complexity of the password, the system indicates whether the entered password is Weak or Strong

Screenshot 2023-12-27 at 4.39.12 PM

Change Valuation Method

https://docs.frappe.io/erpnext/change-valuation-method

In the ERPNext, users can change the valuation method from FIFO to Moving Average, but not from Moving Average to FIFO, for items with existing stock transactions.

If a user changes the valuation method from FIFO to Moving Average for any item, the system will use the Moving Average method for new outward transactions. Additionally, if the user creates backdated transactions, all transactions created after that backdated entry will be reposted using the Moving Average method. This may result in changes to the closing balance value of earlier transactions.

To prevent this, users can freeze stock transactions before a specific date by setting the "Stock Frozen Up To" date in the stock settings.

Changing Parent Account

https://docs.frappe.io/erpnext/changing-parent-account

Change Parent Account

Field Level Permission Management

https://docs.frappe.io/erpnext/changing-the-properties-of-a-field-based-on-role

Restricting a field based on Roles can be easily configured using Perm Level, which is required by most organizations. To define a Perm Level, you can go to the respective form and Customize it.

Let's take a scenario where the organization doesn't want its Employee (Accounts User) to edit the Rate of the item while creating a Sales Invoice. To do that, we can simply make the Item Rate field a read-only.

Step 1: Customize Form

To achieve this, go to Customize Form, select DocType as Sales Invoice Item, scroll to the Item Rate field and expand it.

Step 2: Perm Level

Search for the Perm Level, enter the number (0, 1, 2, 3, etc), and Save it.

Step 3: Permission Rule

Once saved, click on Add a New Rule in Role Permission Manager and select the Document Type and the Role, in our case, Accounts User, set the Perm Level as 2 and grant the Employee Read access.

This is how the Role Permissions Manager will display the newly created Rule with Perm Level as 2:

Step 4: Validate View

Now, as you can see in the Sales Invoice the User can only read the Item Rate field which will be fetched automatically from the Price List.

Chart Of Accounts

https://docs.frappe.io/erpnext/chart-of-accounts

The Chart of Accounts is the blueprint of the accounts in your organization.

The overall structure of your Chart of Accounts is based on a system of double entry accounting that has become a standard all over the world to quantify how a company is doing financially.

Chart of Accounts is a tree view of the names of the Accounts (Ledgers and Groups) that a Company requires to manage its books of accounts. ERPNext sets up a simple chart of accounts for each Company you create, but you can modify it according to your needs and legal requirements.

For each company, Chart of Accounts signifies the way to classify the accounting entries, mostly based on statutory (tax, compliance to government regulations) requirements.

The Chart of Accounts helps you to answer questions like:

  • What is your organization worth?
  • How much debt have you taken?
  • How much profit are you making (and hence paying tax)?
  • How much are you selling?
  • What is your expense break-up?

As someone managing a business, it is very valuable to see how well your business is doing.

Tip: If you can’t read a Balance Sheet it's a good opportunity to start learning about this. It will be worth the effort. You can also take the help of your accountant to set up your Chart of Accounts.

To access the Chart of Accounts, go to:

Home > Accounting > Accounting Masters > Chart of Accounts

  1. How to Create/Edit Accounts

ERPNext comes with a standard set Chart of Accounts. Instead of creating/modifying, you can also use the Chart of Accounts Importer tool. Note that the existing Chart of Accounts will be overwritten when this tool is used.

  1. Go to the Chart of Accounts

Here you can open group accounts which contain other accounts. There are options to “Add Child” in an account, Edit or Delete the account.

  1. The option to create a child account will only appear if you click on a Group (folder) type Account.
  2. Enter a name for the account.
  3. Enter a number for the account.
  4. Tick 'Is Group' if you want this to be a group account which can contain other accounts.
  5. Select the Account Type. Selecting this is important as some fields allow selecting only specific type of accounts.
  6. Change the currency if this account will be used for transactions with different currency. By default, it's the Company's currency. To know more, visit the Multi Currency Accounting page.
  7. Click on Create New.

Typically, you might want to create Accounts for:

  • Travel, salaries, telephone, etc. under Expenses.
  • Value Added Tax (VAT), Sales Tax, Equity, etc. under Current Liabilities.
  • Product Sales, Service Sales, etc. under Income.
  • Building, machinery, furniture, etc. under Fixed Assets.

Tip: Accounts with different currencies are created when you receive or make payments to or from different currencies. For example if you are based in India and transact with USA, you may need to create accounts like 'Debtors US', 'Creditors US', etc.

Let us understand the main groups of the Chart of Accounts.

  1. Account Types

Account types are mainly classified as income, expense, asset, or liability.

2.1 Balance Sheet Accounts

Balance Sheet accounts are 'Application of Funds (Assets)' and 'Sources of Funds (Liabilities)' that signifies the net-worth of your company at any given time. When you begin or end a financial period, all the Assets are equal to the Liabilities.

A note on Accounting: If you are new to accounting, you might be wondering, how can Assets be equal to Liabilities? That would mean the company has nothing of its own. That's correct! All the “investments” made in the company to buy assets (like land, furniture, machines) is made by the owners. The owners are a liability to the company since the profits belong to the owners.

If a company were to shut down, it would need to sell all the assets and pay back all the liabilities (including profits) to the owners, leaving itself with nothing.

All the accounts under Balance Sheet accounts represent an asset owned by the company like "Bank Account", "Land and Property", "Furniture" or a liability (funds that the company owes to others) like "Owners funds", "Debt" etc.

Two special accounts to note here are Accounts Receivable (money you have to collect from your Customers) and Accounts Payable (money you have to pay to your Suppliers) under Assets and Liabilities respectively.

2.2 Profit and Loss Accounts

Profit and Loss is the group of 'Income' and 'Expense' accounts that represent your accounting transactions over a period.

Unlike Balance Sheet accounts, Profit and Loss accounts (or PL accounts) do not represent net worth (Assets), but rather represent the amount of money spent and collected in servicing customers during the period. Hence, at the beginning and end of your Fiscal Year, they become zero.

In ERPNext it is easy to keep track of Profit and Loss via the Profit and Loss chart.

Note that, on the first day of the year you have not made any profit or loss, but you still have assets, hence balance sheet accounts never become zero at the beginning or end of a period.

2.3 Groups and Ledgers

There are two main kinds of Accounts in ERPNext - Group and Ledger. Groups can have sub-groups and ledgers within them, whereas ledgers are the leaf nodes of your chart and cannot contain more accounts in them.

Accounting Transactions can only be made against Ledger Accounts (not Groups)

Info: The term "Ledger" means a page in an accounting book where entries are made. There is usually one ledger for each account (like a Customer or a Supplier).

Note: An Account “Ledger” is also sometimes called as Account “Head”.

2.4 Other Account Types

In ERPNext, you can also specify more information when you create a new Account, this is there to help you select that particular account in a scenario like 'Bank Account' or a 'Tax Account' and has no effect on the Chart itself.

Explanation of account types:

  • Accumulated Depreciation: To store the total accumulated depreciation information of the Company Assets. Accumulated depreciation appears on the balance sheet.
  • Asset Received But Not Billed: A temporary liability account which holds the value of Asset received but not billed yet.
  • Bank: The account type under which bank accounts will be created. There must be at least one group account of type "Bank" in the CoA.
  • Cash: The account type under which cash account will be created. There must be at least one group account of type "Cash" in the CoA.
  • Chargeable: Additional charges applied to Items can be stored in accounts of this type. For example, "Freight and Forwarding Charges".
  • Capital Work in Progress: Current charges when creating Fixed Assets are stored in CWIP accounts. For example, construction costs when constructing a building. In ERPNext Assets are booked against CWIP accounts when they are not yet being used.
  • Cost of Goods Sold: An account under this type is used to book the accumulated total of all costs incurred while manufacturing/purchasing a product or service, sold by a Company.
  • Depreciation: The expense account to book the depreciation of the fixed assets. This appears on the Income statement.
  • Equity: These type of accounts represent transactions with people that own the business, i.e. the shareholders/owners.
  • Expenses Included In Asset Valuation: The account to book the expenses (apart from the direct material costs of Assets) included in the landed cost of an Asset.
  • Expenses Included In Valuation: The account to book the expenses (apart from direct material costs) included in the landed cost of an item/product, used in Perpetual Inventory.
  • Fixed Asset: The account to maintain the costs of fixed assets.
  • Income Account: This type of accounts represents any source of income or revenue booked for the Company.
  • Payable: The account type represents the amount owed by a company to its creditors (Suppliers).
  • Receivable: The account type represents the amount owed to a company by its debtors (Customers).
  • Round Off: In many Invoices there can be some rounding off in the final amount. For accurate tracking, those amounts can be booked to accounts of this type.
  • Stock: The account group under which Warehouse accounts will be created.
  • Stock Adjustment: An expense account to book any adjustment entry of stock/inventory. Generally comes at the same level of Cost of Goods Sold.
  • Stock Received But Not Billed: A temporary liability account which holds the value of stock received but not billed yet and used in Perpetual Inventory.
  • Tax: All tax accounts like VAT, TDS, GST, etc. come under this type.
  • Temporary: A Temporary account is useful for balancing incomes, expenses and nullifying them when shifting to ERPNext mid-year with outstanding accounting entries.

Note: When making Payment Entries, the default bank account will be fetched in the following order if set:

  • Company form > * Mode of Payment default account > * Customer/Supplier default bank account > * Select manually in Payment Entry

2.5 Financial statements

Financial statements for your company are easily viewable in ERPNext. You can view financial statements such as Balance Sheet, Profit and Loss statement, and Cash flow statement.

An Example of various financial statement are given below:

  1. Cash Flow Report:

  1. Profit and Loss Report:
  2. Balance Sheet Report:

2.6 Account Number

A standard Chart of Accounts is organized according to a numerical system. Each major category will begin with a certain number, and then the sub-categories within that major category will all begin with the same number. For example, if assets are classified by numbers starting with the digit 1000, then cash accounts might be labeled 1100, bank accounts might be labeled 1200, accounts receivable might be labeled 1300, and so on. A gap between account numbers is generally maintained for adding accounts in the future.

You can assign a number while creating an account from Chart of Accounts page. You can also edit a number from account record, by clicking Update Account Name / Number button. On updating account number, the system renames the account name automatically to embed the number in the account name.

  1. Video
  1. Opening Balance
  2. Accounts Settings
  3. Journal Entry
  4. Inter Company Journal Entry
  5. Accounting Reports
  6. Multi Currency Accounting

Chart Of Accounts Importer

https://docs.frappe.io/erpnext/chart-of-accounts-importer

Introduced in Version 12

When a new company is created in ERPNext, the Chart of Accounts for it is created by default with a pre-set structure. However, if you have your own Chart of Accounts, you can import it using the Chart of Accounts Importer.

It allows you to create your own Chart of Accounts according to your requirement and import it into the system.

Any existing Chart Of Accounts against that company will be overwritten. Make sure the company you are selecting doesn't have any pre-existing transactions otherwise you'll receive a validation error.

To access, go to:

Home > Getting Started > Chart of Accounts Importer

1. How to import Chart Of Accounts

  1. Select the Company for which you want to import the Chart of Accounts.
  2. Click on "Download Template" button to download the template. Select file type in which you want to download the template. Select the template type and click on "Download". "Sample Template" contains pre-filled sample data so that you get an idea of how to fill the template. You can edit the data in "Sample Template" itself or download "Blank Template" for a fresh template. COA Import

COA Import
  1. Once you download the template, fill in the details in the template as shown in the sample template below. Please make sure to make accounts for account types "Cost of Goods Sold", "Depreciation", "Fixed Asset", "Payable", "Receivable", "Stock Adjustment". Root types for these accounts must be one of Asset, Liability, Income, Expense, and Equity. o know more about "Account Types" and "Root Types" click here click here

COA Import

Click on "Attach" to upload the template.

COA Import

Once you upload the template you'll be able to see the preview of the Chart of Accounts in the Chart Preview section.

COA Import

If everything seems correct in the preview, click on "Import" in the top right corner and the accounts will be created.

COA Import

To verify the created accounts you can go to Chart of Accounts and see the newly created accounts for that company.

COA Import

Cheque Print Template

https://docs.frappe.io/erpnext/cheque-print-template

Cheque Print Template allows defining templates for bank cheques.

Business involves making payment to various parties like suppliers and employees. Payment can be made in various modes like cash, NEFT or cheque. If you are making a payment via a cheque, you can also create a Print Format for printing Cheques from ERPNext based on the Payment Entry.

To access Cheque Print Template, go to: > Home > Accounting > Cheque Print Template

Using the Cheque Print Template you can generate a new Print Format for cheques. It will be created based on the cheque format provided by your bank.

A sample cheque:

Sample Cheque
  1. How to create a Cheque Print Template
  1. Go to the Cheque Print Template list, click on New.
  2. You can set the position of various items in the cheque.
  3. Save.

In the Cheque Print Template, for each value (say Payee, Date), exact coordinates are provided based on where that value should be printed on a cheque. Co-ordinates are provided in centimeters. Here is a representation the structure:

Sample Cheque

1.1 New Format by Scanning

To speed up the creation of a new cheque printing format, you can upload a scanned image of the cheque. Considering the scanned image for the cheque, the system automatically updates co-ordinates for each value like party name, amount, date, the amount in words, etc.

1.2 New Print Format manually

If the preview looks good, click on the Create Print Format button to create a new Print Format for printing the cheque. Based on the values provided in the Cheque Print Template, the system will auto-generate an HTML script for the cheque’s Print Format.

You can manually provide the co-ordinate for each value based on where you want it to be printed on the cheque and customize with HTML/CSS.

Preview

Based on coordinates provided for all the values, a preview will be shown as to how the values will be printed on the cheque.

Sample Cheque

1.3 Printing Cheques

New print format generated for the cheque will be visible in the Payment Entry form. After creating the payment entry, you will be able to print transaction details on the cheque.

Sample Cheque
  1. Address Template
  2. Terms and Conditions Template

Client Scripts

https://docs.frappe.io/erpnext/client-scripts

Client Scripts are small code snippets that are executed in the browser to extend or customize the standard functionality of ERPNext.

Build > Scripting > Client Script

Client Script
  1. How to Create a Custom Script

Create a Custom Script (you must have System Manager role for this):

Go to Custom Script List and click on New.

You will be redirected to a page wherein you will be asked to enter the DocType for which you wish to create a Custom Script.

Type your Custom Script and make sure it is enabled.

Save.

Notes

  • Server Custom Scripts are only available for the Administrator.
  • Client Custom Scripts are in JavaScript and Server Custom Scripts are in Python.
  • For testing, make sure to go to Tools > Clear Cache and refresh after updating a Custom Script.

Close Sales Order

https://docs.frappe.io/erpnext/close-sales-order

In the submitted Sales Orders, you will find Stop option. Stopping Sales Order will restrict user from creating Delivery Note and Sales Invoice against it.

Close Option in Sales Order

####Scenario

An order is received for ten Wind Turbines. Sales Order is also created for ten units. Due to scarcity of stock, only seven units are delivered to the customer. Pending three units are to be delivered soon. Customer informs that they don't need to deliver pending item, as they have purchased it from other vendor.

In this case, create Delivery Note and Sales Invoice will be created only for the seven units. And the Sales Order should be set as stopped.

Closed Sales Order

Once Sales Order is set as stopped, you will not have pending quantities (three in this case) reflecting in Pending to Deliver and Pending to Invoice reports. To make further transactions against Stopped Sales Order, you should first Unstop it.

You will find same funtionality in the Purchase Order as well.

Closing Accounting Books in ERPNext in v15

https://docs.frappe.io/erpnext/closing-accounting-books-in-erpnext

The financial year has ended and it's time to start the books fresh. Closing the books is an essential task for every business owner because it helps gauge the business's overall performance, highlights balances that will carry forward to the next year, removes inconsistencies from the books, and creates an outline for the next year's financial reports.

Here's the year-end guide to close your books in ERPNext.

  • Review your Receivables and Payables
  • Reconcile your Accounts
  • Post a Period Closing Voucher
  • Set your new Fiscal Year as default

Review your Receivables and Payables

Verify the list of orders against which invoices are yet to be made, check the list of outstanding invoices, and ensure to remunerate them, this will give you a better idea of what you owe and own. Check for the oldest unpaid invoices present, it may cause a hidden uncertainty in your books. Once done, send out outstanding reports against your clients to ensure the balances are accurate.

Reconcile your accounts

  • Bank Reconciliation:
    The process to match your transactions entered in ERPNext from your bank statement also helps to record other charges incurred not recorded in the books.
    Use the Update Bank Transaction Dates tool to match balances as per your bank statement.

Home > Accounting > Banking and Payments > Update Bank Transaction Date

  • Invoice Reconciliation:
    The process to allocate your Payment Entries against your Customers and Suppliers to get accurate Receivables and Payables.
    Use the Payment Reconciliation tool to link your unallocated payments against pending invoices.

Home > Accounting > Banking and Payments > Match Payments with Invoices

  • Stock Reconciliation: This helps you keep the physical stock and book stock in sync.
    Use Stock Reconciliation to keep your stock up-to-date.

Home > Stock > Tools > Stock Reconciliation

To audit your books, your accountant will need the following reports:

  • Financial Statements: Balance Sheet, Profit and Loss Statement, and Cash Flow Statement.
  • Bank Statements and Loans.
  • Asset Depreciation and Balances.

Post a Period Closing Voucher

This step will ensure all your incomes and expenses are balanced and you start your books from zero for the next financial year.

It resets your income and expense accounts and posts it to the account selected while creating it as seen in the General Ledger below(transferred to Reserves and Surplus).

Once your accountant has made all the adjustment entries to balance your accounts, you can freeze your accounts.

To freeze, you can:

  • Go to Account Settings, and enter the date till when you want to freeze your account.
  • Create an Accounting Period to avoid the creation of any financial transactions for the period.

    This configuration will stop the submission of Purchase Invoices for the period mentioned.

Change Fiscal Year

ERPNext creates Fiscal Year at the end of every financial year.

Home > Accounting > Setup > Fiscal Year

We hope this will help you in closing your books and give you a fresh start for the new financial year.

Closing Stock Balance

https://docs.frappe.io/erpnext/closing-stock-balance

Note: In v16 the closing stock balance has renamed as Stock Closing Entry

How the Stock Balance Report is Prepared

The Stock Balance report is a crucial tool for businesses to monitor their inventory levels and make informed decisions. It consists of four main columns: Opening Stock, In Stock, Out Stock, and Balance Stock. The Balance Stock is calculated using the formula Opening Stock + In Stock - Out Stock.

One of the key challenges in preparing the Stock Balance report is the calculation of the Opening Stock. To determine the Opening Stock, the system reads all the rows in the Stock Ledger Entry table that come before the specified From Date filter. However, a potential issue arises when the filter for item code or warehouse is not set, and the Stock Ledger Entry table contains a vast number of records. This situation can significantly slow down the process and cause performance problems.

Closing Stock Balance

To address this issue, a solution has been introduced - the "Closing Stock Balance" feature. This feature allows the system to prepare the Opening Stock in advance, reducing the time taken to generate the Stock Balance report.

Here's how to use the "Closing Stock Balance" feature effectively:

  1. Closing Stock Balance Creation: After the financial year has ended, and the necessary audits have been completed for that year (in this example, the financial year 2022-2023), you should create the Closing Stock Balance. This should be done for the specific end date of the financial year 2022-2023.
  2. Data Preparation: Once the Closing Stock Balance is submitted, the system will take some time to prepare the data. During this process, the Opening Stock values are calculated and stored for future use.
  3. Utilizing Closing Stock Balance: With the Closing Stock data prepared, the system will utilize this data to generate the Stock Balance report efficiently. Now, whenever a user opens the Stock Balance Report, the system can quickly read the necessary data from the Closing Stock Balance for the Opening Stock values.
  4. Annual Closing Stock Balance: It is essential to create the closing stock balance every year after the closing of the financial year. This ensures that the Opening Stock values are updated and accurate for each reporting period.

By implementing the "Closing Stock Balance" feature and following the recommended steps, businesses can significantly improve the performance and efficiency of generating Stock Balance reports, even with a vast amount of data in the Stock Ledger Entry table.

Common Receivable Account

https://docs.frappe.io/erpnext/common-receivable-account

As per the party model, a common receivable account called Debtor is auto-created. This is a default Receivable Account for all the Customers.

Role Desk Permission

If needed, you can also create a new receivable account and update in the Customer master.

Question: Should I create separate Receivable Account Account for each Customer?

Answer: You can, but it's not a recommended approach. If you want to create separate Receivable Account for each Customer for tracking receivable, then it not needed. You still view Account Receivable & General Ledger report for each Customer.

Just like Debtors, for tracking payables, default account called Creditors is created under Account Payables.

Common Party Accounting

https://docs.frappe.io/erpnext/common_party_accounting

Common Party Accounting in ERPNext involves accounting of unusual transactions like creating a Sales Invoice against a primary Supplier.

Let's assume an ERPNext user who has been making Purchase Invoices against a Supplier, wants to make a Sales Invoice against the same supplier and adjust this Sales Invoice against one of the previous purchases.

The above can be achieved by enabling Common Party Accounting.

Steps:

Go to Accounts Settings and enable Common Party Accounting.

Create a link between two parties

  • If the primary role of the party is Supplier, then go to the Supplier Master and Click on Actions -> Link with Customer
  • If the primary role of the party is Customer, then go to the Customer Master and Click on Actions -> Link with Supplier
Party Link

Create a Sales Invoice against the Customer that was set as Secondary Party in the 2nd step.

On submitting the Sales Invoice, a Journal Entry will be posted automatically that will create an advance balance against the linked Supplier.

5. Now this Journal Entry advance can be then used to reconcile against a Purchase Invoice.

Journal Entry

Company

https://docs.frappe.io/erpnext/company-setup

A company is a legal entity made up of an association of people for carrying on a commercial or industrial enterprise.

In ERPNext, the first Company is created when an ERPNext account is set up. For each Company, you can set a domain as manufacturing, retail, or services depending on the nature of your business activity.

If you have more than one company, you can add them from:

Home > Accounting > Company

  1. How to create a new Company
  1. Go to the Company list, click on New.
  2. Enter the name, abbreviation, and default currency for the company.
  3. Save.

The abbreviation for your company is created by default. For example, FT for Frappe Technologies. The abbreviation helps in differentiating assets of one company from another.

The abbreviation also appears in various accounts, cost centers, taxes templates, warehouse, etc, of your company.

You can also attach a company logo and add a description for the company.

Company Master

Multi Company Structure

Let's assume you run a group of companies, some may be larger companies and some may be smaller that are a part of the larger company(s).

In ERPNext, you can set up multiple companies. The company structure can be parallel, i.e., sister companies, parent-child companies, or a combination of both.

A parent company is a larger organization which consists of one or more child companies. A child company is a subsidiary of a parent company.

The company tree view displays the overall structure of your companies.

Once you build a company tree, ERPNext will validate if the accounts of the child companies match the accounts in the parent company. All the accounts can be combined in a consolidated chart of accounts statement.

Other Options when Creating a Company

  • Domain: The domain of work the company is into. Eg: manufacturing, services, etc. Choose one when setting up your account.
  • Is Group: If checked, this becomes a parent company.
  • Parent Company: If this is a child company, set the parent from this field i.e., select a group company this company belongs to. If a parent company is set, the chart of accounts for the new company you're creating will be created based on the selected parent company.

Chart of Accounts

For each Company, the master for Chart of Accounts is maintained separately. This allows you to maintain separate accounting for each company as per the legal requirements. You can also import chart of accounts using the Charts Of Accounts Importer.

ERPNext has localized Chart of Accounts readily available for some countries. When creating a new Company, you can choose to set up the Chart of Account for it from one of the following options.

  • Standard Chart of Accounts
  • Based on Existing Company's Chart of Account

Note that, if the Parent Company is selected when creating a new Company, the Chart of Accounts will be created based on the existing Parent Company.

Defaults

Within the Company master, you can set many of the default values for masters and accounts. These default accounts will help you in the quick posting of accounting transactions, where the value for the account will be fetched from the Company master if provided. As soon as the company is created, a default Chart Of Accounts and Cost Center is automatically created.

The following defaults can be set for a company:

  • Default Letter Head
  • Default Holiday List
  • Standard Working Hours
  • Default Terms and Conditions
  • Country
  • Tax ID
  • Date of Establishment
  1. Features

Monthly Sales Target

Set the monthly sales target number in the company currency, for example, $10,000. Total monthly sales will be visible once transactions are made. To know more click here.

Account Settings

Some of the following accounts will be set by default when you create a new company, others can be created. The accounts can be seen in the Chart of Accounts. These values can be changed later on if needed.

  • Default Bank Account
  • Default Cash Account
  • Default Receivable Account
  • Round Off Account
  • Round Off Cost Center
  • Write Off Account
  • Discount Allowed Account
  • Discount Received Account
  • Exchange Gain / Loss Account
  • Unrealized Exchange Gain/Loss Account
  • Default Payable Account
  • Default Employee Advance Account
  • Default Cost of Goods Sold Account
  • Default Income Account
  • Default Deferred Revenue Account
  • Default Deferred Expense Account
  • Default Payroll Payable Account
  • Default Expense Claim Payable Account
  • Default Cost Center
  • Credit Limit
  • Default Payment Terms Template

Stock and Manufacturing Settings

Perpetual Inventory feature would lead to Stock transactions impacting the company's books of accounts. Know more here. It is enabled by default.

  • Default Inventory Account
  • Stock Adjustment Account
  • Stock Received But Not Billed
  • Expenses Included In Valuation

Accumulated Depreciation Account

  • Depreciation Expense Account
  • Series for Asset Depreciation Entry (Journal Entry)
  • Expenses Included In Asset Valuation
  • Gain/Loss Account on Asset Disposal
  • Asset Depreciation Cost Center
  • Capital Work In Progress Account
  • Asset Received But Not Billed

If you wish to book your accounting entries against different Finance Books, check the Enable Finance Books box and set a Default Finance Book.

HRA Settings

Set the default Component for the following Salary Components.

For the Indian user, setting the default value in this section will help in Employee Tax Declaration calculations, especially for HRA exemption amount.

  • Basic Component
  • HRA Component
  • Arrear Component

Bank Remittance Settings

Only for India.

Using the Payment Order feature (in Accounts), you can give a single document of transfer for multiple bank transfers. Updating value in the following fields will help you generate Bank Remittance in a format which can be accepted and can be also uploaded on the bank's portal.

Payment order allows a user to combine several payment entries/payment requests into a single document. Bank Remittance allows a user to send that single document to the bank as text format, this text format can be manually uploaded to Kotak bank payments platform.

Client Code and Product Code are codes given by the bank to you. This is required to be added in the text file as per the format specified by Kotak bank.

Budget

Exception Budget Approver Role: The role selected here can bypass the set budget to approve expenses.

Company Info

For reference, the following details of your company can be saved in ERPNext:

  • Date of Incorporation
  • Phone No
  • Fax
  • Email
  • Website
  • Address
  • Registration Details

Note: When setting the address here, it is important to tick the 'Is Your Company Address' checkbox.

For India, different addresses can be added with different GSTIN numbers if the company has multiple locations. For example, if your company has offices in Mumbai, Delhi, and Bangalore, you'll have to add different addresses with different GSTIN numbers.

Registration Details: Here you can save various tax/cheque/bank number for reference.

Deleting all Company Transactions

You can delete all transactions (Orders, Invoices) of a Company. Use with caution, transactions once deleted cannot be recovered.

Requirements

  • The User has to be a System Manager
  • The User has to be the creator of the Company

Steps

  1. Click on the Delete Transactions button under Manage
  2. Verify your password
  3. Enter Company name for confirmation

And you're done. The master data like Item, Account, Employee, BOM etc. will remain as it is.

What is affected?

  • Sales/Purchase Orders/Invoices Receipts/Notes will be deleted
  • The monthly sales and sales history will be cleared
  • All notifications will be cleared
  • Lead Addresses to which the Company is linked will be deleted
  • All communications linked to the Company will be deleted
  • All naming series will be reset
  • Stock Entries linked to a Warehouse of this Company will be deleted

Introduced in Version 13.

Change Parent Company

You can change the Parent Company of an existing company. Go to the Parent Company field, select the Company from the list, and save the form.

  1. Setting Up Taxes
  2. System Settings
  3. Charts Of Accounts Importer
  4. Users and Permissions
  5. Adding Users
  6. Letter Head
  7. Email Account
  8. Administrator

Company-wise Naming Series

https://docs.frappe.io/erpnext/company-wise-naming-series

Suppose you have a multi-company setup, and you need to create different naming series for documents belonging to different companies. For example, you have three companies:

  • Company A
  • Company B
  • Company C

The need is to create naming series which is company-specific for documents such as Sales Invoice, Purchase Order, etc. For example, in case of Sales Invoice, for Company A, the naming series will be SINV-A-0001 and for Company B, the naming series will be SINV-B-0001. This can be easily achieved via customisation by following the steps given below:

First, go to the DocType for which you want different series based on company and open its Customize Form. In this case, we will Select From Type as Sales Invoice.

Next, below the field of Company, add another field and name it 'Abbr'. Add  in its Fetch From input.

company.abbr

Also, keep this field hidden (if needed).

  1. Now, in the Customize Form itself, go to the Naming Series row and expand it. In the Options box, add another entry in new line (taking Sales Invoice as example)  and set this as default.
SINV-.abbr.-.####

Once this is done, click on Update.

Now, go to Sales Invoice and create one. Select the Company and the Naming Series will be updated automatically based on the company's abbreviation.

Comments

Concepts and Terms

https://docs.frappe.io/erpnext/concepts-and-terms

Lets get familiar with the terminology that is used and some basic concepts in ERPNext.

Basic Concepts

Company

This represents the Company records for which ERPNext is setup. With this same setup, you can create multiple Company records, each representing a different legal entity. The accounting for each Company will be different, but they will share the Customer, Supplier and Item records.

Setup > Company

Customer

Represents a customer. A Customer can be an individual or an organization. You can create multiple Contacts and Addresses for each Customer.

Selling > Customer

Supplier

Represents a supplier of goods or services. Your telephone company is a Supplier, so is your raw materials Supplier. Again, a Supplier can be an individual or an organization and has multiple Contacts and Addresses.

Buying > Supplier

Item

A Product, sub-product or Service that is either bought, sold or manufactured and is uniquely identified.

Stock > Item

Account

An Account is a heading under which financial and business transactions are carried on. Examples of accounts are "Debtors", "Creditors", "VAT Payable", “Travel Expenses”, "Sales", "Share Capital", etc. ERPNext keeps track of your customers' and suppliers' balances in the background, so you don't need to create dedicated Accounts for them.

Accounting > Chart of Accounts

Address

An address represents location details of a Customer or Supplier. These can be of different locations such as Head Office, Factory, Warehouse, Shop etc.

Selling > Address

Contact

An individual Contact belongs to a Customer or Supplier or is just an independent. A Contact has a name and contact details like email and phone number.

Selling > Contact

Communication

A list of all Communication with a Contact or Lead. All emails sent from the system are added to the Communication table.

Support > Communication

Price List

A Price List is a place where different rate plans can be stored. It’s a name you give to a set of Item Prices stored under a particular List.

Selling > Price List

Buying > Price List

Accounting

Fiscal Year

Represents a Financial Year or Accounting Year. You can operate multiple Fiscal Years at the same time. Each Fiscal Year has a start date and an end date and transactions can only be recorded in this period. When you “close” a fiscal year, it's balances are transferred as “opening” balances for the next fiscal year.

Setup > Company > Fiscal Year

Cost Center

A Cost Center is like an Account, but the only difference is that its structure represents your business more closely than Accounts. For example, in your Chart of Accounts, you can separate your expenses by its type (i.e., travel, marketing, etc.). In your Chart of Cost Centers, you can separate them by product line or business group (e.g., online sales, retail sales, etc.).

Accounting > Chart of Cost Centers

Journal Entry

A document that contains General Ledger (GL) entries and the sum of Debits and Credits of those entries is the same. In ERPNext you can update Payments, Returns, etc., using Journal Entries.

Accounting > Journal Entry

Sales Invoice

A bill sent to Customers for delivery of Items (goods or services).

Accounting > Sales Invoice

Purchase Invoice

A bill sent by a Supplier for delivery of Items (goods or services).

Accounting > Purchase Invoice

Currency

ERPNext allows you to book transactions in multiple currencies. There is only one currency for your book of accounts though. While posting your Invoices with payments in different currencies, the amount is converted to the default currency by the specified conversion rate.

Setup > Currency

Selling

Customer Group

A classification of Customers, usually based on market segment.

Selling > Setup > Customer Group

Lead

A person who could be a future source of business. A Lead may generate Opportunities. (from: “may lead to a sale”).

CRM > Lead

Opportunity

A potential sale. (from: “opportunity for a business”).

CRM > Opportunity

Quotation

Customer's request to price an item or service.

Selling > Quotation

Sales Order

A note confirming the terms of delivery and price of an Item (product or service) by the Customer. Deliveries, Work Orders and Invoices are made on basis of Sales Orders.

Selling > Sales Order

Territory

A geographical area classification for sales management. You can set targets for Territories and each sale is linked to a Territory.

Selling > Setup > Territory

Sales Partner

A third party distributer / dealer / affiliate / commission agent who sells the company’s products usually for a commission.

Selling > Setup > Sales Partner

Sales Person

Someone who pitches to the Customer and closes deals. You can set targets for Sales Persons and tag them in transactions.

Selling > Setup > Sales Person

Buying

Purchase Order

A contract given to a Supplier to deliver the specified Items at the specified cost, quantity, dates and other terms.

Buying > Purchase Order

Material Request

A request made by a system User, or automatically generated by ERPNext based on reorder level or projected quantity in Production Plan for purchasing a set of Items.

Buying > Material Request

Stock (Inventory)

Warehouse

A logical Warehouse against which stock entries are made.

Stock > Warehouse

Stock Entry

Material transfer from a Warehouse, to a Warehouse or from one Warehouse to another.

Stock > Stock Entry

Delivery Note

A list of Items with quantities for shipment. A Delivery Note will reduce the stock of Items for the Warehouse from where you ship. A Delivery Note is usually made against a Sales Order.

Stock > Delivery Note

Purchase Receipt

A note stating that a particular set of Items were received from the Supplier, most likely against a Purchase Order.

Stock > Purchase Receipt

Serial Number

A unique number given to a particular unit of an Item.

Stock > Serial Number

Batch

A number given to a group of units of a particular Item that may be purchased or manufactured in a group.

Stock > Batch

Stock Ledger Entry

A unified table for all material movement from one warehouse to another. This is the table that is updated when a Stock Entry, Delivery Note, Purchase Receipt, and Sales Invoice (POS) is made.

Stock Reconciliation

Update Stock of multiple Items from a spreadsheet (CSV) file.

Stock > Stock Reconciliation

Quality Inspection

A note prepared to record certain parameters of an Item at the time of Receipt from Supplier, or Delivery to Customer.

Stock > Quality Inspection

Item Group

A classification of Item.

Stock > Setup > Item Group

Manufacturing

Bill of Materials (BOM)

A list of Operations and Items with their quantities, that are required to produce another Item. A Bill of Materials (BOM) is used to plan purchases and do product costing.

Manufacturing > BOM

Workstation

A place where a BOM operation takes place. It is useful to calculate the direct cost of the product.

Manufacturing > Workstation

Work Order

A document signaling production (manufacture) of a particular Item with specified quantities.

Manufacturing > Work Order

Production Planning Tool

A tool for automatic creation of Work Orders and Purchase Requests based on Open Sales Orders in a given period.

Manufacturing > Production Planning Tool

Setup / Customization

Custom Field

A user defined field on a form / table.

Setup > Customize ERPNext > Custom Field

Global Defaults

This is the section where you set default values for various parameters of the system.

Setup > Data > Global Defaults

A title that can be set on a transaction just for printing. For example, you want to print a Quotation with a title “Proposal” or “Pro forma Invoice”.

Setup > Branding and Printing > Print Headings

Terms and Conditions

Text of your terms of contract. In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

Selling > Setup > Terms and Conditions

Unit of Measure (UOM)

How quantity is measured for an Item. E.g., Kg, No., Pair, Packet, etc.

Stock > Setup > UOM

Configuring A Reply-To Email Address

https://docs.frappe.io/erpnext/configuring-a-reply-to-email-address-in-erpnext

The 'Reply-To' Email Address is set based on the 'Default Incoming' checkbox in the required Email Account.

Prerequisites:

You must have an email address record created in the ‘Email Account’ DocType for the desired email address, for example, ‘abc@test.com'.

Steps:

In the record for email address ‘abc@test.com' created in the 'Email Account' DocType, enable the 'Enable Incoming' checkbox and then the 'Default Incoming' checkbox. Enabling the 'Default Incoming' checkbox will then set this email as the email in 'Reply-To' (sample screenshot below).

For more information on Email Accounts, please click here.

Issued Items Against Work Order

https://docs.frappe.io/erpnext/consumed-materials-in-production

To access the Issued Items Against Work Order, go to:

Home > Manufacturing > Reports > Issued Items Against Work Order

Task

Items that are issued against a Work Order and are transferred to the Work in Progress Warehouse are shown in this report.

Contact

https://docs.frappe.io/erpnext/contact

Contact represents a person.

A contact may be associated with a Lead, Customer, Supplier, Shareholder, Sales Partner or a User.

You can also add contact as a standalone record without linking it to any of the entities listed above.

To access the Contact list, go to:

Home > CRM > Sales Pipeline > Contact

How to create a Contact

  1. Go to the Contact list and click on New.
  2. Enter First Name and Last Name.
  3. Choose the status if the contact is passive, is open to contact or has replied.
  4. Enter contact details like email, phone, etc.
  5. Save. Contact

You can also add a Contact from the Customer or Supplier record by clicking on “New Contact” button as shown below.

When you have multiple contacts against an entity like customer/supplier, you can check 'Is Primary Contact' to indicate the preferred contact. The primary contact will be chosen automatically in transactions like sales order and sales invoice.

To Import multiple contacts from a spreadsheet, use the Data Import Tool.

Features

A contact may be linked to multiple customers or multiple suppliers.

A contact can also be linked to customers and suppliers at the same time.

Invite the Contact as a User

You can allow contacts of your customers and suppliers to log into your ERPNext system and view data relevant to them. Check Customer Portal for more details on this. You can send an email invitation to a contact by clicking on 'Invite as User' button.

  1. Customer
  2. Supplier
  3. Sales Partner

Contract

https://docs.frappe.io/erpnext/contract

A contract is a legally binding agreement between a Supplier and a Customer over the sale or products or services.

A contract is legally enforceable because it meets the requirements and approval of the law. An agreement typically involves the exchange of goods, services, money, or promises of any of those.

To access the Contract list, go to:

Home > Sales Pipeline > Contract

1. How to Create a Contract

  1. Go to the Contract list and click on New.
  2. Choose the Customer.
  3. Enter the Contract Terms. A template can also be created for easily fetching the terms.
  4. Save.
Contract

Party User: The employee from your Company who is in contact with the Customer.

1.1 Statuses

  • Unsigned: The Contract has not yet been signed by the Customer.
  • Active: The Contract has been signed and is active under the Contract Period.
  • Inactive: The Contract is out of the Contract Period and not valid anymore.

2. Features

2.1 Contract Period

The Start and End date within which the Contract is valid.

2.2 Signee Details

This section will appear when the 'Signed' checkbox is ticked to indicate that the Customer has signed and accepted the Contract.

Contract Signee
  • Signee: Enter the name of the person that has signed the Contract.
  • Signed On: The date on which the Contract was signed.

2.3 Contract Details

Enter the terms of the Contract in the Contract Terms field. You can create a Contract Template and the template can be selected to fetch the Contract Terms.

2.4 Fulfilment Details

If the Contract requires some fulfilment from the Supplier's (your) end, their details can be recorded in the Fulfilment Terms table.

Contract Fulfilment
  • Requirement: Enter a requirement that needs to be fulfiled. For example, 'installation'.
  • Notes: Any notes about the requirement can be entered here.

2.5 Contract Template

A contract template is a standardized outline of a contract without the specifics involved. You can create a new template by going to:

Home > CRM > Contract Template

You can create templates by using Jinja. Eg:

The parties enter into this contract on {{ start_date }}.

When you create a new contract using this template, the is replaced by the date entered into the field of the same name.

{{ start_date }}

Contract Template

2.6 References

If the Contract can be linked to a transaction in ERPNext. Select the transaction type and the specific transaction. The documents that can be linked are:

  • Quotation
  • Project
  • Sales Order
  • Purchase Order
  • Sales Invoice
  • Purchase Invoice

Contract References
  1. Quotation
  2. Purchase Order
  3. Sales Order
  4. Purchase Receipt
  5. Delivery Note
  6. Sales Invoice
  7. Purchase Invoice

Copy Pasting Multiple Records From Excel

https://docs.frappe.io/erpnext/copy-pasting-multiple-records-from-excel

If you have a sequence of records saved in an excel sheet, that need to be mapped into a Child Table in ERPNext, the same can be done using this feature.

Let's say, you have a list of items saved in an Excel sheet, and you need to copy the same to the 'Items' Child Table in the Sales Order.

Steps to Copy Paste records from excel

  • Prepare the source data in Excel or text editor with each column separated by a tab.

Copy Pasting
  • Drag to select the records, and click the copy menu button or by Ctrl + C (Cmd + C) for

Case 1. The first column of the excel sheet should be the Column header and the contents therein.

Case 2. When there is no defined column header, the data will be mapped to the visible columns.

Copy Pasting
  • Place the cursor to the target input field of the child table, and paste it. Unlike the import via upload file feature, this copy & paste feature will trigger field change events automatically.

Copy Pasting

For performance consideration, you should only paste less than or equal to 100 records at a time.

Cost Center

https://docs.frappe.io/erpnext/cost-center

A Cost Center is a part of an organization where costs or income can be charged.

In ERPNext you can use the Cost Center as a Profit Center.

Your Chart of Accounts is mainly designed to provide reports to the government and tax authorities.

Most businesses have multiple activities like different product lines, market segments, areas of business, etc that share some common overheads. They should ideally have their own structure to report whether they are profitable or not. For this purpose, there is an alternate structure called the Chart of Cost Centers.

A Cost Center acts like an Accounting Dimension which helps you track costing based on particular areas.

The Cost Center can be set at these levels:

  • Company
  • Item
  • Order/Invoice

The Cost Center can be linked to the following transactions:

  1. Sales Invoice
  2. Purchase Invoice
  3. Journal Entry
  4. Payment Entry
  5. Delivery Note

And other transactions which can be used for budgeting. You can also use Cost Center for Budgeting.

1. Cost Center tree

You can create a tree of Cost Centers to represent your business better. Each Income / Expense entry is also tagged against a Cost Center. If 'Allow Cost Center In Entry of Balance Sheet Account' is checked under Account Settings, the system will allow a User to tag entry in Balance Sheet Accounts against a Cost Center.

For example, if you have two types of sales:

  • Walk-in Sales
  • Online Sales

You may not have shipping expenses for your walk-in customers, and no shop- rent for your online customers. If you want to get the profitability of each of these separately, you should create the two as Cost Centers and mark all sales with either "Walk-in" or "Online" Cost Center. Mark all your purchases in the same way.

Thus when you do your analysis you get a better understanding as to which side of your business is doing better. Since ERPNext has an option to add multiple Companies, you can create Cost Centers for each Company and manage them separately.

To access the Chart of Cost Centers, go to:

Home > Accounting > Budget and Cost Center > Chart of Cost Centers

2. How to set up Chart of Cost Centers

  1. Go to the Chart of Cost Centers.
  2. Add region-wise nodes.
  3. Add other nodes as per your needs.

Selecting a different Company will display the Cost Centers for that Company.

Cost Center

Chart of Cost Centers
  1. Budgeting
  2. Sales Invoice
  3. Purchase Invoice

Cost Center and Budgeting

https://docs.frappe.io/erpnext/cost-center-and-budgeting

In ERPNext, cost centers are crucial for budgeting and financial management. They represent distinct areas or departments within a company where costs are incurred and tracked. By associating expenses with specific cost centers, ERPNext provides a granular view of spending patterns and helps in analyzing budget performance.

Budgeting in ERPNext involves setting financial goals for each cost center based on historical data and projected expenses. This allows businesses to monitor their financial health, identify areas for improvement, and make informed decisions to achieve their financial objectives effectively.

Cost Center Allocation

https://docs.frappe.io/erpnext/cost_center_allocation

Cost Center Allocation

Cost Center Allocation is a feature using which the general ledger entry against a cost center can be split against multiple cost centers. In the Cost Center Allocation document, you can define allocation percentages of the child cost centers.

In a growing business, it becomes a necessity to analyse the income/expenses against each business unit of the organisation. And to do that, we need to treat each businees unit as a cost center and book income/expenses against the cost center. But if we need to split it every time at the transaction level manually, it becomes very difficult. That's when this Cost Center Allocation feature comes to the rescue.

In ERPNext, we just need to define the allocation between multiple cost centers (business units) against a specific master/main cost center. Then whenever we book an invoice or expense transaction against the main cost center, the system automatically split it based on allocation and posts gl entries against each child cost center.

1. How to create a Cost Center Allocation?

  1. Go to Cost Center Allocation list view and create a new Cost Center Allocation.
  2. Enter the Main Cost Center which will be used in the transaction.
  3. Enter Valid From helps us track the validity of the allocation.
  4. In the child table, enter child cost centers and their percentage
  5. Save and Submit the document.

Screenshot 2024-06-24 at 12.26.59 PM

2. GL Entries against Transaction

While booking any transaction against the main cost center, the system automatically split the GL Entry against it and posts multiple gl entries based on the applicable cost center allocation record.

Screenshot 2024-06-24 at 12.31.26 PM

(GL Entries against a Sales Invoice has been splitted based on Cost Center Allocation)

Country

https://docs.frappe.io/erpnext/country

A Country list can be maintained in the system and an appropriate country can be tagged to different entities and transactions as per the need.

How to add a Country?

  1. Go to the Country list and click on 'Add Country'.
  2. Enter the name of the country which is to be added.
  3. Specify the standard date format used in the country .
  4. Specify the standard time format used in the country.
  5. List down all the time zones.
  6. Mention the official abbreviation of the country.
  7. Save to get the country added to the list.

Coupon Code

https://docs.frappe.io/erpnext/coupon-code

Coupon Code allows a Customer to avail discount on shoppping cart products.

Discount offers are always exciting. To encourage Customers to buy from the e-commerce website, coupon code feature is exciting.

There are resellers/other site which generates leads for your ERPNext e-commerce website products/items/services.

When the potential Customer comes from other sites OR promotional emails to your ERPNext website for purchase, you should have the ability to:

To access the Coupon Code list, go to:

Home > Accounting > Coupon Code

  1. Prerequisites

To enable the Coupon Code feature, enable Show Apply Coupon Code in E Commerce Settings.

Create a Pricing Rule having Coupon Code Based flag enabled.

How to create Coupon Code

  1. Go to Coupon Code list and click on New.
  2. Enter a Coupon Name, e.g. "SAVE 20"
  3. Under Coupon Type, select from Promotional or Gift Card.

Promotional, is to promote a generic scheme.

Gift Card, is to randomly generate coupon code and to distribute to specific customer/user. 4. Coupon Code is unique readonly code in all capital letters , which gets generated based on Coupon Type and Coupon Name.

For Coupon Type,

a) Promotional , it removes all spaces and takes upto the first 8 characters. e.g. SAVE20

b) GiftCard ,it generates random code of 11 digits. e.g. AP48K7CT9LP

It can be used on the shopping cart page before placing the order to avail discount. 5. Select Pricing Rule having coupon code based flag enabled. 6. Click on Save

Coupon Code Doctype
  1. Features

3.1 Validity and Usage

  1. Valid From - To - validity of the coupon
  2. Maximum Use - Cap to limit the usage of the coupon code
  3. Used - for each Sales Order submitted with coupon code , the used count increments by 1.
  4. Coupon Code Description - can be used while creating Email Template to inform potential customers about the coupon code and scheme information

Pricing Rule Coupon Code Based

3.2 Coupon Code can be applied in two ways

  1. Through URL , coupon code will be automatically fetched from the URL parameter ("cc") and filled in the Apply Coupon Code textbox, for ease of user to apply.

http://xyz.erpnext.com/products/golden-ring?cc=SAVE5 2. Explicitly applying the code , by filling the code and clicking on "Apply Coupon Code" button as shown below in shopping cart page

Shopping Cart Apply CouponCode

Price will get updated on successful application of the coupon code.

  1. Shopping Cart
  2. Pricing Rule

Credit Limit

https://docs.frappe.io/erpnext/credit-limit

Credit Limit is the maximum amount of credit you are willing to offer to a Customer.

A Credit Limit is the maximum amount of credit that a financial institution or other lender will extend to a debtor for a particular line of credit. From a Customer's perspective, it is the maximum amount of goods or services they can get without paying money upfront.

You can set the Credit Limit in Customer, Customer Group, and in the Company. When a Sales Order or a Sales Invoice is submitted, the Credit Limit will be checked.

The order of precedence for checking Credit Limit is as follows:

  • Credit Limit set in Customer
  • Credit Limit set in Customer Group
  • Credit Limit set in Company

How to Set Credit Limit

  1. Go to: Selling > Sales > Customer > Customer.
  2. Under Credit Limit and Payment Terms section, set the Credit Limit.
  3. If you leave the Credit Limit as the default, i.e., 0, it has no effect.
  4. Save. Customer Credit Limit

Features

Credit Controller

You can allow users with a specific role to override the Credit Limit validation and submit a Sales Order or Sales Invoice even when a Customer's Credit Limit is fully utilized.

To set the Credit Controller role:

  1. Go to: Accounting > Settings > Accounts Settings
  2. Set the role in Credit Controller field.

Bypass Credit Limit Check for Sales Order

For specific customers, you can set the credit limit to be checked against the cumulative amount of the outstanding sales invoices and not the sales orders. You can do so by ticking 'Bypass credit limit check at Sales Order' checkbox in 'Credit Limit and Payment Terms' section of the customer.

Credit Limit for Customer Groups

To set Credit Limit at Customer Group Level:

  1. Go to Selling > Customers > Customer Group.
  2. Open the Customer Group and set the Credit Limit.

Credit Limit for Company

On setting Credit Limit at the Company level, all the Customers will have this Credit Limit applied globally.

To set Credit Limit at Company level:

  1. Go to Accounting > Masters and Accounts > Company.
  2. Open the Company and set the Credit Limit.
  1. Payment Entry
  2. Customer

Credit Note

https://docs.frappe.io/erpnext/credit-note

A Credit Note is a document sent by a seller to the Customer, notifying that a credit has been made to their account against the goods returned by the buyer.

A Credit Note is issued for the value of goods returned by the Customer, it may be less than or equal to the total amount of the order.

How to make a Credit Note

The user can make a Credit Note against the Sales Invoice or they can directly make Credit Note from the Sales Invoice without reference. Note that to create a Credit Note, the invoice must be paid using a Payment Entry.

  1. Go to the respective Sales Invoice and click on Create > Return / Credit Note. Credit Note from Invoice
  2. The Customer and Item details will be fetched as set in the Sales Invoice.
  3. If the Customer had paid partially or fully, make a Payment Entry against the original Sales Invoice.
  4. Save and Submit. Credit Note

The Item quantity and Payment amount will be negative since it's a return.

How does Credit Note affect ledger

Once a Payment Entry is created against the original Sales Invoice, the amount will be added to the Customer's account in negative so that the next time they make a purchase, this amount will be adjusted.

This is how the ledger is affected after a payment entry against a returned invoice:

Refer the Sales Invoice page for any other details.

No payment was made against Sales Invoice

In case no payment was made against the original invoice, you could just cancel the Sales Invoice. But, if only 5 out of 10 Items are being returned from an invoice, creating a Credit Note is useful for updating the ledger.

Example

Customer Rohan had purchased PVC pipes worth Rs 300 + taxes and at the time of delivery, Customer found that the products were damaged. Now Rohan has returned the product a Credit Note will be issued.

Credit Note with payment entry in ERPNext for above example is as below:

  1. Payment Entry
  2. Debit Note
  3. Sales Return

CRM Masters

https://docs.frappe.io/erpnext/crm-masters

Masters in CRM refers to the core data entities that are vital for managing customer relationships and sales processes in the system. These data elements serve as the foundation for various CRM activities and operations

By maintaining these core master data entities in CRM, users can effectively manage their customer relationship activities, streamline sales processes, track interactions, analyse overall performance, and make informed decisions to drive business growth and success.

CRM Reports

https://docs.frappe.io/erpnext/crm_reports

CRM reports in ERPNext offer valuable insights into lead management. They help businesses track key metrics, evaluate the success of various campaigns, and understand customer behaviour.

By analyzing these reports, companies can make informed decisions, streamline their sales processes, and enhance customer relationships, leading to improved overall efficiency and growth.

Home > CRM > Reports

1. Lead Details

It typically provides an overview of the leads you are managing, including key details and metrics related to lead status, source, conversion, and more.

Screenshot 2024-08-29 at 4.29.26 PM

2. Sales Funnel

The Sales Funnel Report provides a visual and analytical view of your sales pipeline, helping you understand the status and progression of leads and opportunities through various stages of your sales process.

For more details check Sales Funnel.

Screenshot 2024-08-29 at 4.31.20 PM

3. Prospects Engaged But Not Converted

It helps you identify and analyze leads or opportunities that were engaged but did not result in a conversion.

Prospects Engaged But Not Converted

4. Minutes to First Response for Opportunity

In this internet era, we all expect a quicker response time to any of our queries. This report gives you the details about time taken by sales executives for response to an opportunity. Lesser the average time for first response the better.

You can input the date range for which you would like to analyse the minutes to first response. The line graph is shown on the top and date wise details at the bottom.

5. Inactive Customers

This report shows the list of customers who have not purchased since specific number of days. You can mention the number of days in 'Days Since Last Order' filter. Also you can mention if Sales Order or Sales Invoice is to be considered in DocType filter.

Screenshot 2024-08-29 at 4.34.35 PM

7. Lost Opportunity

This report provides Lost Opportunity details like opportunity from, party, customer name, lost reasons, sales stage, territory, and other details.

Lost Opportunity

8. Campaign Efficiency

This report evaluates the effectiveness of your marketing campaigns by analyzing various performance metrics. This report helps you understand how well your campaigns are performing, the return on investment (ROI), and areas where improvements can be made.

Screenshot 2024-08-29 at 4.39.12 PM

CRM Settings

https://docs.frappe.io/erpnext/crm_settings

Introduced in Version 14.

CRM Settings allow you to configure your leads, opportunities, quotations and communication as per the business tules..

To access CRM Settings, go to:

Home > CRM > Settings > CRM Settings

Lead

Screenshot 2024-06-03 at 12.48.00 PM

1. Campaign Naming By

It ensures consistency in the naming convention used by the organisation by automatically generating names for new campaigns based on predefined rules or patterns. It helps users create and maintain unique campaigns and track their effectiveness.

2. Allow Lead Duplication based on Emails

If this is enabled, the system will allow users to create multiple leads with the same email address at the same time.

3. Auto Creation of Contact

The system will automatically create a new Contact on creation of a Lead.

Opportunity

Screenshot 2024-06-03 at 12.54.38 PM

1. Close Replied Opportunity After Days

If there are many Opportunities having a status other than Open, then they will be auto-closed after the no. of days mentioned in this field if there is no action.

Quotation

Screenshot 2024-06-03 at 12.56.40 PM

1. Default Quotation Validity Days

You can configure quotations to the customer to be valid only for certain days. In the Quotation, you can update Valid Till Date manually. By default, the Valid Till date is auto-set as 30 days from the Quotation's Posting Date. You can change the no. of days in this field as per your business case.

Other Settings

Screenshot 2024-06-03 at 12.58.09 PM

1. Carry Forward Communication and Comments

If this is enabled, When converting a Lead into Opportunity and Opportunity to Quotation, the system will auto copy the emails and comments from the source document.

Currency

https://docs.frappe.io/erpnext/currency

In ERPNext, the Currency list stores the currency value, it's symbol and fraction unit. Most of the commonly used currencies are already present in ERPNext. The exchange rates are fetched automatically according to the current market rate. You can also configure the system to use older fixed exchange rates by creating them in the Currency Exchange form.

To access the Currency list, go to:

Home > Accounting > Multi Currency > Currency

For example, this is how the Currency page for Euro:

EUR currency

Configurations

Each currency has defaults set based on widely accepted configurations. You can however modify the configuration to suit your requirements.

Enable / Disable

By default only few popular currencies and your company's currencies are enabled. To Enable more go to currency list and check "Enabled".

Fractional units

Some currencies have fractional units like "Cent", you can configure what this fractional unit will be called when converting numbers into words.

Symbol

Standard currency symbol are populated by default, if you need to change the currency symbol you can update it on Currency document.

You can configure position of currency symbol to the right by checking "Show currency symbol on right".

You can also hide all currency symbols from "Global Defaults".

  1. Exchange Rate Revaluation
  2. Multi Currency Accounting
  3. Currency Exchange

Currency Exchange

https://docs.frappe.io/erpnext/currency-exchange

The Currency Exchange form in ERPNext stores exchange rates manually stored by the User. By default, ERPNext automatically fetched the current exchange rates for currencies as per the market. However, you can store fixed exchange rates and use them. You need to enable 'Allow Stale Exchange Rates' in Accounts Settings for using the exchange rates stored in the Currency Exchange form.

To access the Currency Exchange list, go to:

Home > Accounting > Multi Currency > Currency Exchange

  1. How to create a Currency Exchange
  1. Go to the Currency Exchange list and click on New.
  2. Enter a date from which this exchange rate will be valid. New Currency Exchange forms saved with newer dates will be used in transactions.
  3. Set the From and To currency.
  4. Enter the Exchange Rate, for example, 1 USD = 83.51 INR.
  5. Select whether the exchange rate applies to selling, buying, or both transactions.
  6. Save.

Screenshot 2024-06-24 at 1.16.07 PM
  1. Related Topics
  1. Exchange Rate Revaluation
  2. Multi Currency Accounting

Currency Exchange Settings

https://docs.frappe.io/erpnext/currency-exchange-settings

ERPNext comes with 2 predefined configuration for Currency Exchange Rate providers: Frankfurter.dev and Exchangerate.host

This is a free exchange rate provider that provides exchange rates for a limited set of currencies.

Available Currencies:

{
"AUD":"Australian Dollar",
"BGN":"Bulgarian Lev",
"BRL":"Brazilian Real",
"CAD":"Canadian Dollar",
"CHF":"Swiss Franc",
"CNY":"Chinese Renminbi Yuan",
"CZK":"Czech Koruna",
"DKK":"Danish Krone",
"EUR":"Euro",
"GBP":"British Pound",
"HKD":"Hong Kong Dollar",
"HUF":"Hungarian Forint",
"IDR":"Indonesian Rupiah",
"ILS":"Israeli New Sheqel",
"INR":"Indian Rupee",
"ISK":"Icelandic Króna",
"JPY":"Japanese Yen",
"KRW":"South Korean Won",
"MXN":"Mexican Peso",
"MYR":"Malaysian Ringgit",
"NOK":"Norwegian Krone",
"NZD":"New Zealand Dollar",
"PHP":"Philippine Peso",
"PLN":"Polish Złoty",
"RON":"Romanian Leu",
"SEK":"Swedish Krona",
"SGD":"Singapore Dollar",
"THB":"Thai Baht",
"TRY":"Turkish Lira",
"USD":"United States Dollar",
"ZAR":"South African Rand"
}

This requires an Access Key. It has both free and paid service. Check their site for more details.

Custom Field

https://docs.frappe.io/erpnext/custom-field

Every form in ERPNext has a standard set of fields. If you need to capture some information, but there is no standard Field available for it, you can insert Custom Field in a form as per your requirement.

You can go to Customize Form and add the Field in a particular Form or a Document type (hereafter referred to as DocType) .

To access Custom Field, go to:

Home > Customization > Form Customization > Custom Field

You can also go to the list view of any DocType and select Customize from the Menu options.

Customize Option in List View
  1. How to create a Custom Field
  1. Go to the Custom Field list and click on New.
  2. Document: Select the Document in which you need to add the Custom Field.
  3. Label: Enter what Label would you like to give to your Custom Field.
  4. Field Type: ERPNext already has a set of Field Types defined which can be fetched from this drop-down menu. You can select the Type of your Custom Field from within this menu.
  5. Update.

New Custom Field

Learn more about Field types here.

You can also go to Customize Form and add, edit or remove a Field in a particular Form.

Add Custom Field From Customize Form

1.1. Additional Details

  1. Options: This Field comes into picture when you would want your data to be specific or specify the data. E.g., when you have selected the Field to be a 'Select Field', you would be required to enter the selection options here.

2. Fetch From: When you want your Custom Field to be 'Link Field', you would be required to specify the Form to which this Field is to be linked. E.g., you want to create a Custom Field 'Project' in the DocType 'Item'. You would be required to enter to specify your Field Type as 'Link' and enter 'Project' in the Fetch From Field to ensure that the Field is updated with the list of all the required DocTypes. 3. Fetch If Empty: This check-box will ensure that this Field will be not overwritten based on Fetch From if a value already exists. 4. Default Value: Enter the default value of the Field which you would want to be fetched for this Field. 5. Depends On: You can define a condition here for the Field to be displayed. E.g., in the DocType Item, two fields 'Asset Category' and 'Asset Naming Series' will only appear if the Field 'Is Fixed Asset' is checked. The dependency condition here would be .

Custom Field with Fieldtype as Selectis_fixed_asset

6. Field Description: You can add the description of the Field here which can be displayed below this Field.

Depends On Option

7. Permission Level: This will allow you to specify which roles within your organization will be able to edit this Field. You can go through Role Based Permissions for more understanding on this. 8. In Preview: If Show Preview Popup for the document type is checked, the Field will be included in the popup that appears on hovering over links of the document type (in list view and other link fields). 9. Width: This will define the width allocated to this Field while viewing the Form in a Grid View.

Custom Field Description

1.2. More Properties

  • Is Mandatory Field: This box can be checked if you want to make this Field mandatory while submitting a DocType.
  • Unique: Check this box when you want the value of this Field to be unique. This can be done in cases where the Custom Field is for a code or an Identification Number. E.g., Item Code in case of Item, GST Number in case of Customer.
  • Read Only: When you want this Field to be a read only or a non-editable Field. In this case, the value of the Field shall be auto-fetched from other fields.
  • Hidden: Check this Field when you want this Field to be hidden, or to hide an existing Field.
  • Print Hide: In cases that you want the print button to be hidden from the Print Format. Checkout Fields in Print Format for more information.
  • No Copy: Checking this box will restrict copying of this Field in the DocType.
  • Allow on Submit: This will allow you to make changes to the Field even after you have submitted the Form. Checkout Editing Value in Submitted Document for more information.
  • In List View: This will make the field visible in the List View of the DocType.
  • In Standard Filter: The field will become a standard filter in the List view of the Document.
  • In Global Search: When this box is checked this Field can be searched form the Global Search.
  • Bold: This will make this Field type bold, this adds more value to the Field.
  • Report Hide: This field will not be visible in the reports when you check this box.
  • Ignore XSS Filter: This will allow you to view this Field without the HTML tags.
  • Translatable: When this box is checked, it becomes translatable while applying Custom Translations to this.

1.3 Field name

  • Custom fields by default add a prefix of to fieldname. This is done to avoid a potential clash with current/future standard fields
  • If your customizations require a specific fieldname you can rename any existing custom field by going to Custom Field doctype and clicking the "Rename Fieldname" button.
custom_

  1. Videos

Custom Translations in Print Formats

https://docs.frappe.io/erpnext/custom-translations

With Custom Translations, user can print the customer's and supplier's document in their local language.

For example, if you have customers from Germany and France who want quotations in German and French, it's possible using Custom Translations.

1. Set the Language

In the Customer master, select the default Language. Say, the default language for the Customer is Spanish.

Set Customer Language

Same way, you can also set default language in the Supplier master.

1.1 Print Preview in the Party's Language

In the Print Preview of a transaction, values will be translated into the party's language.

Customer Quotation print preview in customer's default language.

Invoice in Customer Language

Supplier Quotation print preview in supplier's default language.

1.2 Changing the print language in the preview

User has the option to select an alternate language on print view.

Select Language in Invoice

2. Custom Translation

Users can set their custom translations using Custom Translations form. For example, if a user wants to set a description of a product in the customer's language (Spanish). For that, create a new translation with language as Spanish, enter source data and translated information.

Home > Customization > Other > Custom Translations > New

Translation

The translation is applied when the user selects the language as Spanish on supplier Quotation's print preview. Note that no translation is applied for the second item's description since it wasn't created in the Translation list.

Translation in Transaction
  1. Address Template
  2. Quotation
  3. Sales Order

Customer

https://docs.frappe.io/erpnext/customer

A customer, who is sometimes known as a client, buyer, or purchaser is the one who receives goods, services, products, or ideas, from a seller for a monetary consideration.

Every customer needs to be assigned a unique id. Customer name itself can be the id or you can set a naming series for ids to be generated in Selling Settings.

To access the Customer list, go to:

Home > Selling > Customers

1. How to create a Customer

  1. Go to the Customer list and click on New.
  2. Enter Full Name of the customer.
  3. Select Individual if the customer represents an individual or Company if the customer represents a company in Type field.
  4. Select a Customer Group. Individual, Commercial, Non Profit and Government are available by default. You can create additional groups if you need.
  5. Select the Territory.
  6. If the customer is being created against a lead, you can select the same in From Lead field.
  7. Save.

You can disallow sales orders and sales invoices against a customer by clicking on 'Disabled'.

Advanced Tip: If the customer represents one of your own companies then check 'Is Internal Customer'. Check Inter Company Invoices for more details.

You can also upload customer details via the Data Import Tool.

2.Features

General flow of transactions for a customer is as following:

Sales Flowchart

Note: Customers are separate from Contacts and Addresses. A Customer can have multiple Contacts and Addresses.

2.1 Multiple Contacts and Addresses

Contacts and Addresses are stored separately so that you can attach multiple Contacts or Addresses to the customer.

2.2 Allow creation of Sales Invoice without Sales Order and Delivery Note

If the "Delivery Note Required" or "Sales Order Required" option is configured as "Yes" in Selling Settings, it can be overridden for a particular customer by enabling the "Allow Sales Invoice Creation Without Sales Order" or "Allow Sales Invoice Creation Without Delivery Note" in the Customer Master.

2.3 Set Tax Withholding Category

You can set the Tax Withholding Category to set up TCS against eligible customers. For more information, visit the Tax Withholding Category page.

2.4 Default Currency and Price List

ERPNext supports Multiple Currencies and Price Lists.

You can set the default currency to be used for this customer in sales orders and sales invoices by selecting the appropriate currency in Billing Currency.

Similarly, you can set the default price list to be used for this customer in sales orders and sales invoices by selecting the appropriate currency in Default Price List.

2.5 Integration with Accounts

Unlike many accounting software, you need not create a separate accounting ledger for each customer. By default a unified ledger named Debtors is created.

However if you specifically need a separate ledger for a customer, first create the ledger under Accounts Receivable in the Chart of Accounts and then add it in ACCOUNTING section of the customer.

Advanced Tip: ERPNext supports Multi-company Accounting. You can use the same customer records in multiple companies. Since an accounting ledger is company specific, you need to select the company and the corresponding ledger in ACCOUNTING section if you decide have separate accounting ledger for a customer.

2.6 Credit Limit and Payment Terms

You can set the credit limit by entering the amount in 'Credit Limit' field. Read Credit Limit for more details.

You can select the default Payment Terms to be applied in sales orders and sales invoices in 'Default Payment Terms Template' field.

2.7 Sales Team and Sales Partner

If you have one or more Sales Person to manage the sales to the customer, you can add them in SALES TEAM section. If multiple sales person are involved you can split the contribution among them. Make sure that the sum of all sales persons contribution equals to 100%.

Check Sales Persons in Sales Transaction for more details.

A Sales Partner is a third party distributor / dealer / commission agent / affiliate / reseller who facilitates your products/services sales, for a commission. If you sell your products/services to the customer through a sales partner you can set it in 'Sales Partner' field and mention the 'Commission Rate' for calculation of commission.

2.8 Loyalty Program

If you would like offer a Loyalty Program to the customer, select the same in Loyalty Program field.

2.9 View Accounting Ledger and Accounts Receivable

Click on Accounting Ledger button to view all accounting transactions with the customer.

Click on Accounts Receivable button to view the details of all outstanding invoices.

2.10 Set Customer Id, Default Customer Group, Territory, and Price List

You can set how a unique id should be generated each the customer in Selling Settings.

  • Naming Series: If you would like a unique id to be generated for each customer based on the naming series select 'Naming Series' in Customer Naming By.
  • Customer Name: If customer name itself should be used as an id then select 'Customer Name' in Customer Naming By. In this case, if you create two customers with identical names, - 1 will be suffixed to the second customer.

You can set the default customer group, territory and price list in Selling Settings.

You can customize the Customer DocType using Customize Form tool.

  1. Customer Group
  2. Quotation
  3. Price List
  4. Contact
  5. Difference between Lead, Contact, and Customer

Customer Group

https://docs.frappe.io/erpnext/customer-group

Customer Group is an aggregation of customers that are similar in some way.

Customer groups allow you to organize your customers. Typically Customers are grouped by market segment based on the domain in which a business operates. Customer Groups are created in hierarchical manner in ERPNext. You can create a main customer group and add sub customer groups under it.

You can define a price a list which will be automatically applied to all customers belonging to that group. You can also get trend analysis for each group. Individual, Commercial and Government customer groups are created by default. You can add your own customer groups based on your requirement like retail, wholesale etc.

How to Create a Customer Group

  1. Go to CRM > Settings > Customer Group.
  2. Click on a parent customer group like 'All Customer Groups'.
  3. Click on 'Add Child'.
  4. Enter 'Customer Group Name'.
  5. Tick 'Group Node' if you would like to add sub customer groups under this.
  6. Click on 'Create New'.

Tip: If you think all this is too much effort, you can leave it at “Default Customer Group”. But all this effort, will pay off when you start getting reports. An example of a sample report is given below:

Sales Analytics Customer Group

Features

Assign Credit Limit, Default Price List, and Default Payment Terms Template

You can assign the credit limit, Price List, and Payment Terms and they will be automatically applied when a customer belonging to the customer group is selected in sales transactions like Sales Order and Sales Invoice.

Default Receivable Account

You need not create a separate accounting ledger for each customer in ERPNext. Read Common Receivable Account for more details.

If you need a separate receivable account for a customer, you can add the same in 'Default Receivable Account' section.

  1. Customer
  2. Price List
  3. Payment Terms

Customer Portal

https://docs.frappe.io/erpnext/customer-portal

Customer Portal is designed to give easy accessibility to customers of a company.

This portal allows customers to login and find out information relevant to them. The customers can trace the communication history of their mails. They can also check order status by logging into the website.

Signup

Your Customer and Suppliers can signup to your ERPNext account by following Signup option on the Login Page.

Step 1: Signup

On the Login Page, you will find option to Signup.

Website User Signup

Step 2: Enter Customer Name and ID

Website User Signup

After the sign up process, an email will be sent to the customers Email Address with the password details.

Portal Login

To login into the customer account, the customer has to use his Email Address and the password sent by ERPNext; generated through the sign-up process.

Website User Signup

Customer Orders Invoices And Shipping Status

ERPNext Web Portal gives your customers quick access to their Orders, Invoices and Shipments Customers can check the status of their orders, invoices, and shipping status by logging on to the web.

Customer Portal

Once an order is raised, either using the Shopping Cart or from within ERPNext, your customer can view the order and keep an eye on the billing and shipment status. When the invoice and payment against these orders are submitted, the customer can see the updated status on the portal, at a glance.

Customer Portal

Outstanding Sales Invoice

Customer Portal

Customer Portal

Issues

The customer portal makes it very easy for a customer to raise concerns. A simple and intuitive interface facilitates your customer to report their concerns as Issues. They can view the complete thread of their conversation.

Empty Issue List

Issue List

New Issue

New Issue

Open Issue

Issue Raised

Reply on Issue

Issue reply

Customer Provided Items

https://docs.frappe.io/erpnext/customer-provided-items

In Contract Manufacturing, in some cases, the Customer provides specific items as one or few of the BOM components. These items cannot be received using a 'Buying Cycle' since that will mean making Customer as a Supplier at the same time. It will also go through each doctype in the cycle.

In this feature, Customer Provided Item is received through 'Stock Entry' with type 'Material Receipt' from a 'Material Request' with type 'Customer provided'. This feature is used when someone subcontracts the manufacturing process to you and supplies the raw materials.

Customer Provided Material Request

Here are the steps on how to setup a 'Customer Provided' item.

  1. Got to Item Doctype and add a new 'Customer Provided' item.

Home > Stock > Items and Pricing > Item

  1. In the 'Purchase, Replenishment Details' section, check 'Is Customer Provided' and set a default Customer. Note that 'Is Purchase Item' needs to be unticked to use this feature.

Item Purchase Details

How to receive a 'Customer Provided' Item?

  1. If a 'Production Plan' is used, 'Material Request' for this item can be auto created. That is, the item to be manufactured is fetched first via Sales Order or Material Request, Items are fetched for the Work Order using the 'Get Items for Work Order' button, then click on the 'Get Raw Materials for Production' button.

Material Request in Production Plan
  1. Once a component in a BOM is set as 'Customer Provided' and 'Material Request' is created from a 'Production Plan', it will create both 'Material Request' with type 'Purchase' and 'Customer Provided'. From there, a 'Stock Entry' with purpose 'Material Receipt' can be created.

Stock Entry from Material Request

A 'Material Request' can have multiple 'Stock Entry' - Material Receipt. It will reflect it in the status.

Customer will be able to track their 'Material Requests' in a Web Portal 'Material Requests'. The portal is filtered to show only the 'Material Request' of the customer.

Customise Cash Flow Report

https://docs.frappe.io/erpnext/customise-cash-flow-report

As your chart of accounts begins to get more complex and reporting standards change and evolve, the default cash flow report might no longer suffice. This is because ERPNext might not be able to accurately guess the classification and purpose of all accounts in the charts of accounts. Another gripe you might have is the inability to adjust the report format to fit your needs.

This will no longer be a problem because ERPNext now allows users to customise the cash flow report.

Technical Overview

Customisation is made possible by the introduction of two new doctypes - Cash Flow Mapper and Cash Flow Mapping. Both doctypes contain the information required to generate a cash flow report.

Cash Flow Mapping shows how accounts in your charts of accounts map to a line item in your cash flow report while Cash Flow Mapper gets all the Cash Flow Mappings that relate to the three sections of a cash flow statement.

With this, you generate detailed cash flow reports to your requirements. This might not make a lot of sense but it will after we go through an example.

Example

Background information

Let's assume we have a fictitious company for which we want to generate a cash flow report. This is what the cash flow report looks like at the moment:

Default Cash Flow Report

We don't like the report for the following reasons:

  • The reporting format is too scant.
  • The 'Net Cash From Operations' figure is wrong

Customisation Process

We wants the Cash Flow Report to look something similar to the format in the images below:

Custom Cash Flow Format

Custom Cash Flow Format

Activate Customised Cash Flow Report

Do this in Accounts Settings by checking the 'Use Custom Cash Flow Format' checkbox. This will cause ERPNext to only use your custom format for cash flow reports.

Enable Custom Cash Flow Report

Move to the next section to build the report.

Create Cash Flow Mappings

For each line, we need to create a Cash Flow Mapping document to represent it.

New Cash Flow Mapping

You can think of the Cash Flow Mapping as a representation of each line in the cash flow report. A Cash Flow Mapping is a child of a Cash Flow Mapper which will be explained later.

Let's start by creating Cash Flow Mappings that will represent the add back of non cash expenses already recodgnised in the Profit or Loss statement. We want them to appear on the cash statement as:

  • Income taxes recognised in profit or loss
  • Finance costs recognised in profit or loss
  • Depreciation of non-current assets

Start by opening a new Cash Flow Mapping form.

The fields in the Cash Flow Mapping doctype are:

  • Name: This something to identify this document. Name it something related to the label
  • Label: This is what will show in the cash flow statement
  • Accounts: This table contains all the accounts which this line relates to.

With this information, let's go ahead and create the Cash Flow Mapping Document for the line 'Income taxes recognised in profit or loss'

Cash Flow Mapping for Income Tax Expense

I have named it 'Income Tax Charge' and given it a label 'Income taxes recognised in profit or loss'. We want this line to reflect income tax charges from our profit or loss statement. The account where this happens in our chart of account is named 'Income Taxes' (an expense) so I have added 'Income Taxes' into the accounts table. If you have more accounts representing income tax expenses, you should add all of them here.

Because Income Tax expense needs to be adjusted further in the cash flow statement, check the 'Is Income Tax Expense' checkbox. This is what will help ERPNext properly calculate the adjustments to be made.

For best results, let parent accounts have child accounts that have the same treatment for cash flow reporting purposes because ERPNext will calculate net change of all children accounts in a situation where the selected account is a parent account.

In the same way, I have created for the remaining two mappings.

Cash Flow Mapping for Finance Cost

Finance costs also need to be adjusted so make sure to check the 'Is Finance Cost' checkbox.

Cash Flow Mapping for Depreciation

Next let's add Cash Flow Mapping for items that show changes in working capital:

  • Increase/(decrease) in other liabilities
  • (Increase)/decrease in trade and other receivables
  • Increase/(decrease) in trade and other payables
  • VAT payable
  • (Increase)/decrease in inventory

Cash Flow Mapping for Other Liabilities

Cash Flow Mapping for Receivables

Cash Flow Mapping for Payables

Cash Flow Mapping for Duties and Taxes

Cash Flow Mapping for Inventory

Don't forget to tell ERPNext that these mappings represent changes in working capital by checking the 'Is Working Capital' checkbox.

At this point we have created all the mappings necessary for the Operating Activities section of our cash flow statement. However, ERPNext doesn't know that yet until we create Cash Flow Mapper documents. We'll create Cash Flow Mapper documents next.

Create Cash Flow Mappers

Cash Flow Mappers represents the sections of the cash flow statement. A standard cash flow statement has only three sections so when you view the Cash Flow Mapper list, you will that three have been created for you named:

  • Operating Activities
  • Financing Activities
  • Investing Activities

You will not be able to add or remove any of them but they are editable and can be renamed.

Cash Flow Mappers

Open the Operating Activities Cash Flow Mapper so we can add the Cash Flow Mappings we have created.

  • Section Name: This is the heading of the section.
  • Section Leader: This is the first sub-header immediately after the profit figure. Relates only to Operating Activities Cash Flow Mapper
  • Section Subtotal: This is the label for subtotal in the cash flow statement section. Relates only to Operating Activities Cash Flow Mapper
  • Section Footer: This is the label for the total in the cash flow statement section.
  • Mapping: This table contains all the Cash Flow Mappings related to the Cash Flow Mapper.

Now add all the Cash Flow Mappings you have created and Save. You should have something like this:

Operating Activity Cash Flow Mapper

Refresh the cash flow statement and view the changes.

Updated Cash Flow Report

Looks close to our requirements but we are not done yet. Create new mappings for 'Investing Activities' and 'Financing Activities' sections of the cash flow statement.

Cash Flow Mapping for Property

Cash Flow Mapping for Equity

Cash Flow Mapping For Investing

Cash Flow Mapping for Financing Activities

Here's what our cash flow statement now looks like:

Custom Cash Flow Report

Customize tables within your Print Format Builder

https://docs.frappe.io/erpnext/customise-your-items-tables-within-your-print-format-builder

You can customize the 'Items' column present your Print Format Builder by navigating as shown below:

  1. Create your Customized Print Format by going into the 'Settings' button and clicking on 'Customize'.
  2. Add a relevant name to the new customized Print format you are creating.
  3. Once you are inside the New Print Format, you can click on the button 'Select columns' in the field which says 'Items (Table)'

Open the table and you will see a list of columns that are present in the standard format of your Print Format as shown below:

The options you select here will be shown in Print Format.

Select the columns you want to keep in the Table that you are creating for your customized Print Format. You can adjust the Width and their order according to your requirement.

Once you have selected the columns you want your Print Format to have, click on 'Update' and 'Save' the changes you have made after further modifications in the Print format.

Refresh your screen and select the newly created Print Format. In this case, it is the 'Purchase Receipt'.

Once you click on the Print Format you newly created, the changes will be visible in the Items table.

To see the difference between the Standard Print Format and the one you just created, you can simply click on the Print format Templates present.

Customize Form

https://docs.frappe.io/erpnext/customize-form

Customize Form is a tool which enables you to make changes to a Form Type or a Document Type (DocType) on the front-end.

It allows you to insert Custom Fields as per your requirement or customize the properties of standard fields.

Before we venture to learn the Form Customization tool, click here to understand the architecture of forms in ERPNext. It will help you in using the Customize Form tool more efficiently.

To access Customize Form, go to:

Home > Customization > Form Customization > Customize Form

You can also go to the list view of any DocType and select Customize from the Menu options.

Customize Option in List View
  1. How to Customize a Form
  1. Click on Customize Form.
  2. You will be redirected to a page wherein you will be asked to Enter Form Type.
  3. Once you enter the Form Type in this field, the page further expands and you will be able to see multiple features.

Select DocType in Customize Form

1.1. Options While Customizing a Form

  1. Change Label: This field gets fetched via Custom Translation. You can change the name of the field to suit your industry/language. E.g., if you are a services business and you want to change the Label from 'Customer' to 'Consumer', the same can be done via Custom Translation and the same shall be reflected here.

Change Label
  1. Title Field: This field can be used to generate the title while viewing the lists. Any "Data" type field can be set as the Title Field while viewing the forms in the list view. E.g., if you wish to view the list of all your employees with the Title field as the 'Employee Code' instead of Employee Name, the same can be configured here. Check our article on Document title for more information.

Learn more about field types here.

Default Print Format: For a single DocType, there could be multiple Print Formats. Here you can select the default Print Format for the selected DocType. For e.g., a company may have different Letter Heads for different purposes which can be configured through Print Formats. However, you can select two different Default Print Formats for a Sales Order and an Appointment Letter. Check Custom Print Formats for more information.

Image Field: You can select an "Attach Image" Field for your Image Field. This becomes the Image representing that particular DocType. E.g., the 'Image Field' for an Employee could be their photograph or a snapshot of their ID cards; the same can be configured here.

Image Field in DocType

Max Attachments: You can enter the maximum number of attachments that could be added to this DocType.

Search Fields: While creating any DocType, you may want to link a particular field to another DocType. For ease in selection, you can also ensure that you are able to see the value of another field of the latter DocType in the search result. For more information click here.

Sort Field: Records in any DocType List are generated based on the Field that you set at the Sort Field over here. E.g., for Items, if you want your list to be generated as per Item Name, you can configure the same here.

Sort Field

Sort Order: You can select whether you want the Sorting to be done in Ascending Order or Descending Order. To get more understanding on Sort Field and Sort Order, check out Customizing Sorting Order in the List View.

Default Email Template: For a single DocType, there could be multiple Email Templates. Here you can set the default Email Template for the selected DocType. For example, you can set a different Default Email Template for a Sales Order and an Appointment Letter.

1.2. More Properties

Hide Copy: This box, when checked, restricts a User to create a 'Copy' of a particular Form.

Is Table: This option is available only while customizing the Forms which are present in table forms in the system. For e.g., if you are creating an Item Table to be added into a Custom Form, you can enable this option. Check out Child Table for more information.

Quick Entry: Checking this box will allow you to create a 'Quick Entry' using a particular form. This means that whenever a user is creating this Form from another existing Form, a box will Pop Up which will allow the user to create the DocType by entering only the basic details. For example, check Quick Entry in Journal Entry.

Track Changes: Checking this box will ensure that any changes made by any of the users to this DocType will be tracked and displayed.

Track Changes

Track Views: This option will give you a trail of all the views towards this particular DocType.

Allow Auto-Repeat: This option, if checked, will allow you to enable Auto Repetition of a DocType periodically. E.g., if there is a Sales Order which has to be made multiple number of times, you can enable this option and then Set Up Auto Repeat for any particular Sales Order.

Allow Import: This option will allow the user to Import data from any files. Check out Data Import Tool for more information.

Show Preview Popup: This option was introduced in Version 12. If checked, a small popup will appear on hover of links of this document type (in list view and other link fields). This popup will contain the mandatory fields of the document and the fields for which is checked. Check out Link Preview for more information.

in_preview

Once you click Update, your Customizations will be updated to the Form.

1.3. Customizing the Fields

Every form in ERPNext has a standard set of fields. If you need to capture some information, but there is no standard field available for it, you can insert Custom Field in a form as per your requirement. Adding, editing or deleting of Fields can also be done here. You can also place the fields as per your requirement in the form by adding it below or above any other already present fields. Click here for more information on Custom Fields.

1.4. Trim Table, Reset Layout, and Reset All Customizations

  • Trim Table: To remove unused database columns (fields) that are no longer needed by a doctype. It checks for fields that have been deleted from the form but still exist in the database. If such fields are found, it allows you to permanently delete these columns. This helps keep the database clean and improves performance by removing unnecessary data.
  • Reset Layout: To revert the form layout to its original, default state. It removes any layout customizations you have made, such as rearranging fields or changing sections, and restores the layout to how it was initially defined by the system. It is useful if your custom layout becomes too complicated or problematic, and you want to start fresh with the standard layout.
  • Reset All Customizations: To remove all customizations made to a form, including added fields, changes to existing fields, and layout modifications. It completely removes all the custom changes you have applied to the form, resetting it to its default configuration as defined by the system. This is a drastic measure but helpful if you need to return to the system’s default form setup, perhaps because your customizations have caused issues or you want to reconfigure the form from scratch.
  1. Videos

Data Visibility in Child Tables

https://docs.frappe.io/erpnext/customizing-data-visibility-in-child-table

In ERPNext, there is a feature called the editable grid. This allows the user to add values in the child table without opening a dialog box/form for each row.

This is how the Quotation Item table renders value when the Editable Grid is enabled. It will have a maximum of four columns in the table.

Child Table

As per the default setting, only four columns are listed in the child table. Following is how you can add more columns in the Editable Grid itself.

For the field to be added as a column in the table, enter a value in the Column field. Also, ensure that the "Is List View" property is checked for that field.

Child Table

Based on the value in the Column field, columns will be added to the child table. Ensure that the total value added in the Column field doesn't exceed 10. Based on the Column value, the width for that column will be set.

Child Table

Switch to Un-editable Grid

To have more values shown in the preview of the Quotation Item table, you can disable Editable Grid for the Quotation Item DocType. Steps below.

Child Table

Once Editable Grid is disabled for the Quotation Item, the values will be rendered in a preview of the Quotation Item table in the following way:

Child Table

To have a specific field's value shown in the preview, ensure that for that field, in the Customize Form tool, "In List View" property is checked.

Child Table

Customizing Module Visibility

https://docs.frappe.io/erpnext/customizing-module-visibility

ERPNext as a system can be used by multiple businesses at every scale, Manufacturing, Education, Retail being some of the businesses benefitted the most from the usability of the system.

Keeping in mind, the interests of all kinds of business owners, the usability of the system for different business has been mapped into different 'Modules' represented as 'Cards' in the system. Similarly the core modules in the system, such as Human Resource, Accounting, CRM etc. are also represented by different cards on the dashboard.

Every ERPNext account holder has the option of customizing the visibility of the different modules based on their business case.

In Version 12, you can go to Show / Hide Modules on the top right corner of the home screen for checking visibility of modules.*

Module VisibilityModule Visibility

Note: Modules are automatically hidden for users that have no permissions on the documents within that module. For example, if a User has no permissions on Purchase Order, Purchase Request, Supplier, the “Buying” module will automatically hidden for that User.

If you have permissions to a specific module, but it is still not visible, the following could be the possible reasons for it.

Let's consider a scenario that a user has the permission for the Website module, but is not able to access it.

As a basic requirement, ensure that the "Website Manager" role is assigned to that user. It is a standard Role that grants permission on the Website module. If permissions have been customized in your account, check Role Permission Manager to know which Role has permission on Website, and then check if the same Role is assigned to the User.

Module Visibility

Further, you should also check if the under the settings, 'Allow Modules', the required module has been enabled for the user

Module Visibility

Reload tab of your ERPNext account and the changes made will be applied and will be visible in the system.

Sorting Order in List View

https://docs.frappe.io/erpnext/customizing-sorting-order-in-the-list-view

Question: I want records in my Item List sorted based on Descending Order of Item Code.

Answers: Following are the steps to customize Sort Order for the Item master. These steps will be applicable for customizing Sort Order for the other documents as well.

Step 1: Go to Customize Form

Home > Customization > Form Customization > Customize Form

Step 2: Select DocType

Select document type for which Sort Order is to be customized.

Sort Order field

Step 3: Update Sort Details

In the Customize Form, you will find these fields.

Sort Order FieldSort Order field
  1. Sort Field: Select the Field based on which sorting will be done. It will be "Item_Code" field in the scenario.
  2. Sort Order: Sort Order will be two possible options, Asc for ascending, and Desc for descending.

Daily Depreciation Calculation

https://docs.frappe.io/erpnext/daily-depreciation

In the Accounts Settings of ERPNext, there is a check box that allows users to enable "Calculate daily depreciation using total days in depreciation period" checkbox.

This method is primarily used when the "Depreciation based on daily pro-rata" option is enabled during the asset creation process.

1. How it works

This checkbox affects how ERPNext calculates the daily depreciation rate when:

  • An Asset is created
  • Depreciation based on daily pro-rata is enabled
  • The depreciation method spans multiple years (including leap years)

Depending on whether the checkbox is enabled or disabled, the system follows one of two calculation approaches.

2. When checkbox is enabled:

This option calculates depreciation based on the exact number of days over the asset’s entire depreciation period.

How It Works:

  1. Calculate Total Days: The system finds the total number of days from the depreciation start date to the end date by:
  2. Calculate Daily Rate: Once it knows the total number of days, the function divides the total depreciation amount by this number to determine the daily depreciation rate.

2.1 Example

  • Asset Cost: 1,096
  • Depreciation Period: 3 years (which includes 1 leap year)
  • Depreciation Start Date: April 1, 2022
  • Total Depreciation Amount: 1,096

Calculate Daily Rate:

  • Total Days: 1,096 days (from January 1 2024, to December 31 2027, including 1 leap year)
  • Daily Depreciation = Total Depreciation Amount / Total Days
  • Daily Depreciation = 1,096 / 1,096 = 1.00

The calculated daily depreciation is then multiplied by the number of days in the specified depreciation frequency to determine the depreciation amount.

3. When checkbox is disabled:

This option calculates depreciation on an annual basis and then divides it down to a daily rate.

How It Works:

  • Calculate Total Years: The system first determines how many years the asset will be depreciated.
  • Calculate Annual Depreciation: It divides the total depreciation amount by the number of years to find the annual depreciation amount.
  • Determine Daily Rate: For each year, the function calculates the number of days in that year and then divides the annual depreciation by that number to get the daily rate.

3.1 Example

Using the same asset details as above:

  1. Calculate Annual Depreciation:
  • Annual Depreciation = Total Depreciation Amount / Total Years
  • Annual Depreciation = 1,096 / 3 ≈ 365.33
  1. Determine Daily Rate:
  • The number of days in the years: 365 days for 2 years and 366 days for 1 leap year.
  • Daily Depreciation = Annual Depreciation / Days in Year
  • For the first two years: Daily Depreciation = 365.33 / 365 ≈ 1.00092
  • For the leap year: Daily Depreciation = 365.33 / 366 ≈ 0.9991

The calculated daily depreciation is then multiplied by the number of days in the specified depreciation frequency (e.g., 30 for monthly, 90 for quarterly) to compute the depreciation amount.

4. Relevant Docs

Data Export

https://docs.frappe.io/erpnext/data-export

'Data Export' helps you extract data from any DocTypes to a CSV or an Excel format.

To access Data Export, go here.

Home > Data Export

How to Use Data Export

  1. Go to the 'Data Export' DocType.
  2. Select the DocType from which the data is to be extracted.
  3. Select the file format whether CSV or Excel.
  4. Tick the checkbox if you want to export the data without any header notes and column descriptions.
  5. Select the fields to export; the red ones are mandatory.
  6. You can also add filters to select only specific data. For example, 'Territory = Asia' will export all Customers whose Territory is set as 'Asia'.
  7. Click on Export to download the file.

After exporting data, you can use the same file to import data using Data Import.

Data Import

https://docs.frappe.io/erpnext/data-import

The Data Import tool in ERPNext allows users to import records into the system using CSV or Excel files.

It provides a convenient way to upload or update large volumes of data at once, especially master data, without the need for manual entry.

This tool is commonly used during initial system setup, data migration, or when bulk updates are required. By using the Data Import tool, users can ensure faster data entry while maintaining consistency across records.

To access the Data Import tool, navigate to:

Home > Data

‎ Or go to the Document you want to import and click on Menu > Import

Before starting the import process, make sure that all required data is prepared correctly and follows the expected format. The Data Import tool supports two main operations:

Inserting New Records

The Data Import Tool in ERPNext allows users to upload bulk records into the system using a predefined template. This document outlines the step-by-step process for importing new records.

  1. Navigate to Data Import
  2. Select the Document Type and the Import Type as Insert New Records.
  3. Click on Save and then download the template.

Download Template

We have an option to download the template to insert the records/update the records

  1. Clicking on Download Template opens a dialog box

Download Template Dialog box

While inserting new records, the template should be blank. If you have a few records in your system, you can select Export Type as "5 Records" to see the format in which you have to enter the data in the template.

  1. After you choose the export type, every field appears in the list. Mandatory fields show a red * next to the name. Conditional fields (for example Depends On or autoname-related) show a small info icon—point at it to read the note.
  2. Fields that are ticked but not mandatory are ones with Include in Import Template on—set on the DocType or in Customize Form—so they show in the list by default without being required.
  3. Click Export and get the exported file.
  4. Now, save your template as an Excel or Comma-Separated Values (CSV) file.

You can leave the ID column as blank while inserting new records. When you import this template, each row will make a record in the system.

  1. Once the template is updated and ready with the data, we can import it.

Importing a Template

Once the data has been added to the downloaded template, the following steps are followed:

  1. After updating your template file, go back to the Data Import form and attach the file by clicking on the Attach button. Attaching file for import
  2. Select the template file and click on Upload, after the upload is successful, click on Start Import. There are various ways to import the data; you can refer here
  3. Once the Sheet is uploaded, the system validates the sheet and gives the result on screen before importing the data
  4. If there are any errors in your template, they will be shown in the Warnings section. The warnings will be categorized by Row or Column with their number so that you can easily track them down in the template and resolve them. You must resolve all the warnings before you can import the data.
  5. After you have resolved the warnings, click on Start Import again to import the data. On successful import of the data, you'll see a log of each record that was created in the Import Log section.

Validations and Errors in Importing

Duplicate Name

In case we try to add a record with a duplicate name, it will throw an error like this

Duplicate Name Error

Mapping of missed columns

When we add additional columns while downloading the template, or we have renamed a column in the template we are importing, it may throw an error about not being able to match the columns.

To resolve this, we can click on the map columns and manually map the columns to the corresponding columns in the Document.

Importing child records

Data in ERPNext is stored in tables like a spreadsheet with columns and rows of data. Each form likes Sales Order, has multiple fields like Customer, Company, etc. It also has tables like the item table, tax table, etc. In Data Import, the set of fields in the Sales Order is treated as the main table, and the rows inside the child table (item table) are treated as the child table for data import.

Each form in ERPNext can have multiple child tables associated with it. The child tables are linked to the parent tables and are implemented where there are multiple values for any property. For example, an Item can have multiple prices, a Sales Invoice has multiple Items, Taxes, and so on.

When you export a document with child tables, for e.g., each child row will appear on a separate row, but it is associated with a single parent row. The subsequent values in the parent columns will remain blank. You must ensure that this order is not broken when you are importing it via Data Import.

Child records importing

Updating Records

Let's say you want to update Customer data in bulk in your system. The first step is to download the template with the data.

  1. We start by downloading the template. While doing this, since we want to update, we can use filters to extract the exact records and import them back for updating.
  2. First, we select the document type and the import type as Update Existing Records, and Save
  3. When we try to download the template, we can apply filters, something like this
  4. We click on Export.
  5. Now, based on the template, the existing records look like this:

While exporting records for updating them, ensure that the ID column is exported and is untouched. The values in the ID column are used to identify the records in the system. You can update the values in other columns but not in the ID column. If you remove some child table row, the system will consider that the row is supposed to be deleted.

  1. Now, change the values in your template and save the file as Excel or CSV.

Ways to Import Data

Import from Google Sheets

You can import data directly from Google Sheets by following these steps:

  1. Upload or copy your template into Google Sheets.
  2. Enter or update your data in the sheet.
  3. Ensure the Google Sheet is set to Public access.
  4. Once confirmed, use the Google Sheets link in the Data Import page to proceed with the import.

Google sheet Data File

To verify that the sheet is publicly accessible, open the Google Sheets URL in an incognito/private browser window. If the file opens without requiring login access, it is correctly configured.

Post Import using google sheets

Import from the file system

  1. On the Data Import Page, there are two available options:
  • Attach File
  • Import Using Google Sheets
  1. After clicking Attach, you will see multiple upload options:
  2. Available Upload Options
  • My Device
    Upload a file directly from your local computer.
  • Library
    Select a file that has already been uploaded and stored in the system’s file library.
  • Link
    Provide a direct web URL to a file hosted online.
  1. Choose the appropriate option based on where your file is stored, then proceed with the upload.

Submit After Import

In ERPNext document types are mainly of two types - masters and transactions. The masters are records like Customer and Task which can only be saved not submitted. Transactions like Sales Orders, Purchase Invoices are submittable documents and can be submitted.

When you select a submittable document type for Import, you can tick Submit After Import to submit the document after it is imported.

Don't Send Emails

Let's say you have created a Notification in your system and whenever a Lead is created an email is sent. Now, if you are bulk importing Leads then a lot of emails will be sent, which may not be desired. You can disable this option to avoid sending emails.

Additional Notes

Upload Limit

There is no hard limit on the number of records that can be imported. But you must try and upload only a few thousand records at a time. Importing a large number of records (let's say 50,000) might slow down the system considerably for the users that are using the system.

CSV Files

A CSV (Comma Separated Value) file is a data file that you can upload into ERPNext to update various data. Any spreadsheet file from popular spreadsheet applications like MS Excel or Open Office Spreadsheet can be saved as a CSV file.

If you are using Microsoft Excel and using non-English characters, make sure to save your file encoded as UTF-8.

For older versions of Excel, there is no clear way of saving as UTF-8. So save your file as CSV, then open it in Notepad, then save as “UTF-8”. (Or upgrade your Excel!)

Introduction

https://docs.frappe.io/erpnext/data-management/introduction

Data management is essential for effectively using an ERP system. ERP software integrates data from different business functions, such as finance, inventory, sales, and human resources, into a single system. For the system to work reliably, the data must be accurate, consistent, and properly maintained.

In this tutorial, we will learn how users can import data into ERPNext from different sources (like spreadsheet), and ways to export data out of ERPNext.

Debit Note

https://docs.frappe.io/erpnext/debit-note

A Debit Note is a document sent by a buyer to the Supplier notifying that a debit has been recorded against the goods returned to the Supplier.

A Debit Note is issued for the value of the goods returned. In some cases, sellers are seen sending Debit Notes which should be treated as like another invoice.

A Debit is for your record of the debit against the Items your return.

1. How to create Debit Note

The user can make a Debit Note against the Purchase Invoice or they can directly make Debit Note from the Purchase Invoice without reference.

  1. Go to the respective Purchase Invoice and click on Create > Return / Debit Note.
  2. The Supplier and Item details will be fetched as set in the Purchase Invoice.
  3. If you had paid partially or fully, make a Payment Entry against the original Purchase Invoice.
  4. Save and Submit.
Debit Note from Invoice

Debit Note

The other steps are similar to a Purchase Invoice.

1.1 How does Debit Note affect ledger

The Debit Note will reverse the impact of the purchase invoice.

Debit Note Ledger

Refer the Purchase Invoice page for any other details.

1.2 No payment was made against Sales Invoice

In case no payment was made against the original invoice, you could just cancel the Sales Invoice. But, if only 5 out of 10 Items are being returned from an invoice, creating a Debit Note is useful for updating the ledger.

2. Example

From Supplier Blue Mills, you had purchased Cotton worth Rs 2400 + taxes and at the time of delivery, you found that the products were damaged. Now you returned the product a Debit Note will be issued.

Debit Note with payment entry in ERPNext for above example is as below:

Creating Debit Note
  1. Payment Entry
  2. Credit Note

Debit Note for price adjustment

https://docs.frappe.io/erpnext/debit-note-for-price-adjustment

Question:

We created a Purchase Invoice for an item worth INR 20,000. We need to create a Debit Note to revise the item's price to INR 15,000. Can we handle price fluctuations using a Debit Note.

Answer: You can very much create a Debit Note against an Invoice itself for price adjustment. In the Debit Note, for the Items, only enter the amount by which you wish to reduce the price.

Original Purchase Invoice

Debit Note created for the price variation

On submission of Debit Note, the outstanding of original Purchase Invoice would be reduced by the Debit Note amount.

Default Receivable / Payable Account

https://docs.frappe.io/erpnext/default-receivable-payable-account

Question:
How to link a Receivable or Payable Account with the Party (Customer / Supplier)?
Answer:
In ERPNext, the accounts for tracking Receivable (Debtors) and Payables (Creditors) are auto-created in the Chart of Accounts master. These accounts are also set as default Receivable and Payable Accounts in the Company masters. If you wish to proceed with these default Accounts, then you need not specify it for each Party.
However, if you have created multiple Receivable and Payable Accounts in the Chart of Accounts, you can associate specific account with the specific party from Customer or Supplier master. In these master, check "Accounting Section."

Deferred Accounting

https://docs.frappe.io/erpnext/deferred-accounting

Deferred accounting in ERPNext refers to the practice of recognising revenues or expenses at a later date than when the actual transaction occurs. This accounting method is often used for items such as prepaid expenses, unearned revenues, and deferred tax assets or liabilities. In ERPNext, deferred accounting is handled through specific modules or functionalities that allow users to record and manage these deferred items accurately.

Deferred Expense

https://docs.frappe.io/erpnext/deferred-expense

Deferred expense is a cost that has already been incurred, but which has not yet been consumed.

The cost is recorded as an asset until such time as the underlying goods or services are consumed; at that point, the cost is charged to expense. A Deferred Expense is initially recorded as an asset, so that it appears on the balance sheet (usually as a Current Asset, since it is not used as of now and will probably be consumed within one year).

1. Configuring Deferred Accounting

Introduced in Version 13

Before you start using deferred accounting you should be aware of the below settings which will give you more control over how you manage your deferred accounting

Deferred Accounting Settings

Automatically Process Deferred Accounting Entry: This setting is enabled by default. In case you don't want the deferred accounting entries to be posted automatically, you can disable this setting. If this setting is disabled, deferred accounting will have to be processed manually using Process Deferred Accounting

Book Deferred Entries Based On: Deferred expense amount can be booked based on two criteria. The default option here is "Days". If "Days" is selected, the deferred expense amount will be booked based on the number of days in each month and if "Months" is selected then it will be booked based on the number of months. For Eg: If "Days" is selected and $12000 expense has to be deferred over a period of 12 months, then $986.30 will be for the month having 30 days and $1019.17 will be booked for the month having 31 days. If "Months" is selected, $1000 deferred expense will be booked each month irrespective of the number of days in a month.

Book Deferred Entries Via Journal Entry: By default Ledger Entries are posted directly to book deferred expense against an invoice. In order to book this deferred amount posting via Journal Entry, this option can be enabled.

Submit Journal Entries: This option is applicable only if deferred accounting entries are posted via Journal Entry. By default, the Journal Entries for deferred posting are kept in Draft state and a user has to verify those entries and submit them manually. If this option is enabled, Journal Entries will be automatically submitted without any user intervention.

2. How to use Deferred Expense

As an example of a Deferred Expense, Unico Plastics pays $10,000 in April for its May rent. It defers this cost at the point of payment (in April) in the prepaid rent asset account. In May, Unico Plastics has now consumed the prepaid asset, so it credits the prepaid rent asset account and debits the rent expense account.

Other examples of Deferred Expenses are:

  • Interest costs that are capitalized as part of a fixed asset for which the costs were incurred
  • Insurance paid in advance for coverage in future months
  • The cost of a fixed asset that is charged to expense over its useful life in the form of depreciation
  • The cost incurred to register the issuance of a debt instrument
  • The cost of an intangible asset that is charged to expense over its useful life as amortization
  • For an Internet Subscription, the amount is paid upfront and service is delivered every month. So it is Deferred Expense for the Customer.

Following is how you can configure Deferred Expense accounting in ERPNext to automate the process.

2.1 Item

In the Item master, under Deferred Expense section, check field Enable Deferred Expense. In this section, you can also select a Deferred Expense account (Asset Account, preferably Current Asset) for this particular item and no. of months.

Item With Deferred Expense

2.2 Purchase Invoice

On creation of Purchase Invoice for the Deferred Expense Item, instead of posting in the Expense Account, Deferred Expense account (Asset account) is Credited by the purchase amount. Let's consider a simple example of an Internet subscription here:

Invoice With Deferred Expense

2.3 Journal Entry

Based on the From Date and To Date set in the Purchase Invoice Item table, Journal Entries are created automatically at the end of each month. It debits the value from Deferred Expense account and credits Expense Account selected for an Item in the Purchase Invoice.

Deferred Revenue

https://docs.frappe.io/erpnext/deferred-revenue

Deferred revenue refers to advance payments a Company receives for products or services that are to be delivered or performed in the future.

It is also known as unearned revenue.

The company that receives the prepayment records the amount as Deferred Revenue on their balance sheet as a liability. Deferred revenue is a liability because it refers to revenue that has not been earned and represents products or services that are owed to a Customer. As the product or service is delivered over time, it is recognized as revenue on the income statement.

1. Configuring Deferred Accounting

Introduced in Version 13

Before you start using deferred accounting you should be aware of the below settings which will give you more control over how you manage your deferred accounting

Deferred Accounting Settings
  1. Automatically Process Deferred Accounting Entry: This setting is enabled by default. In case you don't want the deferred accounting entries to be posted automatically you can disable this setting. If this setting is disabled deferred accounting will have to be processed manually using Process Deferred Accounting
  2. Book Deferred Entries Based On: Deferred revenue amount can be booked based on two criteria. The default option here is "Days". If "Days" is selected, the deferred revenue amount will be booked based on the number of days in each month and if "Months" is selected, then it will be booked based on number of months. For Eg: If "Days" is selected and $12000 revenue has to be deferred over a period of 12 months, then $986.30 will be for the month having 30 days and $1019.17 will be booked for the month having 31 days. If "Months" is selected, $1000 deferred revenue will booked each month irrespective of the number of days in a month.
  3. Book Deferred Entries Via Journal Entry: By default Ledger Entries are posted directly to book deferred revenue against an invoice. In order to book this deferred amount posting via Journal Entry, this option can be enabled.
  4. Submit Journal Entries: This option is applicable only if deferred accounting entries are posted via Journal Entry. By default, the Journal Entries for deferred posting are kept in Draft state and a user has to verify those entries and submit them manually. If this option is enabled, Journal Entries will be automatically submitted without any user intervention.

2. How to use Deferred Revenue

Internet and broadcasting service providers offer subscription plans on quarterly or yearly basis. They take complete payment in advance from the Customer for couple of months, but book income on monthly basis in their book of accounts. This is Deferred Revenue for the Supplier and Deferred Expense for the Customer. Following is how they should configure Deferred Revenue accounting in ERPNext to automate the process.

2.1 Item

In the Item master created for the subscription plan, under Deferred Revenue section, check field Enable Deferred Revenue. You can also select a Deferred Revenue account for this particular item and number of months.

Item With Deferred Revenue

2.2 Sales Invoice

On creation of Sales Invoice for the Deferred Revenue Item, instead of posting in the Income Account, Deferred Revenue account is Credited by the sale amount. If you had set the account and period in Item, then the account and service start, end dates will be fetched automatically.

Invoice With Deferred Revenue

2.3 Journal Entry

Based on the From Date and To Date set in the Sales Invoice Item table, Journal Entries are created automatically at the end of each month. It debits the value from Deferred Revenue account and credits Income Account selected for an Item in the Sales Invoice.

Following is an example of Income for the Deferred Revenue Item booked via multiple Journal Entries.

Deferred Revenue GL

3. Video

  1. Sales Invoice
  2. Journal Entry
  3. Chart Of Accounts

Delete entries linked with GL entries

https://docs.frappe.io/erpnext/delete-entries-linked-with-gl-entries

While deleting the transactional entries like Purchase Receipt, Purchase Invoice, Sales Invoice, Delivery note and Stock ledger entries the following message pops up:

To delete all the transactional entries, follow the steps given below:

  1. Go to Accounts Settings
  2. Enable a checkbox Delete Accounting and Stock Ledger Entries on the deletion of Transaction
  3. Save and Refresh

Delete Submitted Document

https://docs.frappe.io/erpnext/delete-submitted-document

To delete a submitted document, you need to cancel it first. Following are the steps to delete a submitted document.

These steps assume that you have the appropriate permissions on the document that you wish to cancel and delete.

Step 1: Cancel Submitted Document

You will find the 'Cancel' button on upper right corner of submitted document.

Screenshot 2023-12-27 at 12.24.48 PM

Step 2: Delete the document

On cancellation of the submitted document, the 'Amend' button becomes visible with the document status set to 'Cancelled'. This means that the document has been cancelled successfully.

To delete the document, now click on Menu, then Delete. This will delete the selected document.

Screenshot 2023-12-27 at 12.39.59 PM

Note: To delete multiple submitted documents in one go, you can select them in the list view and proceed to cancel and delete.

Screenshot 2023-12-27 at 12.34.25 PM

If your document is linked with other documents, then you will need to cancel dependent document before trying to delete the parent document.

Screenshot 2023-12-27 at 12.37.51 PM

All deleted documents disappear from the respective DocType but can be seen in 'Deleted Documents'. They can either be deleted permanently or restored.

Screenshot 2023-12-27 at 12.53.50 PM

The restored documents are indicated in Deleted Documents.

Screenshot 2024-08-26 at 4.53.00 PM

Delete Company Transactions

https://docs.frappe.io/erpnext/delete_company_transactions

ERPNext allows you to delete all the transactions like Sales Invoices, Sales Order, Payment Entries etc associated with a company, while keeping the master data intact.

Often, users setup all the master data and then create a few dummy records to test/explore the system. Then, they want to delete the dummy records and start over again.

Transaction Deletion Record

This feature allows you to delete all the records associated with a specified company, except for the ones belonging to the DocTypes listed in the Excluded DocTypes table.

If you really want to wipe out the transactions, then follow these steps. However, the deleted transactions can't be restored.

  1. Create a new "Transaction Deletion Record" document.
  2. Enter the name of the Company whose records you wish to delete.
  3. Modify the "Excluded DocTypes" table if needed.
  4. Save and Submit.

The Summary table displays the names of the DocTypes whose records were deleted as well as the number of records that were deleted.

Delete Transactions

  1. Go to Home > Accounting > Company and find your company.
  2. On the top right, you'll find the Delete Transactions button under Manage.
  3. Enter your password.
  4. Enter the company name to confirm.

This will submit a record in the Transaction Deletion Record DocType.

To perform this action, the user must have the role of System Manager.

Deleting Custom Reports

https://docs.frappe.io/erpnext/deleting-custom-reports

ERPNext has several types of reports which can be customized as per the users' requirement.

If there is a custom report which needs to be deleted, it can be achieved by following steps. Please note that its applicable only for the Custom Reports, and not for the standard reports.

Step 1: Go to Report List

In the Awesome Bar, type and select "Report List" for an option.

Report Search

Step 2: Delete the Report from the List

The Report List will have all the standard and custom reports of your account. You can select Custom Report to be deleted from the list itself, and click on Delete icon in the Actions Menu.

Report List

Or you can open that report, and delete it from File menu.

Report Delete

Delivery Note

https://docs.frappe.io/erpnext/delivery-note

A Delivery Note is made when a shipment is shipped from the company’s Warehouse to the customer.

A copy of the Delivery Note is usually sent with the transporter. The Delivery Note contains the list of Items that are sent in the shipment and updates the inventory. The Delivery Note is an optional step and a Sales Invoice can be created directly from a Sales Order.

To access the Delivery Note list, go to:

Home > Stock > Stock Transactions > Delivery Note

Delivery Note flow

Prerequisites

Before creating and using a Delivery Note, it is advised that you create the following first:

  • Sales Order

Note: From version-13 onwards we have introduced immutable ledger which changes the rules for cancellation of stock entries and posting backdated stock transactions in ERPNext. Learn more here.

How to create a Delivery Note

The entry of the Delivery Note is very similar to a Purchase Receipt. It is usually created from a “Submitted” Sales Order (that is not shipped) by clicking on Create > Delivery.

To create a Delivery Note manually (not recommended), follow these steps:

  1. Go to the Delivery Note list, click on New.
  2. The Customer and Item details can be fetched by clicking on 'Get Items from > Sales Order'.
  3. The UOM and Rates will be fetched automatically.
  4. Save and Submit. Delivery Note

To fetch Items from a Sales Order, click on Get Items from > Sales Order. This will open a popup from where you can search for Sales Orders and select one.

You will notice that all the information about unshipped Items and other details are carried over from your Sales Order if you create the Delivery Note from there.

You can also edit the posting date and time, the current date and time are set when you create the Delivery Note.

Statuses

These are the statuses a Delivery Note can be in:

  • Draft: A draft is saved but yet to be submitted to the system.
  • To Bill: Yet to be billed using a Sales Invoice.
  • Completed: Submitted and sent all the Items.
  • Return Issued: All the Items have been returned.
  • Cancelled: Cancelled the Delivery Note.
  • Closed: The purpose of the Close is to manage short-closing. For example, your Customer ordered for 20 qty but closed at 15 qty. The remaining 5 is not to be sent or billed.

Partial Deliveries

When you create a Delivery Note from a Sales Order, the quantities can be changed. So if the Sales Order contains 10 Items to be delivered and you're delivering only 5 this week and the remaining next week, then you can create 2 Delivery Notes in two weeks.

From Pick List

You can create Delivery Notes in bulk, from Pick Lists also. From a submitted Pick List, click on Create -> Delivery Note.

This would create separate Delivery Notes for Sales Orders, grouped by Customer. If a Pick List Item is not linked to a Sales Order(added manually by user), a separate DN would be created for all those items as well.

Customer Purchase Order Details

You can enter the Customer's Purchase Order number here for Reference.

Address and Contact

  • Shipping Address: The Customer's address where the Items will be shipped.
  • Contact Person: If the Customer is an organization, add the Contact person in this field.

For India, the following details can be added for GST:

  • Customer GSTIN
  • Place of Supply
  • Billing Address GSTIN
  • Company GSTIN
  • Company Address Name

Contacts and Addresses are stored separately so that you can attach multiple Contacts or Addresses to the customer.

Currency and Price List

You can set the currency in which the Deliver Note is to be sent. This is usually fetched if set in the Sales Order. If you set a Pricing List, then the item prices will be fetched from that list. Ticking on Ignore Pricing Rule will ignore the Pricing Rules set in Accounts > Pricing Rule.

Read about Price Lists and Multi-Currency Transactions to know more.

Warehouses

  • Set Source Warehouse: This is where the Items will be sourced from to send to the Customer.
  • To Warehouse: In a regular Sales scenario, the Item exits your Warehouse and reaches the Customer. However, if you wish to retain sample stock, enter a Warehouse here.

Items Table

  • Barcode: You can track Items using barcodes.
  • The Item Code, name, description, Image, and Manufacturer will be fetched from the Item master.
  • Scan Barcode: You can add Items in the Items table by scanning their barcodes if you have a barcode scanner. Read documentation for tracking items using barcode to know more.
  • Discount and Margin: You can apply a discount on individual Items percentage-wise or the total amount of the Item. Read Applying Discount for more details.
  • Rate: The Rate is fetched if set in the Price List and the total Amount is calculated.
  • Item Tax Template: You can set an Item Tax Template to apply a specific Tax amount to this particular Item. To know more, visit this page.
  • The Item Weight details per unit and Weight UOM are fetched if set in the Item master.
  • Warehouse and Reference: The Warehouse from which the Items are sent to the Customer is shown. Also, a Sales Order will be shown if this Delivery Note was the creation flow: 'Sales Order > Deliver Note'.
  • Batch No and Serial No: If your Item is serialized or batched, you will have to enter Serial Number and Batch in the Items table. You are allowed to enter multiple Serial Numbers in one row (each on a separate line) and you must enter the same number of Serial Numbers as the quantity.

The 'Available Qty at From Warehouse', 'Available Batch Qty at From Warehouse', and 'Installed Qty' will be shown. To know more about installation, visit the Installation Note page.

Note: The Item has to be serialized or batched for these features to work. If the Item is serialized a popup will appear where you can enter the Serial Numbers.

  • Expense Account is the account from which the amount will be debited. Ticking on 'Allow Zero Valuation Rate' will allow submitting the Delivery Note even if the Valuation Rate of the Item is 0. This can be a sample item or due to a mutual understanding with your Supplier.
  • Accounting Dimensions help to tag each transaction with different Dimensions without the need for creating new Cost Centers. You need to create Accounting Dimensions first, to know more, visit this page.
  • Page Break will create a page break just before this Item when printing.

Tracking Quality Inspection

If for certain Items, it is mandatory to record Quality Inspections (if you have set it in your Item master), you will need to update the “Quality Inspection" field. The system will only allow you to “Submit” the Delivery Note if you update the “Quality Inspection”.

After enabling Inspection Criteria in the Item form for Sales and attaching a Quality Inspection Template there, Quality Inspections can be recorded in Delivery Notes.

Taxes and Charges

The Taxes and Charges will be fetched from the Sales Order.

Visit the Sales Taxes and Charges Template page to know more about taxes.

The total taxes and charges will be displayed below the table.

To add taxes automatically via a Tax Category, visit this page.

Make sure to mark all your taxes in the Taxes and Charges table correctly for an accurate valuation.

Shipping Rule

A Shipping Rule helps set the cost of shipping an Item. The cost will usually increase with the distance of shipping. To know more, visit the Shipping Rule page.

Additional Discount

Any additional discounts to the whole order can be set in this section. This discount could be based on the Grand Total i.e., post tax/charges or Net total i.e., pre tax/charges. The additional discount can be applied as a percentage or an amount. Read Applying Discount for more details.

Terms and Conditions

In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

Transporter Information

If you outsource transporting Items to their delivery location, the transporter details can be added. This is not the same as drop shipping.

  • Transporter: The Supplier who will transport the Item to your Customer. The transporter feature should be enabled in the Supplier master to select the Supplier here.
  • Driver: You can add a Driver here who will drive the mode of transport.

The following details can be recorded:

  • Distance in km
  • Mode of Transport whether road, air, rail, or ship.

For India, GST:

  • GST Transporter ID
  • Transport Receipt No
  • Vehicle No The GST Vehicle Type can be changed

The Transport Receipt Date and Driver Name will be fetched.

More Information

The Delivery Note can be linked to the following for tracking purposes:

  • Project
  • Campaign
  • Source

Printing Settings

Letterhead

You can print your Delivery Note on your company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the Items table. This can be seen when your print.

Purchase Receipt headings can also be changed when printing the document. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

There are additional checkboxes for printing the Delivery Note without the amount, this might be useful when the Item is of high value. You can also group the same Items in one row when printing.

Status

The status of the document and installation percentage is shown here. Any additional instructions for delivery can be entered here.

Commission

If the sale took place via one of your Sales Partners, you can add their commission details here. This is usually fetched from the Sales Order.

Sales Team

Sales Persons: ERPNext allows you to add multiple Sales Persons who may have worked on this deal.

This is usually fetched from a Sales Order, for example:

Shipping Packets or Items with Product Bundle

If you are shipping Items that have a Product Bundle, ERPNext will automatically create a “Packing List” table for you based on the sub-Items in that Item.

If your Items are serialized, then for Product Bundle type of Items, you will have to update the Serial Number in the “Packing List” table.

Packing Items into Cases, for Container Shipment

If you are doing making the delivery via container shipment or by weight, then you can use the Packing Slip to break up your Delivery Note into smaller units. To know more about a Packing Slip, visit this page. go to:

You can create multiple Packing Slips for your Delivery Note and ERPNext will ensure that the quantities in the Packing Slip do not exceed the quantities in the Delivery Note. Note that you can create a Packing Slip from a Delivery Note only when the Delivery Note is in the Draft stage.

After Submitting

When the Delivery Note is submitted, a Stock Ledger Entry is made for each Item and stock is updated. Pending Quantity in the Sales Order is updated (if applicable).

The Dashboard will show the following options:

  • Installation Note
  • Sales Return
  • Delivery Trip
  • Sales Invoice

Tip: To disallow the creation of Delivery Notes without a Sales Order against it:

Returning a Sales Order

Once you've delivered a Sales Order using a Delivery Note, you can create a return entry in case the Customer returns the Item. To know more, visit the Sales Return page.

Skipping Delivery Note

If you don't want to create a Delivery Note after a Sales Order and directly want to create a Sales Invoice, enable the feature for it in Selling Settings.

  1. Warehouse
  2. Delivery Note Stock Error
  3. Material Transfer From Delivery Note and Purchase Receipt
  4. Installation Note
  5. Delivery Trip

Delivery Note Negative Stock Error

https://docs.frappe.io/erpnext/delivery-note-stock-error

Question: When submitting a Delivery Note, receiving a message says that item's stock is insufficient, but we have item's stock available in the Warehouse.

Answer: On submission of Delivery Note, stock level is checked as on Posting Date and Posting Time of a Delivery Note. It's possible that you have stock of an Item available in the Warehouse. But if you are creating back-dated Delivery Note, and if item was not available in the warehouse on the Posting Date and Posting Time of Delivery Note, you are likely to receive an error message on the negative stock. You can refer to the Stock Ledger report to confirm the same.

If this is the case, you should edit the Posting Date and Time of a Delivery Note, and ensure that it is after the Posting Date and Time of item's receipt entry.

Delivery Trip

https://docs.frappe.io/erpnext/delivery-trip

A Delivery Trip records Customer Deliveries in one vehicle.

Multiple stops can also be added and Submitted Delivery Note can be tagged per Customer.

1. How to create a Delivery Trip

A Delivery Trip can be created from a Delivery Note by clicking on 'Create > Delivery Trip'.

  1. Go to: Stock > Stock Transactions > Delivery Trip > New
  2. Select the Driver and Vehicle, create both if not present.
  3. Set the date, departure date and time.
  4. Add customers for delivery stops, the address will be fetched if already set. Customers can also be fetched by clicking on 'Get customers from > Delivery Note'. Additional Delivery Stops can be added by clicking on the Add Row button before submitting:

Delivery
  1. Save and submit.

Delivery

2. Features

2.1 Calculate Estimated Arrival Times

If the Customer address and the Driver address are set, you can calculate the estimated arrival time for the deliveries. This data is fetched from Google Maps.

2.2 Optimize Route

Using Google Maps, the best route for the deliveries will be calculated.

  1. Packing Slip
  2. Shipping Rule

Forecasting Using Exponential Smoothing

https://docs.frappe.io/erpnext/demand-driven-forecasting

To access the Forecating Report, go to:

Home > Manufacturing > Reports > Forecasting

Production Forecasting

Using exponential smoothing method and past Sales Order / Delivery Note / Quotation data, the forecasting will be calculated. The exponential smoothing method formula is as below:

Production Forecasting

Using exponential smoothing method, system predicts the forecasting for each period and same forecast data will be used to forecast the upcoming period data.

How does the exponential smoothing method works

Production Forecasting

For the above example, we have used one-year sales order data every month. The first-month forecast will be calculated based on the average of all total orders. From the second month onward, the difference between the last month's Total Order and Forecast Value will be multiplied with the Smoothing Constant Value (in between 0 to 1). The default value of the Smoothing Constant is 0.3 which gives efficient forecasting data. The last month's Total Order and Forecast Value difference called forecasting error and this error will be added in the same month of forecast value to calculate the forecast of the next month.

How do the filters work

  1. Company :- user can do forecasting for the specific company by applying the company filter
  2. From Date and To Date :- for this period system will do the forecasting, the default from date is the current date and to date will be the one year ahead date from the current date.
  3. Based On Document :- by default system uses sales order past data to forecast. User can select the other document like delivery note / quotation to forecast the data.
  4. Based On :- based on quantity / amount system shows the forecast data.
  5. Based On Data ( in years ) :- for forecasting requires past data, this filter helps system to check past data for number of years.
  6. Periodicity :- forecasting data can be viewed in Monthly / Quarterly / Half-Yearly / Yearly basis, the old forecast data can not be displayed for Monthly period for better view.
  7. Smoothing Constant - the Smoothing Constant will be used to forecast the data, the value should be between 0 and 1.

Depreciation Methods

https://docs.frappe.io/erpnext/depreciation-methods

Depreciation in ERPNext is the systematic allocation of an asset’s cost over its useful life.

The system automatically generates a depreciation schedule based on the Depreciation Method, Total Number of Depreciations, and other inputs such as the Available-for-Use Date in the Asset record. Multiple schedules can also be created for different Finance Books.

Note: To generate a depreciation schedule automatically, ensure that ‘Calculate Depreciation’ is enabled while creating the asset.

1. Depreciation Methods in ERPNext

1.1 Straight Line

  • The asset value is reduced uniformly over its useful life until it reaches its salvage value.
  • Useful when depreciation occurs evenly over time.

Example:
If an asset costs 1,000 and its salvage value is 500 after 5 years, depreciation would be 100 per year.

Additional Options:

  • Depreciate based on daily pro-rata: Adjust depreciation based on the number of days in a month.
  • Depreciate based on shifts: Adjust depreciation based on asset usage per shift. Define shift factors in Asset Shift Factor and allocate them using Asset Shift Allocation.

1.2 Double Declining Balance

  • Also called 200% declining balance.
  • Depreciates faster in the initial years and slows down later.

Example:
If an asset costs 100,000 and its salvage value is 11,000 after 8 years, depreciation in early years will be higher than in later years.

1.3 Written Down Value (WDV)

  • Depreciation is applied to the current written down value of the asset each period.
  • Useful for assets that lose more value in the initial years.

Example:
If an asset costs 1,000 with a depreciation rate of 40% over 5 years, each year the depreciation is 40% of the remaining value.

1.4 Manual

  • The system generates a default schedule based on asset details.
  • You can edit dates and depreciation amounts manually for any period as needed.

2. Automatic Depreciation Entries

  • Enable automatic depreciation in Accounts Settings to post entries automatically on scheduled dates.
  • Otherwise, create entries manually using the Make Depreciation Entry button in the Depreciation Schedule row.

The related accounts can be set in the Asset Category or Company.

3. Accounting Entries on Depreciation

When depreciation is posted:

  • Accumulated Depreciation Account is credited
  • Depreciation Expense Account is debited

The related accounts are defined in the Asset Category or Company master.

4. Asset Value Chart

  • ERPNext displays the net value of the asset over different depreciation dates in a line chart for better visualization.

  1. Asset Shift Allocation
  2. Asset Maintenance

Difference Between System User and Website User

https://docs.frappe.io/erpnext/difference-between-system-user-and-website-user

Question: I have added my Employee as a User and have assigned them Roles as well. Still, they are not able to view Dashboard on the login.

Answer:

There are two type of Users in ERPNext.

  • System Users: They are typically internal users such as employees, managers, and administrators who need extensive access to the ERPNext system to perform various business operations. They have a higher level of access and more detailed permissions, allowing them to interact with multiple modules, generate reports, and customize workflows.
  • Website Users: They are typically external users like customers or suppliers who interact with the ERPNext system through a web portal. Their access is limited to functionalities relevant to their needs, such as placing orders, viewing order status, or managing their account information. Their interface is simpler compared to the comprehensive backend interface used by system users.

Here is the tabular comparison between System User and Website User in ERPNext

System User Website User
This type is useful for managing internal activities and operations It is useful for managing external operations and transactions
It provides full access to ERPNext modules and features It provides restricted access to ERPNext modules and features
Typical users in this category are internal employees The user persona in this type includes external parties such as customers, clients etc
They are created by an administrator within ERPNext They can be self-registered or created by an administrator
It provides access to company-wide data and reports It provides access to only personal data and limited reports
They can view, create, edit, and delete records They can mostly view and create records relevant to them
They have full data entry capabilities across all modules They have limited to data entry relevant to their role

Difference Entry

https://docs.frappe.io/erpnext/difference-entry-button

As per accounting standards, debit in a accounting entry must be equal to credit. If not, system does allow submission of accounting transaction, thereby stops ledger posting. In ERPNext, on saving accounting entry, system validates if debit and credit is tallying.

Debit and Credit

To have entry balanced, you should one more row, select another account, and update different amount in it. Or you can add difference amount in one of the Account's row itself.

On clicking 'Make Difference Entry' button, new Row will be added under Journal Entry Accounts table, with difference amount. You can edit that row to select appropriate Account.

Difference ENtry

On selecting account under new row, debit and credit an entry will be tallying, and you should be able to submit Journal Entri correctly.

Include Tax or Charge in Valuation or Total?

https://docs.frappe.io/erpnext/difference-in-total-and-valuation-in-tax-and-charges

Consider Tax or Charge field in Taxes and Charges table of purchase or sales transactions has three values.

  • Total
  • Valuation
  • Total and Valuation

Valuation And Total

Let's consider an example to understand an effect of each charge type. We purchase ten units of item, at the rate of 800. total purchase amount is 800. Purchased item has 4% VAT applied on it, and INR 100 was incurred in transportation.

Total:

Tax or Charge categorized as Total will be included in the total of purchase transactions. But it will not have impact on the valuation of item purchased.

If VAT 4% is applied on item, it will amount to INR 32 (at item's based rate is 800). Since VAT is the consumption tax, it should be added value of Purchase Order/Invoice, since it will be included in payable towards supplier. But it should not be added to the value of Purchased item.

When Purchase Invoice is submitted, general ledger posting will be done for tax/charge categorized as Total.

Valuation:

Tax or charge categorized as Valuation will be added in the value of purchased item, but not in the total of that purchase transaction.

Transportation charge of INR 100 should be categorized as valuation. With this, the value of purchased item will be increased from 800 to 900. Also, this charge will be not be added to the total of purchase transaction, because it is your expense, and should not be reflected to the supplier.

Check here to learn general posting done for expense categorized as Valuation.

Total and Valuation:

Tax or Charge categorized as for Total and Valuation will be added in the valuation of item, as well as in the totals of purchase transactions.

Let's assume that transportion is arranged by our supplier, but we need to pay transportation charges to them. In that case, for transportation charges, category selected should be Total and Valuation. With this, INR 100 transportation charge will be added to the actual purchase amount 800. Also, INR 100 will reflect in the total, as it will be payable for us towards supplier.

Difference between Lead, Contact, and Customer

https://docs.frappe.io/erpnext/difference_between_lead_contact_and_customer

Lead: is a potential Customer, someone who can give you business.

Customer: is an individual or organization who has given you business.

Contact: is a person who belongs to the Customer. This is applicable in business-to-business scenario, where you may contact multiple individuals belonging to the same customer.

A Lead can be converted to a Customer by selecting “Customer” from the Make dropdown. Once the Customer is created, the Lead becomes “Converted” and any further Opportunities from the same source can be created against this Customer.

Lead, Customer and Contact

Disable Rounded Total

https://docs.frappe.io/erpnext/disable-rounded-total

All the sales transactions like Sales Order, Sales Invoice have Rounded Total in it. It is calculated based on the value of Grand Total. Moreover, Rounded Total is also visible in the Standard Print Formats.

Note: The Rounded Total is a feature present in Sales transactions.

Print Preview

However, if you wish to disable the same, you may follow the steps given below to hide the rounded total from Standard Print Formats, for all the sales transactions.

Step 1: Go to Global Defaults

From the Awesome Bar search for Global Defaults

Step 2: Disable Rounded Total

Check Disable Rounded Total, and click on save.

Print Preview

To verify the changes, you should clear the cache and/or refresh your ERPNext account. Then your print formats shall not render value for the Rounded Total.

Note: This setting will only affect Standard print formats.

Disable Signup on ERPNext Website

https://docs.frappe.io/erpnext/disable-signup

ERPNext has portal feature available which allows third parties like Customers and Suppliers sign, place new orders and track updates on the previous orders.

Website signup

To allow new Customer and Supplier to Signup, the login page of your ERPNext account has Signup link avaiable. However, if you wish to disbale this feature, you can achieve it by following the steps given below.

Steps

  1. Go To

Website > Setup > Website Settings `

In the Website Settings page, scroll down upto section.

More Information

Check fied .

Disable Signup

Disable signup
  1. Save Website Settings.

Disassembly Order

https://docs.frappe.io/erpnext/disassembly-order

The 'Disassembly Order' in ERPNext is used to dismantle finished goods and return the components that are in good condition back to the store. The system allows users to change the valuation rate of the components when adding them back to the store.

To create the "Disassembly Order", open the work order which are in Completed state or Closed state. Click on create button and after that "Disassembly Order"

work-order-disassembly-order

Once user clicked on the "Disassembly Order" button, the system will open the stock entry with type as "Disassemble"

stock-entry-disassembly-order
  • Users can manually removed items which are not in a good condition
  • The system, by default, fetches the basic rate based on past transactions. If users want, they can edit the basic rate for the raw materials.

Discount Accounting

https://docs.frappe.io/erpnext/discount_accounting

Discount Accounting is used to post additional ledger entries for discounts, under a separate Discount Account. This can be done for:

  1. Discounts applied on individual Items
  2. Additional Discounts applied on all the Items in an invoice

Steps

  1. Check the Enable Discount Accounting box in the Accounts Settings page.
  2. Create a Sales/Purchase Invoice as usual.
  3. To post ledger entries for discounts applied on individual Items:
Enable Discount Accounting checkbox
  • Expand the row for that Item in the Items table
  • Enter discount in the Discount and Margin section
  • Scroll down to the Accounting Details section and enter the Discount Account
Discount Account
  1. To post ledger entries for Additional Discounts applied on all the Items in an invoice:
  • Go to the Additional Discount Section
  • Enter the Additional Discount Amount/Percentage and the Additional Discount Account
Additional Discount Account
  1. Save and submit the invoice to create ledger entries as shown below:

For Sales Invoices:

Discount Accounting for Sales Invoices

For Purchase Invoices:

Discount Accounting for Purchase Invoices

Default Discount Account

Additionally, you could enter a Default Discount Account for an Item, which will be fetched automatically while creating the Invoice. The visibility for this field is also dependant on the Enable Discount Accounting checkbox in Accounts Settings.

  1. Open the Item doc.
  2. Go to the Item Defaults table in the Sales, Purchase, Accounting Defaults section.
  3. Expand the row of your choice and enter the Default Discount Account for the Item
Default Discount Account

Do I Need ERPNext?

https://docs.frappe.io/erpnext/do-i-need-an-erp

Are you still using multiple specialised tools/platforms for managing your operations and finding it challenging to maintain data consistency?

Are you hesitant to go paperless by digitising all your operations?

Are you fed up with your legacy system which is difficult to cater to your ever evolving business needs?

ERPNext will help you get rid of these pain points as it is an open source platform which will act as a single source of truth for all your operational needs. ERPNext can host all your data and replicate business processes to make them operate seamlessly. Since it covers a wide range of business functions/departments like Accounting, Procurement, Sales, HR, Inventory Management etc, ERPNext is a system that can be setup by any organisation.

Benefits over traditional accounting software:

  • Integrated Modules: ERPNext provides a complete package integrated modules including accounting, sales, purchasing, inventory, manufacturing, HR, CRM, and project management. This integration ensures that there is seamless data flow across various departments, reducing data silos and improving efficiency.
  • Easy Customisation: Highly customisable to fit specific business needs where tailored workflows can be designed
  • Scalability: the system can be scaled up with the growth of the business by accommodating increasing transaction volumes and additional functional requirements.
  • Unified Platform: ERPNext facilitates better collaboration across departments as all data and processes reside on the same platform.
  • Real-Time Data: Provides real-time visibility and accessibility to the business data allowing quick data driven decision making.
  • Comprehensive Reports: Offers detailed reports and dashboards covering all aspects of the business providing deeper insights and analytics capabilities.

Benefits over big ERPs

  • Minimum Investment: Since it is open source, ERPNext eliminates the need for expensive licensing fees unlike big ERPs.
  • Affordable Implementation and Maintenance: The implementation and maintenance cost of ERPNext is generally lower.
  • Open Source Nature: ERPNext allows complete access to the source code, enabling deep customisations and integrations.
  • Faster Deployment Cycle: ERPNext can be implemented more quickly unlike most of the big ERPs.
  • Active Community: There is a widespread community of users and developers around the globe which provides support and contributes to the continuous improvement of the platform.
  • No Vendor Lock-In: The open-source nature of ERPNext ensures that businesses are not locked into long-term contracts with a single vendor even through there is less satisfaction

DocType

https://docs.frappe.io/erpnext/doctype

A DocType is the core building block of any application based on the Frappe Framework.

It describes the Model and the View of your data. It contains what fields are stored for your data, and how they behave with each other. It contains information about how your data is named. The forms like Sales Order, Sales Invoices, Work Order are added as DocTypes in the backend.

DocType allows you to insert custom forms in ERPNext as per your requirement.

To create a new DocType, go to:

Setup > Customize > Doctype > New

1. How to create a New DocType:

  1. Name: Enter the name of the new DocType.
  2. Module: Enter which module would you like the new DocType to be added to.
  3. Save.

Custom DocType

1.1. Additional Details

  1. Fields

You can choose to add as many fields as you want. The Label, Field Type, Mandatory Fields and other associated Options can also be added here. Learn more about field types here.

Fields in Custom DocType
  1. Naming

Here you can choose if you would want each of your forms within this DocType to be named automatically. As given in the description, you can select the pattern for naming of the forms. The same can be a Field within the DocType, Naming Series, Prompt, A defined Naming Series, or a Format based Name. For Naming, you can also add a Description and the Name Case (as a Title Case or UPPER CASE)for your convenience.

Naming Custom DocType
  1. Form Settings

Additional Settings for the Form, Image Fields, Attachments, Timeline etc. can be configured here. To know more about Form, visit Customize Form.

Custom DocType Form Settings
  1. View Settings

Here, you can define the View settings for the DocType, like, Search Fields, Default Sort Field, Default Sort Order etc.

  1. Permission Rules

You can define the Permission Rules for the DocType here, and configure which users would be able to use or make changes to this DocType. Learn more about Users and Permissions here.

Custom DocType Permissions
  1. Web View

You can select whether you would want a Web View of this DocType or no. Having a Web View for a DocType will allow your website users to have access to the Forms. Feel free to learn more about Website Users.

1.2. More Properties

  1. Is Submittable: You can select if you want this DocType to only be 'Saved' or to also be 'Submitted' by checking and un-checking this box.
  2. Is Child Table: You can define if you want the New DocType to be a Child Table within another DocType. Checkout Child Table for more information.
  3. Is Single: If checked, this Doctype will become a single form, like Sales Order, which user will not be able to re-produce. For e.g., Selling Settings in Sales Module is a Single DocType.
  4. Is Tree: A few DocTypes in ERPNext are structured as Trees, wherein there are some Parent DocTypes and some Children DocTypes. E.g., Doctype Company is structured as Tree, there are Parent Companies as well as Child Companies, which we call subsidiaries. If you want your DocTypes to be structured similarly, you can enable this option.

DocType Tree View
  1. Quick Entry: You can select if you want a Quick Entry to be made for this DocType. This will allow you to enter only a few mandatory details and save the DocType, so that a Quick Entry is made. For example, check Quick Entry in Journal Entry.
  2. Track Changes: You can select this option if you want to maintain a log of the changes made to each Form. Check Out Document Versioning for more understanding on this.
  3. Track Seen: You can select this option if you want to maintain a log of all the Users who have seen this Form.
  4. Track Views: You can select this option if you want to maintain a log of all the times each User has Viewed this Form.

DocType Tree View
  1. Custom?: This field will be checked by default when adding Custom Doctype. Similarly, if you are customizing a DocType which already exists in the system, this field by default would be unchecked.

2. Videos

Document Follow

https://docs.frappe.io/erpnext/document-follow

Introduced in v12

Document Follow is a feature that allows users to track changes in documents via email notifications.

1. How to Activate Document Follow

  1. Go to: Settings > My Settings.
  2. In the Document Follow section, tick the 'Send Notifications for documents followed by me' checkbox.
  3. Set the frequency at which you want to receive emails.
  4. Now, you can receive emails for the documents you follow.

1.1 How to Follow documents

  1. Go to any document, you'll see an option to follow the document.
  2. Click on 'Follow'.

Defining Criteria

After following, you can also unfollow a document.

Note that you can only follow documents for which track changes are on.

To enable track changes, go to Menu > Customize > tick the Track Changes checkbox.

1.2 Automatic Follow

Cases where the document will be automatically followed after activating Document Follow:

  • When you create a new document.
  • When you modify a document.
  • When you like a document using the heart icon.
  • When another user shares a document with you or assigns you to a document, you'll be following the document.

This is what an email notification for Document Follow will look like:

Defining Criteria
  1. Linking Emails to Document
  2. Notifications

Document Naming Rule

https://docs.frappe.io/erpnext/document-naming

In ERPNext, managing naming conventions systematically helps maintain consistency and traceability across your records. The Document Naming Rule feature allows you to set up dynamic naming based on conditions, offering more flexibility than the standard Document Naming Settings (Series).

✨ Key Differences from Traditional Naming Settings While Document Naming Settings apply a prefix or pattern globally to a doctype, Document Naming Rule introduces conditional logic to apply naming series based on specific field values within the document.

🛠️ How to Set Up a Document Naming Rule Follow the steps below to configure a Document Naming Rule:

Steps:

Select the Document Type Choose the Doctype (e.g., Sales Invoice, Customer, etc.) where the rule will apply.

Set Priority Assign a Priority number to the rule.

🔹 Higher priority rules (e.g., 10) are applied before lower ones (e.g., 5). 🔹 If multiple rules match, the one with the highest priority is used.

Selsct a DocType
  1. Add Rule Conditions ➕ You can add multiple conditions per rule. The rule is applied only when all conditions are satisfied.

🔍 Example Use Case Scenario: You want to name Customers based on their location.

If the customer's Country is India, the naming format should be: CUST-INDIA-00001, CUST-INDIA-00002, ...

This can be achieved using two Document Naming Rules:

Rule 1: Prefix = CUST-INDIA-, Condition = Country = India

Rule 2: Prefix = CUST-USA-, Condition = Country = USA

If the Country is USA, the format should be: CUST-USA-00001, CUST-USA-00002, ...

Define the Prefix Enter the desired prefix in the Prefix field under the Naming section. Example: PSI/

Set the Serial Number Start Specify the starting serial number in the field next to the prefix. Example: 5 → The first document will be named PSI/00005

Here is an Example:

✅ Benefits Automates naming based on document fields

Reduces manual selection and human error

Supports multiple naming patterns within the same Doctype

Useful for companies with multi-branch, multi-country, or multi-category document types

📝 Notes Always ensure the conditions are specific enough to avoid conflicts between rules.

If no rule matches, the system will fall back to the default Naming Series (if configured).

Document Naming Settings

https://docs.frappe.io/erpnext/document-naming-settings

Masters and transactions can be given prefixes in the form of naming series.

ERPNext allows you to make prefixes to your documents, with each prefix
forming its own series. For example, a series with prefix INV12#### will have
numbers INV120001, INV120002, and so on.

You can have multiple series for all your transactions. For example, Sales Invoice IDs like these can be generated:

  • ACC-SINV-.YYYY.-
  • SINV12####
  • SALESINV-00####

You can define or select the Naming Series pattern from:

Home > Settings > Document Naming Settings

1. Setting up Naming Series for Documents

  1. Select the transaction for which you want to make the series. The system will update the current series in the text box.
  2. Edit the series as required with unique prefixes for each series. he first prefix will be the default prefix. Each new prefix Naming Series must be added on a new line. The newly added naming series will be available in the document.

document naming settings
  1. If you want the user to explicitly select a series instead of the default one, check the “User must always select” checkbox. here will be no default naming series if this is ticked.
  2. You can also update the starting point of a series by entering the series name and the starting point in the “Update Series” section.
  3. Click on the Update button to update the set of Naming Series for the selected document.

Note: To see the newly added Naming Series, click on Settings > Reload.

2. Financial Year in Naming Series

You can also show the financial year in the Naming Series. By default, if you enter 'YYYY' in the naming series, it'll pick up the current year. To set naming series based on the fiscal year, enter something like 'ACC-SINV-.19-20.-' where 19-20 is the current Fiscal Year. It is common to have a separate series for each financial year.

As you can see, in the following screenshot of a Sales Invoice, the year 2019 is listed:

Fiscal year in Naming Series

3. Updating the current value for existing Naming Series

You can change the starting/current sequence number of an existing series.

  1. Under the Update Series section, select the prefix whose sequence is to be changed.
  2. The current value will be fetched and displayed.
  3. Change starting/existing sequence number if needed.
  4. Click on Update Series Number.

For example, if the current Sales Order series number is at 16, and you want to restart or set it as 50, enter 0 or 50 depending on your case. Any new Sales Order created will start from the new sequence number.

To know more about this, visit this article.

Tip: You could have a separate series for each type of Customer or for
each of your retail outlets.

4. Using Field Values in Naming Series

Some companies prefer to make use of "short-codes" for suppliers, i.e. WN for company "Web Notes" that later can be used in naming series for quick identification.

For example:

A custom field "Vendor ID" is created under Document: Supplier.
Then under Naming Series, we allow something like
PO-.YY.MM.-.vendorid.-.####
Resulting in "PO-1503-WN-00001"

5. Updating Amended Documents

Some companies prefer naming amended documents as new documents. ERPNext provides a feature to configure this setting based on your requirements.

To configure the naming of amended documents:

  1. Navigate to the Amended Documents section.
  2. Choose one of the following options:
  3. Apply the Default Amend Counter to change the naming for all doctypes.
  4. Customize naming for specific doctypes by selecting the relevant doctypes and defining their naming methods.

Amended Naming Series
  1. Click "Update Amendment Counter" to save your changes.

6. Video

  1. Bulk Rename

Document Title

https://docs.frappe.io/erpnext/document-title

You can customize the title of documents based on properties so that you have meaningful information for the list views.

For example, the default title on a Quotation is the customer name, but if you are dealing with only a few customers and sending lots of quotations to each customer, you may want to customize.

Document Title

Setting Title Fields

From ERPNext Version 6.0 onwards, all transactions have a 'Title' property. If there is not a title property, you can add a Custom Field as title and set the Title Field via Customize Form.

You can set the default value of that property by using Python style string formatting in Default or Options

  1. To edit a default title, go to Customize Form
  2. Select the Form for which you would like to change the Title Field.
  3. Edit the Title Field in the form.

Defining Titles

You can define the title by setting document properties in braces . For example, if your document has fields , you can specify that as the Title of the Form.

{}customer_name

Set Document Title

Alternatively, you can also define a particular field as the 'Title Field' in Customize Form.

Title Field

Fixed or Editable Titles

If your title is generated as a default title, it can be edited by the user by clicking on the heading of the document.

Editable Title

If you want a fixed title, you can set the rule in the Options property. In this way, the title will be automatically updated every time the document is updated.

Document Title with multiple fields

https://docs.frappe.io/erpnext/document-title-with-multiple-fields

Ever wondered about creating a document title with more than one field? For example, let's say your sales invoice should have the title of the customer name (which is present by default) and its tax ID.

How will you do this? Well, here's an interesting customisation ability of the framework which can do this without any need of scripting.

Here are the steps,

  1. Make sure you have a field that is going to be referred to for creating the title of the document.
  2. The basic setup ends by adding this field name in the view settings of the doctype for the title.
  3. If you want to add more to it,
  4. Add the field links in the default of the field in this format {field_name}

Here's an example of how it looks

b. This will result in a multifield title for the selected doctype.

This can be extended to creating a custom field with consolidated values of different fields and merging them to a completely new field. The best use case is creating addresses for custom doctypes easily without any custom scripting.

This is how the field configuration will look

Note: We are using options for adding values because it updates the field by changing its source fields. (Doest work with defaults)

Also, the field type should not be data. (Could be read-only or HTML)

Here's the output of the above configuration

Document Versioning

https://docs.frappe.io/erpnext/document-versioning

In ERPNext, Document Versioning is a feature that allows you to track all the changes made in a form or a document.

This feature comes handy while conducting an Audit Tail to check on what changes were made in a document along with the time of change and the stakeholder responsible.

Document Versioning

How to Enable Document Versioning

Let's assume that we need to enable Document Versioning for Purchase Order.

  1. Go to Purchase Order List.
  2. Click on Customize from the drop-down menu.
  3. You shall be directed to the Customize Form page for Purchase Order.
  4. Check the field "Track changes" in the Properties. Document Versioning

With this, Document Versioning shall be enabled for all the Purchase Orders edited henceforth.

Version Log

For each document that has Document Versioning enabled, a Version Log is created. Herein, there will be links to specific versions of the document.

When you click on these links, you will be directed to a log of all the fields and the changes made therein.

Document Versioning

Domain Settings

https://docs.frappe.io/erpnext/domain-settings

You can use Domain Settings to keep selected domains active globally.

To access Domain Settings, go to:

Home > Settings > Core > Domain Settings

If a domain is disabled, the following things will happen:

  • The domain will be unavailable on the home page
  • The DocTypes related to the domain will no longer be accessible. For example, if you disable the Education module, Student and other DocTypes in Education will not be accessible.

  1. Company Setup

Downloading Backups

https://docs.frappe.io/erpnext/download-backup

In ERPNext, you can manually download a database backup.

To get the latest database backup, go to:

Home > Download Backups

Backup available for the download is updated every eight hours. Click on the link to download the backup at a given time.

If you want to set the number of Backups available for download at a time, then click on 'Set Number of Backups', which will navigate you to 'System Settings', where you can set the number.

Download backup post backup taken

Downloading Files Backup

Clicking on Download Files Backup will send an email with links to the backup for both private and public files. Email must be configured for this to work.

Getting Backup Encryption Key

In order to get the backup encryption key, click on the designated button. Upon getting your system password validated, the system will provide you with the encryption key.

Automating Backups to Cloud Storage

You can also automate your backups to be uploaded directly to a cloud storage platform. Currently, ERPNext supports:

  1. Amazon S3
  2. Dropbox
  3. Google Drive

Downtime Analysis

https://docs.frappe.io/erpnext/downtime-analysis

To access the Downtime Analysis report, go to:

Home > Manufacturing > Reports > Downtime Analysis

Task

This report will give information about the captured Machines Downtime in hours. Using Downtime analysis report, operators will know which machine was not performing well and needs maintenance.

Downtime Entry

https://docs.frappe.io/erpnext/downtime-entry

To access the Downtime Entry, go to:

Home > Manufacturing > Production > Downtime Entry

Production Forecasting

Downtime Entry document is used to capture the machine's Downtime in minutes. User needs to manually create the downtime record by selecting the proper machine alongwith the machine's down time. Using Downtime entry data operator knows which machine not performing well and needs maintenance.

Drop Ship

https://docs.frappe.io/erpnext/drop-shipping-in-erpnext

Drop shipping is a supply chain management method in which the retailer does not keep goods in stock but instead transfers the customer orders and shipment details to either the manufacturer, another retailer, or a wholesaler, who then ships the goods directly to the customer.

Drop shipping may also occur when a small retailer (that typically sells in small quantities to the general public) receives a single large order for a product. The retailer may arrange for the goods to be shipped directly to the customer from the manufacturer or distributor. Drop shipping is common with expensive products. No inventory is maintained by the retailer in any case, simply acting as a middleman. In this article, we will see how ERPNext provides a seamless drop-shipping experience.

Consider a business dealing with Computer Monitors. Now, the retailer has received an order from a customer, ABC Inc. for 1000 DELL 24Inch Monitors.

Drop Shipping In Action:

Item Configuration

  • Setup Item with mandatory information keeping Maintain Stock disabled since there will be no stocking of this Item.
  • Next, enable "Delivered By Supplier (Drop Ship)
  • Set the Supplier with whom the Purchase Order will be raised for this orders fulfillment.

Sales Cycle:

  • Create Sales Order with Customer, Item, Qty, Rate, Taxes and so on.

Order Fulfillment:

  • From the Sales Order Document itself, you can create the Purchase Order for this shipment, track delivery, and bill the customer accordingly.

Starting from v16, users can now track partial deliveries of drop shipped items.

Prior to v16, users could only mark the entire Purchase Order as Delivered. Now from v16 onwards, if the Purchase Order has any drop shipped item, users will see see a new option called "Deliver (Dropship)" after submission. Clicking this button will open a dialog box where they can enter the quantity of the dropshipped item delivered by the Supplier to the Customer.

Users can also enter a negative quantity in the "Qty Change" field incase the quantity entered before was incorrect due to human error or customization. This button will be visible until the Purchase Order reaches the "Completed" state or is not manually closed.

Setting Up Dropbox Backups

https://docs.frappe.io/erpnext/dropbox-backup

We always recommend customers to maintain backup of their data in ERPNext. The database backup is downloaded in the form of an SQL file. If needed, this SQL file of backup can be restored in the another ERPNext account as well.

You can automate database backup download of your ERPNext account into your Dropbox account.

> Note: If you are Frappe Cloud user, onsite and offsite backups are automatically created for you: <https://frappecloud.com/docs/sites/backups> > >

To setup Dropbox Backup, > Home > Integrations > Dropbox Settings

Step 1: Login to Dropbox Developer area

<https://www.dropbox.com/developers/apps>

Step 2: Create a new Dropbox app

Create new

Step 3: Fill in the details for your new app

Choose Dropbox API and type as APP FolderSetup APP Name

https://support.frappe.io/files/nBdh7wu.png

Step 4: Insert your custom domain Redirect URI

https://{yourwebsite.com}/api/method/frappe.integrations.doctype.dropbox_settings.dropbox_settings.dropbox_auth_finishSet Redirect URL

Step 5: In a new window, open the Dropbox Settings page in your ERPnext installation

Step 6: Set backup frequency and email

Set the frequency to download your site backups to your Dropbox account.

set frequency

Step 7: Input Keys from your Dropbox App window

From your Dropbox App page, enter the app key and (unhidden) app secret into the ERPnext Dropbox settings page.

Alternatively, you can enter it manually in as follows,

sites/{sitename}/site_config.json
       {
 "db_name": "demo",
 "db_password": "DZ1Idd55xJ9qvkHvUH",
 "dropbox_access_key": "ACCESSKEY",
 "dropbox_secret_key": "SECRECTKEY"
}

Step 8: Click Save before continuing

Step 9: After saving, click "Allow Dropbox Access"

The Dropbox login page will open in the new tab. This might require you to allow pop-up for your ERPNext account.

Step 11: Allow Dropbox Access

On successful login, you will find a confirmation message as following. Click on "Allow" to let your ERPNext account have access to your Dropbox account.

Allow

Step 12: Confirm Backups Work

From the ERPnext Dropbox page, click and then go to you Dropbox files view. You should see a new folder in Dropbox named and inside of it your {New App} folder. Inside of it should be backup folders for both files and database. So for an app named , following are the folder locations:

Take Backup NowAppserpnext
Database files: /Apps/erpnext/database
Public files: /Apps/erpnext/files
Private files: /Apps/erpnext/private/files

> Note: If the compressed backup size exceeds 1GB (Gigabyte), the system will upload the latest available backup to Dropbox instead of generating a new backup file.

Sales Interest / Dunning

https://docs.frappe.io/erpnext/dunning

A document to be sent as a persistent demand for debt payment.

Dunning is a document to store and send as a persistent demand for debt payment against an unpaid Sales Invoice.

To access the Dunning list, go to:

Home > Accounting > Dunning

1. Prerequisites

A Dunning can only be created against an overdue Sales Invoice.

  • Dunning Type

A Dunning Type is used to pre-fill interest, fees and text blocks in a new Dunning.

2. How to create a Dunning

A Dunning is created against a list of overdue scheduled payments. You can create a dunning in two different ways:

a) Create a new Dunning

  1. Go to the Dunning list and click on "Add Dunning".
  2. Select a Customer and click "Fetch Overdue Payments". This will show a list of overdue Sales Invoices for this customer. Select the ones you would like to fetch into this Dunning and click on "Get Items".

b) Create a Dunning from an overdue Sales Invoice

  1. Go to the Sales Invoice list and open any overdue Sales Invoice.
  2. Click on "Create > Dunning". This will fetch all overdue payments from the invoice's payment schedule table into a new Dunning.

Fill the remaining fields

  1. Select a Dunning Type to fill interest, dunning fees and text blocks with predetermined values. Or you can set these values manually as well.
  2. You can already set an income Account (for example, "Other interest and similar income") and Cost Center for the income generated from interest and dunning fees. These will be used once a Payment Entry is created from this Dunning.
  3. Save and submit the Dunning before sending it to the Customer.

Dunning example

2.1 What is a Dunning Type

Dunning Type stores default values for dunning fee, interest rate and text blocks to be included. For example, a Dunning Type "First Notice" will not have any fees, but Dunning Type "Second Notice" will have a dunning fee and interest charged on the outstanding amount.

Dunning Type

2.2 Statuses

These are the statuses that are auto-assigned to Dunning.

  • Draft: A draft is saved but yet to be submitted.
  • Unresolved: The Dunning is unresolved when it is submitted but no payments have been received.
  • Resolved: The Dunning is resolved when the outstanding payment has been received.
  • Cancelled: A cancelled status is a cancelled Dunning document.

3. Payment

When you receive a full payment, including interest and fees, please open the unresolved Dunning and click on "Create > Payment". This will create a Payment Entry against the outstanding scheduled payments and record the interest and fees as "Payment Deductions or Loss". The Payment Entry will automatically set the Dunning's status to resolved.

Dunning Payment
  1. Payment Entry
  2. Sales Invoice

Duplicate Records

https://docs.frappe.io/erpnext/duplicate-record

'Duplicate' is a feature that helps you to copy values of existing document as-is into a new document.

Scenario

A customer has placed a 'reorder' for certain items with an electronic items supplier.

Since the new Sales Order will have all the details the same as that of the original Sales order, the supplier can simply open the original one and 'Duplicate' the order. The values of the original document will get updated as it is in the new Sales Order. Any changes, if required can be made thereafter.

To make a Duplicate document, you can go to the original document and click on 'Duplicate' from the Drop-Down menu.

Duplicate Record

E Commerce Settings

https://docs.frappe.io/erpnext/e_commerce_settings

The legacy Shopping Cart Settings and Products Settings are combined into a single E -Commerce Settings page.

The e-commerce settings in ERPNext can be leveraged by users to manage and streamline the online sales processes. These settings can enable users to efficiently manage product listing, customer management and integration with other ERPNext modules seamlessly.

E Commerce Settings / Webshop Settings in the awesomebar (search bar)

E Commerce Settings

E Commerce Settings

Products Per Page

Define how many products to show per page on the Product Listing in the All Products page ().

/all-products

Filters and Categories

Filters and Categories

Filters and Categories

You can also add filters to your listing. There are two types of filters:

  1. Field Filters: Enable the Field Filters checkbox and add the fields based on which you want to have filters. These fields will also be used as categories for the Shop by Category page.
  2. Attribute Filters: Enable the Attribute Filters checkbox and add the attributes based on which you want to have filters.

Display Settings

  1. Hide Variants: Only show Website Item Templates on the Product Listing.
  2. Enable Variant Selection: Show a configure button if the Item has variants. It can be used to narrow down the specific item based on Attributes.
  3. Show Price: Show Item Price on the product page.
  4. Show Stock Availability: Show whether the Item is in stock.
  5. Show Stock Quantity: Show available stock on the product page.
  6. Allow items not in stock to be added to cart: Allow items not in stock to be added to Cart.
  7. Show Apply Coupon Code: Additional provision to apply coupon code at checkout.
  8. Show Contact Us Button: Show a contact us button which customers can use to enquire about the Item. It will create a Lead in the system.
  9. Show Public Attachments: Show public attachments in the Sales Order generated, after checkout, for Customers.

You can Hide Variants only when Attribute Filters are disabled.

Shopping Cart

  1. Company: Specify the company that the web shop is set up for.
  2. Price List: Mention Price List to consider while fetching Item Prices.
  3. Enable Shopping Cart: Add the provision to add items to Cart.
  4. Default Customer Group: Add the Default Customer Group to be set while auto creating customers on adding to Cart.

Checkout Settings

  1. Enable Checkout: If checkout is disabled, when your customers add an item to Cart, they can click on the Request for Quotation button to get a quote for it. A Quotation is generated in the system. If enabled, a Sales Order is generated on clicking on the Place Order button in the Cart.
  2. Payment Gateway Account: If checkout is enabled, you must have PayPal Integration or Razorpay Integration.
  3. Payment Success Url: After payment completion redirect users to the selected option.
  4. Show Price in Quotation: If checkout is disabled, you can choose whether or not to show prices against Website Items in the Quotation.
  5. Save Quotations as Draft: If checkout is disabled, on clicking on the Request for Quotation button, you can choose whether the auto-generated Quotation must be auto-submitted or kept in the Draft state.

Add-ons

  1. Enable Wishlist: Add the provision to add items to a Wishlist
  2. Enable Reviews and Ratings: Add the privision for customers to leave reviews and ratings against Website Items.
  3. Enable Recommendations: Add the provision to show manually selected recommended items against a Website Item.

Shop By Category

The Shop By Category page is an out-of-the-box page that lists categories linked to Website Items. These categories can be configured in the Filters and Categories section's Field Filters table.

You can also select a slideshow as the banner of the page.

Guest Display Settings

  1. Hide Price for Guest: You can show or hide prices against Website Items for guest users (users who are not logged in).
  2. Redirect on Action: If a guest user tries to add a Website Item to Cart or to the Wishlist, you can select a URL to redirect them to. By default, guest users are redirected to the page. You can instead redirect them to a custom Web Form of choice by adding a URL here e.g.
/login/contact-us

Easy steps to setup Workflow

https://docs.frappe.io/erpnext/easy-steps-to-setup-workflow

When a company has multiple levels of approval for a document, a Workflow can be set.
In ERPNext, you can go to Workflow list --> Create New --> Name the workflow and define :1. States 2. Transition rules.

  1. States :

When a document is passed on for different levels of approval, there are states defined at each level for the role of the user.

  1. Transition Rules :

For instance: A Sales user is only allowed to create a Quotation and it can be saved in the Draft state. Further, it can be sent to the Sales Manager for approval and the User with this role can have the permission to either Approve or Reject the Quotation after which it can either be sent to the Draft State if Rejected or final Approved State.

Error Messages: A document cannot be Cancelled before it is Submitted.
[This is a typical error faced by users who define the state of the Document cancelled before Submitting it. Doc Status 1 defines that the Document will be Submitted at that State, thus the State with Doc status 2 should only be defined in the Transition after the State with Doc status 1. ]
Setup a Simple Workflow to begin with and let us know what you think more on Workflows! We love to see our Users Happy!! ;)

Edit Submitted Document

https://docs.frappe.io/erpnext/edit-submitted-document

To edit a submitted document, you need to cancel it first. Following are steps to edit submitted document. These steps assume you have the appropriate permissions for cancelling and editing a document.

Step 1: Cancel Submitted Document

You will find Cancel button on upper right corner of submitted document.

Cancel Doc

Step 2: Amend the document

On cancellation of submitted document, Amend button will be became visible.

Amend Doc

Step 3: Save and Submit the document

On clicking Amend button, same document will become editable again. After Making required changes, save and submit the document.

Note: If your document is linked with other documents, then you will need to cancel the dependant document before cancelling the parrent document.

Resave and Submit Doc

Example: If you have created Delivery Note and Sales Invoice against Sales Order, which you need to amend, then you should first Cancel Delivery Note and Sales Invoice made for that Sales Order. Then amend Sales Order, re-save and re-submit it.

Edit a Field after Submission

https://docs.frappe.io/erpnext/editing-a-field-after-submission

In ERPNext, once a document is submitted, you can only edit it through Cancel > Amend. However, you can still make certain fields (custom fields) editable after submission using the Allow on Submit feature. For example, we have created a custom field called "Supplier ID" in Supplier Quotation. To allow editing of this field after submission, follow the following steps:

Go to Settings > Customize Form and select the Form Type (Supplier Quotation in this case).

Expand the field row and check the "Allow on Submit" checkbox.

Click on Update.
This setting will allow you to edit this field even after submitting the document without amending it.
Note: The Allow on Submit feature works only for non-standard fields (custom fields).

Signature Field

https://docs.frappe.io/erpnext/electronic-signature

Electronic signature can be created in ERPNext using the Signature field type. This field allows you to write a signature in a block, just like the signature on a paper.

To create an electronic signature, follow the following steps:

  1. Open the DocType and go to Customise Form.
  2. In the Form view or Fields table, create a new field called Signature and select the Field Type as Signature.

Screenshot 2024-06-21 at 5.32.17 PM

Screenshot 2024-06-21 at 5.29.51 PM
  1. Click on Update.
  2. Refresh the page and put your signature.

Screenshot 2024-06-21 at 5.27.47 PM

Email Settings

https://docs.frappe.io/erpnext/email

There is a process for configuring email in ERPNext that can greatly enhance communication and productivity within the system. By configuring your email settings, you can seamlessly send and receive emails directly from ERPNext which allows efficient correspondence with clients, suppliers, and team members in order to maintain transparency.

Additionally, the users can personalise email templates, set up auto-replies, and schedule email notifications, enhancing productivity and streamlining communication workflows within the ERP system.

Email Account

https://docs.frappe.io/erpnext/email-account

You can sync your email account with ERPNext to send and receive emails from ERPNext.

You can manage multiple incoming and outgoing Email Accounts in ERPNext. There has to be at least one default outgoing account and one default incoming account. If you are on the ERPNext cloud, the default outgoing email is set by us.

To access Email Accounts, go to:

Home > Settings > Email Account

  1. Prerequisites

Before creating an Email Account, you need an Email Domain. However, you can skip creating an Email Domain if you're using one of the services listed below, then create here for set up

  • Gmail
  • Yahoo
  • Sparkpost
  • SendGrid
  • Outlook.com
  • Yandex.mail
  1. How to create an Email Account
  1. Go to the Email Account list, click on New.
  2. Enter the email address with the domain. Domains need to be created in order to create an email account. You don't need to create a domain if you're syncing an email from certain providers as listed here.
  3. Enter the email account password.
  4. Save. If the credentials are correct, the email account will be synced.

For some services like Gmail, you may need to enable 2FA and use App Passwords.

2.1 Additional options when creating an Email Account

Use Different Email Login ID: To use an alternative email login and password to access this account. For example, if you have notifications@example.com and you want users to access this email with an alternate email ID, they should tick this checkbox. The recipients will see notifications@example.com as the sender.

Awaiting password: If you're creating this account on behalf of someone and the password is unknown, tick this checkbox. When the other user logs in, they'll be prompted to enter the password.

Use ASCII encoding for password: Ticking this will use ASCII encoding for the password.

Configuration of the Email Account

3.1 Default Email Accounts

ERPNext will create templates for a bunch of email accounts by default. Not all of them are enabled. To enable them, you must set valid email account details.

There are two types of email accounts, outgoing and incoming. Outgoing email accounts use an SMTP service to send emails and emails are retrieved from your inbox using an IMAP or POP. Most email providers such as Gmail, Outlook, or Yahoo provide these services.

Defining Criteria

3.2 Incoming Email Accounts

To set up an incoming Email Account, check on Enable Incoming and set your POP3 settings, if you are using a popular email service, these will be preset for you.

Incoming EMail

The following options are available for incoming emails:

  1. Use IMAP
  2. Use SSL
  3. Attachment Limit
  4. Default Incoming: If ticked, all replies to your company (eg: replies@yourcomany.com) will come to this account.
  5. Email Sync Option: Whether to sync all or only unseen emails.
  6. Initial Sync Count: Number of emails to sync the first time.

Automatic Document Creation Through Linked Emails

This feature creates documents when an email is sent to a particular pre-configured email.

For example, you can link support@example.com to the Issue DocType. After doing this, whenever an email is sent to support@example.com, the system will automatically create an Issue is the system.

Similarly, if you link jobs@example.com, when emails are sent to jobs@example.com, a Job Applicant document is automatically created.

Enable Automatic Linking in Documents will link emails to documents, to know more click here.

3.4 Outgoing Email Accounts

All emails sent from the system, either by the user to contact or via notifications or via transaction emails, will be sent from an Outgoing Email Account.

To set up an outgoing Email Account, check on Enable Outgoing and set your SMTP server settings, if you are using a popular email service, these will be preset for you.

Outgoing EMail

The following options are available for outgoing emails:

Use TLS

Port

Disable SMTP server authentication

Add Signature: The default signature is appended to the end of each email.

Default Outgoing: Notifications and bulk emails will be sent from this outgoing server.

Always use Account's Email Address as Sender: The email address of this account will be mentioned as the sender for outgoing emails.

Send unsubscribe message in an email: Send a link to unsubscribe from emails sent from this account.

Track Email Status: Track if your email has been opened by the recipient. Note that, if you're sending to multiple recipients, even if one recipient reads the email, it'll be considered "Opened".

Enable Auto Reply: If enabled, enter an auto-reply message.

Append Outgoing Email to Sent Folder: If using custom email servers like Zimbra or CPanel, SMTP will not automatically append emails to the Sent folder. Enabling this option will ensure all emails are explicitly appended to the email account's Sent folder.

Use SSL for Outgoing Emails: Use SSL as a standard for outgoing emails. Defaults to port 465.

How ERPNext handles replies

In ERPNext when you send an email to contact like a customer, the sender will be the user who sent the email. In the Reply-To property, the Email Address will be of the default incoming account (like ). ERPNext will automatically extract these emails from the incoming account and tag them to the relevant communication.

[replies@yourcompany.com](mailto:replies@yourcompany.com)

Note for self implementers: For outgoing emails, you should set up your own SMTP server or sign up with an SMTP relay service like mandrill.com or sendgrid.com that allows a larger number of transactional emails to be sent. Regular email services like Gmail will restrict you to a limited number of emails per day.

If you encounter errors when configuring an email account, refer to this page.

  1. Video
  1. Email Inbox
  2. Email Digest
  3. Auto Email Reports
  4. Sending Email
  5. Email Domain

Email Campaign

https://docs.frappe.io/erpnext/email-campaign

An Email Campaign is a coordinated set of emails sent to leads or contacts according to a particular schedule.

Email Campaigns are still one of the most effective ways to reach your Customers, Contacts or Leads and keep them engaged. For example, you could set up Email Campaigns for introducing your product to the customers, with every email revealing an interesting feature of your product.

To create an Email Campaign, go to:

Home > CRM > Campaign > Email Campaign

1. Prerequisites

Before creating and using Email Campaign, these need to be created first:

2. How to Create an Email Campaign

  1. Go to the Email Campaign list, click on New.
  2. Select the Campaign for which you want to set up an Email Campaign.
  3. Set the 'Start Date' for the Email Campaign.
  4. In 'Email Campaign For', select whether you want to set up Email Campaign for a Lead or a Contact or for an Email Group to send to multiple email contacts.
  5. In 'Recipient', select the respective Lead or Contact or Email Group for whom you want to start the Email Campaign.
  6. In 'Sender', select the user of the system who should be the sender of the emails.
  7. Save

Email Campaign

The above Email Campaign is for the following Campaign:

Campaign Schedule

Note: The Send After (days) field in Campaign specifies the day on which email is to be sent relative to the Start Date of Email Campaign. Notice the 'End Date' in the above Email Campaign. It is '26-07-2019', which is 4 days after the 'Start Date', '22-07-2029', as the Campaign Schedule ends on day 4.

2.1 Create multiple Email Campaigns for a Campaign

You can also create new Email Campaigns for different Leads or Contacts for the same Campaign though the Campaign Dashboard.

  1. Go to the Campaign for which you want to create Email Campaigns.
  2. Click on + in front of Email Campaigns to create a new Email Campaign for the Campaign.

Email Campaigns from Dashboard

3. Features

3.1 Linked Communication

When emails are sent to the respective leads or contacts, Communication is linked to the Email Campaign document. You can view all the emails sent in your document.

Linked Communication

3.2 Unsubscribe from Email Campaign

If a lead or contact does not want to continue getting emails regarding the campaign, he or she can unsubscribe from the Email Campaign via the unsubscribe link sent with the email.

Unsubscribe Link

When the lead or contact unsubscribes, the status of the Email Campaign document changes to 'Unsubscribed'.

Unsubscribed

3.3 Use Lead or Contact fields in Email Template

The Email Template has the context of the document you have specified in the 'Email Campaign For' field. If you want to display the fields from your Lead or Contact document in your Email Template you will have to use for the same. For example, if 'Email Campaign For' is 'Contact', you can mention the 'first name' of your Contact as  in the Email Template as shown below:

doc.fieldnamedoc.first_name

Email Template Document

Then the emails sent would look like this:

Email Campaign Doc Data

3.4 Status indication

Status indicates the state of the Email Campaign, the various Statuses are:

  • Scheduled: When the Email Campaign has not yet started but scheduled on a future 'Start Date'.
  • In Progress: The campaign would be marked as 'In Progress' between 'Start Date' and 'End Date' of the campaign.
  • Completed: After the 'End Date' of the campaign, the status will be changed to 'Completed'.
  • Unsubscribed: When the Lead or Contact unsubscribes from the Campaign.

Email Campaign Status
  1. Campaign
  2. Lead
  3. Contact

Next: Newsletter

Email Digest

https://docs.frappe.io/erpnext/email-digest

Email Digests allow you to get regular updates about your sales, expenses and other critical numbers directly in your Email Inbox.

Email Digests are a great way for top managers to keep track of the big numbers like “Sales Booked” or “Amount Collected” or “Invoices Raised” etc.

To set up Email Digest, go to:

Home > Settings > Email Digest

  1. Enter a name for the Email digest.
  2. Set the frequency of mails to be sent.
  3. Add or remove recipients.
  4. Select the items to be included in the digest.
  5. Save.

Example:

Email Digest
  1. Auto Email Reports
  2. Sending Email

Email Domain

https://docs.frappe.io/erpnext/email-domain

The is the display name of an email network/service account you're setting up for your email services in ERPNex and other Frappe apps.

Email Domain

You can skip to Email Account creation if you are using one of the services listed here.

You can configure Email Domains in ERPNext for easy setup of all Email Accounts. To find Email Domain settings go to:

Home > Settings > Email Domain

What is my Email Domain?: You might have purchased an Email service from your internet service provider or your IT services provider. For example, if you access your business mailbox with URL like http://mail.yourcompany.com, then yourcompany.com is expected to be used as your email domain. ERPnext tries to guess the from your initially entered example if you started from there.

Email DomainEmail Address

If you want to send and receive emails on your ERPNext account, you need to correctly setup an . You may be using free mail services like GMail or Yahoo. In this case, you don't need to create a domain, instead select a service provider from the list. However, you might have to allow access to ERPNext for your GMail account.

Email Domain

ERPNext creates a template using example.com for your reference. You should add your new domain if you want to use it in your ERPNext account.

Email Domain

IMPORTANT: If your actual mail account id differs from the work email address you use in the setup later, you need to use the option when creating the different work mail accounts to communicate with your service and use the related password!

Email AccountUse different Email ID

Email Domain

1. How to create an Email Domain

Go to the Email Domain list, click on New.

Enter the Example Email Address. This is where you enter your business email address. For example, if your email ID is yourname@yourcompanyname.com you should enter this.

Email Server. This is the URL of your mail server or the email service that you have purchased. For example, it may be mail.yourcompany.com or imap.yourcompany.com.

Use IMAP. IMAP and POP are two services used by most mail servers for incoming emails. If your Email server allows IMAP service for the incoming emails keep this checked. Otherwise, leave this unchecked.

Use SSL. If your mail server uses SSL (Secure Socket Layer) communication keep this checked.

Do I have SSL?: You may have purchased SSL certificate from your IT service provider for SSL and they may have set up SSL for your mail server. If you're using 'https' while accessing mail server over browser then you might have SSL setup.

Use SSL for Outgoing. If your mailserver uses SSL for outgoing, enable this to explicitly use SSL for outgoing emails. Defaults to port 465.

Append Outgoing Email to Sent Folder. If you are not using standard mailservers provided by GMail and similar services, you might need to enable this option to append all outgoing emails to the email account's inbox. (Recommended for email servers like Zimbra and CPanel).

Attachment Limit (MB). You can limit the size of file attachments in emails sent from ERPNext.

SMTP Server is the outgoing email service address of your email server.

Tick Use TLS if your SMTP service supports TLS for security.

Default port. SMTP service is usually set on port 25. If your email server is set up on a separate port number you can set that up here.

1.1 After saving the domain

Once you click on save, these settings are validated by ERPNext and the Email Domain gets saved. Sometimes this could take a few seconds and you might have to wait. This email domain is then available in a dropdown called Domain in the Email Accounts screen.

Email domain in email account

Entered everything but still unable to setup Email Domain?

If you've entered and verified the above settings and are still unable to setup Email Domain, you can contact ERPNext support within your account for help.

  1. Email Account
  2. Email Inbox

Email Dropbox

https://docs.frappe.io/erpnext/email-dropbox

When you receive emails from Leads, Customers, Suppliers, or other business partners, you might wish to attach those to their relevant records in ERPNext. One way to do so is to save the email and upload it as an attachment. However, this could turn into a cumbersome process. ERPNext offers a better way to handle this through its "Email Dropbox" feature.

When enabled, each record in ERPNext will have it's own unique email address to which you can forward emails. You can click on the email address to copy it to your clipboard, which can then be added to the "To", "Cc", or "Bcc" field of the email that you wish to send.

1. Enable Email Dropbox Feature

In Email Account, check 'Enable Email Dropbox'.

Enable Email Dropbox

2. Copy Unique Email Address in Any Record

Once the Email Dropbox feature is enabled, the unique email address becomes visible in all the records. You can click on the same and the address is copied to your clipboard. You can directly paste it in 'To', 'Cc' or 'Bcc' and send the email.

Unique Email Address

3. Email in Timeline

Once the email is received, ERPNext attaches it to the appropriate record and it will be visible in that record's timeline.

Email in Timeline
  1. Email Domain
  2. Email Account
  3. Email Inbox

Email Error in Sending or Receiving

https://docs.frappe.io/erpnext/email-error

In ERPNext, you can customize the Incoming and Outgoing Email Gateway. On saving an Email Account, ERPNext tries establishing a connection with your email gateway. If your ERPNext account is able to connect fine, then Email Account is saved successfully. If not, then you might receive an error as below.

Email Error

This indicates that using login credentials and other email gateway details provided in the Email Account, ERPNext is not able to connect to your email server. Please ensure that you have entered valid email credentials for your Email Gateway. Once you have configured Email Account successfully, you should be able to send and receive emails from your ERPNext account fine.

Note: Your ERPNext account is connected with an ERPNext email server by default. If you don't want to use your own email server, you can continue sending emails using ERPNext email server, without any configuration required in the Email Account.

Email Inbox

https://docs.frappe.io/erpnext/email-inbox

Once an email account is added, the email inbox will be accessible.

Running a business involves many transactional email exchanges with parties like Customers and Suppliers and other members within the company. Email Inbox feature allows you to pull all your business emails into your ERPNext account. Enabling access to business emails with other transactional details makes ERPNext a single platform for accessing all business information in one place.

In ERPNext, you can configure Email Inbox for each System User. Following are the detailed steps to configure Email Inbox for a User.

1. Create a User

You can configure an Email Inbox for a System User only. Hence ensure that you have added yourself and your colleagues as a User and assigned them required permissions.

To know how to add a new User, go to the User page.

2. Create an Email Domain

Email Domain for the following Services is available out-of-the-box and you can directly proceed to create an Email Account. Know more about creating an Email Domain here.

  • Gmail
  • Yahoo
  • Sparkpost
  • SendGrid
  • Outlook.com
  • Yandex.mail

Email Service

To be able to send and receive emails into your ERPNext account from other email services (like WebMail or Gmail), you should set up an Email Domain master. In this master, email gateway details like SMTP Address, Port No., IMAP/POP3 address details are captured. If you have ever configured a local email client (like Outlook), Email Domain master requires details to be fed similarly.

To add new Email Domain, go to:

Home > Settings > Emails > Email Domain > New

Email Domain

Know more about Email Domains here. Once you have configured an Email Domain for your Email Service, it will be used for creating Email Accounts for all the Users in your ERPNext account.

3. Email Account

Create an Email Account based on the Email ID of the User. For each User whose email account is to be integrated with ERPNext, an Email Account master should be created for it.

If you are creating an Email Account for your colleague who's Email Password is unknown to you, then check field "Awaiting Password". As per this setting, a User (for whom Email Account is created) will get a prompt to enter email password when accessing his/her ERPNext Account.

Email Password

If you are creating an Email Account for Email Inbox of a User, then leave Append To field as blank.

Read Email Account documentation for more details on how to setup.

4. Linking Email Account in the User master

Once an Email Account is created for a User, select that Email Account in the User. This will ensure that emails pulled from the said Email ID will accessible only to this User in your ERPNext account.

Email User Link

You can link multiple emails with one user.

5. Using Email Inbox

If you have correctly configured Email Inbox as instructed above, then on the login of a User, Email Inbox icon will be visible. This will navigate the user to Email Inbox view within the ERPNext account. All the Emails received on that email will be fetched and listed in the Email Inbox view. User will be able to open emails and perform various actions on them.

5.1 Folders

In ERPNext, you can link multiple Email Accounts with the single User. To switch to Inbox of a different email account and access other folders like Sent Emails, Spam, Trash, click on Email Inbox option in the left bar.

Email Folders

5.2 Actions

On the emails in your inbox, you can take various actions like Reply, Forward, Mark as Spam or Trash.

Email Actions

You can relink an email to a document like Issue, Lead, Opportunity, etc. based on the context of the email. Select the document type and the document to link the email to.

Make from Email
  1. Email Account
  2. Sending Email
  3. Email Domain

Email Template

https://docs.frappe.io/erpnext/email-template

Every email sent is different but certain emails can be standardized, usually known as Email Template or Standard Reply.

To access the Email Template list, go to:

Home > Settings > Email > Email Template

1. How to create an Email Template

  1. Go to the Email Template list, click on New.
  2. Enter a name for this Email Template.
  3. Enter a Subject for this Email Template.
  4. Response is the standard content of the email that will be a part of this template.
  5. Save.

Email Template

DocType Associated: (optional) The DocType associated with this template.

1.1 How to use Email Template

You can use this Email Template in the Emails that are sent from ERPNext in the "CC, BCC & Email Template" field of the email section of the document. ERPNext will fetch the subject and response as per the template selected.

You can set a Default Email Template for each document type via Customize Form.

1.2 How to get fieldnames

The fieldnames you can use in your email template are the fields in the document from which you are sending the email. You can find out the fields of any documents via Customize Form and selecting the document type (e.g. Sales Order)

1.3 Using HTML to build the template

There's a check that you can toggle to switch from the text editor to a code editor. This allows finer control over the body of the email and makes it easier to use for features like loops in Jinja.

Use HTML

1.4 Templating

Templates are compiled using the Jinja. To learn more about Jinja, visit this page.

  1. Email Account
  2. Email Inbox

Email Group

https://docs.frappe.io/erpnext/email_group

An Email Group is a list of subscriber email IDs to which you send newsletters.

You can manage subscribers by grouping them into different groups.

You can group existing and potential customers into different groups based on their territory or products they are interested in. You can group the email ID of all employees so that you can share information with them.

To access the Email Group list, go to:

Home > Settings > Email > Email Group

1. How to Create an Email Group

  1. Go to the Email Group list and click on New.
  2. Enter 'Title'.
  3. Click on 'Save'
  4. Click on Action > Add Subscribers.
  5. Enter Email Addresses.
  6. Click on 'Add'

2. Features

2.1 Import Email IDs from Transactions

You can import email IDs from existing transactions.

Click on Action > Import Subscribers and select a transaction like Lead. Click on Import and all the email IDs mentioned in the email IDs will be imported.

2.2 Email Templates

You can specify the confirmation email and welcome email template for the email group. A confirmation email will be sent to confirm a person's subscription to your newsletter. The welcome email is sent when the person confirms their subscription to your email newsletter.

Confirmation Email Template: This email template is used to replace the default template sent for newsletter subscription. The confirmation email generated via this template is sent when someone subscribes to the Email Group Website.
Welcome Email Template: Whenever a subscriber is added to an email group after confirmation, the email template set here will be sent to them.

Email Group Templates

Integration Categories

https://docs.frappe.io/erpnext/erpnext_integration

ERPNext provides a wide range of integration capabilities that allow businesses to seamlessly connect with various third-party applications and services to enhance operational efficiency and data flow.

These integrations span across e-commerce platforms, payment gateways, shipping providers, Google services, e-commerce providers, etc. By integrating ERPNext with these systems, businesses can streamline their processes, reduce manual data entry, improve data accuracy, and gain deeper insights into their operations, which will eventually help in making informed business decisions.

To integrate ERPNext with other applications that aren't listed here, you can use Frappe's REST API. Visit this link to learn more about it:

Frappe Rest API

Authentication Integrations

Backup Integrations

Bank Integrations

E-commerce Integrations

Shipping Integrations

Payment Integrations

Telephony Integrations

Google Integrations

ERPNext Shipping

https://docs.frappe.io/erpnext/erpnext_shipping

Introduced in version 13

The ERPNext Shipping app helps you compare shipping rates being offered by multiple service providers, generate labels, and track your shipments' status.

Integration with the following service providers is available:

  1. LetMeShip
  2. SendCloud

To avail these features, the ERPNext Shipping app will have to be installed on your site. You can the avail the app on GitHub, on Frappe Cloud Marketplace or you can contact your hosting platform.

  1. Setting Up

For the app to work smoothly, you will have to generate an API key from at least one of the platforms listed above. Here is a guide to set them up:

1.1 SendCloud

  1. Register on SendCloud.
  2. Follow these steps to generate a Public Key and a Secret Key.
  3. Search for SendCloud in the awesomebar.
  4. Add the Public Key in the 'API Key' field and the Secret Key in the 'API Secret' field of the SendCloud DocType.
  5. Check the Enabled field.
  6. Save.

Sendcloud API

1.2 LetMeShip

  1. Register on LetMeShip.
  2. Follow these steps to generate an API ID and API Password.
  3. Search for LetMeShip in the awesomebar.
  4. Add the API ID and API Password to the LetMeShip DocType. Check the Enabled field.
  5. Save.

LetMeShip API
  1. Features

2.1 Comparison of Shipping Rates

Once a Shipment is submitted, if the app is installed, the button Fetch Shipping Rates will appear. On clicking, you will get a list of services along with their service providers and rates.

Fetch Rates

You can also add frequently used services to your Preferred Services using Parcel Service Type:

  1. Assuming the highlighted service is our frequently used service, let us add it to our Preferred Services

2. Go to Parcel Service Type > New. Create a new Parcel Service. In our case, it is 'TNT'. 3. Add a Parcel Service Type. In our case, it will be 'Economy'. 4. Add 'Economy' to the Parcel Service Type Alias table as well. 5. Add a description (optional). 6. Enable the Show in Preferred Services List field. Save.

Highlight Service

Now when you click on the Fetch Shipping Rates button, you will always see the previously highlighted service under Preferred Services.

Preferred Service

2.2 Creation of Shipment

After comparing rates, you can proceed with any one of the services by clicking Select against the appropriate service row. On clicking, a Shipment is automatically created on your service provider's platform.

You will notice that the Shipment Information section is updated automatically, based on the Shipment created.

Shipment Creation

You can also search for your transaction on your service provider's platform using the Shipment ID field.

2.3 Printing Labels

To avail the Print Shipping Label button, the Shipment ID must be generated in the current record.

Print Label Button

You can then click on it and generate your shipping label.

Dummy Shipping Label

You can also track your shipment's status by clicking on View > Track Status.

Note : The currently integrated platforms may not serve your region. Please visit the links attached against them to know more.

Freeze Exchange Rate

https://docs.frappe.io/erpnext/exchange-rate-field-frozen

In ERPNext, you can fetch Exchange Rates between currencies in real-time, or save specific exchange rates as well. In ERPNext, saved exchange rates are also referred as Stale Exchange Rate.

In your sales and purchase transactions, if the field of Currency Exchange Rate is frozen, that is because the feature of allowing stale exchange rates in transactions is enabled. To you wish to make Currency Exchange Rate field editable again, then disable the feature of Stale Exchange Rate from:

  • Accounting > Accounting Masters > Accounts Settings
  • Uncheck field "Allow Stale Exchange Rates".

Allow Stale Exchange Rates
  • Save Account Settings
  • Refresh your ERPNext account
  • Check Sales / Purchase transaction once again

After this setting, the Exchange Rate field in the transactions should become editable once again.

Exchange Rate Revaluation

https://docs.frappe.io/erpnext/exchange-rate-revaluation

In ERPNext, you can make accounting entries in multiple currencies. For example, if you have a bank account in a foreign currency, you can make transactions in that currency and the system will show bank balance in that specific currency.

The purpose of Exchange Rate Revaluation master is to adjust the balance in General Ledger accounts according to any changes in the currency exchange rates. This is useful when you are closing your accounts books and want to update your Company's GL accounts by bringing in the money from other currency accounts.

Note: From ERPNext v14, Exchange Rate Revaluation can handle Foreign Currency Accounts that have '0' balance in either Base or Account Currency. A Separate Journal of type 'Exchange Gain/Loss' will be created in draft status for them.

To access the Exchange Rate Revaluation list, go to:

Home > Accounting > Multi Currency > Exchange Rate Revaluation

  1. How to set up currency in an account
  1. To get started with multi currency accounting, you need to assign the accounting currency in an Account record.
  2. You can define Currency from the Chart of Accounts while creating an account.

3. You can also assign/modify the currency for existing accounts by opening the specific Account record. 4. Click on the Account and Click on Edit.

Currency in Ledger

Set Account Currency
  1. How to enable Exchange Rate Revaluation

Exchange Rate Revaluation feature is for dealing with the situation when you have accounts with different currencies in one Company's Chart of Accounts.

  1. Go to: Setup > Company > select the company.
  2. Set the 'Unrealized Exchange Gain/Loss Account' field in Company DocType. This account is to balance the difference of total credit and total debit.

3. Go to Accounting > Setup > Exchange Rate Revaluation > New. 4. Select the Company. 5. Click the 'Get Entries' button. It'll fetch the accounts which have currency different from the 'Default Currency' set in the Company. 6. This will fetch the new exchange rate automatically if not set in Currency Exchange DocType for that currency else it will fetch the 'Exchange Rate' set in the Currency Exchange DocType. 7. On Submitting, Create Journal Entry button will appear. 8. Clicking on this button will create a Journal Entry for the Exchange Rate Revaluation. 9. On submitting the Journal Entry, the general ledger is affected as follows:

Unrealized Exchange Gain/Loss Ledger in CompanyExchange Rate RevaluationJournal Entry Option After SubmissionExchange Rate Revaluation Journal EntryExchange Rate Revaluation GL

3. Automate Exchange Rate Revaluation Creation

Provision for Auto creation of Exchange Rate Revaluation is available in Company master under

**Exchange Rate Revaluation Settings**

Screenshot 2023-07-10 at 11.52.17 AM
  1. Inter Company Journal Entry
  2. Inter Company Invoices

Exotel Integration

https://docs.frappe.io/erpnext/exotel_integration

This integration allows you to integrate Exotel into your ERPNext account. Leads and their phone numbers captured via Exotel can be saved directly to your ERPNext.

1. Features

  • Track incoming calls in your ERPNext account.
  • Shows existing lead/customer information pop-up to employees when an incoming call is received.

2. How to setup

2.1 Setup your Exotel account

  • Login to your Exotel account and go to App Bazar.
  • Create a new App for a new flow.
  • Setup the flow as you wish it to be.
  • In your connect API under "Create popup..." and paste following URL:
https://<your-site>/api/method/erpnext.erpnext_integrations.exotel_integration.handle_incoming_call

Connect AppletCall Popup Section

Note: Replace in URL with your site name. For example, if the site name is frappe.erpnext.com then the URL will be:

<your-site>https://frappe.erpnext.com/api/method/erpnext.erpnext_integrations.exotel_integration.handle_incoming_call
  • After that add a Passthru applet under "After Call Conversation ends" and paste following URL:
https://<your-site>/api/method/erpnext.erpnext_integrations.exotel_integration.handle_end_call

After Conversation Ends Section

After call ends section

Note: Make sure to check "Make Passthru Async".

  • Similary, add a Passthru applet under "If nobody answers..." section and paste following URL:
https://<your-site>/api/method/erpnext.erpnext_integrations.exotel_integration.handle_missed_call

No Response Section

After call ends section

Note: Make sure to check "Make Passthru Async".

  • Save the flow.
  • Now assign this newly created app to your ExoPhone from which you receive your business calls.

2.2 Setup in ERPNext

  • From Awesome Bar, go to 'Exotel Settings'.
  • Set your "Exotel SID" and "Exotel Token". You can find your Exotel API key and token on your Exotel Dashboard.
  • Go to Communication Medium.
  • Add your ExoPhone and schedule that number. Based on this schedule employees will receive the popup.

Deferred Revenue/Expense Report

https://docs.frappe.io/erpnext/expense_report

Calculating the actual income/expense from a Sales/Purchase Invoice with deferred items can be tricky. This report aims to simplify that process.

Report can calculate the actual and expected/upcoming posting for a deferred item at the item and invoice level.

Deferred Revenue

Deferred Expense

Export Data for Specific Year or Filter

https://docs.frappe.io/erpnext/export-data-for-specific-year-or-filter

Question: I need to export Sales Invoices for Particular Fiscal Year only.

Answer:

The system allows you to use any combination of filters including a Date Range to extract the data whether from the List view or from the Report View.

List View

Report View

Setting up fairlogin

https://docs.frappe.io/erpnext/fairlogin-integration

fairlogin is an GDPR aware oAuth provider by fairkom.eu.

To setup fairlogin as an oAuth provider, go to:

Home > Integrations > Social Login Key

Setup keycloak

fairlogin is based on keycloak, so the parameters may be similar for any custom oAuth setting facilitating keycloak.

There you add a new client, select open-id as client protocol and enter the address of your ERPnext instance as the Root, Redirect and Base URL.

Adding your ERNext service as a client is being offered as a service by fairkom.

ERPnext keycloak Settings

Setup fairlogin

To enable fairlogin as an ERPNext login option, you need to configure the following parameters:

  • Base URL https://id.fairkom.net/auth/realms/fairlogin/
  • Authorize URL https://id.fairkom.net/auth/realms/fairlogin/protocol/openid-connect/auth
  • Redirect URL /api/method/frappe.integrations.oauth2_logins.login_via_fairlogin
  • Access Token URL https://id.fairkom.net/auth/realms/fairlogin/protocol/openid-connect/token
  • API Endpoint https://id.fairkom.net/auth/realms/fairlogin/protocol/openid-connect/userinfo

ERPnext fairlogin Settings

On enabling service, the system will allow to login with any fairlogin account.

The default role of a new user is Blogger (currently hardcoded).

Feedback Request Using a Web Form

https://docs.frappe.io/erpnext/feedback-request-using-web-form

In the ERPNext version 11, we have a feature which allowed collecting a Feedback from a Customer and users. In ERPNext, this feature is now manageable using built-in customisation tools like:

  • Custom DocType
  • Web Form
  • Notification

Following are the steps on how you should configure a feature and start collecting feedback.
Feedback as a DocType
Create a Custom DocType for Rating on these lines

  1. In the first fields, list a DocTypes for which you want to collect a rating
  2. In the Document Name field, just enter the name of first field "document", so that it becomes a Dynamic Link field.
  3. Enter a Rating field. You can also choose other data or select field, if you wish to take rating on those lines.

Web Form for Feedback Form
Once a DocType is created, simply create a Web Form by fetching all the standard fields from Feedback doctype.

Create a Notification

A Notification should be created to send a link to a user following which they will submit a rating. You can define the conditions for triggering an email based on standard features of Notification. Following is the help on how to define a message and link which would take user to a Web Form and allow submitting a rating.

https://example.erpnext.com/feedback?new=1&document=Sales%20Order&document_name={{doc.name}}

Where:

  • example.erpnext.com will be URL of your ERPNext account
  • feedback will be the name of custom doctype added for collecting a feedback
  • document=Sales%20Order& will be a name of DocType for which you want to sent a notification
  • document_name={{doc.name}} will pick-up specific document name and update in the Document Name field of Feedback form.

Quick Demo:
Here is the demo of how link would be generated, Web Form would be filled and capture in ERPNext.

Fetch value in a child table field from Master

https://docs.frappe.io/erpnext/fetch value in child table field

Sample Script to fetch expirydate field from Batch doctype to Sales Invoice Item table

Step 1: Create Custom Script for Sales Invoice (parent) doctype

Step 2: Script as below & Save

frappe.ui.form.on("Sales Invoice Item", "batch_no", function(frm, cdt, cdn) {
 var d = locals[cdt][cdn];
 frappe.db.get_value("Batch", {"name": d.batch_no}, "expiry_date", function(value) {
 d.expiry_date = value.expiry_date;
 });
});

Fetch child table values using Jinja tags

https://docs.frappe.io/erpnext/fetch-child-table-values-using-jinja-tags

Jinja templating can be used to reference any field on any DocType in ERPNext. This can simply be done by calling {{doc.field_name}} on a print format, where 'doc.name' is the variable name for a certain field.

However this approach does not work for Child Tables inside a DocType. This article will help you traverse and display all rows pertaining to a child table inside any DocType.

Pre Requisites

We would require the variable name of the child table on the corresponding DocType. This can be viewed from the 'Customize Form' section for the required DocType. The same is illustrated below

We will also require the variable names of all the fields inside the child table which need to be referenced. This can be obtained from the 'Customize Form' section of the corresponding child table as shown below

Method 1. Displaying rows of a Child Table on an unordered list

{% for row in doc.items %}

  • Item Code: {{ row.get_formatted("item_code", doc) }}

Quantity: {{ row.get_formatted("qty", doc) }}

Rate: {{ row.get_formatted("rate", doc) }}

Amount: {{ row.get_formatted("amount", doc) }}

{% endfor %}

The output on a print format would be as follows

Method 2. Displaying rows of a Child Table as a table

Item Code Quantity Rate Amount
{{item.item_code }} {{item.qty}} {{item.rate}} {{item.amount}}

The output on a print format would be as follows

This template can be used for reference. Any additional fields on the child table field can be fetched in a similar manner, by amending the Jinja template.

Fetch the entire address text on a custom field

https://docs.frappe.io/erpnext/fetch-the-entire-address-text-on-a-custom-field

This article will help you to add a custom field for fetching full addresses on any DocType, using a 3 step approach.

Step 1. Cosmetic customisations on the required DocType

We would first need to add two new fields on the DocType for fetching addresses:-

a) A field of type 'Link' which points to our Address master

b) A field of type 'Read Only' which would display the full address

Take note of the variable names of the new fields you create. This information will be required later in the process.

For information on creating custom fields on a DocType you can refer to the following link - Custom Fields in ERPNext

Once this step is done you should have two new fields on the selected DocType, as illustrated below:-

Step 2. Adding a Client Script for fetching the full address from our Address master

Search for 'Client Script' on the search bar, and create a new Client Script. Select the required DocType on which we need to fetch the address on.

In the section for the script paste the following Client Script:-

frappe.ui.form.on("DocType Name", "address_link_field", function(frm, cdt, cdn) {    if(frm.doc.address_link_field){     return frm.call({      method: "frappe.contacts.doctype.address.address.get_address_display",      args: {       "address_dict": frm.doc.address_link_field      },      callback: function(r) {       if(r.message)           frm.set_value("full_address_field", r.message);              }     });    }    else{        frm.set_value("full_address_field", "");    }});

Here we will need to replace the the following changes based on your use case:-

a) Replace 'DocType Name' with the Name of the DocType we need to fetch the address on. Eg. Sales Invoice, Purchase Order etc.

b) Replace 'addresslinkfield' with the variable name of the custom link field we created in Step 1

c) Replace 'fulladdressfield' with the variable name of the custom read only field we created in Step 1

Once this is done, you would have a Client Script which looks as below:-

Step 3. Save, enable and test the Client Script

Once the Client Script is amended as per your use case, we can Save it and enable it by clicking the 'Enabled' checkbox.

Go to the required DocType and refresh the page for the changes to take effect.

Now when an address is selected on our custom link field, the entire address will be fetched on our custom read only field, as illustrated below:-

Fetching Values From Master

https://docs.frappe.io/erpnext/fetch-values-from-master

To pull a value of a link on selection, use the method.

add_fetch

add_fetch(link_fieldname, source_fieldname, target_fieldname)

Example

Let' say you have created a Custom Field VAT ID () in Customer and Sales Invoice and want to make sure that this value gets updated every time you select a Customer in a Sales Invoice.

vat_id

To configure this, in the Sales Invoice Custom Script, you can add this line:

cur_frm.add_fetch('customer','vat_id','vat_id')

Fetching Data from a Document

https://docs.frappe.io/erpnext/fetching-data-from-a-document

Question: We track Customer's PO Number and PO Date field in the Sales Order. To have these values fetched into Sales Invoice as well, we have inserted Custom Field in the Sales Invoice. However, when we create Sales Invoice from the Sales Order, Customer's PO details are not being fetched.

Answer: When data is fetched from one transaction to the another, then mapping of the data is done based on the field names. If two transactions have fields with the exact same name, then it's values are mapped.

For example, if you want Customer's PO No. and PO Date to be fetched from Sales Order to Sales Invoice, then you should ensure that Custom Fields added in the Sales Invoice has an exact same field name as in the Sales Order.

Sales Order (standard fields)

Standard fields in Sales Order

Sales Invoice (custom fields)

Custom Field in Sales Invoice

Since names for the Customer's PO related fields are same in the Sales Order and Sales Invoice, when creating Sales Invoice from the Sales Order, values in these fields are auto-fetched.

Values fetching from Sales Order to Sales InvoiceValues fetching from Sales Order to Sales Invoice

Le Fichier des Écritures Comptables [FEC]

https://docs.frappe.io/erpnext/fichier_des_ecritures_comptables

Since 2014, a legal requirement makes it mandatory for companies operating in France to provide a file of their general accounting postings by fiscal year corresponding to an electronic accounting journal.

For ERPNext users this file can be generated using a report available if you system's country is France.

Requirements

To generate the report correctly, your Chart of Account needs to be setup according to the french accounting rules.

All accounts need to have a number in line with the General Chart of Account (PCG) and a name.

The SIREN number of your company can be added in the "Company" doctype.

CSV generation

You can generate the required CSV file by clicking on "Export" in the top right corner of the report.

Testing Instructions

To test the validity of your file, the tax administration provides a testing tool at the following address: Outil de test des fichiers des écritures comptables (FEC)

Field Types

https://docs.frappe.io/erpnext/field-types

The following are the types of fields you can define while creating new ones, or while amending standard ones.

Link field is connected to another master from where it fetches data. For example, in the Quotation master, the Customer is a Link field. To know more, click here.

Dynamic Link field is one which can search and hold value of any document/doctype. Click here to learn how Dynamic Link Field functions.

Check

This will enable you to have a checkbox here.

Check Field TYpe

Select

Select will be a drop-down field. You can add multiple results in the Option field, separated by row.

Select Field Type

Table

A table will be a kind of Link field which renders another DocType within the current form. For example, the Item Table in the Sales Order is a Table field, which is linked to Sales Order Item DocType.

Table Field Type

Attach

Attach field allows you to browse a field from the File Manager and attach the same herein.

Attach Field Type

Attach Image

Attach Image is a field wherein you will be allowed to attach Images of the format jpeg, png, etc. This becomes the Image representing that particular DocType. For e.g., you would want the image of an Item in its DocType, you can choose your field to be an Attach Image Field.

Field Type Image

Text Editor

Text Editor is a text field. It has text-formatting options. In ERPNext, this field is generally used for defining Terms and Conditions.

Field Type Text Editor

Date

This field will enable you to enter the Date in this field.

Field Type Date

Date and Time

This field will give you a date and time picker. The current date and time (as provided by your computer) are set by default.

Field Type Date and Time

Barcode

In this field, you can specify the field as Barcode which will allow you to enter a Barcode number. Oce you do that, the Barcode would automatically get generated against the number.

Field Type Barcode

Button

This kind of field will be an action button, like Save, Submit, etc.

Field Type Button

Code

If the Field Type is selected as code, you will be able to enter a Code to the field.

Field Type Code

Color

You will have the option of specifying the color for this Form.

Field Type Colour

Column Break

Since ERPNext has multiple column layouts, using Column Breaks, you can divide a set of fields into a maximum of two columns.

Field Type Column Break

Currency

Currency field holds numeric value, like Item Price, Amount, etc. Currency field can have value up to six decimal places. Also, you can have a currency symbol being shown for the currency field.

Field Type Currency

Data

The data field will be a simple text field. It allows you to enter a value of up to 140 characters, making this the most generic field type. To enable validations for Email, Name, or Phone Number inputs, set options to "Email", "Name", "Phone" in Settings > DocType.

Field Type Data

Float

Float field carries numeric value, up to nine decimal places. Precision for the float field is set via Set Precision

Setup > Settings > System Settings

The setting will be applicable on all the float field.

Field Type Float

Geolocation

Use Geolocation field to store GeoJSON feature_collection. Stores polygons, lines, and points. Internally it uses the following custom properties for identifying a circle.

Read Geolocation field for more understanding.

Field Type Geolocation

HTML

You can select the field to be an HTML field when you want the data to be entered in HTML format.

Field Type HTML

Image

Image field will render an image file selected in another attach field.

For the Image field, under Option (in Doctype), a field name should be provided where the image file is attached. By referring to the value in that field, the image will be a reference in the Image field.

Field Type Image

Int (Integer)

The integer field holds numeric value, without decimal place.

Field Type Integer

Small Text

Small Text field carries text content and has more character limit than the Data field.

Field Type Small Text

Long Text

You can define your field to a Long Text Field when you would want to enter data with an unlimited character limit.

Field Type Long Text

Text

This field type would allow you to add text in the field. The character limit in Small text, Long text and Text fields shall be determined based on the Relational Database Management System.

Field Type Text

Markdown Editor

This field will allow you to add the text in Markup language.

Field Type Markdown Editor

Password

The password field will have decoded value in it.

Field Type Password

Percent

You can define the field as a Percentage field which in the background will be calculated as a percentage.

Field Type Percent

Rating

You can define the field as a Rate field which in the background will be calculated as Rating.

Field Type Rating

Read Only

Read Only field will carry data fetched from another form which will be non-editable. You should set Read Only as field type if its source for value is predetermined.

Field Type Read Only

Section Break

Section Break is used to divide the form into multiple sections.

Field Type Section Break

Signature

You can define the field to be a Signature field wherein you can add the Digital Signature in this field.

Screenshot 2024-08-28 at 3.01.56 PM

Table MultiSelect

This is a combination of 'Link' type and 'Table' type fields. Instead of a child table with 'Add Row' button, in one field multiple values can be selected.

Field Type Table MultiSelect

Time

This is a Time field where you can define the Time in the field.

Field Type Time

Duration

You can use the Duration field if you want to define a timespan.

Field Type Duration

If you don't want to track duration in terms of days or seconds, you can enable "Hide Days" and "Hide Seconds" options respectively in your Form.

Field Type Duration Options

This is how the duration field looks after the above changes.

Field Type Duration

Filter Options in Select Field

https://docs.frappe.io/erpnext/filter-options-in-select-field

Let's say you have two drop-down fields named State and City. State has two values Karnataka and Maharashtra and City has four values, Bangalore, Mysore, Mumbai, and Pune. If you would like to filter options in City based on the value chosen in State, you can write custom script as shown below.

frappe.ui.form.on("Lead", "state", function(frm) {
  if(frm.doc.state == "Karnataka") {
    set_field_options("city", ["Bangalore","Mysore"])
  } else if(frm.doc.state == "Maharashtra") {
    set_field_options("city", ["Mumbai","Pune"])
  } else if(frm.doc.state == "") {
    set_field_options("city", ["","Bangalore","Mysore","Mumbai","Pune"])
  }
});

Opening Account

Here’s an example of a custom script that filters options in a Select field within a child table:

frappe.ui.form.on('Parent DocType', {
    refresh: function (frm) {
        // Trigger this function when the form is refreshed or reloaded
        frm.fields_dict['child_table_fieldname'].grid.get_field('select_fieldname').get_query = function(doc, cdt, cdn) {
            return {
                filters: [
                    ['Some Field', '=', 'Some Value'] // Replace with your filter criteria
                ]
            };
        };
    }
});

Example Scenario

Suppose you have a parent DocType called Sales Order with a child table field called items. The child table has a Select field named itemcode, and you want to filter the options to show only items from a specific category.

Here’s how your script might look:

frappe.ui.form.on('Sales Order', {
    refresh: function (frm) {
        frm.fields_dict['items'].grid.get_field('item_code').get_query = function(doc, cdt, cdn) {
            return {
                filters: [
                    ['Item Group', '=', 'Specific Category'] // Adjust the filter criteria as needed
                ]
            };
        };
    }
});

Finance Book

https://docs.frappe.io/erpnext/finance-book

A Finance Book is a book against which all the accounting entries are recorded.

You can have multiple finance books. For example, one book for tax authorities and another for stockholders. This is useful if you have to report depreciation and other values in different ways based on regulatory requirements. You can also use this to post alternate balance sheets for your internal reporting.

Finance Book is not a mandatory setup. But if you choose to create multiple Finance Books, then you can make entries against a specific Finance Book by selecting that book in Journal Entry. If a Finance Book field is blank in a Journal Entry that means the entry will be available in all finance books.

Many a times, for fixed asset depreciation, a Company may use different depreciation methods (Straight Line / Written Down Value / Double Declining Balance) for different finance books. You can set up different depreciation schedules for each Finance Book. Then, automatic depreciations will booked against that Finance Book according to the schedule.

Finance Book
  1. Cost Center
  2. Budgeting

Financial Report Template

https://docs.frappe.io/erpnext/financial-report-template

What are Financial Report Templates?

Financial Report Templates help create professional financial reports automatically that fit dynamic business needs. Instead of editing reports in Excel, one can set up a template and it will generate reports like Balance Sheets, Profit & Loss statements, and Cash Flow reports with just a few clicks.

Main Components

1. Financial Report Template

This is a report blueprint that defines:

  • Template Name: Descriptive name for identification (e.g., "Monthly P&L")
  • Report Type: Balance Sheet, Profit & Loss, Cash Flow, or Custom
  • Rows: The individual lines that make up the report

2. Financial Report Row (Child Table)

Each row in template represents a line in the financial report:

  • Display Name: What appears in the report (e.g., "Total Revenue")
  • Reference Code: Short code for calculations (e.g., REV100)
  • Data Source: Where the numbers come from:
  • Formatting: Bold, colors, indentation for professional appearance
  • Account Data: Pulls balances from Chart of Accounts
  • Calculated Amount: Uses formulas to compute values based on other rows
  • Visual Elements: Blank lines or section headers for formatting

Financial Report Template with Example Rows

3. Account Category

Classification system for accounts that enables standardized filtering across companies.

Examples:

  • Cash and Cash Equivalents: Bank accounts, cash, short-term deposits
  • Trade Receivables: Customer invoices and receivables
  • Operating Expenses: Office rent, utilities, salaries
  • Revenue from Operations: Sales and service income

Example Account Category Setup

How to Get Data for Report

1. Account Data - Pull from Chart of Accounts

This gets actual balances from accounts. One can filter accounts by category or specific criteria.

Simple Example: Get all cash balances

  • Set filter to: category
  • Choose balance type: (balance at end of period)
Cash and Cash EquivalentsClosing Balance

Advanced Example: Get only sales-related expenses

  • Filter: Operating Expenses that contain "Sales" in the name
  • This might include: "Sales Commission", "Sales Travel", "Sales Training"

Balance Types Explained:

  • Opening Balance: Balance at the start of the period
  • Closing Balance: Balance at the end of the period
  • Period Movement: How much changed during the period

Account Data configuration screen showing filter options

Easily check account coverage for rows to ensure all relevant accounts are included.

2. Calculated Amount

Use this to add, subtract, or calculate percentages using other rows in template.

Simple Examples:

  • Total Assets:
  • Gross Profit:
  • Profit Margin:
CURRENT_ASSETS + NON_CURRENT_ASSETSREVENUE - COST_OF_GOODS_SOLD(NET_PROFIT / REVENUE) * 100

Smart Calculations (prevents division by zero):

(GROSS_PROFIT / REVENUE) * 100 if REVENUE != 0 else 0

3. Visual Elements

Blank Line: Add space between sections for better readability. Display name can still be given. Eg: Bold Text like "ASSETS" or "LIABILITIES" to organize report.

Column Break: Create multi-column or horizontal layouts. Display name acts as the header for the new column.

Section Headers: Used in conjunction with Column Breaks to separate different sections horizontally. Eg. Keep Totals aligned with each other in multi-column layouts.

Finished report showing proper spacing and headers

How to Assign Categories to Accounts

Method 1: One by One Go to Accounts -> update Account Category field

Method 2: Bulk Assignment using Data Import Tool

Making Reports Look Professional

Text Formatting

Make reports easy to read and professional:

  • Bold Text: Say for main headings like "TOTAL ASSETS" or "NET PROFIT"
  • Italic Text: Say for subtotals and calculated amounts
  • Colors: Highlight important figures (red for losses, green for profits)
  • Indentation: Create visual hierarchy (main items flush left, sub-items indented)
  • Hide Empty Rows: Don't show accounts with zero balances to keep reports clean
  • Reverse Signs: Show expenses as positive numbers (makes P&L easier to read)
  • Include in Charts: Select which rows to include in automatic chart generation

Advanced Features

Easily build advanced templates by adding calculated rows

Balance Validation:

Say add a check that Assets = Liabilities + Equity

Ratios:

  • Current Ratio: Current Assets ÷ Current Liabilities
  • Profit Margin: Net Profit ÷ Revenue × 100
  • Debt Ratio: Total Debt ÷ Total Equity

Report with ratios and balance check highlighted

Built-in Validations

The system automatically checks your templates to prevent errors:

What Gets Checked

Reference Codes:

  • Must be unique (can't have two REV100 codes)
  • Must start with a letter and contain only letters, numbers, and underscores
  • Example:
  • ✅ REV100, ASSET1
  • ❌ 100REV, ASSET-1

Calculations:

  • Checks that references to a row actually exist
  • Prevents circular references (A depends on B, B depends on A)
  • Makes sure parentheses match up:
(A + B) * C(A + B * C

Account Filters:

  • Verifies that account categories exist
  • Checks filter syntax is correct

Ready-to-Use Templates

ERPNext comes with professional templates to use immediately:

Template selection screen showing available templates

Customize these templates or create one from scratch.

Getting Started

Configure financial reports in three easy steps:

  1. Ensure Account Categories are mapped to Chart of Accounts
  2. Edit existing templates or create a new Financial Report Template
  3. Check for account coverage, formatting, and calculations

Fiscal Year

https://docs.frappe.io/erpnext/fiscal-year

A Fiscal Year is used to record and report the transactions for the year.

It is also known as a financial year or a budget year. It is used for calculating financial statements in businesses and other organizations. The Fiscal Year may or may not be the same as a calendar year.

For tax purposes, companies can choose to be calendar-year taxpayers or fiscal-year taxpayers depending on the jurisdiction. In many jurisdictions, regulatory laws regarding accounting and taxation require such reports once per twelve months. However, it is not mandatory that the period should be a calendar year (that is, 1 January to 31 December).

A Fiscal Year usually starts at the beginning of a quarter, such as April 1, July 1 or October 1. However, most companies' Fiscal Year also coincides with the calendar year, which starts at January 1. For the most part, it is simpler and easier that way. For some organizations, there are advantages in starting the Fiscal Year at a different time.

For example, businesses that are seasonal might start their Fiscal Year on July 1 or October 1. A business that has most of its income in the fall and most of its expenses in the spring might also choose to start its Fiscal Year on October 1. That way, they know what their income will be for that year, and can adjust their expenses to maintain their desired profit margins.

To access the Fiscal Year list, go to:

Home > Accounting > Setup > Fiscal Year

1 How to set up Fiscal Year

  1. Go to the Fiscal Year list.
  2. To set the Fiscal Year as default, click on the Set as Default button.
  3. In case you have multiple companies sharing the same Fiscal Year, you can add it as shown in the following screenshot:

Note -

1.New Fiscal Year should be created each year, at the end of the current fiscal year. Creation of new Fiscal Year before its begining has been automated in ERPNext.

2.Three days prior to the end of the current Fiscal Year, system checks if new Fiscal Year for the incoming year is already created. If not, then system auto-creates new Fiscal Year.

Fixing Fiscal Year Error

https://docs.frappe.io/erpnext/fiscal-year-error

While creating any entry, system validates if dates (like Posting Date, Transaction Date etc.) belong to Fiscal Year selected. If not, system throws an error message saying:

Date ##-##-#### not in fiscal year

You are more likely to receive this error message if your Fiscal Year has changes, but new Fiscal Year still not set a default. To ensure new Fiscal Year is auto updated in the transactions, you should setup your master as instructed below.

Create New Fiscal Year

Only User with System Manager's Role Assigned has permission to create new Fiscal Year. To create new Fiscal Year, go to:

Accounting > Accounting Masters > Fiscal Year

Read Fiscal Year to learn more.

Set Fiscal Year as Default

After Fiscal Year is saved, you will find option to set that Fiscal year as Default.

Set Fiscal Year as Default

Default Fiscal Year will be updated in the Global Default setting as well. You can manually update Default Fiscal Year from:

Settings > Core > Global Default

Current Fiscal Year Setting in Global Defaults

Save Global Default, and Reload your ERPNext account. Then, default Fiscal Year will be auto-updated in your transactions.

Note: In transactions, you can manually select required Fiscal Year, from More Info section.

Requirements for France

https://docs.frappe.io/erpnext/france

ERPNext aims to support local regulation for different regions in the world. In most cases, ERPNext is very flexible, so you can easily add custom fields and make custom reports to support the regulation of your region.

This section contains region specific features for France.

Freeze an Account

https://docs.frappe.io/erpnext/freeze-account

Once an Account is Frozen, you won't be able to use it for any accounting transaction.

To freeze an Account, go to Chart of Accounts, and edit an Account.

Ledger in Chart of Accounts

If User has Role define in the  Account Setting assigned, then he/she will be able to set an Account as Frozen.

Set Frozen Account To Yes

Freeze Accounting Entries

https://docs.frappe.io/erpnext/freeze-accounting-entries

After going live on ERPNext, whether it is your first ERP or accounting software or migrating from another application, then you need to ensure that recording accounting entries posting to periods earlier than your cutover date (cutover date is the first date on which ERPNext is considered the primary application for recording and processing business transactions and processes, respectively) to ensure the integrity of your data. This is controlled by the Freeze Accounting Entries feature in ERPNext. Below is how to use it.

To freeze accounting entries upto a certain date, follow below given steps:

Go to:

Accounting > Accounting Msters > Accounts Settings

Set Date: set date in the Accounts Frozen Upto field.

Books Closed Through

Now, the system will not allow to make any accounting entries before set date. If at all someone tries creating entries, system will show error message as below.

Frozen Date Error

You can still allow user with certain role to create/edit entries within accounts frozen date. You can set that Role in the Account Settings itself.

Role Allowed To Close Books

General Ledger

https://docs.frappe.io/erpnext/general-ledger

The General Ledger section in ERPNext's accounting module serves as a vital part for organising, recording, and managing all financial transactions within an organisation. It encompasses a comprehensive set of features and functionalities essential for maintaining accurate and up-to-date financial records.

Generate Item Code Based On Custom Logic

https://docs.frappe.io/erpnext/generate-item-code-based-on-custom-logic

Add this Custom Script in the script of Item, so that the new Item Code is
generated just before the Item gets saved.

 cur_frm.cscript.customvalidate = function (doc) {
  // clear itemcode (name is from itemcode)
  doc.itemcode = "";

  // first 2 characters based on itemgroup
  switch (doc.itemgroup) {
    case "Test A":
      doc.itemcode = "TA";
      break;
    case "Test B":
      doc.itemcode = "TB";
      break;
    default:
      doc.itemcode = "XX";
  }

  // add next 2 characters based on brand
  switch (doc.brand) {
    case "Brand A":
      doc.itemcode += "BA";
      break;
    case "Brand B":
      doc.itemcode += "BB";
      break;
    default:
      doc.itemcode += "BX";
  }
};

Geolocation Field

https://docs.frappe.io/erpnext/geolocation-field

The "Geolocation" field is used to capture and store geographical coordinates, such as latitude and longitude.

This can be useful for various purposes, such as tracking the location of assets, employees, or events. The geolocation data can help in mapping and visualizing the geographical distribution of various entities within the ERP system.

Here are a few key points about the Geolocation field in ERPNext:

  1. Storing Coordinates: The Geolocation field typically stores latitude and longitude values, which represent a specific point on the earth's surface.
  2. Usage in Modules: This field can be used in different modules where location information is relevant. For example, it can be used in the Assets module to track the physical location of assets or in the Employee module to log the locations of employees.
  3. Integration with Maps: The geolocation data can be integrated with map services (like Google Maps) to provide visual representations of locations. This can be helpful for route planning, site visits, and logistics management.
  4. Automated Capture: Some implementations allow for automated capture of geolocation data using GPS-enabled devices, ensuring accurate and real-time location tracking.
  5. Customization: ERPNext allows customization, so the Geolocation field can be added to custom forms and doctypes as per the specific needs of the organization.

geolocation field

Getting Started with ERPNext

https://docs.frappe.io/erpnext/getting-started-with-erpnext

Getting started with ERPNext can seem overwhelming, but focusing on these steps will help you set up and integrate the system effectively. Here’s a streamlined approach to kickstart your ERPNext journey.

1. Define Your Needs

  • Identify Requirements: Determine the key features you need (e.g., inventory management, accounting).
  • Set Goals: Clarify what you aim to achieve with ERPNext.

2. Choose Deployment

  • Cloud Hosting: Opt for an easy setup with minimal infrastructure by using Frappe Cloud or a third-party provider.
  • Self-Hosting: Install ERPNext on your own server if you have the technical resources and prefer control over your setup.

3. Setup ERPNext

  • Cloud: Sign-up and follow the setup instructions.
  • Self-Hosting: Prepare your server, and follow the installation guide to set up ERPNext.

4. Configure Basic Settings

  • Setup Admin Account: Create your administrator profile.
  • Enter Company Details: Input essential information like company name, address, and currency.
  • System Configuration: Configure different modules and workflows to match your requirements.

5. Train and Launch

  • Train Users: Provide training sessions or resources to help your team get familiar with ERPNext.
  • Go Live: Transition to ERPNext for your daily operations and monitor the system for any issues.

Global Defaults

https://docs.frappe.io/erpnext/global-defaults

Global Defaults helps you pre-set a few fields for system wide use.

Instead of manually inserting the values for certain fields, you might want to have them automatically fetched while creating documents. To do so, you can set the values in 'Global Defaults' so that the system can fetch them automatically and set as default while creating any transactions.

The values set here will impact all users and the default values for various fields will be set for them.

To access Global Defaults,

Home > Settings > Global Defaults

The fields which can be set as Global Defaults are as follows. Except currency, no other field is mandatory.

  • Default Company
  • Country
  • Currency
  • Hide Currency Symbol
  • Default Distance Unit
  • Disable Rounded Total
  • Disable In Words

The Default Distance Unit is used to calculate the total distance in Delivery Trips.

  1. System Settings

Setting up GoCardless

https://docs.frappe.io/erpnext/gocardless-integration

To setup GoCardless, go to

Explore > Integrations > GoCardless Settings

Setup GoCardless

To enable GoCardless in your ERPNext account, you need to configure the following parameters and Access Token and optionally (but highly recommended), a Webhooks Secret key.

You can setup several GoCardless payment gateways if needed. The choice of payment gateway account will determine which GoCardless account is used for the payment.

GoCardless Settings

On enabling service, the system will create a Payment Gateway record and an Account head in chart of account with account type as Bank.

GoCardless COA

It will also create a payment gateway account. You can change the default bank account if needed and create a template for the payment request.

Payment Gateway Account

After configuring the Payment Gateway Account, your system is able to accept online payments through GoCardless.

SEPA Payments Flow

When a new payment SEPA payment in initiated, the customer is asked to enter his IBAN (or local account number) and to validate a SEPA mandate.

Upon validation of the mandate, a payment request is sent to GoCardless and processed.

If the customer has already a valid SEPA mandate, when instead of sending a payment request to the customer, the payment request is directly sent to GoCardless without the need for the customer to validate it. The customer will only receive a confirmation email from GoCardless informing him that a payment has been processed.

Mandate cancellation

You can setup a Webhook in GoCardless to automatically disabled cancelled or expired mandates in ERPNext.

The Endpoint URL of your webhook should be:

https://yoursite.com/api/method/erpnext.erpnext_integrations.doctype.gocardless_settings.webhooks

In this case do not forget to configure your Webhooks Secret Key in your GoCardless account settings in ERPNext.

Supported transaction currencies

"EUR", "DKK", "GBP", "SEK"

Google Calendar Integration

https://docs.frappe.io/erpnext/google_calendar

ERPNext provides an integration with Google Calendar in order for all users to synchronize their Google Calendar Events with ERPNext.

How to set up Google Calendar Integration

In order to allow a synchronization with Google Calendar, you need to authorize ERPNext to get Calendar Events data from Google. Google Calendar Integration is set up with the following steps:

  • Create OAuth 2.0 Credentials via Google Settings.
  • In the Google Calendar list, click on New. Enter Calendar Name and the User for whom you want to sync and then save it.
  • Depending what data you want to sync, you can select following
  • Pull from Google Calendar - Syncs all event from Google Calendar to ERPNext.
  • Push to Google Calendar - Syncs all event from ERPNext to Google Calendar.
  • Now click on Authorize Calendar Access to authorize ERPNext to get Calendar Events data from Google.
  • Once Authorized, you can manually sync Google Calendar Event or let ERPNext sync Google Contacts daily.

How to use Google Calendar Integration

Creating an Event in ERPNext

  • Once Google Calendar Integration is succesful, all the events created in ERPNext will be synced if is checked.
  • Creating an Event in ERPNext
  • Deleting an Event in ERPNext
Push to Google Calendar

Syncing Events from Google Calendar

  • Once Google Calendar Integration is succesful, all the events in Google Calendar will be synced if is checked.
  • Syncing Events from Google Calendar to ERPNext
Pull from Google Calendar

Google Contacts Integration

https://docs.frappe.io/erpnext/google_contacts

ERPNext provides an integration with Google Contacts in order for all users to synchronize their Google Contacts with ERPNext.

How to set up Google Contacts Integration

In order to allow a synchronization with Google Contacts, you need to authorize ERPNext to get Contacts data from Google. Google Contacts Integration is set up with the following steps:

  • Create OAuth 2.0 Credentials via Google Settings.
  • In the Google Contacts list, click on New. Enter the Google Account Email you want to sync and then save it. Now click on Authorize Contacts Access to authorize ERPNext to get Contacts data from Google.

How to use Google Contacts Integration

Creating a Contacts in ERPNext

  • Once Google Contacts Integration is succesful, all the contacts created in ERPNext will be synced if is checked.
Push to Google Contacts

Creating a Contact in ERPNext:

It will be shown in Google Contacts:

Syncing Contacts from Google Contacts

  • Once Google Contacts Integration is succesful, all the contacts in Google Contacts will be synced if is checked.
Pull from Google Contacts

Google Drive Integration

https://docs.frappe.io/erpnext/google_drive

ERPNext provides an integration with Google Drive in order for all users to backup their data to Google Drive.

How to set up Google Drive Integration

In order to allow a ERPNext to upload backups to Google Drive, you need to authorize ERPNext to upload files to Google Drive. Google Drive Integration is set up with the following steps:

  • Create OAuth 2.0 Credentials via Google Settings.
  • In the Google Drive list, click on New. Enter the Backup folder name to save backups to Google Drive, the backup frequency and the email of the person to whom email is sent notifying the status of the backup and then save it. Now click on Authorize Drive Access to authorize ERPNext to push files to Google Drive.
  • Once Authorized, you can save your backup to Google Drive.

How to use Google Drive Integration

Note: If you are Frappe Cloud user, onsite and offsite backups are automatically created for you: https://frappecloud.com/docs/sites/backups

Uploading backup to Google Drive

  • Once Google Drive Integration is successful, you can upload the system backup as well as all your public and private files to Google Drive.
  • To backup data to Google Drive, click on Take Backup. Backup process will run in the background and you will be notified regarding the backup status.

Note: If the compressed backup size exceeds 1GB (Gigabyte), the system will upload the latest available backup to Google Drive instead of generating a new backup file.

Google Maps Integration

https://docs.frappe.io/erpnext/google_maps

ERPNext provides an integration with Google Maps to calculate and optimize time for Delivery Trips.

How to set up Google Maps Integration

To setup Google Maps in order to allow a ERPNext to calculate and optimize time for Delivery Trip, follow the steps:

How to use Google Maps Integration

Calculating and optimizing Delivery Trips

  • Once Google Maps Integration is succesful, you can calculate ETA for a delivery stop or optimize delivery stops

Google Settings

https://docs.frappe.io/erpnext/google_settings

To enable Google Integrations, ERPNext needs access to the API through which the data will be synced which is achieved using OAuth 2.0 Authentication Protocol.

How to set up Google Settings

For Google Calendar, Google Contacts, Google Drive and Google Indexing

In order to allow a synchronization with any of the above mentioned services, you need to authorize ERPNext to get data from Google. Following is an example for setting up Google Contacts Integration

  1. Create a new project on Google Cloud Platform and generate new OAuth 2.0 credentials.

Enable API Access in API Library for the Integration you wish to integrate.

  • Google Calendar: Calendar API
  • Google Contacts: People API
  • Google Drive: Drive API
  • Google Indexing: Indexing API

In API & Services > Credentials create a new Credential and select Create OAuth client ID

Select Application Type Web Application

Add to Authorized JavaScript origins.

https://{yoursite}

Add as an authorized redirect URI for Google Calendar.

https://{yoursite}?cmd=frappe.integrations.doctype.google_calendar.google_calendar.google_callback

Add as an authorized redirect URI for rest of the services.

https://{yoursite}/api/method/frappe.integrations.google_oauth.callback

  • Add your Client ID and Client Secret in the Google Settings in Home > Integrations > Google Services > Google Settings

For Google Maps

Setting the API Key is only required if you want to use the Directions API, for example in ERPNext's Delivery Trip. For the other features, this is not required.

In order to allow a synchronization with Google Maps you need to generate an API key as Google Maps doesn't need access to data from Google.

  1. Create a new project on Google Cloud Platform and generate new API Key.
  • Enable API Access in API Library for the Directions API and then add the API Key in the Google Settings in Home > Integrations > Google Services > Google Settings.

GST for multiple branches

https://docs.frappe.io/erpnext/gst-for-multiple-branches

This will help you automate GST calculation if your company has different branches with separate GSTIN.

This is an extension to the blog: 5 Steps to automate Indian GST in ERPNext

  1. Update your Company’s branch-wise addresses
  2. Configure State-wise GST Accounts (Optional)
  3. Item-wise GST setup
  4. Classification of Inter-State and Intra-State Taxes
  5. Configuring Invoice Templates

Step 1- Update your Company’s branch-wise billing addresses

The very first step is to update your company’s branch wise Address with appropriate GSTIN as it will differ (if in different states) frombranch to branch.



Now, make sure that your Customer's and Supplier's addresses have GST State and Party GSTIN configured properly.



Step 2 - Configure State-wise GST Accounts (Optional)

To configure, go to Chart of Accounts, create a state-wise set of GST accounts (CGST, SGST & IGST) as seen in the screenshot below.





Add these newly created accounts in GST Accounts table from GST Settings, to include this in all GST Reports.

Step 3 - Item-wise GST setup

a. Create Item Tax Template for different rates and add all the GST Accounts we have created in previous step.

b. Define the rates.

This helps system know which GST Accounts and Tax Rates to apply in the Invoices.

Your Item Tax Template should look like this:

The same way you can create different Item Tax Templates for different GST Rates.

After the creation of Item Tax Templates, you can start with assigning these templates to their respective Items from the Item Master.

Step 4 - Classification of Inter-State and Intra-State Taxes

We are nearly there.

Create two Tax Categories, for each of our branches in different State. The Source State on each Tax Category will correspond to each of our company’s branches.

Each state will have two Tax Categories, one for Inter State and other for Out State transactions.

For ‘Out State’ Tax Categories, mark ‘Is Inter State’ checkbox as enabled.

IN State Tax Category for Delhi:

OUT State Tax Category for Delhi:

Create for other States the same way as shown above.

Step 5 - Configuring our Invoice Templates

Finally, configure a set of two Sales Taxes and Charges Templates, and two Purchase Taxes and Charges Templates, for each Tax Categories created.



Go to Sales Taxes and Charges Template, and define a set of two templates for each state (as seen in the screenshot below for Maharashtra)

For IN State template, choose the IN State Tax Category and appropriate CGST & SGST account in Account Head.

For OUT State template, choose the OUT State Tax Category and appropriate IGST account in Account Head.

Note: Enter our Tax Accounts in Account Heads and leave rest as '0' - since the tax rates will be fetched from the Item Master.

Repeat the same process to configure Purchase Taxes and Charges Template and for other States as well.

We enjoy the fruits of our labour:

Refresh your account now as we have completed the setup now.

To verify if everything works as expected, create an Invoice or an Order:

  1. Select a Customer/Supplier.
  2. Check Company's Address and reselect it to whichever Branch you want to create the Invoice/Order from.
  3. Selecting Customer/Supplier will fetch the right template, check if the Taxes and Charges are fetched properly.

Example 1:

Here I have selected a Customer from Maharashtra and Company's Address as Maharashtra too, it should fetch the IN State template we created above.

It auto-fetched the following Taxes and Charges Template:

Example 2:

Here I have selected a Customer from Maharashtra and Company's Address as Delhi, it should fetch the OUT State template we created above.

It auto-fetched the following Taxes and Charges Template:

Additional Charges in Payment

https://docs.frappe.io/erpnext/handing-deductions-in-payment-entry

When a customer wires a payment amount through a bank or payment gateway, a transfer fee is applied to the transaction. This results in a difference between the amount paid by the Customer (equal to the invoice amount) and the amount credited to our bank account. In ERPNext, you can allocate this difference amount under the Payment Deductions or Loss section.

Use-case for deducting bank charges in Payment Entry

  • Invoice amount / Customer paid = $4810
  • Bank actually received = $4800
  • Bank deducted charges = $10

In the following steps. We will learn how to create a Payment Entry in which the invoice is marked as Paid, while the bank charges are booked as a deduction.

Allocate Paid Amount

In this field, enter the actual amount realised in the bank account. As per our use case, it will be $4800, even though the invoice amount is $ 4,810.

Allocate Invoice Amount against Sales Invoice

When the Paid Amount is updated to be less than the Invoice, the allocated amount against the Sales Invoice is automatically updated. In this case, it will be reduced. To ensure the Sales Invoice is fully paid after this payment entry, ensure the Allocated Amount is the same as the Invoice value.

In the Payment Reference table, ensure $4,810 is updated to Allocated Amount so the invoice is marked as paid.

Allocating the Difference Amount in Deductions

Because the Paid Amount ($4800) differs from the Allocated Amount ($4810), a $10 Difference Amount remains unallocated to any accounting ledger. To ensure the debit and credit postings in this entry match, an account will need to be allocated to account for the $10 difference. Since this difference arises from bank charges, the amount will be allocated to the relevant account selected in the Deductions table.

If your debtor & bank currency is different than base currency of a company, then ensure that value in the deduction table is entered in the base currency of a Company.

Final Posting

As per this allocation:

  • The invoice will be marked as completely paid
  • Bank account will only reflect the actual amount received in the bank, hence easing reconciliation
  • Accurate booking of bank charges or currency exchange gain/loss through Payment Deductions and Loss posting

Handling Excess Customer Payments

https://docs.frappe.io/erpnext/handling-excess-customer-payments

This document outlines the standard behavior for excess customer payments (Unallocated Amount) and provides the steps to configure ERPNext to automatically post these excess amounts to a separate Customer Advance (Liability) Account.

1. Standard Behavior: Unallocated Amount

By default, when a Payment Entry is created for a customer and the Paid Amount exceeds the total amount of the invoices it is linked to (the Allocated Amount), the excess amount is stored against the customer's Debtor (Receivable) account.

How it Works:

Excess Amount is Stored: The difference is labeled as an "Unallocated Amount" within the Payment Entry.

Credit to Customer: This unallocated amount acts as a credit balance on the customer's account.

Future Allocation: This credit can be automatically or manually allocated against future outstanding Sales Invoices for the same customer.

No Automatic Liability Posting: This excess amount does not automatically move to a separate liability account

2. Configuration for Advance Payments (Liability Account)

If your business process requires the excess amount to be immediately posted to a specific Customer Advance Liability Account (instead of remaining in the Debtor/Receivable account), you must configure the Advance in Separate Party Account feature.

Required Configuration Steps:

Step 1: Create the Customer Advance Account You must first create a specific Account of type 'Receivable' under the Liability Account Head.

  1. List itemGo to Accounting > Chart of Accounts.
  2. Create a new account (e.g., Customer Advances - Liability) under a primary Liability account (e.g., Current Liabilities).
  3. Set the Account Type to Receivable. (Note: Using the 'Receivable' type under Liability is a specific ERPNext requirement for this feature to link correctly to the customer ledger)

Step 2: Set the Advance Account in Company Master Next, you must specify this newly created account in the Company settings.

  1. List itemGo to Accounting > Company.
  2. Select your Company.
  3. Scroll to the Accounts section.
  4. In the field Advance Payments, select the Customer Advances - Liability account you created in Step 1.
  5. Save the Company record.

3. Creating a Payment Entry for Advance Allocation

Once configured, the system needs to be instructed to treat the payment as an advance rather than linking it to an invoice that results in an excess.

Recommended Method: Separate Advance Payment Entry The most straightforward and reliable method is to create the payment entry specifically for the advance amount.

  1. List itemGo to Accounting > Payment Entry.
  2. Set Payment Type to Receive.
  3. Select the Customer.
  4. Enter the Advance Amount (e.g., $2,500) in the Paid Amount field.
  5. Crucially: Do not link any invoices in the Allocations table. Leave the table empty.

System Behavior After Saving:

When the Payment Entry is saved without any allocations, the full Paid Amount will be automatically directed to the Customer Advances - Liability account configured in the Company master.

Alternative Method: Splitting the Payment

If the customer pays a single amount covering an invoice plus an excess, you can split the payment into two entries:

  1. List itemPayment Entry 1 (Invoice): Create a Payment Entry for the exact amount of the existing Sales Invoice.
  2. Payment Entry 2 (Advance): Create a second Payment Entry for the excess amount (e.g., $2,500), following the Recommended Method above (no invoice allocation).

This process ensures the excess funds are cleanly moved into the dedicated Liability account for proper accounting.

Help Articles

https://docs.frappe.io/erpnext/help-articles

Below is a few help articles which can help you configure the system as per your requirements.

System

Accounting

Buying

Selling

Assets

CRM

Stock

Project

Website

Homepage

https://docs.frappe.io/erpnext/homepage

A homepage is the default landing page of your website.

ERPNext's Website Module generates a default landing page for your website. You can customize it in Homepage.

To access the Homepage page in ERPNext, go to:

Home > Website > Portal > Homepage

1. How to setup Home Page

  1. Select the Company.
  2. Set the Title. This will be shown in the Browser Tab.
  3. Configure the Hero Section as explained in the next section.

Homepage

Homepage

Make sure your default 'Home Page' is set as in Website Settings for this to work.

home

2. Hero Section

There are three ways in which you can customize the way the Hero Section looks:

  1. Tag Line and Description (Default).
  2. Homepage Slideshow.
  3. Custom Hero Section.

2.1 Tag Line and Description

After you set your Tag Line, Description and Hero Image you'll have a decent looking front page. You can also change the URL for the Explore button under URL for "All Products".

Website Homepage

Website Homepage

2.2 Homepage Slideshow

Set the Hero Section Based On to Slideshow and the Homepage Slideshow field will appear.

Homepage Slideshow Setting

Homepage Slideshow Setting

Now, select an existing Slideshow or create a new one shown as follows:

Website Slideshow

Website Slideshow

For best results, make sure all of your slideshow images have same height and their width is greater than the height.

Website Homepage with Slideshow

2.3 Custom Hero Section

The third type of Hero Section allows you to write your own HTML.

Set Hero Section Based On to Hero Section.

Now create a new Hero Section. Set Section Based On as Custom HTML. Write your custom HTML in the Section HTML field.

Homepage Settings

Homepage Settings

You can write any valid Bootstrap 4 markup here.

New Hero Section

New Hero Section

It will look something like this: Homepage Hero Custom

Homepage Hero Custom

You can also show featured products on your Homepage by adding them to the Products table.

Homepage Products Table

Homepage Products Table

It will look something like this: Featured Products on Homepage

Featured Products on Homepage

4. Homepage Section

You can add custom sections on your Homepage by creating new Homepage Sections.

Go to Website > Portal > Homepage Section

A homepage section can consist of cards or Custom HTML. Set Section Based On to Cards.

New Homepage Section

New Homepage Section

Add details for each card like Title, Subtitle, Image, Content and Route in the Section Cards table.

It will look something like this: Homepage Section

Homepage Section

You can also control the order in which these sections appear by setting the Section Order. 0 will be shown first, followed by 1, and so on.

To add Sections with Custom HTML refer Custom Hero Section.

5. Custom Homepage

ERPNext allows you to have a completely different homepage if you don't want to use the default one described above.

To setup a custom homepage:

  1. Create a Web Page.
  2. Go to Website > Setup > Website Settings.
  3. Set Home Page as the of your Web Page.
route

Serialised Item Valuation Rate calculation

https://docs.frappe.io/erpnext/how-is-valuation-rate-of-serialised-item-calculated-in-erpnext

In ERPNext, Item's stock valuation rate is updated on creation of the following transaction:

  1. Purchase Receipt
  2. Stock Entry of type Material Receipt
  3. Stock Reconciliation made for updating stock opening balance

ERPNext supports 2 valuation types: FIFO & Moving Average.
You can select valuation method based on which item's value will be calculated. It can be set as per individual item as well as globally for all the items from Stock Settings.

Item valuation rates are calculated as per the valuation method set for them. However, in the case of serialised Item, these settings are ignored. The below Item, "Macbook Pro" is a serialised Item and it's valuation rate is not fetched from Item master. Instead, the valuation rate is updated from the first incoming stock entry rate, RS 199.80. Consequently, it is updated as per the other transactions carried out on this Item.
Item Master:


Stock Ledger:

To learn more about ERPNext Stocks module, click here

Add columns in Standard Report and Export

https://docs.frappe.io/erpnext/how-to-add-columns-in-the-standard-report-and-export

In Standard Reports of ERPNext such as SOA, Accounts Receivable/Payable etc, we provide an option to Add/Remove Columns from the documents and display it in the Report, these columns are only meant for reference at that particular moment of time.

If the User needs to Export along with the changes made by him in the Report, the User needs to Save the Report and then Export it.

Apply Tax on Another Tax or Charge

https://docs.frappe.io/erpnext/how-to-apply-tax-on-tax

Consider a prospect wants to apply tax on a tax. Let's take an example tax (NBT) is to be applied on the net total amount of items and then apply another tax (VAT) on it. In the below example, tax NBT 2% is to be applied on sum of value of items, and then tax VAT 15%.

In ERPNext, to map this in Sales Order/Invoice in Sales Taxes and Charges table:1. Select type of tax as On Net Total 2. Select or add new tax as NBT and set rate at 2%. 3. Then add a new row and select type of tax as On Previous Row Total and select or add new tax as VAT and set rate at 15%.


Expand the 2nd row and add the Reference Row # to 1.

Once you save the document and see the print preview, it will look like the following.

Change existing user's email ID

https://docs.frappe.io/erpnext/how-to-change-a-users-email-id

The User ID is created based on the email address. When a user is renamed, its value is updated in all existing records, including change logs. As a result, this is a resource-intensive action. If you encounter time-out issues while renaming a user, consider creating a new User ID using the updated email address and disabling the old user.

To change a User's Email Id, follow the steps:

User List -> Open the User > Click on Menu -> Rename > Enter the New Email Id . Save

Refer to the GIF here illustrating the same:

Create Supplier Quotation through Supplier Portal

https://docs.frappe.io/erpnext/how-to-create-a-supplier-quotation-through-the-supplier-portal

In ERPNext, Supplier Quotations can either be created manually or via the Supplier Portal. Suppliers can create Quotations via the Supplier Portal once they have logged into the system.

Pre-requisites:

  • The Supplier must be a registered Website User with "Supplier" role.
  • Supplier user account's Contact must be linked to the Supplier document.

For a Supplier to create a Quotation, there should be an existing Request for Quotation (RFQ) against them. To do this entire process, follow the following steps:

  1. Create a Request for Quotation for the Supplier in the system. For example, we are creating an RFQ for "MNO Suppliers".

  1. Now, the Supplier (MNO Suppliers in our case) has to log into the Supplier Portal using their login credentials. There, the Supplier will be able to view the RFQ

The Supplier has to enter the Item Rate and submit the RFQ.

Once the RFQ is submitted, a Supplier Quotation gets automatically created in the system against this RFQ. Click on the "View" option.

Observe that the Supplier Quotation is in the Draft state. After reviewing the Supplier Quotation, the user can submit it. This will also be reflected in the Supplier Portal.

Disable Any User

https://docs.frappe.io/erpnext/how-to-disable-users-in-the-erpnext-system

If you want to prohibit an ERPNext user from using the system then you can follow the below steps. This will be useful when your employees resign or in case you want to ban certain users from accessing the system.

How to disable a user?

  1. Type ‘User List’ in the awesome bar
  2. Select the user you want to disable
  3. Uncheck the ‘Enabled’ checkbox for the selected user
  4. Save your changes

Once the changes are saved, the user will be marked as 'Disabled' in the list which can always be re-enabled as per the need. After re-enabling a user, all the configurations associated with it will be retrieved as is.

Screenshot 2023-12-27 at 3.51.59 PM

Maximum User Limit Issue

https://docs.frappe.io/erpnext/how-to-fix-the-reached-maximum-user-limit-for-your-subscription-issue

Your ERPNext subscription depends on the number of System Users you subscribe for. Once you cross that limit, the system will not let you create any further number of users. For example, you have subscribed for 10 users. If you already have already created 10 System Users in your account, the system wont let you create the 11th System User, and you will get the below message.

To fix this, you will either have to:

Buy new users or

Disable the current users

However, sometimes, you may still face this issue even when you have not exhausted the number of System Users as per your subscription plan. For example, you have a limit of 5 System Users and you have only created 3 users. Yet while creating the 4th user, you get the above message. The reason for this can be that for some of the uses, the field of "Simultaneous Sessions" is greater than 1.

Every simultaneous session is considered as 1 System User. For example, if you have created 3 users and one of them has "Simultaneous Session" set to 3, then you have a total of 5 users, i.e. 3 + 1 + 1 = 5 simultaneous sessions/system users.

To allow the system to let you create more users, you will have to reduce the simultaneous sessions of these users. To do so, go to the User's profile, under Security Settings, set/reduce the "Simultaneous Session" accordingly.

Note: You will still be able to create Website Users as there is no limit for the same.

Sales Commission

https://docs.frappe.io/erpnext/how-to-give-commission-to-sales-partner

In ERPNext, the Commission to Sales Partner can be recorded in Sales Invoice, Order and Delivery Note, this is used to record the Sales Commission of the Partner which has no impact on the Accounting yet. The Commission of the Sales Partner can be checked via Sales Partner Commission or Sales Partner Commission Summary Report available in ERPNext.
To pay to the Sales Partner, you need to create a Supplier* with Sales Partner name and a Supplier Group* as Sales Partner and assign it to the Supplier.
Once you are done creating a Supplier, you can create a Payment Entry against the amount due in the Sales Partner Commission Report.
*Why Supplier and Supplier Group? *Creating a Supplier helps in application of Taxes and other Charges(if applicable against the Sales Partner).*Supplier Group is used to distinguish between your Suppliers and Sales Partners.

Edit Export/Print permissions for reports

https://docs.frappe.io/erpnext/how-to-grant-permissions-for-reports

To handle Export/Print permissions for a report, use Role Permission Manager of the DocType the report is created from.

Step 1:

Find out from which Document Type the Report is generated from

Step 2:

Go to Role Permission Manager, filter using the same Document Type (Sales Invoice in our example) and edit the permissions based on Roles

Multiple finished goods with single raw material

https://docs.frappe.io/erpnext/how-to-handle-a-scenario-of-1-raw-material-multiple-finish-goods

In many Manufacturing industries deal with a scenario where they use one RM (Raw Material) & produce multiple Finish goods. Most of the chemical manufacturing industries you can find this business use-case. Now how you can map this use-case in ERPNext? Lets take an example of Oil manufacturing Industry where from Crude oil multiple products are produced like Petrol, Gas, Diesel, Kerosene etc.

First create an Item master where crude oil will be RM & Petrol, Gas, Diesel, Kerosene etc. will be your FG. Here every product can also have different UOM.

After creation of item master create a BOM for any of the FG you are going to produce from Crude oil (RM). Here I have created BOM of Petrol for 25 litres where I am going to use Crude oil (RM) of qty. 100 litres. Rest of the FG like Gas, Diesel & Kerosene I have added in Scrap section.


While creating a BOM you can add operations as well & run your production cycle (Work order) accordingly.

After completion of work-order at the time of Back-flush entry your Raw material will get consumed & you will have multiple finish goods.

Restore Deleted Documents

https://docs.frappe.io/erpnext/how-to-restore-deleted-documents-in-erpnext

Use Case: Need to restore/ retrieve the documents that were deleted.
Steps:

Go to Settings > Deleted Documents (or search for "Deleted Document list" in the search bar).

Search for the deleted document. You can also filter out the document based on the Deleted DocType. For example we need to restore the Purchase Order, PUR-ORD-2019-00019. To do so, search for the same in the deleted document list and open it.

Click on the "Restore" button as shown below. Also note the Data box which gives the information on various fields of the document. This helps you confirm whether it is the same document you want to restore.

Once the Restore button is clicked, the document gets restored in Draft State with a New Name according to the Naming Series.

You can directly open the newly restored document through the "Open" button or search for the same in that document's list (in this case, Purchase Order list).


3 Step SEO for your ERPNext Website

https://docs.frappe.io/erpnext/how-to-setup-seo-for-your-website-on-erpnext

SEO stands for Search Engine Optimisation and is the process of increasing the quality and quantity of website traffic by increasing the visibility of a website or a web page to users of a web search engine. SEO refers to the improvement of unpaid results and excludes direct traffic/visitors and the purchase of paid placement.

Having a presence in the top positions for keywords that your prospects are looking for will increase the probability of your business expansion. Enhance the visibility of your products and offerings by optimizing SEO and using it to maximize the social promotion of your website.
You can setup meta tags in ERPNext within 3 steps:
Step 1: Using awesome bar (Global search bar), open "New Website Route Meta"

Step 2: Enter the key and value for the meta tag. In our example, we are making it for privacy, and have entered the key and value as below:

Step 3: Save this document.

Watch SEO in action on your webpage. In this case, the webpage "privacy" holds the corresponding meta tag:

To learn more about Websites in ERPNext, click here

Short Close Multiple Orders

https://docs.frappe.io/erpnext/how-to-short-close-multiple-orders-in-erpnext

Short closing of a Sales Order is equivalent to the deletion of the Sales Order. No further transactions are allowed against the Sales Order if it is short closed (unless it is re-opened).

In ERPNext, you can close a Sales Order by clicking on the "Close" option under Status as shown in the below screenshot.

However, sometimes, you might want to close multiple Sales Orders in one go. To do so, follow the below steps:

Go to Sales Order List

Select the Sales Orders which you want to short close

Go to Menu and click on "Close"

This will bulk close all the selected Sales Orders.

If you wish to Re-open the closed Sales Orders, select them and go to Menu > Re-open.

Note: The same steps can be followed to Close/Re-open multiple Purchase Orders.

Sync DocTypes with Events Calendar

https://docs.frappe.io/erpnext/how-to-sync-doc-types-with-calendar

Create calendar view for sales order, sales invoice or any other doc-types by following these simple steps

  • Type 'Calendar View List' in the awesome bar/ Search bar.
  • Click on new to create a new Calendar List
  • Select the Reference Doc-Type you want to be view in the calendar. Eg: Sales Order
  • Set the Start date and End date fields. Eg: Delivery Date.
  • Save your changes.

Upgrade Subscription Plan and Buy Add-ons

https://docs.frappe.io/erpnext/how-to-upgrade-subscription-plan-and-buy-add-ons

Question: What are the steps to change the plan to Enterprise?
Answer:
You can upgrade your account to higher plan from:

  1. My Settings > Manage Subscriptions
  2. Choose the plan you wish to upgrade
  3. Select Add-ons

Step 1: Go to Manage Subscription

Step 2: Choose plan and add-ons

Step 3: Checkout and Make Payment

Once you have successfully selected the plan and add-ons, proceed with checkout by reviewing the Items subscribed and payment option.

Immutable Ledger

https://docs.frappe.io/erpnext/immutable-ledger-in-erpnext

Introduced in Version 13

A major change has been introduced in ERPNext from version 13 onwards. This changes the way Accounting Ledger (General Ledger) and Stock Ledger works in ERPNext. There are multiple reasons why ledgers should be immutable. To list a few:

  • Reposting future entries is computationally expensive. To post a backdated transaction, all future entries need to be reposted.
  • In Stock Ledger, where the valuations are based on First-in-first-out (FIFO) method, the entire sequence may get regenerated which may upset valuations and profit for subsequent transactions.
  • Taxes paid for a period may also get changed.

Following are the impacts on day to day transactions

1. Reverse Entries on cancellation of transactions

General Ledger

On cancellation of any transaction instead of deleting the GL Entries for that transactions reverse entries will be passed to cancel the effect of that transaction on the date of cancellation.

Document Delete

Since GL Entries linked to a transaction will never be deleted this also means that cancelled transactions and their linked documents can no longer be deleted.

2. Restriction on posting backdated stock entries

Since the ledgers are immutable now this means future transactions cannot be updated or reposted. So users will no longer be able to post backdated stock transactions.

Back Dated Entry

For Eg: Suppose a Stock Transaction has been made for Item A with posting time as then after this transaction you cannot post a transaction for Item A with posting time before this timestamp.

19-06-2020 23:00:10

Importing e-Invoice from Supplier

https://docs.frappe.io/erpnext/import-e-invoice

Introduced in Version 13

As of January 1, 2019, electronic Invoicing is mandatory for domestic businesses operating with domestic B2B and B2C transactions in Italy. ERPNext has a feature to import supplier invoices from XML files provided by suppliers to the government.

ERPNext has a feature to import supplier invoices from XML files provided by suppliers to the government. Using this you can import Supplier e-invoices into ERPNext. The supplier details like supplier names, addresses and purchase invoices will get created automatically in the system from the XML files.

1. Prerequisites

  • Default Stock UOM should be specified in the Stock Settings Doctype.
  • Enable Check Supplier Invoice Uniqueness in the Accounts Settings Doctype.
  • Create a Zip file with all your supplier invoice XML files.

2. How to use Import Supplier Invoice

  1. Navigate to Import Supplier Invoice doctype from the global search bar and enter the Invoice Series, Company, Supplier Group, Tax Account, Item Code and Default Buying Price List.
  • Invoice Series - The series with which the new Purchase Invoices will be created.
  • Company - The company for which the new Purchase Invoices will be created.
  • Supplier Group - The supplier group under which the new suppliers will be created.
  • Tax Account - The account under which the taxes would be entered for the Purchase Invoices created.
  • Item Code - The item code which would be used for Purchase Invoice creation.
  • Default Buying Price list - The default buying price list to be used for the Purchase Invoice.

After entering the above details click on Save.

Attach the zip file with XML invoices.

Click on Import invoices and the Purchase Invoices will be created. Suppliers would be created if they do not exist in the system already.

If the file import completes successfully you would see a status of File Import Completed. If there are any errors you can view them from the Error Log.

Incoterm and Named Place

https://docs.frappe.io/erpnext/incoterm-and-named-place

About Incoterms

Incoterms are standardized trade terms that are commonly used in international commercial transactions. They define the responsibilities of the buyer and seller in a transaction, including the transfer of goods and payment, and help to ensure that both parties understand their obligations and rights. Incoterms are published by the International Chamber of Commerce (ICC) and are regularly updated to reflect changes in international trade practices.

The named place is the specific location that is agreed upon by the buyer and seller as the point at which the obligations and rights of both parties under the Incoterm are fulfilled. For example, in the Incoterm FOB (Free on Board), the named place is the port of shipment, and the seller's obligations are fulfilled when the goods are placed on board the vessel at that location. In the Incoterm CIF (Cost, Insurance, and Freight), the named place is the port of destination, and the seller's obligations are fulfilled when the goods are delivered to the named place. The named place is an important part of the Incoterm, as it determines which party is responsible for various tasks and costs associated with the transaction.

By using Incoterms, you can avoid misunderstandings and ensure that your transactions are completed smoothly and efficiently.

How Incoterms are used in ERPNext

In ERPNext transactions, there are two fields that pertain to Incoterms: the "Incoterm" field and the "Named Place" field. These fields are used to ensure that the Incoterm and named place are accurately recorded in the transaction.

  • The "Incoterm" field is a link field that allows you to select the applicable Incoterm from a list of standardized trade terms.
  • The "Named Place" field is a text field that becomes visible after you have selected an Incoterm. This field allows you to type in the specific location that has been agreed upon as the point at which the obligations and rights of both parties under the Incoterm are fulfilled.

after

Further reading

India Compliance App

https://docs.frappe.io/erpnext/india

> India-specific regional features are a part of seperate app India Compliance. You will need to install it to use these features. > >

Documentation Link: <https://docs.indiacompliance.app/docs/getting-started/introduction>

Installation Note

https://docs.frappe.io/erpnext/installation-note

An Installation Note can be created when a product/item is being installed or set up at the Customer's place.

For example, if you sell an Air Conditioner, a service person generally accompanies the delivery to install the Air Conditioner at the Customer’s place. The service person can create an “Installation Note”, to track the date and details of the installation.

To access the Installation Note list, go to:

Home > Stock > Serial No and Batch > Installation Note

1. How to create an Installation Note

An Installation Note is usually created from a Delivery Note. You can also create it manually and click on the 'From Delivery Note' button to fetch details from a selected Delivery Note.

  1. Go to the Installation Note list, click on New.
  2. The Customer, Item, and quantity will be fetched from the Delivery Note.
  3. The date and time are set to when the note is created.
  4. Save and submit.

Installation Note

Any additional remarks about the installation can be added. If the Item is serialized, the serial numbers can be added in Items table.

  1. Delivery Note
  2. Delivery Trip

Inter Company Invoices

https://docs.frappe.io/erpnext/inter-company-invoices

An Inter Company Journal Invoice is done between organizations that belong to the same group.

Along with creating Purchase Invoices or Sales Invoices for a single company, you can create inter-linked invoices for multiple companies.

For example, you can create a Purchase Invoice for a company say 'Company ABC', and create a Sales Invoice against this Purchase Invoice for another company say 'Company XYZ' and link them together.

How to create Inter Company Invoices

Setting up

Go to: Accounts > Masters > Customer.

Select the Customer who you would want to choose for the inter-linked invoice.

Enable the checkbox, Is Internal Customer shown as follows:

Add the company which the Customer represents in the Represents Company field. This the company for which the Sales Invoice will be created.

In the Allowed To Transact With table, add the company against which you will be creating a Purchase Invoice.

Now, when you create a Purchase Invoice against company A (customer is from company B, the seller is company A), it'll be linked to the Sales Invoice for company A created using this Internal Customer from company B.

Now, you need to follow a similar procedure for setting up a Supplier for inter-linked invoices.

Go to: Accounts > Masters > Select the Supplier

Tick on Is Internal Supplier.

In the Represents Company field, add the company which you added in the table Allowed To Transact With for the Customer.

In the table Allowed To Transact With for the Supplier, add the company which the Customer represents. This is the company against which you are going to make an inter-linked Purchase Invoice.

Here is a screenshot of the Supplier company to avoid any confusion:

Creating the Invoice

  1. Now, create a new Sales Invoice, fill up the fields.
  2. Remember to select the Customer who is an internal customer and company from which he's buying.
  3. Save and Submit the Invoice. Inter company invoice
  4. Before you make an Inter Company Invoice you need to do the following:
  5. The selling and buying price between the companies should be in sync.
  6. Go to Stock > Price List, create a new Price List for inter company transactions.
  7. Tick both Selling and Buying in this new Price List.
  8. Go to Buying > Supplier > internal supplier, in the currency and price list section, set the price list to the new one just created.
  9. Do the same for the internal customer, i.e., set the price list to the new one.
  10. Now, you can make an inter company Purchase or Sales Invoice.
  11. Under the Make button dropdown, you will find a link Inter Company Invoice, on clicking the link, you will be routed to a new Purchase Invoice form page.
  12. Here, the supplier and company will be auto-fetched depending on the company you selected in the Sales Invoice.

Remember: There can only be a single Internal Supplier or Customer per company.

  1. Submit the invoice, done! Now, both the invoices are inter-linked. Also, on canceling any of the invoices, the link will break as well.

Note: An Inter Company invoice will only affect the accounting ledger and not the stock ledger. This is because the companies belong to the same group of companies.

You can follow the same process to create a Purchase Invoice and then an inter-linked Sales Invoice from the submitted Purchase Invoice.

  1. Sales Invoice
  2. Purchase Invoice
  3. Inter Company Journal Entry

Inter Company Journal Entry

https://docs.frappe.io/erpnext/inter-company-journal-entry

An Inter Company Journal Entry is done between organizations that belong to the same group.

You can create Inter Company Journal Entry if you are making transactions with multiple Companies. You can select the Accounts which you wish to use in the Inter Company transactions. A possible use case would be a company buying goods on behalf of another company.

Inter company Journal Entries are created using the Journal Entry form in ERPNext. To access the Journal Entry list, go to:

Home > Accounting > Company and Accounts > Journal Entry

1. Prerequisites

Before creating an Inter Company Journal Entry, you need the following:

2. How to create an Inter Company Journal Entry

  1. Go to the Journal Entry list, and click on New.
  2. Select Entry Type as 'Inter Company Journal Entry'.
  3. Set the Company that is buying Items on behalf of another company.
  4. Add rows for the individual accounting entries. Only inter company accounts can be fetched here.
  5. In each row, you must specify:
  • The Internal account that will be affected.
  • The amount to Debit or Credit.
  • The Cost Center (If it is an Income or Expense).
  1. On submitting the Journal Entry, you will find a button on the top right corner, Make Inter Company Journal Entry.

Inter Company Journal Entry
  1. Click on the button. Now, you will be asked to select the Company against which you wish to create the linked Journal Entry.

Company Master
  1. On selecting the Company, you will be routed to another Journal Entry where the relevant fields will be mapped, i.e. Company, Voucher Type, Inter Company Journal Entry Reference etc.

Auto Generated Inter Company Journal Entry
  1. Select the Internal accounts for the second Company in the table.
  2. Submit the Journal Entry.
  3. Make sure the total Debit and Credit Amounts are same as the previously created Journal Entry's total Credit and Debit Amounts respectively but the debits and credits will be opposite.

Note: The accounts in second Journal Entry should be the opposite of what you did in the first Journal Entry. For example, Company A is buying something from Company B. This is how the payment cycle between the two companies will look like using Inter Company Journal Entry.

  1. Debit Bank Account by 500 and credit Debtors account of Company B by 500.
  2. Now, in the Inter Company Journal Entry, debit Creditors account of Company A by 500 and credit Bank Account by 500.
  3. You also need to select the parties for Creditors and Debtors account before proceeding with the Journal Entry.

You can also find the reference link at the bottom, which will be added in both the linked Journal Entries and will be removed if any of the Journal Entries are cancelled.

  1. Journal Entry
  2. Inter Company Invoices

Inventory Account

https://docs.frappe.io/erpnext/inventory-account

In ERPNext, users can either set up a Warehouse-wise Inventory Account or use the default Inventory Account from the Company master, which is 'Stock In Hand.'

warehouse inventory account

From the Version 16, users can also able to set the Item-wise Inventory Account. To do this, they need to enable the option 'Enable Item-wise Inventory Account' in the Company master.

company configuration

After enabling it, users can define the Default Inventory Account in the Item master. Alternatively, they can set a Default Inventory Account at the Item Group or Brand level if they do not wish to define it for each item individually.

item inventory account

Users can choose to use either item-wise or warehouse-wise inventory accounts, but not both.

Inventory Dimension

https://docs.frappe.io/erpnext/inventory_dimension

Introduced in Version 14

Inventory dimensions in ERPNext are used to track an inventory with multiple parameters. By default, ERPNext allows to track an inventory using warehouses, batches, and serial numbers. If users want to track inventory with custom parameters then they can configure it using the Inventory Dimension feature. The user gets an option to select the Inventory Dimension on respective inventory documents as well in the stock ledger and stock balance report. With this feature, you can view dimension-wise stock ledger and stock balance reports.

To access the Inventory Dimension list, go to:

Stock > Settings > Inventory Dimension

Create Inventory Dimension

new inventory dimension
  • Create a new record and select the Reference Document which you want to use as a custom Inventory Dimension.
  • You can select any non-child document in the reference document.
  • Next, the user has to put the dimension name against which the system will create a custom link field in the Applicable Documents.

Applicable For Documents

Apply to All Inventory Documents

inventory dimension applicable for all inventory documents
  • It will be used to select the custom Dimension in the inventory-related documents.
  • For example, the user has created Inventory Dimension with the name "Shelf" and enabled "Apply to All Inventory Document Types". Then the system will create the custom link field with the name "Shelf" in the inventory documents where Batch No and Serial No fields exist.

Apply to Specific Document

inventory dimension applicable for
  • If the user wants to add Inventory Dimension to a specific document then they have to disable the checkbox "Apply to All Inventory Document Types" and select the respective document in the "Applicable to Document" field.
  • Also if you want to add Inventory Dimension for a specific condition like for stock entry type Issue you want separate dimension as "From Shelf" and stock entry type Material Receipt you want separate dimension as "To Shelf" then that can be possible using "Applicable Condition"
  • Applicable Condition only can be visible if "Apply to All Inventory Document Types" is disabled
  • You can also use the "Type of Transaction" with options such as Inward or Outward for a condition.

Fetch value from

Users can set the 'Fetch Value From' field to fetch data from a field that exists at the parent form level. For example, on the Purchase Receipt form, a user has added a custom field called 'Shelf' and created the inventory dimension to 'Shelf'. If a Purchase Receipt contains 200 line items, the user would typically need to set the 'Shelf' value manually for each row—even if the value is the same across all items. However, by setting the 'Fetch Value From' option in the inventory dimension as 'Shelf' and specifying the value at the parent (Purchase Receipt) level, the system will automatically apply the same 'Shelf' value to all Stock Ledger Entries, even if the user hasn’t entered it in each individual line item.

Use of Inventory Dimension

inventory dimension on transaction
  • Once the Inventory Dimension is created system will create the custom field in respective documents
  • User gets an option to select the Inventory Dimension in the respective transaction.
  • For example, if the user has added Inventory Dimension as "Shelf" in the Stock Entry Detail document. Then in the stock entry, the child table user gets an option to select shelf (see above image). Post submission of the stock entry system will create the stock ledgers with selected inventory dimensions.

Validate Negative Stock

If user has enabled the "Validate Negative Stock" checkbox in the inventory dimension, system will not allow to make stock transactions if the respective dimensions has negative stock in the respective warehouse. If user has tried to create the stock transaction with negative stock for the inventory dimension then system will throw the below error

Stock Balance and Stock Ledger Report

  • Users can able to filter the Stock Balance and Stock Ledger report using Inventory Dimension
  • With this feature, users can able to see Inventory Dimension wise available quantity

Stock Balance Report

inventory dimension stock balance

Stock Ledger Report

inventory dimension stock ledger

Note:

User can only use the stock reconciliation with inventory dimensions to enter opening values and they can't use the stock reconciliation to modify the available stock or the valuation. Since we are not maintaining inventory dimensions wise valuation rate there is not sense to allow to modify valuation rate through stock reconciliation. in case if they tried to update the quantity or valuation rate through stock reconciliation, system will throw the below error

Invoice rounding issue

https://docs.frappe.io/erpnext/invoice-rounding-issue

Question:

In Sales Invoice, in-words in being printed with the rounding off even though it is disabled via Global Defaults.In the Global Defaults one can always Disable Rounded Total via the following checkbox:

Answers: If this configuration hasn't done the trick for you, you need to also check the currency master once. To do this, type Currency in the awesome bar (Ctrl/Cmd + G). In the currency master, open the currency for which you are facing the issue:

Here make sure that the rounding is set correctly. For example, the smallest fractional value for INR should be 0.01 and not 0.05. Update this value, and then update the transaction.

Invoice Discounting

https://docs.frappe.io/erpnext/invoice_discounting

Invoice discounting is the practice of using a company's unpaid sales invoices as collateral for a short term loan, which is issued by a bank or a finance company.

To access the Invoice discounting list, go to:

Home > Accounting > Banking and Payments > Invoice Discounting

1. Prerequisites

You need to create following ledgers in order to post invoice discounting transactions.

  • Short Term Loan: A ledger under the 'Current Liabilities' > 'Loans (Liabilities)' group for loan.
  • Bank Account Charges: An expense ledger for charges levied by the bank.
  • Accounts Receivable Credit Account: A control account of type receivable.
  • Accounts Receivable Discounted Account: A receivable account for invoices which have been discounted.
  • Accounts Receivable Unpaid Account: A receivable account for invoices which were discounted and remain unpaid even after the loan period is over.

2. How to Post an Invoice Discounting Transaction

  1. Go to the Invoice Discounting list, click on New.
  2. Enter Posting Date and Loan Start Date. Enter the Loan Period in days.
  3. Select invoices either manually in the table or by clicking on the 'Get Invoices' button on the top right.
  4. Select Short Term Loan Account, Bank Account, and Bank Charges Account.
  5. Select Accounts Receivable Credit Account, Accounts Receivable Discounted Account and Accounts Receivable Unpaid Account.
  6. Click on Save then Submit.
  7. After submitting the Invoice Discounting form, click on the Disburse Loan.

Disburse Loan in Invoice Discounting
  1. You'll be taken to a Journal Entry screen. Save and Submit the Journal Entry.

Journal Entry

2. Features

2.1 Import Invoices

Click on 'Get Invoices' button to import invoices. You can import invoices by filtering on certain criteria.

  • Invoices created against a specific Customer.
  • Date range between which the invoices were raised.
  • Minimum and maximum amount.

You can also specify multiple of the above filters.

2.2 Closing the Loan

When you repay the loan at the end of the loan period or before that, you can update the same by clicking on 'Close Loan' button. System will prepare the Journal Entry. Review and Submit the it.

Journal Entry

2.3 Auto Update of Ledgers at the end of Loan Period

If the loan is not repaid at the end of loan period, system will create a Journal Entry via a scheduled job to shift value from 'Accounts Receivable Discounted Account' to 'Accounts Receivable Unpaid Account'. This will make it easy to trace the invoices which were discounted and remained unpaid at the end of the loan period.

Issue

https://docs.frappe.io/erpnext/issue

An Issue is an incoming query from a Customer, usually via email or from the Contact section of your website.

Tip: A dedicated support Email Address is a good way to keep track of incoming queries. For example, you can send support queries to ERPNext at support@erpnext.com and it will automatically create an Issue in our system.

To access the Issue list, go to:

Home > Support > Issues > Issue

Issue

1. Prerequisites

Before creating and using Issues, it is advised that you create the following first:

2. How to Create Issue

Issues are automatically created if you use the append to feature in Email Account.

You can also create an Issue manually, to do that:

  1. Go to the Issue list, click on New.
  2. Enter the Subject, Raised By, and a description of the Issue.

2.1 Additional Options when Creating an Issue

  • Status: When a new Issue is created, its status will be "Open", when it is replied, its status becomes "Replied".
  • Open: The Issue has been created and yet to be replied to.
  • Replied: A reply has been sent to the Issue.
  • Hold: The Issue is on Hold due to some reason.
  • Resolved: When the users are reasonably sure that they have provided the customer with a solution to their problem but have not received an acknowledgment about the resolution from the customer.
  • Closed: The Customer got a satisfactory resolution that he has indicated with an acknowledgment and the Issue was closed.

If the sender replies to the thread, the status becomes "Open" again. User can "Close" the Issue manually by clicking on the Close button on the top right.

Note: If SLA has been set up, then the fulfillment status of the SLA will be updated on both, the Closed as well as the Resolved status.

  • Customer: If the email was sent from a Customer stored in your ERPNext account, then a Customer link will appear in this field.
  • Priority: Priority can be set as per the requirements. By default, there are three priorities--Low, Medium, and High. You can delete these or add more as needed.
  • Issue Type: An Issue can be classified using Issue Type. Examples of Issue Types can be: 'Functional', 'Technical', 'Hardware', etc.
  • Raised By (Email): The email ID from which the Issue was sent will be shown here.

3. Features

3.1 Details

  • Description: This is a text field in which details about the Issue can be seen. This can also contain an image or a table.

3.2 Service Level Agreement

It is a contract between a service provider and the end user that defines the level of service expected from the service provider.

User can select the Service Level Agreement (SLA) from the list.

  • Every Issue will have a Time to Response and Time to Resolve within which the Support team has to Respond and Resolve the Issue.
  • The Priority can be changed to escalate the Issue. The priorities need to be specified in the Service Level Agreement.
  • If needed, the Service Level Agreement can be reset by clicking on the Reset Service Level Agreement button in Issues shown as follows:

SLA

3.3 Response

Mins to First Response: Time in minutes from when the Issue was created to when the first reply was sent.

First Responded on: When a Support team member first replies to the issue, first response date and time will be updated.

Average Response Time: The average time taken to respond to the Customer. This is calculated by taking the average of all time spans between Received and Sent Communications. This field will be updated on every reply sent to the customer.

Response Details

3.4 Reference

User can filter the issues based on these fields linked to the Issue:

  • Lead
  • Contact
  • Email Account
  • Project
  • Company

3.5 Resolution

  • Opening Date: When the issue is created or logged the date be posted.
  • Opening Time: When the issue is created or logged the exact time will automatically be posted.
  • Resolution Date: When the user resolved the issue, Date and Time will get updated in this field.
  • Resolution Details: User can enter the details of the issue, once it is resolved. This is a text field. Also, user can upload the image, enter or create a table.
  • Resolution Time: Total time taken to close the ticket (from Issue creation to closing).
  • User Resolution Time: Many times a user has to wait for a customer's reply in order to solve some Issue. While measuring User's productivity this wait time shouldn't be taken into consideration. Hence, user resolution time is the total time taken by a user to close the ticket and can be calculated as:

Resolution time - Total Time for which the user had to wait for a customer's reply

The Resolution Time and User Resolution Time metrics are set on "Close". These metrics reset automatically when the Issue reopens or splits.

Resolution

Via Customer Portal

If the Customer raising the Issue is a Website User (no access to modules), this checkbox will be ticked to indicate that.

4. After Saving

4.1 Add Comments

Once the Issue is registered, support team Users can add comments for the issue. This field is editable. Comments in Issues are for internal discussions and will not be visible to the Customers.

4.2 New Email

Users can compose an email to the person that has raised the Issue. All the mails (received as well as sent) can be seen in a thread in the Issue.

4.3 Discussion Thread

The email discussion thread in an Issue maintains all the emails which are sent back and forth against this Issue in the system so that you can track what transpired between the sender and the person responding.

  • When a New Email is sent from your mailbox, an automatic reply is sent to the sender with your message and the Support Ticket Number.
  • The sender can send additional information to this email.
  • All subsequent emails containing this Issue number in the subject will be added to this Issue thread.
  • The sender can also add attachments to the email.

4.4 Assigning Issues to Users

Issues can be assigned automatically among Users using Assignment Rule.

You can assign an Issue to a specific User by clicking on "Assign" feature in the left sidebar. This will add a new To Do to the user and also send a message indicating that this Issue is allocated.

Assign Issue

4.5 Closing

  • You can close the Issue manually by clicking on 'Close' in the toolbar.
  • If the sender does not reply in 7 days, then the Issue gets closed automatically.
  1. Issue Type and Priority

Issue Type

https://docs.frappe.io/erpnext/issue-type-and-priority

Issue Type is useful for tagging and classifying Issues.

Classifying Issues helps in assigning the concerned team members to specific Issues. Examples of Issue Types can be: 'Functional', 'Technical', 'Hardware', etc. So engineers can be assigned to technical or hardware issues and consultants would be assigned to address functional issues.

To access the Issue Type list, go to:

Home > Support > Issues > Issue Type

To create an Issue Type, click on New and enter a name for the type. A description can be added.

Issue Priority indicates the urgency of solving an Issue

User can create priorities like "Low", "Medium", "High", "Critical", etc. Issue Priority will be used while creating the Service Level Agreement.

To access the Issue Priority list, go to:

Home > Support > Issues > Issue Priority

To create an Issue Priority, click on New and enter a name for the type. A description can be added.

Issue Priority

Issue Priority list

Issue Priority List
  1. Issue
  2. Service Level Agreement

Requirements for Italy

https://docs.frappe.io/erpnext/italy

ERPNext aims to support local regulation for different regions in the world. In most cases ERPNext is very flexible so you can easily add Custom Fields and make Custom Reports to support the regulation of your region.

This section contains region specific features for Italy.

Item

https://docs.frappe.io/erpnext/item

An Item is a product or a service offered by your company.

The term Item is also applicable to raw materials or components of products yet to be produced (before they can be sold to customers). ERPNext allows you to manage all sorts of items like raw-materials, sub-assemblies, finished goods, item variants, and service items.

ERPNext is optimized for itemized management of your sales and purchase. If you are in services, you can create an Item for each service that you offer. Completing the Item Master is very essential for the successful implementation of ERPNext.

To access the Item list, go to: > Home > Stock > Items and Pricing > Item

  1. Prerequisites

Before creating and using an Item, it is advised that you create the following first:

  1. How to create an Item
  1. Go to the Item list, click on new.
  2. Enter an Item Code, the name will be auto-filled the same as Item Code on clicking inside the Item Name field.
  3. Select an Item Group.
  4. Enter the opening stock units and standard selling rate.
  5. Save

2.1 Item Properties

  • Item Name: Item name is the actual name of your product or service.
  • Item Code: Item Code is a short-form to denote your Item. If you have very few Items, it is advisable to keep the Item Name and the Item Code same. This helps new users to recognise and update Item details in all transactions. In case you have a lot of Items with long names and the list runs into hundreds, it is advisable to code. To understand naming Item codes, see Item Codification. You can also generate an Item Code based on a Naming Series by enabling this feature in Stock Settings.
  • Item Group: Item Group is used to categorise an Item under various criteria like products, raw materials, services, sub-assemblies, consumables or all Item groups. Create your default Item Group list under Setup > Item Group and pre-select the option while filling your New Item details under Item Group. Item groups can be sub-assemblies, raw materials, etc, or based on your business use case.
  • Default Unit of Measure: This is the default measuring unit that you will use for your product. It could be Nos, Kgs, Meters, etc. You can store all the UOMs that your product will require under Set Up> Master Data > UOM. These can be preselected while filling New Item by using % sign to get a pop up of the UOM list. Visit the UoM page for more details

2.2 Options when creating an item

  • Disabled: If you disable an Item, it cannot be selected in any transaction.
  • Allow Alternative Item: Sometimes, when manufacturing a finished good, a specific material may not be available. If you tick this, you can create and select an alternative item from the Item Alternative list. To know more, visit the Item Alternative page.
  • Maintain Stock: If you are maintaining stock of this Item in your Inventory, ERPNext will make a stock ledger entry for each transaction of this item. Ensure to keep this option unchecked when creating a non-stock Item (make to order/engineer) or a service.
  • Include Item in Manufacturing: This is for raw material Items that'll be used to create finished goods. If the Item is an additional service like 'washing' that'll be used in the BOM, keep this unchecked.
  • Valuation Rate: There are two options to maintain the valuation of the stock. FIFO (first in - first out) and Moving Average. To understand this topic in detail, please visit Item Valuation, FIFO and Moving Average.
  • Standard Selling Rate: When creating an Item, entering a value for this field will automatically create an Item Price at the backend. Entering a value after the Item has been saved will not work. In this case, the Item Price is created from any transactions with the Item. The rate at which you'll sell the item. This will be fetched in Sales Orders and Sales Invoices.
  • Is Fixed Asset: Tick this checkbox if this item is a company Asset. Check out the Asset Module to know more.
  • Auto Create Assets on Purchase: If Item is a Company Asset, tick this checkbox if you want to auto-create assets while purchasing this item through Purchase Cycle. Check out the Asset Page to know more.
  • Allowance Percentage: This option will be available only when you create and save the item. This is the percent by which you will be allowed to over-bill or over-deliver this Item. If not set, it will select from Stock Settings.
  • Uploading an Image: To upload an image for your icon that will appear in all transactions, save the partially filled form. Only after your file is saved the 'Change' button will appear on the Image icon. Click on Change, then click on Upload, and upload the image.

For India:

  • HSN/SAC: Harmonized System of Nomenclature (HSN) and Service Accounting Code (SAC) for GST. These numbers are defined by the government and different Items fall under different codes. New HSN codes can be added if not present in the list.
  • Is nil rated or exempted: For an Item that is under GST, but no tax is applied to it. Eg: Cereals.
  • Is Non GST: For an item that is not covered under GST. Eg: petrol.

3.1 Brand and Description

  • Brand: If you have more than one brand, save them under Selling > Brand and pre-select them while filling a New Item.
  • Description: Description of the item. The text from the Item Code will be fetched by default.

3.2 Barcodes

Barcodes can be recorded in Items to quickly scan and add them in transactions. In the Barcodes table, you can add an Item's barcode for scanning. There are two types of barcodes in ERPNext:

  • EAN: The European Article Number is a 13-digit number. EAN is used internationally and recognised by more POS systems.
  • UPC: The Universal Product Code is a 12-digit number. UPC is generally used only in the USA and Canada.

3.3 Inventory

  • Shelf Life In Days: This is for a product Batch. The number of days after which the product batch will be unusable. For example, medicines.
  • End of Life: For a single item/product, the date after which it'll be completely unusable. That is, the item will be unusable in transactions and manufacturing. For example, you're using plastic crystals for manufacturing Items for the next 5 years, after which you want to use plastic beads.
  • Warranty: To track a warranty period, it is necessary that the Item is serialised. When this Item is delivered, the delivery date and the expiry period is saved in the Serial Number master. Through the serial number master, you can track the warranty status.

A warranty period is a time period in which a purchased product may be returned or exchanged.

  • Weight UOM: The Unit of Measure for the item. This can be Nos, Kilo, etc. The Weight UoM which you use internally can be different from the purchase UoM.
  • Weight Per Unit: The actual weight per unit of the item. Eg: 1 kilo of biscuits or 10 biscuits per pack.
  • Default Material Request Type: When you create a new Material Request for this item, the field set here will be selected by default in the new Material Request. This is also known as an 'indent'.
  • Valuation Method: Select the Valuation Method, whether FIFO or Moving Average. Read Item Valuation methods to know more.
  • Allow negative stock: When checked, the item will be allowed to go negative even if negative stock is disabled from Stock Settings. This is useful if you don't want to enable negative stock on high-value items, but a few select low-value items are allowed to go negative for a few days.

3.4 Automatic Reordering

When the stock of an item dips under a certain quantity, you can set an automatic reorder under 'Auto Reorder' section. This should be enabled in Stock Settings. This will raise a Material Request for the Item. The user with roles Purchase Manager and Stock Manager will be notified when the Material Request is created.

  • Check in (group): In which group of warehouses to check the quantity of the item?
  • Request for: Which warehouse to stock the item reorder.
  • Re-order Level: When this quantity is reached, the reorder will be triggered. The reorder level can be determined based on the lead time and the average daily consumption. For example, you can set the reorder level of Motherboard at 10. When only 10 Motherboards are remaining in stock, the system will either automatically create a Material Request in your ERPNext account.
  • Re-order Qty: The number of units to be reordered so that the sum of ordering cost and holding cost is at its minimum. The re-order quantity is based on the 'Minimum Order Qty' specified by the supplier and many other factors.

For example, If reorder level is 100 items, your reorder quantity may not necessarily be 100 items. The Reorder quantity can be greater than or equal to the reorder level. It may depend upon lead time, discount, transportation and average daily consumption.

  • Material Request Type: The Material Request type with which the stock will be reordered. This depends on whether you buy the Item, manufacture it yourself or transfer it between Warehouses.

Note: The Material Request is created at 12 midnight depending on the set reorder level.

3.5 Multiple Units of Measure

You can add alternate UoMs for an Item. If the default UoM in which you sell is numbers (NoS) but you receive it in Kilos, you can set an additional UoM with an appropriate conversion factor. For example, 500 Nos of screws = 1 Kilogram, so select Kilogram/Litre as UOM and set the conversion factor as 500. To know more about selling in different UoM, visit this page.

3.6 Serial Numbers

Allow Negative Stock has removed for Serial / Batch Items from version 15. So from version 15 users won't be able to make negative stock transactions for serial /batch items even though Allow Negative Stock has enabled in the Stock Settings.

With Serial Numbers, you can track warranty and returns. In case any individual Item is recalled by the supplier, the number system helps track that Item. The numbering system also manages expiry dates.

Please note that if you sell your items in thousands and they are very small, such as pens or erasers, you do not need to serialise them.

In ERPNext, you will have to mention the Serial Number in some accounting entries. If your product is not a major consumer durable Item, has no warranty, and has no chance of being recalled, avoid providing serial numbers.

3.7 Batches

Allow Negative Stock has removed for Serial / Batch Items from version 15. So from version 15 users won't be able to make negative stock transactions for serial /batch items even though Allow Negative Stock has enabled in the Stock Settings.

A set of Items can be manufactured in batches. This is useful for moving the batch and associating an expiry date with a certain batch.

  • Has Batch No: Options for batch number, expiry date, and retaining sample stock will be revealed on ticking this checkbox. You cannot activate this if there is any pre-existing transaction for this item. If this is disabled, you'll have to enter the serial numbers manually for every transaction.
  • Batch Number Series: Prefix that'll be applied to batch numbers. If you set 5x1SCR, then the first batch will be named like 5x1SCR00001 on the first transaction/manufacture.
  • Automatically Create New Batch: If the batch number is not specified in transactions, it will be automatically created in a format like AAAA.00001. If you always want to manually create a batch number for this item, leave this field blank. This setting will override 'Naming Series Prefix' in Stock Settings. Batch numbers can be set to be generated automatically if you manufacture the items, or can be entered manually if they come from an external manufacturer.
  • Has Expiry Date: If you tick this, the batch number will be created according to the expiry date. The expiry dates can be set in the 'Batch' master.
  • Retain Sample: To retain a minimum number of sample stock of the item. You need to set a Sample Retention Warehouse in Stock Settings for this. To know more, click here.
  • Has Serial No: This is similar to the Batch Number Series; it'll be created when you make transactions/manufacture. If you set Serial Number Series as AA, then on the first transaction, a serial number like AA00001 will be created.

Tip: While entering an Item Code in an Items table, if the table requires inventory details, then depending on whether the entered item is batched or serialized, you can enter serial or batch numbers right away in a pop-up dialog.

Note: Once you mark an item as serialized or batched or neither, you cannot change it after you have made a Stock Entry.

To know more, visit the Stock Reconciliation page.

3.8 Variants

An Item Variant is a different version of an Item. To learn more about managing variants, see Item Variants.

3.9 Item Defaults

In this section, you can define Company-wide transaction-related defaults for this Item.

  • Default Warehouse: This is the Warehouse that is automatically selected in your transactions with this item.
  • Default Price List: Whether Standard Selling or Standard Buying. Likewise, you can also set the purchasing and selling default accounts
  • Supplier: If a default supplier is set, this supplier will be selected for new purchase transactions.
  • Default Expense Account: It is the account in which cost of the Item will be debited.
  • Default Income Account: It is the account in which income from selling the Item will be credited.
  • Default Cost Center: It is used for tracking expense for this Item.

Tip: You can add more rows for multiple companies.

3.10 Purchase, Replenishment Details

  • Default Purchase Unit of Measure: The default UoM that will be used in Purchase transactions.
  • Minimum Order Qty: The minimum quantity required for purchase transactions like Purchase Orders. If set, the system will not let you proceed with the purchase transaction if the item quantity in the purchase transaction is lesser than the quantity set in this field.
  • Safety Stock: “Safety Stock” is used in the report “Itemwise Recommended Reorder Level”. Based on Safety Stock, average daily consumption and the lead time, the system suggests Reorder Level of an item.

Reorder Level = Safety Stock + (Average Daily Consumption * Lead Time)

  • Last Purchase Rate: The rate at which you last purchased this item using a Purchase Invoice will be displayed here.
  • Is Purchase Item: If unticked, you won't be able to use this item in purchase transactions.
  • Is Customer Provided Item: Checked if Item is provided by a customer and received through Stock Entry > Material Receipt. If Checked, Customer field is Mandatory as the default customer for Material Request. To know more visit this page.
  • Lead time days: Lead time days are the number of days between ordering the Item and it to reach the Warehouse.

3.11 Supplier Details

  • Delivered by Supplier (Drop Ship): If the item is delivered directly by the supplier to the customer, tick this checkbox. Read more here.
  • Supplier Codes: Track Item Code defined by the Suppliers for this Item. In the Purchase transactions, on selecting an Item, a Supplier Part No. will be fetched as well for the Supplier's reference. You can read more about it here.

3.12 Foreign Trade Details

If you're sourcing the item from another country, you can set the details here.

  • Country of Origin: The country from which you're sourcing the item.
  • Customs Tariff Number: You can create a customs tariff number with a description and use it for reference here to share with custom agencies. Later it can be used to add in Delivery Notes.

3.13 Sales Details

  • Grant Commission: Grant a commission to Sales Person and Sales Partner when this item is sold. If disabled, the sales generated by this item will be ignored in the calculation of commission.
  • Default Sales Unit of Measure: The default UoM that'll be fetched for sales transactions.
  • Max Discount (%): You can define the maximum discount in % to be applied to an item. Eg: if you set 20%, you cannot sell this item with a discount greater than 20%.
  • Is Sales Item: If unticked, you won't be able to use this item in sales transactions.

3.14 Deferred Revenue and Deferred Expense

You can enable deferred revenue or expense from the item. Once you tick the checkbox, you'll see options to set the Deferred Expense Account and the number of months through which the revenue/expense is deferred.

For example, consider a yearly gym membership, you pay the money upfront at once but the service is given throughout the year. For the gym owner, this is deferred revenue and for the customer, it is a deferred expense.

Check out the pages on Deferred Revenue for more details.

3.15 Customer Details

The Customer may identify an Item with a different Item Code. this is Similar to Supplier Code.

  • Customer Name: Select a customer here.
  • Customer Group: This will be fetched based on the Customer you selected in the previous field.
  • Ref Code: A customer can identify this item with a different number. You can track Item Code assigned by the Customer for this Item. When you create a Sales Order, the Customer's Reference Code for this Item will be shown.

3.16 Item Tax

These settings are required only if a particular Item has a different tax rate than the rate defined in the standard tax Account.

You need to create a new 'Item Tax Template' or choose an existing one. For example, if you have a tax Account, “VAT 14%” and this particular Item is exempted from tax, then you select “VAT 14%” in the first column, and set “0” as the tax rate in the second column. Visit the Item Tax Template page for more details.

You can also set a Tax Category for this Item.

3.17 Inspection Criteria

  • Inspection Required before Purchase: If an inspection is mandatory before the item is purchased, i.e., before you generate Purchase Receipt, tick this checkbox.
  • Inspection Required before Delivery: If an inspection is required at the time of delivery from your Supplier is mandatory for this Item, tick this checkbox. That is, before you generate a Delivery Note.
  • Quality Inspection Template: If a Quality Inspection is prepared for this Item, then this template of criteria will automatically be updated in the Quality Inspection table of the Quality Inspection. Examples of Criteria are: Weight, Length, Finish, etc.

Quality Inspection can be done with Quick View and you need not go to a different page to update the details inspection in ERPNext.

Read Quality Inspection to know more.

3.18 Manufacturing

  • Default BOM: The default Bill of Materials used to manufacture this Item.
  • Supply Raw Materials for Purchase: If you're subcontracting to a vendor, you can choose to provide them with the raw materials to manufacture the item using the default BOM.
  • Manufacturer: Select the Manufacturer who manufactured this item.
  • Manufacturer Part Number: Enter the manufacturer's assigned part number for this item.

3.19 Publishing Item on Website

From Version 16 onwards, the Webshop app has been separated from the core ERPNext. To use the functionality of publishing items on a website generated from your ERPNext account, ensure that Frappe’s Webshop app is installed on the site.

Show on Website: Choose whether to show this Item on your website; click Action and choose "Publish in Website".

A new record called Website Item is created, containing additional details about the items, and is also published on the web view of the item.

The following fields will be found in the Website Item master.

Weightage*: Items with higher weight will be displayed first on the website. The limit for the number you can enter here is very high.

  • Slideshow: A slideshow can be displayed at the top of the page. Visit the Homepage page in the Website module to know more.
  • Image: You can attach an image instead of a Slideshow.
  • Website Warehouse: Select an existing warehouse or create a new one for transactions on your website. This Warehouse will be different from your offline Warehouses. Stock for any online transactions will be deducted from the Warehouse set under Website Warehouse.
  • Website Item Groups: In this table, you can select existing or create new Item Groups to classify items on your website.
  • Set Meta Tags: Meta tags help with SEO. See Web Page to know how to add them.

Visit Manufacturing and Website to understand these topics in detail.

3.20 Website Specifications

This section is for configuring other details about the item.

  • Copy from Item Group: The 'Website Specifications' details will be fetched as set in a specific Item Group chosen on the previous section (2.17).
  • Website Specifications: Label and its description for the item. For example, 'Warranty: 1 year'.
  • Website Description: This will appear on the item page.
  • Website Content: (Introduced in v12) You can create additional styling, etc., use Bootstrap 4 markup to display on the item page.

3.21 Hub Publishing Details

The hub is a free online marketplace where Suppliers and Customers can transact. If both parties are on ERPNext, the transactions happen seamlessly. You can visit the hub at: https://hubmarket.org.

  • Publish in Hub: Choose if you want to publish your item on https://hubmarket.org/. It is a free marketplace. If your supplier/customer is also on ERPNext, the transactions will be seamless. For example, on creating a Purchase Order from your end, a Sales Order will be created on the Supplier's end.
  • Hub Warehouse: This is a separate Warehouse to maintain the stock for your hub transactions.
  • Synced With Hub: Sync item and other details with the hub when transactions take place.
  1. Video
  1. Item Price
  2. Item Codification
  3. Item Variants
  4. Item Group
  5. Item Attribute
  6. Item Valuation FIFO And Moving Average

Item Alternative

https://docs.frappe.io/erpnext/item-alternative

An Item Alternative is an Item similar to the original one and can be used instead of the original Item in manufacturing.

If the raw material defined in the BOM is not available during the production process then their respective available alternative Item can be used to complete the production process.

First you need to enable the "Allow Alternative Item" in the Item.

Item

To access the Item alternative list, go to:

Home > Stock > Items and Pricing > Item Alternative

This can also be done by clicking the plus sign next to 'Item Alternative' from the Item master dashboard. You can enable Two-Way replacement between an Item and their alternative item if both can be used as an alternative to each other.

Item Alternative

1. Prerequisites

Before creating and using an Item Alternative, it is advised that you create the following first:

2. Item Alternative for Work Order

To allow to using alternative Items in the manufacturing process, the user can configure to 'Allow Alternative Item' in the BOM/Work Order

2.1 Provision to allow alternative item in the BOM

You can enable 'Allow Alternative Item' in a BOM then select the alternative item in the Stock Entry. This can also be done with a Work Order.

Item

2.2 Provision to allow alternative item in the Work Order

User can also enable/disable allow alternative item for individual Work Orders.

Item

Ticking on the 'Allow Alternative Item' checkbox will show a button named 'Alternate Item'. You can click on this to set the Item Alternative in the Work Order. This is how you use Item Alternative in a Work Order:

Item

This is how you use Item Alternative with a Stock Entry:

Item

If the 'Allow Alternative Item' checkbox in the Item table is disabled, you cannot set an Alternate Item for this Item.

2.3 Item Alternative for subcontract

In subcontract, the user has to transfer raw materials to the subcontracted supplier to get finished good from them. If the raw material is not available in the stock, with this feature, the user can transfer the alternate item of the subcontracted raw material to the supplier. This is done in the Stock Entry.

Item

After this, when you create a Purchase Receipt from the Work Order, the alternate item will be shown.

  1. Bill Of Materials
  2. Work Order

Item Attribute

https://docs.frappe.io/erpnext/item-attribute

'Item Attributes' are the characteristics based on which Item Variants are created.

The attributes can be defined based on item's physical appearance and capabilities. Defining item attributes properly will be helpful in creating item variants as a combination of multiple attributes.

To access the Item Attribute list, go to:

Home > Stock > Settings > Item Attribute

How to create an Item Attribute?

  1. Go to the Item Attribute list, click on 'Add Item Attribute'.
  2. Enter a name for the Attribute.
  3. Enter the attribute values in the table.
  4. Save.

The attribute values can be numeric or non-numeric.

Non-Numeric Attributes

For Non-numeric attributes, specify attribute values along with their abbreviations in the Attribute Values table.

Numeric Attribute

If your attribute is 'Numeric', then specify the range and increment so that the system can generate respective variants.

In the following example, the cable length is of range 1 to 5 and the increment is 1. Hence, the variants will be 1,2,3,4,5.

Item Codification

https://docs.frappe.io/erpnext/item-codification

If you already have a full-fledged business with a number of physical items, you would have probably coded your items. If you have not, you have a choice. We recommend that you should codify if you have lot of products with long or complicated names. In case you have few products with short names, it is preferable to keep the Item Code same as Item Name.

Item codification has been a sensitive topic and wars have been fought on this (not joking). In our experience, when you have items that cross a certain size, life without codification is a nightmare.

1. Benefits

  • Standard way of naming things.
  • Less likely to have duplicates.
  • Explicit definition.
  • Helps to quickly find if a similar item exists.
  • Item names get longer and longer as more types get introduced. Codes are shorter.

2. Challenges

  • You have to remember the codes!
  • Harder for new team members to pick up.
  • You have to create new codes all the time.

3. Example

You should have a simple manual / cheat-sheet to codify your Items instead of just numbering them sequentially. Each letter should mean something. Here is an example:

If your business involves wooden furniture, then you may codify as follows:

Item Codification Summary Sheet (SAMPLE)

First letter: "Material" Third letter: "Size"

  • W - Wood - 0 - less than 1mm
  • H - Hardware - 1 - 1mm - 5mm
  • G - Glass - 2 - 5mm - 10mm
  • U - Upholstery - 3 - 10mm - 10cm
  • P - Plastic

Second Letter: "Type"

For Wood: For Hardware:

  • S - Sheet - S - Screw
  • B - Bar - N - Nut
  • L - L-section - W - Washer
  • M - Molded - B - Bracket
  • R - Round

The last few letters could be sequential. So by looking at code WM304 - you know its a wooden molding less than 10cm in size

4. Standardization

If you have more than one person naming items, the style of naming items will change for everyone. Sometimes, even for one person, he or she may forget how they had named the item and may create a duplicate name "Wooden Sheet 3mm" or "3mm Sheet of Wood"?

5. Rationalizing

It is a good practice to have minimum varieties of items so that you keep minimum stock, housekeeping is simpler etc. When you are planning a new product and you want to know if you are already purchasing a part in some other product, the item codes will help you quickly determine if you are using a similar raw material in another product.

We believe if you do this small investment, it will help you rationalize things as your business grows, though its okay not to codify if you have less items.

  1. Item Group
  2. Item Attribute
  3. Item Price
  4. Item Variants

Purchase invoice for Services

https://docs.frappe.io/erpnext/item-creation-not-required-in-purchase-invoice

1. Set Up Supplier

Navigate to Suppliers:

  • Go to Buying > Supplier.

Create New Supplier (if not already created):

  • Click on New.
  • Enter the supplier's details (name, contact information, address).
  • Save the supplier record.

2. Create a Service Item

Navigate to Item Master:

  • Go to Stock > Item.

Create New Item:

  • Click on New.
  • Enter the item code and name.
  • Under the Item Group field, select or create a group for services.
  • Set the Item Type to Service.
  • Fill in other relevant details, such as unit of measure and description.
  • Save the item record.

3. Create a Purchase Invoice

Navigate to Purchase Invoice:

  • Go to Buying > Purchase Invoice.

Start a New Invoice:

  • Click on New.

Enter Basic Information:

  • Supplier: Select the supplier from whom the service was received.
  • Invoice Date: Enter the date of the invoice.
  • Reference Number: Input any reference number provided by the supplier.

Add Service Details:

  • Items Section: Click on Add Item.
  • Select Service Item: Choose the service item you created earlier.
  • Description: Provide a detailed description of the service.
  • Rate and Quantity: Enter the rate and quantity for the service.
  • Taxes and Charges: If applicable, add any taxes or additional charges.

Account Details:

  • Expense Account: Ensure the service expense is recorded in the appropriate expense account. This can be configured under the Accounts section of the invoice.

Review and Save:

  • Verify all details for accuracy.
  • Click Save to save the draft of the invoice.

4. Submit

Submit Invoice:

  • Once the details are confirmed, click Submit to finalize the invoice.

Item Group

https://docs.frappe.io/erpnext/item-group

An Item Group is a way to classify items based on types.

Depending on the type of product, you can categorize an item under its respective field. If the product is service-oriented, assign it under the Item Group - service. If the product is used as a raw-material, assign it under the Raw Material category. In case, an item is used only in trading, you can categorize it under an Item Group called Trading.

To access the Item Group list, go to:

Home > Stock > Items and Pricing > Item Group

This is what the Item Group tree looks like:

How to create an Item Group

  1. Go to the Item Group list, click on New.
  2. Select a group node under which you wish to create the Item Group, the default root is 'All Item Groups'.
  3. Select 'Add Child' or click on the New button.
  4. To make this child a category/group node, tick on Group Node.
  5. Click on Create New.

Note:

  • Nodes in different parts of the tree cannot have the same name.
  • The child notes get alphabetically arranged

1.2 Delete an Item Group

  1. Select the Item Group you want to delete.
  2. Select 'Delete'.
  3. Click on Yes.
  4. Features

To see the following options, click on an Item Group, click on Edit.

2.1 Parent Item Group

You can change the parent Item Group of an item by choosing another one under General Settings.

2.2 Defaults

  • Default Price List: A default price list that'll determine the Item Prices for this Item Group.
  • Default Warehouse: The default Warehouse is set in transactions for the items that belong to this group.
  • Default Buying/Selling Cost Centre: The default Buying/Selling Cost Centre to which items in this group will be billed against.
  • Default Expense/Income Account: The default accounts for items that belong to this group.
  • Default Supplier: On setting a Supplier here, this supplier will be chosen in purchase transactions by default for items in this group.

2.3 Item Tax

A default item tax template will be applied to all items belonging to this group. Similarly a Tax Category can also be selected, visit Quotation to know more about Tax Categories.

2.4 Website Settings

  • Show in Website: Items belonging to this group will be shown on your website under the Item Group.
  • Weightage: This is the weight for the Item Groups themselves, item groups with higher weights will be shown first.
  • Slideshow: A slideshow for the Item Group, just like in an Item. Visit the Homepage page in Website module to know more.
  • Description: This will appear on the Item Group page.
  • Website Specifications: Label and its description for an item group.

Item Price

https://docs.frappe.io/erpnext/item-price

Item Price is the record in which you can log the selling and buying rate of an item.

There are two ways to reach a new Item Price form:

Selling/Buying/Stock > Items and Pricing > Item Price > New.

Or

Stock > Item > Click on "+" next to Item Price.
2. Select the Item. The name, UoM and description will be fetched.
3. Select the Price List, whether Selling/Buying price or any other price list you may have created.
4. Enter the actual rate in the Rate field.
5. Save.

1.1 Selecting the Price List

You can create multiple Price Lists for one Item in ERPNext to track the Selling and Buying Price of an Item separately. Also, if the Item's selling prices change based on Territory or due to other criteria, you can create multiple Selling Price Lists for it.

On selection of Price List, its currency and applicability, whether for selling/buying or both, will be fetched as well. To have Item Price fetching in the sales or purchase transaction, you should have 'Price List' selected in the transaction under Currency and Price List.

To check all Item Prices together, go to:

Stock > Stock Reports > Item Price Stock

Visit the Price Lists page to know more.

2. Features

2.1 Unit of Measurement (UOM)

A price is always specific to a certain UOM. For example, $1 per KG or $80 per hour. By default, the Item Price will fetch the item's Default Unit of Measure. You can change it to any UOM from the item's UOM table.

For example, if Rice is sold in 1 KG and 500-gram packets, then you can mention the UOM ("KG" or "grams") in the Item Price, and the correct price will be applied based on the UOM selected in the transaction.

2.2 Packing Unit

This is the quantity that must be bought or sold per unit of measure. For example, if the Packing Unit is two, and the UOM is one, two items in quantity will be transacted. The default is 0; you can use non-integer UoM like 1.5 kg oats for 1 Packing Unit. If you leave it as 0, it'll not affect any transaction.

2.3 Minimum quantity

This is the minimum quantity of items to be transacted for this price to be applicable and updated in the Item Price list.

2.4 Applying Price List to a specific Customer/Supplier

If you select a Selling Price list, a customer field will appear where you can assign this Item Price to a specific customer. Likewise, if you select a Buying Price List, a Supplier field will appear where you can select a specific Supplier

2.5 Applying Price List to a Specific Batch

You can also link a specific batch to an Item Price, and on the selection of that batch in the transaction, the item price for that specific batch will be applied.

2.6 Validity

There are two fields here, ' Valid From' and 'Valid Upto'. Valid from is set to the date you created the Item Price; you can also set the Valid Upto date on which the Item Price will expire.

2.7 Lead Time in days

The approximate number of days it takes the product to reach the warehouse. You can set different Item Prices based on how long it takes the same product to reach you from different vendors.

2.8 Note

You can add any note about the Item Price in this field.

Item Tax Template

https://docs.frappe.io/erpnext/item-tax-template

Item Tax Template is useful for item wise taxation.

If some of your Items have tax rates different from the standard tax rate assigned in the Taxes and Charges table, then you can create an Item Tax Template and assign it to an Item or Item Group. The rate assigned in the Item Tax Template will get preference over the standard tax rate assigned in the Taxes and Charges table.

For example, if tax GST 18% is added in the Taxes and Charges table in Sales Order, then it will be applied on all the items in that Sales Order. However, if you need to have different tax rate applied on some of the items, the steps are given below

To access the Item Tax Template list, go to

Home > Accounting > Taxes > Item Tax Template

Let's assume that we are creating a Sales Order. We have the Sales Taxes and Charges Template master for GST 9%. Out of all the Sales Items, on one Item, only 5% GST will be applied, while another item is exempted from tax (non taxable). You need to select the Account Head of the tax and set its overriding rate.

1. Prerequisites

Before creating and using an Item Tax Template, it is advised to create the following first:

  1. Item
  2. Enable 'Automatically add Taxes and Charges from Item Tax Template' in Account Settings

2. How to create an Item Tax Template

  1. Go to the Item Tax Template list and click on New.
  2. Enter a title for the Item Tax Template.
  3. Select an account and set the overriding rate. Add more rows if required.
  4. Save.

Now the Item Tax Template is ready to be assigned to an Item. To do this, go the Item, Item Tax section and select an Item Tax Template:

Item Tax In Item

Note: It is advised to not use the Sales/Purchase Template selected here in Tax Rule, it may cause interference. If you want to use same tax rates for Tax Rule and Item Tax Template, use a different name for the Sales/Purchase Tax Templates.

2.1 Mention Tax Applicable in the Item master

Tax templates are preset with values. For items which have a different tax rate than the others, you need to change it in the Item master. Go to the tax table in the Item, add a row, select the tax type and change the rate. Now, this new rate will over ride the template when creating an order/invoice. For example, in the below screenshot you can see that the tax rate is set as 5 and that's the rate which will be applied in transactions.

Item-wise Tax

For the Item which is exempted from tax entirely, mention 0% as tax rate in the Item master.

Tax Exempted Item

Note: For Item Tax Template to work, you need to ensure that the tax types (accounts) set in Item Tax Template (with changed tax rates) are present in the Sales Taxes and Charges Template.

If you want to include multiple items with different tax rates, you need to have record them under different tax heads. For example, VAT 14%, VAT 5% etc.

2.2 Tax Calculation in transaction

In sales transactions like Quotation, Sales Order, and Sales Invoice the taxes on items are calculated as per the Sales Taxes and Charges Template selected. However, if some items have an Item Tax Template linked, then the taxes are calculated on those items as per the rates mentioned in the Item Tax Template instead of the rates mentioned in the Sales Taxes and Charges Template.

For example, in the following screenshot, you can see that taxes are calculated at 3% even though the rate as per Sales Taxes and Charges Template is 6.25%.

Tax Calculation

2.3 Item Tax Template for each Items

You can also manually select a different Item Tax Template for each Item in a transaction:

Slect Item Tax Template

2.4 Item wise tax on an Item Group

You can assign the Item Tax Template to an Item Group by modifying the Item Tax table in the Item Tax section within the Item Group document.

Item Tax Template in Item Group

Item Tax Template applied on an Item Group will apply to all Items in that group unless an individual Item in the Item Group has its own Item Tax Template assigned to it.

2.5 Validity of Item Taxes

Item Tax in Item Group

You can also assign validity to tax templates as shown in the image above.

  • Based on the posting date of the transaction, a valid tax template will be automatically fetched.
  • If there are more than one valid tax templates then the first valid tax template from Item Tax table will be fetched.
  • In case when there are no valid tax templates then the first tax template with no 'Valid From' date in the Item Tax table will be fetched.

Note: While adding items in Purchase Invoice first preference will be given to 'Supplier Invoice Date' instead of 'Posting Date' for fetching valid Item Tax Template.

2.6 Some points to note

If you set the Tax Category as empty, the default Item Tax Template will be applied to Items in transactions.

You can apply different Item Tax Templates for different Tax Categories.

For an Item Tax Template to override taxes, there must be a row in the Taxes and Charges table with the same tax Account Head with a standard tax rate.

If you wish to apply taxes only on the Items with an Item Tax Template then you can set the standard tax rate as 0.

  1. Tax Rule
  2. Sales Invoice
  3. Purchase Invoice

Item Valuation Setup and Transactions

https://docs.frappe.io/erpnext/item-valuation-transactions

In ERPNext, Item's stock valuation is updated on the creation of one of the following transaction.

  1. Purchase Receipt
  2. Stock Entry of type Material Receipt
  3. Stock Reconciliation made for updating stock opening balance

You can select valuation method based on which item's value will be calculated. Valuation Method can be set globally for all the items from the Stock Settings.

Download Backup

You can also set Valuation Method in the item master, especially when a valuation method for an item is different from the default Method as seen in the following screenshot.

Download Backup

Note that once ledger entries are made for an item, this option will no longer be visible in the Item form.

Click here to learn about the valuation methods available in the ERPNext, and how it works.

New in v16

In ERPNext v16, users can now select Valuation Method per company basis and a new field in the DocType has been added for the same. The old field in single DocType still remains and will only be used in certain cases where the reference document does not have a reference to any company (such as ). The valuation method will be fetched in the following order:

CompanyStock SettingsBatch
  1. level
  2. level
  3. (global) level
ItemCompanyManufacturing Settings

Please set the valuation method in all the above levels accordingly to prevent incorrect stock valuations.

Item Variants

https://docs.frappe.io/erpnext/item-variants

An Item Variant is a version of an Item with different attributes like sizes or colors.

Eg: Suppose t-shirt is an Item and it comes in different sizes and colors like small, medium, large and red, blue, green. In ERPNext the t-shirt will be considered as an Item template and each of the variations will be an Item Variant.

A blue t-shirt in size small rather than just a t-shirt. Item variants let you treat the small, medium, and large versions of a t-shirt as variations of one Item 't-shirt'.

Without Item variants, you would have to treat the small, medium and large versions of a t-shirt as three separate Items.

1. Using Item Variants

Variants can be based on two things:

  1. Item Attributes
  2. Manufacturers

> Tip: Once an item template is created, when you update this template, all the variants are also updated accordingly.

1.1 Creating the Item Variant Template

  1. To use Item Variants in ERPNext, create an Item and tick 'Has Variants' under Variants.
  2. The Item then shall be referred to as a so-called 'Template'. Such a Template is not identical to a regular 'Item' any longer. For example, it (the Template) cannot be used directly in any transaction (Sales Order, Delivery Note, Purchase Invoice) itself.
  3. Only the Variants of the Item (blue t-shirt in size small) can be practically used. Therefore it would be ideal to decide whether an item 'Has Variants' or not directly when creating it. Has Variants
  4. On selecting 'Has Variants' a table will appear. Specify the variant attributes for the Item in the table. In case the attribute has Numeric Values, you can specify the range and create intervals based on the increment values. Valid Attributes

> Note: You cannot make Transactions against a 'Template'.

1.2 Creating the Item Variants Based on Item Attributes

To create 'Item Variants' against a 'Template' click on 'Create'. From there, choose whether to create a single variant or multiple. Single is simple where you create just one or more attributes and one Item will be created. When choosing multiple variants, tick the attributes and multiple items will be created. For example, if you choose Color: Red, Green and Size: Small, Medium, Large, 6 variants will be created.

Creating multiple variants in ERPNext:

To learn more about setting attributes, check out Item Attributes

1.3 Item Variants Based on Manufacturers

To set up variants based on Manufacturers, in your Item template, set "Variants Based On" as "Manufacturers"
In this case, to create variants, click on Create > Make Variant. The system will prompt you to select a Manufacturer. You can also optionally put in a Manufacturer Part Number.

The naming of the variant will be based on the name (ID) of the template Item with a number suffix. e.g. "Screwdriver" will have variant "Screwdriver-1".

2. Update Item Variants Based on Template

Go to: Home > Stock > Items and Pricing > Item Variant Settings. The fields displayed here will be copied over to the variants as well. By default, all fields are shown, delete any rows you don't want to be updated from the item template to the variants.

  1. Item Attribute

Item Group-wise Product Listing

https://docs.frappe.io/erpnext/item_group_wise_product_listing

Similar to the Product Listing at , ERPNext offers Product Listings that are Item Group-wise as well. You can link these pages on your landing page to direct users easily.

/all-products

Setting Up an Item Group Page

To provide a Product Listing page for an Item Group (e.g. Products), go to:

Item Group List > Products

  • Enable Show in Website.
  • Scroll down to the Website Filters section and add field and attribute filters similar to E Commerce Settings.
  • You can also add a description in the RichText Editor that will show above the product list as a banner.

Now if you click on the See on Website link, on the top left, above the image in the current document, you will be redirected to the Products Item Group's listing page.

Product Visibility

Consider the Item Group Products has child Item Groups Mobile Services and Mobiles.

Website Items that will be visible on the Products page are:

  • Those having Products as their Item Group
  • Those having Products in their Website Item Groups table.

Website Items having their Item Groups as Mobile Services or Mobiles will be visible on their respective pages. These pages will be linked in the Products page.

Child Item Groups such as Mobile Services and Mobiles will be visible as pills above the search bar on the Producst page.

Item Group-wise Product Listing

Job Card

https://docs.frappe.io/erpnext/job-card

A Job Card stores actual production information about a particular Operation performed on a particular Workstation.

A Job Card is created from the Work Order and given to each of the Workstations in the manufacturing floor to start the production of an item with a certain quantity in each of the operations defined in the Work Order.

Job Card allows each Operation's workstation to issue a “Material Request” and “Stock Transfer to Manufacture” for raw material required against a “Job Card”.

Job Card completion will change the production status in Work Order, we can track the completion of production progress for each of the Operations defined in the Work Order.

Work Order

To access the Job Card list, go to:

Home > Manufacturing > Production > Job Card

1. Prerequisites

Before creating and using a Job Card, it is advised that you create the following first:

2. How to Create a Job Card

Job Card for Operations is automatically created when a Work Order is submitted.

This is what a Job Card looks like:

Job Card

To use a Job Card follow these steps:

  1. Click on the Start Job button, then on Complete Job when you're done.
  2. Alternatively, you can also fill the From Time and To Time in the Time Logs table.
  3. Select the Employee to whom the Job Card was assigned.
  4. Enter the Completed Quantity. This is the number of Items on which the Operation was performed for the selected time interval.
  5. Add more rows in the Time Logs table and record time using the Start/Completed buttons.
  6. Click on Submit.

In a Work Order, the Operations and Workstations are fetched from the BOM of an Item. For ease of use, you should ensure that the Routing is configured in the BOM.

Each Job Card created will have Workstation & Operations assigned. The raw material required from each Source Warehouse will be calculated based on quantity required for production.

On submitting a Work Order, Job Cards will be auto-created based on the values in the Operations table.

Create Shareholder

2.1 Select Work Order with Item to Manufacture

You can select 'Transfer Material Against' as 'Job Card' on the Bill of Materials to transfer raw materials for Production against Job Cards.

In the Work Order, you can select the option:

Create Shareholder

2.3 Using a Job Card

Employee assignment and timing detail will also be defined in Job Card. The time taken to do a job can be recorded. If multiple employees are working on the same Operation, add new job cards by clicking on the 'Create Job' Card button.

Create Shareholder

2.4 Material Request against Job Card

A Material Request will be raised from the Job Card as a basis/order to prepare raw material required for the manufacturing process. The Material Request raised will have its reference to the original Job Card number.

Create Shareholder

Track the Manufacturing Progress in The Work Order by The Completion of Each Operations defined in Work Order.

Job Card completion allows you to track the manufacturing progress inside the Work Order by looking at the completion of each Operation related to the Work Order.

Work Order Job Card Completion

2.5 Scrap Items

While completing the operations, there might be chances that some scrap materials will be produced. This scrap materials are required to be added in the inventory. For that user needs to put the details of the scrap items in the job card. User can also set the defective materials / broken materials in the scrap items table.

Work Order Job Card Completion

3. Features

3.1 Tracking Quality Inspection

Introduced in Version 13

For production orders, the quality of in-process (semi-finished) goods also needs to be tracked. It is defined by the process (operation) performed on it which is in turn defined in the Job Card. In-process tests are different than incoming and outgoing material tests. Monitoring quality during manufacturing helps to make sure that the finished product produced is of the desired quality. You can create a Quality Inspection for the Production Item against the Job Card.

Quality Inspection Against Job Card

Quality Inspection link in Job Card

Pending Qty in Job Card

A new Pending Qty field has been introduced in the Job Card (in Version 16) to handle partial production and prevent incorrect Process Loss calculation.

Problem

Previously, while completing a Job Card, the system automatically considered the remaining quantity as Process Loss Qty. This caused issues in cases where the operation was only partially completed, preventing users from submitting the Job Card.

Solution

To support partial completion, a Pending Qty field has been added to the Job Card.

  • Users can now specify the quantity that is still pending for the operation.
  • The system will not treat the remaining quantity as Process Loss if a Pending Qty is specified.
  • Process Loss Qty will be calculated only when the Pending Qty is zero, indicating that the operation is fully completed.

Example

  • Qty to Manufacture: 10
  • Completed Qty: 6
  • Pending Qty: 4

In this case, the system will not calculate Process Loss Qty, as the remaining quantity is marked as pending.

If:

  • Qty to Manufacture: 10
  • Completed Qty: 6
  • Pending Qty: 0

Then the remaining quantity (4) will be treated as Process Loss Qty.

This enhancement allows users to perform partial production tracking without affecting Job Card submission.

For more details, refer the Quality Inspection page.

Job Card Summary

https://docs.frappe.io/erpnext/job-card-summary

To access the Job Card Summary, go to:

Home > Manufacturing > Reports > Job Card Summary

Task

This report will give information about the Job Card as well as their status. Using this report users can check the month's Open and Completed Job Cards for the selected periods.

Journal Entry

https://docs.frappe.io/erpnext/journal-entry

A Journal Entry is an entry made in the general ledger and it indicates the affected accounts.

A Journal Entry is a multi purpose transaction where the debit and credit accounts can be selected.

All types of accounting entries other than Sales and Purchase transactions are made using the Journal Entry. A Journal Entry is a standard accounting transaction that affects multiple Accounts and the sum of debits is equal to the sum of credits. A Journal Entry Impacts the main ledger.

Journal Entries can be used for entering expenses, opening entries, contra entries, bank payments, excise entries, etc. For example, booking running expenses, direct expenses like petrol/transport, sundry expenses, adjustment entries, and adjusting invoice amount.

Note: From version-13 onwards we have introduced immutable ledger which changes the way cancellation of accounting entries works in ERPNext. Learn more here.

To access the Journal Entry list, go to:

Home > Accounting > General Ledger > Journal Entry

1. How to create a Journal Entry

  1. Go to the Journal Entry list, click on New.
  2. The default Entry Type will be 'Journal Entry'. This is a general purpose entry type. Visit section 3 to know more about entry types.
  3. You can change the Posting Date.
  4. Expand the table, select an Account from which amount is debited.
  5. The above details can be added from a Journal Entry Template too with the 'From Template' field.
  6. Select the Party Type and Party if it's a Debtor entry.
  7. Add a row where the amount will be credited.
  8. Note that, in the end, total debit and credit amounts should add up to be the same.
  9. Save and Submit.

Journal Entry

Finance Book: You can post this entry to a specific Finance Book. On leaving this field blank, this Journal Entry will show up in all Finance Books. This field will only be visible if 'Enable Finance Books' under the Fixed Asset Defaults section of the Company master is checked.

1.1 Quick Entry

When creating a Journal Entry, a Quick Entry button can be seen on the top right. This makes creating the Journal Entry a bit easier. Enter the amount, select the accounts, add a remark. This will populate the 'Accounting Entries' table with the selected details.

Quick Entry

2. Features

2.1 Accounting Entries

Accounting Dimensions: A Project or Cost Center can be linked here to track the costing separately. To know more, visit this page.

Accounting Dimension

Bank Account No: If you've added a Bank Account, the number associated with that bank account will be fetched.

Reference Type: If this Accounting Entry is associated with another transaction, it can be referenced here. Select the Reference Type and select the specific document. For example, if you're creating a Journal Entry against a specific Sales Invoice. Link this Journal Entry to the invoice. The “outstanding” amount of that invoice will be affected.

Reference

Following are the documents that can be selected in the Journal Entry under Reference Type:

  1. Sales Invoice
  2. Purchase Invoice
  3. Journal Entry
  4. Sales Order
  5. Purchase Order
  6. Expense Claim
  7. Asset
  8. Loan
  9. Payroll Entry
  10. Employee Advance
  11. Exchange Rate Revaluation
  12. Invoice Discounting

Is Advance: If this is an advance payment by a Customer, set this option to 'Yes'. This is useful when you have linked a 'Reference Type' form to this Journal Entry. Selecting “Yes” will link this Journal Entry to the transaction selected in the 'Reference Name' field. To know more, visit the Advance Payment Entry page.

User Remark: Any additional remarks about the entry can be added in this field.

2.2 Reverse Journal Entry

In any submitted Journal Entry, there is a dedicated button to reverse the Journal Entry. On clicking the 'Reverse Journal Entry' button, the system creates a new Journal Entry by reversing debit and credit amount against the respective accounts.

Reverse Journal Entry

2.3 Difference Entry

The “Difference” is the difference that remains after summing all debit and credit amounts.

As per double entry accounting system, the total debit should be equal to the total credit.

This should be zero if the Journal Entry is to be “Submitted”. If this number is not zero, you can click on “Make Difference Entry” and the system will automatically add a new row with the amount required to make the total as zero. Select the account to debit/credit and proceed.

Make Difference

2.4 Referencing

A Reference Number can be entered manually and a Reference Date can be set. On entering a Reference Number here, a 'Remark' will be seen, for example:

Note: supplier

Reference #2321 dated 30-09-2019 ₹ 1,000.00 against Sales Invoice ACC-SINV-2019-00064

In th Reference section, the following fields can be entered manually if the bill was recorded offline and not in the ERPNext system. This is only for reference purposes.

  1. Bill No
  2. Bill Date
  3. Due Date

2.5 Multi Currency entries

If the accounts selected are in different currencies, tick the 'Multi Currency' checkbox. If this checkbox is not enabled, you will not be able to select any foreign currencies in the Journal Entry. This will show the different currency and fetch the 'Exchange Rate'. To know more, visit the Multi Currency Accounting page.

Multi Currency

2.6 Journal Entry Template

From Template field: Selecting an option in this will load details from a Journal Entry Template.

It will fetch and add the following details to the entry:

  1. Entry Type
  2. Company
  3. Series
  4. Accounts in Accounting Entries
  5. Is Opening

To learn more go to the Journal Entry Template page.

2.7 Print Settings

Journal Print Settings

Pay To / Recd From: The name entered here will show up in the Sales Invoice. This is useful for printing cheques. Go to the print view in the Journal Entry and select the 'Cheque Printing Format'.

Letterhead

You can print your Journal Entry on your company's letterhead. Know more here.

Journal Entries can also be titled differently for printing purposes. You can do this by selecting a Print Heading. To create new Print Headings go to:

Home > Settings > Printing > Print Heading

Read Print Headings to know more.

2.7 More Information

  1. Mode of Payment: Whether the payment was done using Wire Transfer, Bank Draft, Credit Card, Cheque, or Cash. New Modes of Payment can also be created. If a Bank Account is set in Mode of Payment, it will be fetched here when the Mode of Payment is selected.
  2. Is Opening: If the Journal Entry is of type 'Opening Entry' this field will be set to 'Yes'. To know more, visit the Opening Balance page.
  3. From Template: When a template is selected, the 'Accounting Entries' table will be emptied first before loading the accounts from the template. You can add more account entries after that.

3. Journal Entry Types

Let's take a look at some of the common accounting entries that can be done via Journal Entry in ERPNext.

3.1 Journal Entry

This is a general purpose entry type which can be used for different purposes. Let's see a few examples.

Expenses (non accruing)

Many times it may not be necessary to accrue an expense, but it can be directly booked against an expense Account on payment. For example, a travel allowance or a telephone bill. You can directly debit Telephone Expense (instead of your telephone company) and credit your Bank on payment.

  1. Debit: Expense Account (like Telephone expense).
  2. Credit: Bank or Cash Account.

Crediting Salaries

For crediting employee salaries, 'Journal Entry' type is used. In this case,

  1. Debit: The salary components.
  2. Credit: The bank account.

3.2 Inter Company Journal Entry

If a transaction occurs between a parent and child company, or sister companies, or two companies belonging to the same group, this option can be used to make an Inter Company Journal Entry.

To know more visit the Inter Company Journal Entry page.

3.3 Bank Entry

Use this type when making or receiving a payment using a Bank Account. For example, paying for an entertainment charges etc using the Company's bank account.

3.4 Cash Entry

This is the same as 'Bank Entry' but the payment is made via Cash Account.

3.5 Credit Card Entry

This is a type of entry to easily identify all credit card entries.

3.6 Debit Note

This is a document sent by a customer (your Company) to a supplier (your Supplier) when returning goods/items.

You can also create a Debit Note directly from a Purchase Invoice.

"Debit Note" is made for a Supplier against a Purchase Invoice or accepted as a credit note from Supplier when a company returns goods. When a Debit Note is made, the Company can either receive a payment from the Supplier or adjust the amount in another invoice.

  1. Debit: Supplier Account.
  2. Credit: Purchase Return Account.

To know more, visit this page.

3.7 Credit Note

This is a document sent by a supplier to a customer when returning goods/items.

"Credit Note" is made for a Customer against a Sales Invoice when the company needs to adjust a payment for returned goods. When a Credit Note is made, the seller can either make a payment to the customer or adjust the amount in another invoice.

  1. Debit: Sales Return Account.
  2. Credit: Customer Account.

To know more, visit this page.

A debit/credit note is usually issued for the value of the goods returned or lesser.

3.8 Contra Entry

A Contra Entry is booked when the transaction is booked within the same Company of types:

  1. Cash to Cash
  2. Bank to Bank
  3. Cash to Bank
  4. Bank to Cash

This is used to record withdrawing or depositing money from a Bank Account. When this entry is used, the money does not leave the company unless it is again used to pay for something.

3.9 Excise Entry

When a Company buys goods from a Supplier, company pays excise duty on these goods to Supplier. And when a company sells these goods to Customers, it receives excise duty. Company will deduct payable excise duty and deposit balance in Govt. account.

When a Company buys goods with Excise duty:

  1. Debit: Purchase Account, Excise Duty Account.
  2. Credit: Supplier Account.

When a Company sells goods with Excise duty:

  1. Debit: Customer Account.
  2. Credit: Sales Account, Excise Duty Account.

Note: Applicable in India, might not be applicable for your country. Please check your country regulations.

3.10 Write Offs or Bad Debts

If you are writing off an Invoice as a bad debt, you can create a Journal Voucher similar to a Payment, except instead of debiting your Bank, you can debit an Expense Account called Bad Debts.

  1. Debit: Bad Debts Written Off
  2. Credit: Customer

Note: There may be regulations in your country before you can write off bad debts.

3.11 Opening Entry

This entry is useful when moving from an another software to ERPNext during any time of the year. Your outstanding bills, equities etc. can be recorded to ERPNext using this entry type. Selecting type will fetch the Balance Sheet accounts.

3.12 Depreciation

Depreciation is when you write off certain value of your assets as an expense. For example if you have a computer that you will use for say 5 years, you can distribute its expense over the period and pass a Journal Entry at the end of each year reducing its value by a certain percentage.

  1. Debit: Depreciation (Expense).
  2. Credit: Asset (the Account under which you had booked the asset to be depreciated).

To know more, visit the Asset Depreciation page.

Note: There may be regulations in your country that define by how much amount you can depreciate a class of Assets.

3.13 Exchange Rate Revaluation

If your Chart of Accounts has accounts with multiple currencies, a Journal Entry of type 'Exchange Rate Revaluation' helps in dealing with this situation. This entry is intended to be created from an Exchange Rate Revaluation form. To know more visit the Exchange Rate Revaluation page.

  1. Inter Company Journal Entry
  2. Credit Note
  3. Debit Note
  4. Sales Invoice
  5. Difference Entry Button
  6. Finance Book

Journal Entry Template

https://docs.frappe.io/erpnext/journal-entry-template

A Journal Entry Template lets you set and select a predetermined list of accounts and options while making a Journal Entry.

To access the Journal Entry Template, go to:

Home > Accounting > General Ledger > Journal Entry Template

1. How to Create and use a Journal Entry Template:

Journal Entry Template
  1. Go to the Journal Entry Template List and click on New.
  2. Add the following details:
  • Template Title: This will be used to select the template from Journal Entry.
  • Company: By default the company defined in Global Defaults is selected. You can select any another company too.
  • Entry Type: You can select from the entry types available in Journal Entry here. Default value is Journal Entry.
  • There are 3 special 'Entry Types' in this:
  • Opening Entry: This will get all the accounts and load them into the "Accounting Entries" table. To learn more visit Opening Balance page.
  • Bank Entry: This will get and load the default Bank Account if set.
  • Cash Entry: This will get and load the default Cash Account if set.
  • Is Opening: This will be autoset to 'Yes' if 'Opening Entry' is selected as Entry Type.
  • Series: You can select from a list of naming series available to Journal Entry.
  • Accounting Entries: Here you can select a list of accounts to add to the entry.
  1. Save and go to Journal Entry and click on new.
  2. In the 'From Template' field when you select the template, it will load the accounts and other options set in it. Please note it will clear the Accounting Entries table first, but you can add more accounts to the table apart from those fetched from the template.

Creating Journal Entry From Template
  1. Journal Entry

Landed cost Voucher

https://docs.frappe.io/erpnext/landed-cost-voucher

For creating a Landed cost voucher in ERPNext: You have to create it against a Purchase Receipt and Purchase Invoice.
While creating against Purchase Invoice: In the Purchase Invoice --> Update Stock should be checked.

If this field is unchecked, the Purchase Invoices will not be fetched in the Landed Cost Voucher
While creating against Purchase Receipt: The Item selected should have Maintain Stock checked.

If this field is not checked, the Items will not be displayed when you click Get items from Purchase Receipt.
While creating a Landed cost Voucher, additional costs can be added for the items until they land in our Inventory.
These additional charges once added, get added in the Item Valuation rate and update the Item Rate.
You can trace this additional charge effect on the Accounting ledger in the Purchase Receipt --> View --> Accounting Ledger
If the additional charges have to be paid against the Landed Cost Voucher, you can:1. You can create a Payment Entry directly to complete the payment for additional expenses for the Item and then create a Purchase Invoice with Is Paid checked --> [In this case, Purchase Invoice is not mandatory unless you want the accounting effect to be seen. ] 2. You can create a Purchase Invoice for a Supplier for which the Additional Expenses are incurred, this way you can see the Accounting effect for the expenses as per the Landed Cost Voucher, then create a Payment entry against it.

Setting up LDAP

https://docs.frappe.io/erpnext/ldap-integration

Lightweight Directory Access Protocol (LDAP) is a centralized access control system used by many small and medium-scale organizations.

By settings up LDAP service, you able to login to ERPNext account by using LDAP credentials.

1. Prerequisites

To use LDAP, you will first need to install the Python module. To do this, open a terminal session on your server that hosts the ERPNext instance. Go to the directory. run the command:

ldap3frappe-bench./env/pip install ldap3

You are now ready to enable the LDAP service in ERPNext.

2. Setting up LDAP

To setup LDAP, go to

Home > Integrations > LDAP Settings

Many parameters are mandatory to allow ERPNext to connect to LDAP. They are:

LDAP Server URL: This is the URL to your LDAP server. Must be in the form of or

ldap://yourserver:portldaps://yourserver:port

Base Distinguished Name (DN): This is the distinguished name of the user that has permissions to look up user details on your LDAP server. This should be a user that only has read-only permissions on your LDAP Server.

Password for Base DN: This is the password for the user above, that is used to look up user details on your LDAP server.

Organization Unit of Users: This is the DN of the Organizational Unit that all users in your LDAP server must be part of to be able to log into ERPNext.

Default Role on Creation: When the user is created in ERPNext, they will be assigned with this default role, the first time they log in.

LDAP Search String: This field allows ERPNext to match the user/email entered in the ERPNext login screen, with the LDAP Server. For example, you could use email address, or username depending on your preference.

It must be entered in the format:

LDAPFIELD={0}

Active Directory username example:

sAMAccountName={0}

Open LDAP username example:

uid={0}
  • LDAP Email Field: Specifies the LDAP field that contains the email address of the user.

Active Directory and Open LDAP example:

mail
  • LDAP Username Field: Specifies the LDAP field that contains the username of the user.

Active Directory example :

sAMAccountName

Open LDAP example:

uid
  • LDAP First Name Field: Specifies the LDAP field that contains the first name of the user.

Active Directory example:

givenName

Open LDAP example:

sn

There are many other non-mandatory fields that you can use to map your LDAP user fields to the ERPNext user fields. They are:

  • Middle Name
  • Phone
  • Mobile

Once your settings are correct, you can click the checkbox at the top. When attempting to enable LDAP, ERPNext will try and connect to the LDAP server to ensure the settings are correct. If it fails, you will not be able to enable LDAP and will receive an error message.

Enabled

The error message will indicate the issue that needs to be resolved to continue.

After setting enabling LDAP, on the login screen, the system enables Login Via LDAP option.

2.1 LDAP Security

In the LDAP Security section, You have many options to connect securely to your LDAP server.

SSL/TLS Mode

Specifies whether you want to start a TLS session on initial connection to the LDAP server.

Require Trusted Certificate

Specifies if you require a trusted certificate to connect to the LDAP server

If you are specifying a trusted certificate, you will need to specify the paths to your certificate files. These files are to be placed on your ERPNext server, and the following fields should be an absolute path to the files on your server. The certificate fields are:

Path to private Key File

Path to Server Certificate

Path to CA Certs File

2.2 LDAP Group Mappings

ERPNext also allows you to automatically map multiple LDAP groups to the appropriate ERPNext roles. For example, you may want all of your Accounting employees, to automatically have the Accounts User Role.

Ensure that you fill out the LDAP Group Field to allow this. This is the LDAP field that is found on a user object in LDAP, that has all of the groups the user is a member of.

For Active Directory and Open LDAP, this field should be set to .

memberOf

Open LDAP may need this field to be enabled on your LDAP server. Please see examples on the internet for more details.

Note that all ERPNext roles will be checked each time a user logs on and will be removed or added to the user's permissions.

In the LDAP Settings area, there are two dropdowns.

  1. SSL/TLS Mode - set this to StartTLS to connect to your LDAP server using StartTLS. If your LDAP server does not support StartTLS, setting this to StartTLS will result in an error . Check the configuration on your LDAP server if you receive this error.
  2. Require Trusted Certificate - if you change this to Yes then the certificate provided by the LDAP server must be trusted by the Frappe/ERPNext server. If you would rather use StartTLS with a self-signed (untrusted) certificate, set this to No. If you do not use StartTLS, this setting is ignored.
StartTLS is not supported

Lead

https://docs.frappe.io/erpnext/lead

A lead is a potential customer who might be interested in your products or services.

To get the customer through the door, you may be doing all or any of the following:

  • Listing your product on directories.
  • Maintaining an updated and searchable website.
  • Meeting people at trade events.
  • Advertising your products or services.

When you send out the word that you are around and have something valuable to offer, people will come in to check out your products. These are your Leads.

They are called Leads because they may lead you to a sale. Sales executives usually work on leads by calling them, building a relationship and sending information about products or services. It is important to track all this conversation to enable another person who may have to follow-up on that contact. The new person is then able to know the history of that particular Lead.

To access the Lead list, go to:

Home > CRM > Sales Pipeline > Lead

  1. How to Create a Lead

Go to the Lead list and click on New.

If the person represents an organization, check the 'Lead is an Organization' checkbox. Notice that when you check, the 'Company Name ' field becomes mandatory. Enter the Company Name.

If the person is an individual, leave the checkbox unchecked and enter Person Name and Gender.

Enter the 'Email Address'.

Status is the important field in the Lead. You can set the status manually and also it will be updated automatically based on your actions against the lead.

  • Lead: This is the default status assigned when a Lead is created and it indicates an action is needed against this Lead.
  • Open: Sales executive needs to contact the Lead.
  • Replied: A sales executive has provided the information needed and response from Lead is awaited.
  • Opportunity: If an Opportunity is created against the Lead, the status is set to Opportunity. It indicates that the Lead is qualified and may lead to sales.
  • Quotation: If a quotation is created against a Lead, then the status is set to Quotation.
  • Lost Quotation: If the quotation given to the lead has been marked as lost, then the status is set to 'Lost Quotation'.
  • Interested: The lead is interested in the products or services.
  • Converted: If the quotation given to the Lead has resulted in confirmation of an order and if the Sales Order has been created against the quotation, then the status is set to Converted.
  • Do Not Contact: Lead is not interested and no further communication is needed.

You can set the Lead Source in Source field.

Enter email ID for communication.

Click on 'Save'.

Lead

You can also record the details of the conversation in the NOTES section.

Further details like Lead Type, Market Segment, Industry can be added in the 'MORE INFORMATION' section.

If you have a healthy number of leads, all this information will help you prioritize the leads you can pursue.

You can assign the Lead to a user by clicking on 'Assign' button on left bar. You can also attach files/images by clicking on 'Attach File' button.

  1. Features

2.1 Reminders to Follow Up on the Leads

It is important to reach out to leads from time to time and build the relationship. You can create a calendar event from the Activities tab for the user and a notification will be shown on that date.

2.2 Adding Multiple Contacts and Addresses

In Busines-to-business(B2B) scenario, in order to close a sales deal, you will have to contact multiple people working in the prospective company. You can add the details of all such people in the same lead. Once you save a Lead, you will get the option to add Contact details by clicking on 'New Contact' button. Similarly, you can add the Address details by clicking on 'New Address'.

Multiple Contacts and Addresses in Lead

2.3 Recording Comments, Emails and Events

  • Comments: You can write your comment in 'Add a comment' box and click on 'Comment'.
  • Emails: You can send an email to the lead by clicking on the 'New Email' button and when the lead responds to your email, it will be appended to your email creating an email thread.
  • Events: You can also records the Meetings, Calls etc you have had with the Lead by clicking on 'New Event'

2.4 Creating Opportunity, Customer and Quotation

You can create an Opportunity, Customer or a Quotation from the Make dropdown. Relevant field values will be copied over.

2.5 Auto-assigning the Leads to Sales Executives

Introduced in Version 12

You can define Assignment Rules to automatically assign the leads to sales executives.

Lead Assignment Rule
  1. Adding Custom Fields

You may need to add custom fields to capture additional details as per your needs.

You can customize the Lead DocType using Customize Form tool.

  1. Related Topics
  1. Opportunity
  2. Customer
  3. Difference between Lead, Contact, and Customer

Lead Source

https://docs.frappe.io/erpnext/lead_source

Lead Source is a channel through which the leads are generated.

It is important to track the source from which you are getting the leads. This will help in measuring effectiveness of various marketing campaigns and allocate the budgets accordingly.

To access the Lead Source list, go to:

Home > Selling > Settings > Lead Source

  1. How to Create a Lead Source
  1. Go to the Lead Source list, click on New.
  2. Enter 'Source Name'.
  3. Enter 'Details' if you need to elaborate more on the source.

Typical lead sources are contact forms on your website, marketing campaigns, events, references, ads on social media etc.

Screenshot 2023-12-28 at 10.30.48 AM

The system will allow you to maintain a list of various lead sources leveraged by you.

Screenshot 2023-12-28 at 10.35.00 AM

Letter Head

https://docs.frappe.io/erpnext/letter-head

A Letter Head contains your organization's name, logo, address, etc which appears at the top portion in documents.

Every company has a default Letter Head. These Letter Head values are generally set as Header and Footer in the documents. In ERPNext, you can capture these details in the Letter Head master.

These details will appear in the Print Format of transactions like Sales Order, Sales Invoice, Salary Slip, Purchase Order, etc. In ERPNext, the Letter Head is only for setting up the top part of the document, other content is pre-formatted and can be configured via Print Format and Print Headings.

To access Letter Head, go to:

Home > Settings > Letter Head

1. How to create a Letter Head

  1. Go to the Letter Head list, click on New.
  2. Enter a name for the Letter Head. You can create a separate Letter Head for different office locations.
  3. Choose whether based on image or HTML.
  4. You can enter details in a Letter Head by using:
  • Logo Image: Click on the Attach button to attach an image. Once the image is inserted, HTML for it will be generated automatically.
  • Other information (like Address, tax ID, etc.) that you want to put on your Letter Head.

Print Heading

If you want to make this the default Letter Head, click on "Default Letter Head".

  1. After entering values in the Header and Footer section, save the Letter Head.

You can set the Letter Head based on HTML to make changes to it:

Letter Head based on

This is how the Letter Head looks in a document's print.

Print Heading

Note that Footer will be visible only when the document's print is seen in the PDF. Footer will not be visible in the HTML based print preview.

2. Video

  1. Address Template
  2. Terms and Conditions
  3. Cheque Print Template
  4. Print Headings

Letter Head in the Report

https://docs.frappe.io/erpnext/letter-head-in-the-report

In the reports, Letter Head is fetched from the Company master.

To have the company's Letter Head fetched correctly in the report, please ensure that you have updated the default Letter Head in the Company master.

Explore > Accounting > Company

Letter Head

In a Company master, if no Letter Head is set as default, then in the reports, Letter Head having Default field checked will be fetched.

Letter Head

If you are managing multiple companies in a single ERPNext account, then ensure that for each Company, default Letter Head is set in the Company master.

After updating Letter Head in the Company master, refresh your ERPNext account, and then check the print format of a report.

LinkedIn Settings

https://docs.frappe.io/erpnext/linkedin-settings

Note: This integration is deprecated and will be removed in v15.

LinkedIn related settings like OAuth can be configured here. ERPNext needs access to the API through which the post is shared and achieved using OAuth 2.0 Authentication Protocol.

  1. How to set up LinkedIn Developer App

You must have LinkedIn Developer App for your company. ERPNext interacts with this App for sharing the post.

1.1 Create LinkedIn Developer App

Create App by link fill all the details and verify it. And that App has the following products.

https://www.linkedin.com/developers
  1. Share on LinkedIn
  2. Sign In with LinkedIn
  3. Marketing Developer Platform
LinkedIn Developer App Product

1.2 Configure Redirect URLs:

Goto your LinkedIn Developers App then Auth tab.

In OAuth 2.0 settings section add Redirect URLs:

https://{yoursite}/api/method/erpnext.crm.doctype.linkedin_settings.linkedin_settings.callback

Click Update to make changes.

LinkedIn Redirect URL

How to set up LinkedIn Settings

To access LinkedIn Settings, go to:

Home > CRM > Settings > LinkedIn Settings

LinkedIn Settings

Company ID

You get the Company ID from your LinkedIn Company URL.

LinkedIn Company ID

Consumer Key and Consumer Secret

You get Consumer Key and Consumer Secret from your LinkedIn Developer account go to:

> My Apps > > Auth

https://www.linkedin.com/developers/{Your App}

LinkedIn Client

Once you save the doc by filling Company ID, Consumer Key, and Consumer Secret it will redirect to LinkedIn's sign-in page by providing valid LinkedIn credentials and clicking Allow, the member approves your application's request to access their member data and interact with LinkedIn on their behalf.

Authorize LinkedIn

Linking Emails to Documents

https://docs.frappe.io/erpnext/linking-emails-to-document

Introduced in v12

An email can be linked to multiple documents in ERPNext.

This can be done in the following two ways:

  • Email Aggregation in Contact, Customer, Supplier.
  • Automatic Email Linking.
  1. Email Aggregation for Customer and Supplier

Email Aggregation takes place in Contact, Customer, and Supplier. All the Emails sent or received from a Contact can be viewed in that Contact's Timeline and as well as linked Customer's or Supplier's Timeline. To enable Email Aggregation, do the following:

  1. In a Contact, add Links for the Customer or Supplier respectively.

2. Now when an Email is sent to or received from the Contact associated with Customer or Supplier, that email is linked to the Customer or Supplier mentioned in the Links section of the Contact.

Add Customer/Supplier in Contact

With Filters
  1. Automatic Email Linking to a Document

Automatic Email Linking links an Email to the Document specified in the unique Email Address generated by the system for a document. If an Email is sent or received using the unique Email Address, the system will link that Email to the Document.

  1. Enable Automatic Email Linking in Email Account. This feature can be used only with one Email Account at a time.

2. Once this feature has been enabled, you will see a unique Email ID generated using the Email ID mentioned in the Email Account. 3. Now you can copy the Email ID by clicking on it and you can send or receive Emails using the unique Email ID. If an Email contains this unique Email ID either in the Recipients or Cc section, the system will link that Email to the specified Document.

Add Customer/Supplier in Contact

Add Customer/Supplier in Contact

Note: Email linking with BCC is not supported. You have to add unique email as receipient in TO or CC.

  1. Auto Email Reports
  2. Sending Email from any Document
  3. Document Follow

Sales and Payment Transactions

https://docs.frappe.io/erpnext/local_overrides

In order to be compliant with the latest finance law applicable to POS software, ERPNext automatically registers all sales and payment transactions in a chained log.

If your country is set to "France", the deletion of sales and payment transactions will also not be permitted, even if the appropriate permissions are given to the user.

Please note that ERPNext is not yet fully compliant with the 2016 Finance Law.

A dedicated report called "Transaction Log Report" is available to verify that the logged chain has not been broken.

If the status of the column "Chain Integrity" is "True", the chain has not been broken. It means that you can consult the full chain of events that occurred in your system.

If the status of the column "Chain Integrity" is "False", it means that there is a discrepancy in the chain. In this case, the previous row has been removed or altered in the database. It is a probable effect of a fraudulent behavior.

Lower Deduction Certificate

https://docs.frappe.io/erpnext/lower-deduction-certificate

According to the tax withholding category, a person responsible for making payments is required to deduct tax at source at prescribed rates. Instead of receiving tax on your income from you at a later date, the government wants the payers to deduct tax beforehand and deposit it with the government. However this scheme of deducting tax at source may cause issues to a few taxpayers who may not have taxable income for that fiscal year.

Therefore, for such taxpayers, the government provides an option to obtain a certificate confirming to either a lower rate or NIL rate of TDS compared to the rate specified in the tax withholding category.

1. Prerequisites

Before creating and using a Lower Deduction Certificate, it is advised to create and study the following first:

  1. Supplier
  2. Tax Withholding Category

2. How to create a Lower Deduction Certificate

  1. Go to the Lower Deduction Certificate list and click on New.
  2. Enter the Certificate No.
  3. Select the Section Code.
  4. Enter the Fiscal Year.
  5. Select the Supplier having a valid PAN number. PAN number will be auto fetched on the selection of Supplier.
  6. Enter Valid From and Valid Up To dates.
  7. Enter rate of TDS as per the certificate and the certificate limit.
  8. Click on Save.

Lower Deduction Certificate

3. Using Lower Deduction Certificate

3.1 Use in Purchase Invoice

In the following example, we have selected TDS category as 'TDS - 194D - Individual' which has a rate of 5%.

Tax Withholding Category
  1. Set the Tax Withholding Category for the Supplier in the supplier master. Then upon selecting that Supplier, a checkbox will become visible in the Purchase Invoice to select whether to apply tax or not and the TDS category will be auto-fetched.

Supplier With Tax Withholding Category
  1. Let's create an invoice for 20,000. Saving the invoice automatically calculates tax and appends it in the Purchase Taxes and Charges table. Although the tax category assigned to the supplier has a tax rate of 5%, the prevailing tax rate is 1% which is mentioned in the Lower Deduction Certificate.

Lower TDS in Purchase Invoice
  1. Tax Withholding Category

Loyalty points redemption in POS

https://docs.frappe.io/erpnext/loyalty-points-redemption-in-pos

In ERPNext POS module, the invoices are auto generated. You can set your complete POS system right with the following configuration steps:

  • Create a Loyalty program in the doctype: You can set Single Tier or a Multiple Tier Program based on the slabs existing in the amount of Purchase that is done in ERPNext.

* Once the loyalty program is set, you can create a Customer and link the Loyalty program to it.

Once this Customer is linked to the Loyalty program, you can now setup your POS profile if it is not set yet:

Now, you can go to POS transaction:* Select Customer

  • Add items
  • Pay
  • Check the field --> Redeem Loyalty Points

Loyalty Program

https://docs.frappe.io/erpnext/loyalty-program

A Loyalty Program allows Customers to earn points by spending a certain amount and lets them redeem the points in future purchases.

A Customer Loyalty Program is a structured and long-term marketing effort that provides incentives to repeat Customers. Successful programs are designed to motivate Customers in a business's target market to return often, make frequent purchases, and shun competitors.

To access the Loyalty Program list, go to:

Home > Retail > Retail Operations > Loyalty Program

1. Prerequisites

Before creating and using a Loyalty Program, it is advised to create the following first:

  1. Customer
  2. Sales Invoice

2. How to Create a Loyalty Program

  1. Go to the Loyalty Program list and click on New.
  2. Enter a Name for the Loyalty Program.
  3. Select whether the program is Single Tiered or Multi Tiered (gold, silver, etc).
  4. Set a start and end date for the program.
  5. Select the Customer Group and Territory for which this program is applicable, the default is all.
  6. For opting in all Customers by default, tick on 'Auto Opt In (For all customers)'. Otherwise, the program needs to be assigned from the Customer master.
  7. In the table, enter:
  8. Tier name: To be assigned to a Customer based on his eligibility.
  9. Collection Factor: How much amount needs to be spent to gain 1 Loyalty Point in ERPNext.
  10. Minimum Amount: Minimum amount to be spent to qualify into a tier.
  11. Set the Conversion Factor, eg: 10 USD = 1 point.
  12. Save.

Loyalty Program

2.1 Redemption section

Conversion Factor: When redeeming loyalty points, this factor decides how much money is 1 Loyalty Point worth. For example, if a Customer has 100 Loyalty Points, and 1 Loyalty Point = 1 USD, then the Customer use Items up to 100 USD with their loyalty points for future purchases.

Expense Account: Set an Expense Account from where you'll offer the benefits. This is useful to track the benefits offered separately.

Expiry Duration (in days): The collected loyalty points will expire after the number of days set in this field.

2.2 Loyalty Points in Customer

Set a Loyalty Program section in the Customer master to assign a Loyalty Program to a Customer.

Loyalty Program in Customer

Loyalty points earned can be viewed in the Customer's dashboard.

Loyalty Points

2.3 Loyalty Point Entry

Go to: Accounts > Retail Operations > Loyalty Point Entry. This acts as a log to give an overview of which Customer earned how many points against which Sales Invoice. It holds the data Invoice and Customer.

Loyalty Program Entry

3. How does a Loyalty Program work?

3.1 Earning Points

  • Firstly, a Loyalty Program needs to be created as explained in the first section.
  • Assign this Loyalty Program to a Customer.
  • Create a new Sales Invoice for the Customer to whom you have assigned Loyalty Program.
  • For this example, an invoice is created with a grand total of 3,000 INR and according to the Loyalty Program for a minimum spent of 2,000 INR, the Silver Tier collection factor will be eligible and for each 300 INR spent, the Customer will receive 1 point (hence the total points earned on this transaction is 15).
  • Upon submission of the invoice, a Loyalty Point Entry will be created for this invoice (as shown above under Loyalty Program Entry section).
  • In our Loyalty Program upon minimum spent of 6,000, Gold Tier would be eligible. So, when another invoice is submitted with the same value, the total sales from this Customer becomes 6,000. So now, the Customer will be automatically upgraded to the Gold tier.

Note: The minimum spent in Loyalty Program does not mean a minimum value for a single invoice. Rather it means the sum of amount of invoices for the Customer under a particular Loyalty Program scheme.

3.2 Redeeming Points

  • Let's continue from the above example where we created 1 invoice and earned 15 points from it. When creating another invoice for the same Customer, go to the Loyalty Points section and enable the checkbox to 'Redeem Loyalty Points'.
  • The fields for 'Loyalty Point', 'Redemption Account' and 'Redemption Cost Center' will become visible under this section. The account and Cost Center will be fetched from the Loyalty Program assigned to the Customer.
  • Since the Customer has earned 15 points, we can use all of it until expiry. If we try to use more than what we have an error will be thrown.
  • In above example, we have used 6375 points to be redeemed. Doing so will enable another field that will display the amount calculated using (loyalty point * Conversion Factor). So, USD 6375 will be deducted from our the amount since our 'Conversion Factor' was '1'.
  • When submitted, 2 Loyalty Point Entries will be created. One for redeemed, which will be a negative value and one for the current invoice.
Redeem Loyalty PointsLoyalty Point

Note: For an invoice on which points have been earned, if a return invoice is created, it will delete the original Loyalty Point Entry and create a new one after subtracting the returned amount from the original amount. Also, when canceling an invoice, its subsequent Loyalty Point Entry will be deleted.

  1. Cost Center
  2. Sales Invoice
  3. Customer
  4. Customer Group

Maintain Stock field Frozen in the Item master

https://docs.frappe.io/erpnext/maintain-stock-field-frozen-in-item-master

In the item master, you might witness values in the following fields to be frozen.

  1. Maintain Stock
  2. Has Batch No.
  3. Has Serial No.

Item Field Frozen

For an item, once stock ledger entry is created, values in these fields will be frozen. This is to prevent user from changing the value which can lead to mis-match of actual stock, and stock level in the system of an item.

For the serialized item, since its stock level is calculated based on the count of available Serial Nos., setting Item as non-serialized mid-way will break the sync, and item's stock level shown in the report will not be accurate, hence Has Serial No. field is frozen.

To make these fields editable once again, you should delete all the stock transactions made for this item. For the Serialized and Batch Item, you should also delete Serial No. and Batch No. record for this item.

Maintaining Supplier's Item Code In the Item master

https://docs.frappe.io/erpnext/maintaining-suppliers-part-no-in-item

For each item, code assigned might differ from the code your supplier has given to that same item. ERPNext allows you to track Supplier's Item Code in the item master. Also you can fetch Supplier's Item Code in your purchase transactions, so that they can easily recognize item referring to their Item Code.

1. Updating Supplier Item Code In Item

In the Item master, under Supplier Details section, enter Item Code as given by the Supplier to this item.

Supplier Item Code

2. Supplier's Item Code In Transactions

Each purchase transaction has field in the Item table where Supplier's Item Code is fetched. This field is hidden in form as well as in the Standard print format. You can make it visible by changing property for this field from Customize Form.

Go to print view, click on Menu > customize, enter a new print format name, look for the Items table, click on the Select columns button in it. You'll see the following screen. Now select the "Supplier Part Number" checkbox.

Supplier item part print format

Supplier Item Code will only be fetched in the purchase transaction, if both Supplier and Item Code selected in purchase transaction is mapped with value mentioned in the Item master.

Supplier Item Code in transaction

Maintenance

https://docs.frappe.io/erpnext/maintenance

The maintenance schedule and maintenance visits are vital parts of the ERPNext support module, ensuring that the ERP system remains operational, secure, and aligned with business needs over time. Efficient management of these aspects contributes to a reliable and optimized ERP environment for users.

Maintenance Schedule

https://docs.frappe.io/erpnext/maintenance-schedule

The Maintenance Schedule shows all upcoming Maintenance Visits.

All machines require regular maintenance, especially those that contain a lot of moving parts, so if you are in the business of maintaining those or have some of them in your own premises, this is a useful tool to plan a calendar of activities for its maintenance.

To create a new Maintenance Schedule go to:

Home > Support > Maintenance > Maintenance Schedule

A Maintenance Schedule is usually created from a Sales Order of type 'Maintenance'.

SO Maintenance Schedule

1. Prerequisites

2. How to Create a Maintenance Schedule

  1. Go to the Maintenance Schedule, click on New.
  2. Select the Customer and the Items for which maintenance needs to be done.
  3. Set the start and end dates.
  4. Select a Periodicity to set how frequently the visits will happen. The options are "Weekly", "Monthly", "Quarterly", "Half Yearly", "Yearly" and "Random". Maintenance Schedule will get generated based on selected Periodicity. Selecting Random will generate random dates
  5. The Number of Visits will be set as per the Periodicity selected. Eg: If you selected Weekly and set the whole month between the start and dates, 4 visits are ideal.
  6. Select the Sales Person performing the visits.
  7. Save.
  8. After saving, click on the Generate Schedule button to generate a Maintenance Schedule.
  9. Submit.

Maintenance Schedule

The Generate Schedule button will generate a separate row for each maintenance activity. Each Item in a Maintenance Schedule is allocated to a Sales Person.

When the document is Submitted Calendar events are created for the Sales Person User for each maintenance.

  1. Serial Number
  2. Warranty Claim
  3. Maintenance Visit
  4. Sales Order

Maintenance Visit

https://docs.frappe.io/erpnext/maintenance-visit

A Maintenance Visit is a visit made by an engineer to a Customer’s premise for maintenance work of an Item.

To access the Maintenance Visit list, go to:

Home > Support > Maintenance > Maintenance Visit

A Maintenance Visit is usually created from a Sales Order of type 'Maintenance'.

SO Maintenance Visit
  1. Prerequisites
  1. How to create a Maintenance Visit
  1. Go to the Maintenance Visit list, click on New.
  2. The current date and time will be recorded, this can be edited.
  3. Select the Customer.
  4. Select the Maintenance Type whether Scheduled, Unscheduled, or Breakdown.
  5. Set the completion status whether 'Partially Completed' or 'Fully Completed'.
  6. Select the Item Code and Serial Number.
  7. Enter a Description of the maintenance, select the Sales Person performing the maintenance, and enter the work done.
  8. Save.

Maintenance Visit

2.1 Additional Options when Creating Maintenance Visit

Customer Feedback: You can record any feedback given by the Customer regarding this Maintenance Visit.

The following fields will be fetched from the Customer form:

  • Customer Address
  • Contact Person
  • Territory
  • Customer Group
  1. Related Topics
  1. Warranty Claim
  2. Maintenance Schedule
  3. Sales Order

Make A Colorful Gantt Chart

https://docs.frappe.io/erpnext/make-a-colorful-gantt-chart

ERPNext allows users to add colours to certain documents for better visual cues and representation. A good example of this would be the Event Calendar, where, for each event you can add a colour.

We will be doing so by customizing Tasks under Projects module.

Steps To Add Colours To The Gantt Chart

  1. Go to Customize Form in the system and select Task in Enter Form Type option. Alternatively, you can reach this screen by going to Menu > Customize from the Task list or form.

customize-form
  1. Add a new field in the doctype of fieldtype color.
  2. Check In List View option.

customize-form
  1. Save the form, go back to the Task list, and reload.
  2. When opening an existing or new Task, you should see a color field. Pick a color for the Task.

customize-form
  1. Go back to the Task list and switch to Gantt view.

customize-form

Making Custom Reports

https://docs.frappe.io/erpnext/making-custom-reports

There are three kind of reports in ERPNext.

1. Report Builder

Report Builder is an in-built report customization tool in ERPNext. This allows you to define specific fields of the form which shall be added in the report. Also you can set required filters, sorting and give preferred name to report.

<iframe allowfullscreen="" frameborder="0" src="https://www.youtube.com/embed/TxJGUNarcQs?rel=0"> </iframe>

2. Query Report

Query Report is written in SQL which pulls values from account's database and displays the same in the report. Though SQL queries can be written from front end, like HTML, it has been restricted for ERPNext cloud users. This is because it allows users with no access to specific report to fetch data directly from the database.

Check Purchase Order Item to be Received report in Stock module for example of a Query report. Click here to learn how to create Query Report.

3. Script Report

Script Reports are written in Python and stored on server side. These are complex reports which involves logic and calculation. Since these reports are written on server side, customizing it from hosted account is not possible.

Check Financial Analytics report in Accounts module for an example of Script Report. Click here to learn how to create Script Report.

> Note: Dynamic Filter is available in Script Reports and Query Reports; however, not in the Report Builder.

Customizing Field Visibility in Print Format

https://docs.frappe.io/erpnext/making-fields-visible-in-print-format

Each transaction has a Standard Print Format. In the Standard format, only certain fields are displayed by default. If a user wants to display a particular field in the Standard format, it can be customized by using Customize Form tool.

Let's assume in the Sales order, we need to make Shipping Address field visible in the standard print format.

Step 1: Go to Customize Form

Home > Customization > Form Customization > Customize Form

Step 2: Document Type

As per our scenario, Sales Order will be selected as Document Type.

Document Type

Step 3: Disable Print Hide

Click to open field to be made visible in the Standard Print Format. Disable Print Hide field.

Uncheck Print Hide

Step 4: Update

Update Customize Form to save changed. Reload your ERPNext account, and then check Print Format for confirmation.

Manage Foreign Exchange Difference

https://docs.frappe.io/erpnext/manage-foreign-exchange-difference

In ERPNext, you can create transactions in the foriegn currency as well. When creating transaction in the foreign currency, system updates current exchanage rate with respect to customer/supplier's currency and base currency on your Company. Since Exchange Rate is always fluctuating, one might receive payment from the client on exchange rate different from one mentioned in the Sales/Purchase Invoice. Following is the instruction on how to manage different amount, availed in payment entry, due to exchange rate change.

Add Expense Account

To manage currency difference, create Account Exchange Gain/Loss. This account is generally created on the Expense side of P&L statement. However, you can place it under another group as per your accounting requirement.

Exchange Gain/Loss Ledger

Book Payment Entry

Auto Calculate Exchange Gain Loss

Managing Batch wise Inventory

https://docs.frappe.io/erpnext/managing-batch-wise-inventory

Set of items which has same properties and attributes can be group in a single Batch. For example, pharmaceuticals items are batch, so that it's manufacturing and expiry date can be tracked together.

To maintain batches against an Item you need to mention 'Has Batch No' as yes in the Item Master.

Batch Item

You can create a new Batch from:

Stock > Documents > Batch > New

Read Stock batch to learn more.

For the Batch item, updating Batch No. in the stock transactions (Purchase Receipt & Delivery Note) is mandatory.

Purchase Receipt

When creating Purchase Receipt, you should create new Batch, or select one of the existing Batch master. One Batch can be associated with one Batch Item.

Batch in Purchase Receipt

Delivery Note

Define Batch in Delivery Note Item table. If Batch item is added under Product Bundle, you can update it's Batch No. in the Packing List table as well.

Batch in Delivery Note

Batch-wise Stock Balance Report

To check batch-wise stock balance report, go to:

Stock > Standard Reports > Batch-wise Balance History

Batchwise Stock Balance

Managing Fractions in UOM

https://docs.frappe.io/erpnext/managing-fractions-in-uom

UoM stands for Unit of Measurement. Few examples of UoM are Numbers (Nos), Kgs, Litre, Meter, Box, Carton etc.

There are few UOMs which cannot have value in decimal places. For example, if we have television for an item, with Nos as its UoM, we cannot have 1.5 Nos. of television, or 3.7 Nos. of computer sets. The value of quantity for these items must be whole number.

You can configure if particular UoM can have value in decimal place or no. By default, value in decimal places will be allowed for all the UOMs. To restrict decimal places or value in fraction for any UoM, you should follow these steps.

UOM List

For UOM list, go to:

Stock > Setup > UoM

From the list of UOM, select UOM for which value in decimal place is to be restricted. Let's assume that UoM is Nos.

Configure

In the UoOM master, you will find a field called "Must be whole number". Check this field to restrict user from enter value in decimal places in quantity field, for item having this UOM.

UoM Must be Whole No

Validation

While creating transaction, if you enter value in fraction for item whose UOM has "Must be whole number" checked, you will get error message stating:

Quantity cannot be a fraction at row #

UoM Validation Message

Invoice Discount in Payment Entry

https://docs.frappe.io/erpnext/managing-invoice-discount-in-the-payment-entry

Question: Sometimes a customer doesn't pay totally the invoice and he wants us to give him a discount. For example, the total invoice is 54 euro but he pays 50 euro and takes 4 euro as discount. How to register this case in the system in order the invoice is shown as paid but at the same time we know that there were a discount on the invoice.

Answer:

In the Payment Entry, enter values as follows.

  1. Paid Amount as 50 EUR
  2. Against the Invoice, allocate 54 EUR
  3. This will leave to Difference Amount of 4 EUR
  4. In the Deductions and Additional Charges table, select Income account or Discount Expense Account (as per your preference) to book 4 EUR there

Managing Multi-level BOM

https://docs.frappe.io/erpnext/managing-multi-level-bom

Consider a scenario where your manufacturing process involves producing sub-assembly items before the final product. In this case, how should you manage the BOM?

First of all, you need to have BOMs for the sub-assemblies, then these BOMs should be linked to the BOM of the final finished product. In the following screenshot, you can see that the BOM for Brush Bristles (subassembly) is linked to the BOM of the Shaving Brush (final product). This is seen in the Materials table in the Bill of Materials master.

Multi-level BOM

The 'Materials' table will only show the sub-assemblies while the 'Materials Required (Exploded)' table will show all the raw materials required to manufacture the final product.

BOM materials table where sub-assembly is shown:

Multi-level BOM

In the exploded view only the raw materials are shown:

Multi-level BOM

To use multi-level BOM in a Work Order, enable the 'Use Multi-Level BOM' checkbox. This is enabled by default. If you want to plan materials for sub-assemblies of the Item you're manufacturing leave this enabled. If you plan and manufacture the sub-assemblies separately disable this checkbox.

Let's consider another example to understand this better where a computer is being assembled. The hard disk and DVD drive are also being manufactured and are the sub-assemblies. The multi-level or nested BOM will look like this:

  • Personal Computer (FG Item)
  • Mother Board
  • SMTP
  • Accessories and wires
  • Hard Disk (sub-assembly)
  • Item A
  • Item B
  • Item C
  • DVD Drive (sub-assembly)
  • Item X
  • Item Y
  • Item Z

Caution

Exercise caution when updating the BOM of a sub-assembly. The part which includes the sub assembly with an updated BOM will need to be updated to reference the updated BOM for that part. The practical outcome of this is that changing a screw on a low level assembly will lead to a ripple of updated Bills of Material up through the BOM structure.

Using the example of the personal computer above. Personal Computer (PC-001 with BOM-PC-001) uses Hard Disk (HDD-001 with BOM-HDD-001). BOM-HDD-001 includes the three items shown (Item A, B and C).

If we need to exchange Item C for a new item (Item D) then we must update create BOM-HDD-002 (with Items A, B and D). The Hard Disk (HDD-001) is then updated to reference the new BOM-HDD-002. But, BOM-PC-001 is still referencing HDD-001 with BOM-HDD-001. The change from Item C to Item D will not be updated in the Exploded BOM for PC-001.

BOM-PC-002 must be created referencing HDD-001 with BOM-HDD-002 to make this update.

Manage Tree Structure Masters

https://docs.frappe.io/erpnext/managing-tree-structure-masters

Some of the masters in ERPNext are maintained in tree structure. Tree structured masters allow you to set Parent master, and Child masters under those Parents. Setting up this structure allows you creating intelligent report, and track growth at each level in the hierarchy.

Following is the partial list of masters which are maintained in the tree structure.

Chart of Accounts

Chart of Cost Centers

Customer Group

Territory

Sales Person

Item Group

Following are the steps to manage and create record in the tree structured master. Let's consider Territory master to understand managing tree masters.

####Step 1 : Go to Master

Selling > Setup > Territory

####Step 2 : Parent Territory

Default Territories

When click on Parent territory, you will see option to add child territory under it. All default Territory groups will be listed under Parent group called "All Territories". You can add further Parent or child Territory Groups under it.

####Step 3: Add new Territory

When click on Add Child, a dialog box will provide two fields.

Territory Group Name

Territory will be saved with Territory Name provided here.

Group Node

If Group Node selected as Yes, then this Territory will be created as Parent, which means you can further create sub-territories under it. If select No, then it will become child Territory which you will be able to select in another masters.

Only child Territory Groups are selectable in another masters and transactions.

Default Territories

Following is how Child Territories will be listed under a Parent Territory.

Adding new Territories

Following this steps, you can manage other tree masters as well in ERPNext.

Manufacturer

https://docs.frappe.io/erpnext/manufacturer

A manufacturer created or produces an Item.

A Manufacturer may not be the same person/company that sells the Item under a specific Brand. For example, Unico Plastics can be the Manufacturer of plastic brushes but it may be sold under a Brand, say, Super Brushes.

In ERPNext, a Manufacturer can be used to identify Items using a specific part number.

To access the Manufacturer list, go to:

Home > Stock > Manufacturer

1. How to Create a Manufacturer

  1. Go to the Manufacturer list and click on New.
  2. Enter a Manufacturer name and enter a description if needed.
  3. Save. Manufacturer

After creating a Manufacturer, you can create an Item Manufacturer record with a Manufacturer Part Number for identification.

1.1 Additional details

The following details can be set for a Manufacturer:

  • Website
  • Country
  • Logo

2. Features

2.1 Address and Contacts

An Address and Contact can be set for this Manufacturer.

  1. Item
  2. Supplier
  3. Brand

Manufacturing in ERPNext

https://docs.frappe.io/erpnext/manufacturing

The Manufacturing module in ERPNext is designed to streamline and optimise the production process. It integrates with other modules to conduct various manufacturing operations effectively.

  • Workstations: Represents the locations or equipment where production activities are carried out.
  • Job Cards: Provides detailed instructions and tracking for each step in the production process.
  • Bill of Materials (BoM): Defines the components and raw materials needed to produce a finished product.
  • Work Orders: Manages the creation, tracking, and execution of work orders based on MoMs.
  • Production Planning: Helps in scheduling and optimizing production runs to meet demand and manage resources efficiently.
  • Quality Control: Ensures products meet quality standards through inspections.
  • Inventory Management: Integrates with the Inventory module to manage raw materials, work-in-progress, and finished goods.
  • Reporting and Analytics: Offers insights into production performance, costs, and efficiency to support informed decision-making.

The Manufacturing module in ERPNext helps improve productivity, reduce costs, and enhance overall production efficiency by providing a unified platform for managing all aspects of the manufacturing process.

Manufacturing Dashboard

https://docs.frappe.io/erpnext/manufacturing-dashboard

Number Cards

In ERPNext, Number Cards are a type of widget or visual component that displays key metrics or numerical data in a dashboard. They are typically used to show quick, high-level insights that help users keep track of important business performance indicators or operational statistics.

  1. Monthly Total Work Order :- You will get the total count of Work Orders which are in Open, In Progress, and Completed state. The Work Orders created one month before the current date will be displayed in the number card.
  2. Monthly Completed Work Order :- The user will get the total count of Work Orders which are in the Completed state. The Work Orders created one month before the current date will be displayed in the number card.
  3. Ongoing Job Card :- The user will get the total count of Job Cards that are not in the Completed state.
  4. Monthly Quality Inspection :- The user will get the total count of Quality Inspection records which are in the Submitted state. The Work Orders created one month before the current date will be displayed in the number card.

Dashboard

You can see some predefined graph reports in the dashboard when you open the Manufacturing module. These reports are fully customizable, you can choose what to show or hide and also configure the metrics on which the reports are shown.

Produced Quantity

The chart will give the information about the total quantity produced (using Work Order) in the last year on a Quarterly basis. Users can also view the chart data based on Daily, Weekly, Monthly, Yearly basis.

Completed Operation

The chart will give information about the total number of operations completed in the last year on Quarterly basis. Users can also view the chart data based on Daily, Weekly, Monthly, Yearly basis.

Work Order Analysis

This chart will give the information about the number of Work Orders based on Not Started, In Process, Stopped, Completed statuses. This Donut chart will provide the information based on the last year's Work Order data. Your can also change the date range by clicking on the Filter button.

Quality Inspection Analysis

This chart will give information about the number of Quality Inspections based on Accepted and Rejected status. The chart type is a donut and it will provide the information based on the last year's quality inspection data. Your can change the date range by clicking on the Filter button.

Pending Work Orders

The chart will give information about the number of Work Orders that are pending based on the aging days. The number of aging days is calculated based on the difference between the current date and planned start / actual start date days.

Last Month Downtime Analysis

The chart will give information about the total number of minutes a machine was not working in the last month. This helps the operator to know which machine has not performed well and requires maintenance.

Work Order Quantity Analysis

The chart will give information about the total number of quantities that are Pending and Completed based on the Work Orders every month for the last year.

Job Card Analysis

The chart will give information about the total number of Job Cards which are in the Pending and Completed states every month for the last year.

Manufacturing Reports

https://docs.frappe.io/erpnext/manufacturing-reports

There are various reports in the Manufacturing module that help you track Work Order progress, production analytics, BOM reports, etc.

In all of these reports, you can set a chart to show a visual representation. To do this, click on the Set Chart button.

These reports can be accessed from:

Home > Manufacturing > Reports

Open Work Orders

Shows the open Work Orders which have not started production yet.

Open Work Orders

Work in Progress Report

This report shows any work orders that have started and are in progress. The status of these Work Orders is 'In Process'.

WIP report

Issued Items Against Work Order

Items that are issued to a Work Order and are transferred to the Work in Progress Warehouse are shown here.

Items Against WO

Completed Work Orders

Work Orders which are completed with all the quantities in it manufactured are shown in this report.

Completed Work Orders

Production Analytics

This report shows the overall analytics of all Work Orders.

Production Analytics

In this report, you can search for specific BOMs based on the raw materials items used in them, then open it. Useful if you have a lot of BOMs.

BOM search

BOM Stock Report

On selecting a BOM in this report, the raw material quantity in Warehouses will be shown. As you can see, the items which have insufficient quantity are shown in red and ones with enough quantity to manufacture the BOM Item are shown in green.

BOM Stock Report

Manufacturing Settings

https://docs.frappe.io/erpnext/manufacturing-settings

Manufacturing settings in ERPNext configure production workflows, manage bill of materials (BOM), track work orders, and oversee inventory to streamline operations and ensure efficient production management.

Home > Manufacturing > Settings > Manufacturing Settings

Raw Materials Consumption

Screenshot 2024-08-29 at 3.28.09 PM

1. Allow Continuous Material Consumption

If enabled, materials can be consumed without immediately manufacturing finished goods in a single Work Order. This is useful if one or more time consuming products are being manufactured.

For example a single product takes a month to manufacture and the raw materials are consumed daily. In a regular scenario, this won't be feasible with stock entries. Enabling this option will allow you to create stock entries for Material Consumption without having to create an entry to backflush. End result is that you can see the stock being consumed in the Warehouses and can update the final manufacture entry for finished goods at a later stage.

2. Backflush raw materials based on

The method selected here will be chosen for backflushing raw materials : 1. Material Transferred for Manufacture 2. BOM

3. Validate Components and Quantities Per BOM

Note: This feature will be available from the version V15

If "Backflush Raw Materials Based On" as BOM, then users can validate component quantity according to BOM. To do that they have to enable "Validate Components Quantities Per BOM" checkbox in the "Manufacturing Settings".

If user has changed the quantity in the "Material Transfer for Manufacture" or "Manufacture" stock entry, then system will throw the below error

component-qty-validation

If user has removed the item in the "Material Transfer for Manufacture" or "Manufacture" stock entry, then system will throw the below error

4. Get Raw Materials Cost from Consumption Entry

If the 'Allow Continuous Material Consumption' is enabled then user can see the option 'Get Raw Materials Cost from Consumption Entry'.

The 'Get Raw Materials Cost from Consumption Entry', determines whether the cost of raw materials used in production should be automatically derived from the consumption entries recorded during the manufacturing process. When enabled, ERPNext calculates the cost based on the actual materials consumed, ensuring accurate cost tracking and financial reporting.

Capacity Planning

Capacity planning is the process in which an organisation decides whether or not to accept the new orders based on the resources and existing work orders.

Screenshot 2024-08-29 at 3.30.52 PM

1. Disable Capacity Planning

If checked, capacity planning won't be done. Enabling it will help to decide whether or not to accept the new orders based on the resources and existing work orders.

2. Allow Overtime

If enabled it'll allow creating work orders, job cards etc. outside workstation working hours.

3. Allow Production on Holidays

If enabled, it'll allow production activities even on those days that are marked as holidays as per the Holiday List of the organisation.

4. Capacity Planning For (Days)

The number of days specified here means the number of days in advance when the capacity planning activities will be initiated for production.

5. Time Between Operations (Mins)

This specifies the time span that should be kept between two operations in minutes.

Default Warehouses for Production

Screenshot 2024-08-29 at 3.32.55 PM

1. Default Work In Progress Warehouse

This Warehouse will be auto-updated in the 'Work In Progress' Warehouse field of Work Orders.

2. Default Finished Goods Warehouse

This Warehouse will be auto-updated in the 'Target Warehouse' field of Work Order.

3. Default Scrap Warehouse

This Warehouse will be auto-updated in the 'Scrap Warehouse' field of Work Order.

Over Production for Sales and Work Order

Screenshot 2024-08-29 at 3.36.10 PM

1. Overproduction Percentage For Sales Order

It allows you to specify a percentage by which production can exceed the sales order quantity.

2. Overproduction Percentage For Work Order

It defines the allowable percentage by which the actual production quantity can exceed the planned quantity specified in a work order.

Job Card

Screenshot 2024-08-29 at 3.38.32 PM

1. Add Corrective Operation Cost in Finished Good Valuation

If enabled then the cost for a corrective operation type will also be included while calculating finished goods valuation

2. Allow Excess Material Transfer

If enabled, the Material Transfer button will be visible and will allow you to transfer raw materials even if after the raw material requirement is fulfilled against a Job Card.

This is particularly useful in cases where the transferred raw materials are damaged and additional raw materials need to be transferred to produce the same amount of finished goods as intended.

Other Settings

Screenshot 2024-08-29 at 3.39.41 PM

1. Update BOM Cost Automatically

If ticked, the BOM cost will be automatically updated based on Valuation Rate / Price List Rate / last purchase rate of raw materials.

2. Set Operating Cost / Scrape Items From Sub-assemblies

In the case of 'Use Multi-Level BOM' in a work order, if the user wishes to add sub-assembly costs to Finished Goods items without using a job card as well the scrap items, then this option needs to be enable.

3. Make Serial No/Batch from Work Order

If checked, system will automatically create the serial numbers / batches for finished goods on submission of Work Order

4. Allow Editing of Items and Quantities in Work Order

If enabled, the system will allow users to edit the raw materials and their quantities in the Work Order. The system will not reset the quantities as per the BOM, if the user has changed them in the work order materials table.

Screenshot 2025 11 07 at 3.25.52 PM

Manufacturing without creating BOM

https://docs.frappe.io/erpnext/manufacturing-without-creating-bom

It is recommended to use BOM for Manufacturing for consistency and to avoid repetitive work.
However, if you wish to perform it manually, the workaround is to create Stock Entries:1) Create a Stock Entry with Purpose as Material Transfer to Manufacture.2) Create a Stock Entry with Purpose as Manufacture, the Item which is being Manufactured will have a Target Warehouse and other Items(Raw Materials) will have a Source Warehouse.

Blue Dot: Item is being received. Orange Dot: Item is being issued.

Material Request

https://docs.frappe.io/erpnext/material-request

A Material Request is a simple document identifying a requirement of a set of Items (products or services) for a particular reason.

A Material Request can have the following purposes:

  • Purchase: If the material being requested is to be purchased.
  • Material Transfer: If the material being requested is to be shifted from one Warehouse to another.
  • Material Issue: If the material being requested is to be Issued for some purpose like manufacturing.
  • Manufacture: If the material being requested is to be produced.
  • Subcontracting: If the material being requested is to be subcontracted to a vendor.
  • Customer Provided: If the material being requested is to be provided by Customer. To know more about this, visit the Customer Provided Item page.

Material Request

To access the Material Request list, go to:

Home > Stock > Stock Transactions > Material Request

  1. How to create a Material Request
  1. Go to the Material Request list, click on Add Material Request.
  2. Enter the Required By date.
  3. Select the appropriate purpose from the list.
  4. You can fetch Items from a BOM, Sales Order, or Product Bundle.

5. Select the Item and set the quantity. 6. Select the Warehouse for which Items are required. 7. You can change the Required By date for individual Items in this table. 8. Save and Submit.

Screenshot 2024-07-09 at 2.36.44 PM

Screenshot 2024-07-09 at 2.40.52 PM

1.1 Alternate ways of creating a Material Request

A Material Request can be generated automatically:

  • From a Sales Order. While creating MR, user can choose to ignore or include Projected Quantity. Accordingly, Sales Order Items are fetched to MR.
  • When the Projected Quantity of an Item in Stores (Warehouses) reaches a particular level.
  • From your a Production Plan to plan your manufacturing activities.

If your Items are inventory items, you must also mention the Warehouse where you expect these Items to be delivered. This helps to keep track of the Projected Quantity for this Item.

Info: Material Request is not mandatory. It is ideal if you have centralized buying so that you can collect this information from various departments.

1.2 Statuses

These are the statuses a Material Request can be in:

  • Draft: A draft is saved but yet to be submitted to the system.
  • Submitted: Document is submitted to the system.
  • Stopped: If no more materials are needed the Material Request can be stopped.
  • Canceled: The materials are not needed at all and the request is canceled.
  • Pending: The Purchase/Manufacture is pending to complete the Material Request.
  • Partially Ordered: Purchase Orders for some Items from the Material Request are made and some are pending.
  • Ordered: All Items in the Material Request are ordered via Purchase Orders.
  • Issued: The materials are issued using a Material Issue Stock Entry.
  • Transferred: The required materials are transferred from one Warehouse to another using a Stock Entry.
  • Received: The materials were ordered and have been received at your Warehouse using a Purchase Receipt.
  1. Features

2.1 Items table

  • Barcode: You can track Items using barcodes.
  • The Item Code, name, description, Image, and Manufacturer will be fetched from the Item master.
  • Scan Barcode: You can add Items in the Items table by scanning their barcodes if you have a barcode scanner. Read documentation for tracking items using barcode to know more.
  • The UoM, Conversion Factor, and Amount will be fetched. You change the Warehouse for which the material is being requested.
  • Accounting details like Expense Account and Accounting Dimensions can be set for the Items.
  • Page Break will create a page break just before this item when printing.

2.2 Setting Warehouses

  • Set Warehouse: Optionally, you can set the Warehouse where the requested Items will arrive. This will be fetched into the 'For Warehouse' fields in the Item table rows.

2.3 More Information

In the 'Job Card' and 'Work Order' fields, it sets a reference from where the Material Request was generated.

2.4 Printing Details

Letterhead

You can print your Material Request on your company's letterhead. Read Letter head documentation to learn more.

Material Request headings can also be changed when printing the document. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

2.5 Terms and Conditions

In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

2.6 After Submitting

You can create the following documents:

Screenshot 2024-07-09 at 2.38.58 PM

2.7 Automatically generate Material Requests

Material Requests can be generated automatically by enabling the setting in Stock Settings and setting the level in the Item form. When the stock level dips below a certain quantity, setting a reorder will automatically create material requests for the Item.

Note:

Material Request Purpose "Subcontracting" is newly added and only present in the develop branch of ERPNext. It will be there by default in the next major release i.e v16

A subcontracted Material Request enables the user to create a Subcontracted Purchase Order directly from the Material Request itself after submission.

Material Requirements Planning (MRP)

https://docs.frappe.io/erpnext/material-requirements-planning-mrp

The ERPNext currently have the MRP inside the production plan which is difficult for new users to understand and also it only uses sales order or material request data to generate the MRP.

Purpose

The main purpose of MRP is to ensure that the right materials are available at the right time, helping the company to avoid the overproduction and delays in delivery. To know how MRP works first needs to understand how demand planning works.

Demand Planning

We already had sales orders and material requests to generate demand planning. However, this only works for short-term MRP requirements and does not cover longer periods of time. To address this, we have added sales forecasting and delivery schedules to generate demand.

Sales Forecast

The users has to manually enter the forecasting data by calculating it outside the system.

![](/files/sales%20forcast%20(1)

Delivery Schedules

Some customers do not prefer a one time delivery against a sales order and they require multiple deliveries. The delivery schedules are very helpful for MRP because they provide visibility of when materials are actually needed, instead of assuming everything must be delivered at once.
To make Delivery Schedules, users has to click on Add Schedule button in the sales order item table

Master Production Schedule

To capture the demand for finished items, the Master Production Schedule (MPS) document was introduced. The system collects data from various sources such as sales orders, material requests, sales forecasts, and delivery schedules to generate the demand in the MPS.

Material Requirements Planning Report

The Material Requirements Planning (MRP) report calculates the required quantities of raw materials and components, along with the dates when they are needed, based on the demand for finished items.

Users can see the MRP report in the bucket view

Item Lead Time

To calculate the dates of when to release the purchase order for raw materials and work order for components, the system needs to be aware of the lead time for manufacturing and the lead time for material procurement. For this purpose, a new document Item Lead Time was added.

Material Transfer from Delivery Note and Purchase Receipt

https://docs.frappe.io/erpnext/material-transfer-from-delivery-note

In ERPNext, you can create Material Transfer entry from Stock Entry document. However, there are some scenarios in the Material Transfer where it needs to be presented as a Delivery Note and Purchase Receipt.

Material Transfer from Delivery Note

Scenarios

One of the examples is when you transfer a Material from your stores to project site, however, you need to present it as a Delivery Note to the client.

Also, there are statutory requirements where taxes are to be applied on each transfer of Material. It is easier to manage in a transaction like Delivery Note, than in the Stock Entry.

Considering these scenarios, the provision of Material Transfer has been added in the Delivery Note as well. Following are the steps to use Delivery Note for creating Material Transfer entry.

Steps

Enable Target Warehouse

Delivery Note Item doctype has a hidden field of Target Warehouse (previously Customer Warehouse). You can enable it from Stock Settings by enabling "Allow Material Transfer From Delivery Note and Sales Invoice".

Also note that the selected customer should represent the same company. For this, enable the 'Is Internal Customer' option in the customer form and select your company in the 'Represents Company' field.

Select Warehouses

When creating a Delivery Note for Material Transfer, for an item select source Warehouse as From Warehouse.

In the Customer Warehouse, select a Warehouse where Material is to be transferred or select a target warehouse.

Delivery Note Material Transfer

On the submission of a Delivery Note, item's stock will be deducted from "From Warehouse" and added to the "Customer Warehouse".

Material Transfer from Purchase Receipt

Scenarios

There are statutory requirements where taxes are to be applied on each transfer of Material. It is easier to manage a situation like this in a transaction like Purchase Receipt, than in the Stock Entry as taxes cannot be applied on transfers of items via Stock Entry

Following are the steps to use Purchase Receipt for creating Material Transfer Entry.

Steps

Enable Supplier Warehouse

Similar to the Customer Warehouse shown above, the first step is to enable the Supplier Warehouse from Stock Settings as shown above.

Also note that the selected supplier should represent the same company. For this, enable the 'Is Internal Supplier' option in the Supplier form and select your company in the 'Represents Company' field.

Select Warehouses

When creating a Purchase Receipt for Material Transfer, for an Item, select the target Warehouse as Accepted Warehouse.

This is how you create an internal Purchase Receipt from an internal Delivery Note:

Purchase Receipt Material Transfer

In the Supplier Warehouse, select a Warehouse from where Material is to be transferred.

Purchase Receipt Material Transfer

On submission of the Purchase Receipt, item's stock will be deducted from "Supplier Warehouse" and added to the "Accepted Warehouse".

Material consumption

https://docs.frappe.io/erpnext/material_consumption

Material Consumption functionality allows you to have multiple consumption against a Work Order. To enable this, go to Manufacturing > Manufacturing Settings.

Stock Entry

Item Alternative

Once enabled, a button will be available in Work Order once started.

Material Consumption

Item Alternative

When button is clicked, it will do the following:

  1. It will create Stock Entry with purpose .
Material Consumption for Manufacture

Item Alternative
  1. If the "Backflush Raw Materials Based On" in the Manufacturing Settings is set to , if will propose to consume all required qty for manufacture.
  2. If the "Backflush Raw Materials Based On" in the Manufacturing Settings is set to , if will propose to consume all transferred qty for manufacture.
  3. Once submitted, it will update column in the Work Order.
BOMMaterial Transferred for ManufactureConsumed Qty

Item Alternative
  1. In succeeding Material Consumption, it will suggest unconsumed qty.
  2. Once "Finish" button is clicked in Work Order, it will take into account consumed qty.

Validations

  • If "Allow Multiple Material Consumption" is not set in Manufacturing Settings but "Material Consumption for Manufacture" is use in Stock Entry.

Item Alternative
  • Cannot cancel "Material Consumption for Manufacture" for completed Work Order.

Item Alternative

Maximum Number of Fields in a Form

https://docs.frappe.io/erpnext/maximum-number-of-fields-in-a-form

Sometimes while creating custom fields, you might have faced an error message that looks like this:

> Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs. > >

What does it mean?

In simple terms, it means that you have reached the limit of the maximum number of fields for the specific form/doctype. So, what is the maximum limit of fields?

In MySQL, there is a hard limit of 4096 columns per table, but the effective maximum may be less for a given table. The exact limit depends on several interacting factors.

Every table (regardless of storage engine) has a maximum row size of 65,535 bytes. Storage engines may place additional constraints on this limit, reducing the effective maximum row size.

The maximum row size constrains the number (and possibly size) of columns because the total length of all columns cannot exceed this size (65,535 bytes). For example, characters require up to 3 bytes per character, so for a column, the server must allocate bytes per value. Consequently, a table cannot contain more than such columns.

utf8mb3VARCHAR(140)140 × 3 = 42065,535 / 420 = 156

In Frappe framework, type columns are created based on "Data", "Link", "Select", "Dynamic Link", "Password" and "Read Only" field types. Hence, you can create approximately 156 such columns in the system.

VARCHAR(140)

Solution:

To add more fields to the system, you can do some changes.

  1. Convert some of the fields to "Text", "Small Text", "Text Editor" or "Code" type field. In MySQL, BLOB and TEXT columns count from one to four plus eight bytes each toward the row-size limit because their contents are stored separately from the rest of the row. So, converting to those field types will free up some spaces and will allow addition of some more fields.
  2. Set smaller value in the "Length" property while creating fields, the default value is 140. The System sets the length of based on this property and allocates size for those columns. Hence, smaller Length leads to add more fields.
  3. Custom fields are not deleted from database automatically. If you're sure that you don't need data from any of the custom fields you can trim the table using trim-tables command: <https://frappeframework.com/docs/user/en/bench/reference/trim-tables>
VARCHAR

Merging Accounts

https://docs.frappe.io/erpnext/merging-accounts

For an account, if you have two records that are identical, and are meant for a common purpose, you can merge them into one record.

Following are steps to merge two accounts.

Step 1: Go to Chart of Accounts

Accounts > Documents > Chart of Accounts

Step 2: Go to Account

Click on the account that you wish to merge with another document, and then click on the 'Edit' option.

Merging Documents

Step 3: Merge Account

The document will open with different options present on the top. Click on 'Merge Account'. Enter the name of the account with which you want to merge the existing account.

Merging Documents

Effect of Merging

After Account is merged, the new name is updated in the existing transactions where an old account was selected.

Group Account cannot be merged into Child Account and vice versa.

Migrate To Perpetual Inventory

https://docs.frappe.io/erpnext/migrate-to-perpetual-inventory

Perpetual Inventory Valuation is activated by default in the system.

For the users who are currently following periodic inventory valuation system, and wish to migrate to perpetual inventory valuation system, please follow the steps explained below.

1. How to Migrate to Perpetual Inventory

  1. To enable perpetual Inventory, ensure that the Stock in Hand Account is synced with the value of actual stock value in your Warehouse(s). To sync it, you will have to create a Journal Entry for the difference amount against expense account (generally used in Purchase Invoice).

For example, when perpetual inventory was disabled, you must be having Expense (Cost of Goods Sold) booked via Purchase Invoices. Now, you will have to create a Journal Entry to move the value of existing stock from expense account to stock in hand account.

Cr. Expense account ......... XXX

Dr. Stock in Hand account ... XXX

It can also work other-way round if you were selecting a stock in hand account in the Purchase Invoice.

  1. Before enabling Perpetual Inventory, ensure that Stock Accounts (ledger) is linked for the existing Warehouse. The stock account for a Warehouse can be set at three levels.
  • In the Warehouse master itself
  • In the Parent Warehouse master
  • Default Stock in Hand Account in the Company master, if you maintain only one Stock-in-hand account for all the Warehouses.
  1. Journal Entry to Update Stock Received but not Billed account

An account "Stock Received but not Billed" is an adjustment account which reflects the value of the stock for which Purchase Receipt has been submitted, but Purchase Invoice is yet to created. A Journal Entry should be created to update the value open Purchase Receipt pending for billing into "Stock Received but not Billed" account.

To know the value of the stock received but not billed, you can refer the report "Received Items Pending for Billing" in the Accounts module.

Create a Journal Entry as follows to update the value in Stock Received but not Billed account.

Cr. Stock Received but not Billed ........... XXX

Dr. Expense Account (COGS) .................. XXX

  1. Setup the following default accounts for each Company
  • Stock Received But Not Billed
  • Stock Adjustment Account
  • Expenses Included In Valuation
  • Cost Center
  • Activate Perpetual Inventory
  1. Go to: Home > Accounting > Company

Perpetual Inventory
  1. Accounting Of Inventory Stock
  2. Perpetual Inventory

Milestone Tracking

https://docs.frappe.io/erpnext/milestone-tracker

Introduced in Version 12

You can automatically track milestones based on the lifecycle of a document if it undergoes multiple stages.

The configuration for Milestone setting can be set in Milestone Tracking and each milestone is updated in Milestone

To access Milestone Tracker, go to:

Home > Settings > Milestone Tracker

1. Creating a Milestone Tracker

  1. Click on New.
  2. Set the Document Type to track (example: "Issue").
  3. Set the field that represents stages (example: "Status").

Note: A milestone stage can be defined by Link or Select properties.

Once this is set, a new Milestone record is created every time the status of any issue is changed.

The Milestone can be viewed in the timeline of the view:

Assign

Note: Milestones work independently of Versions.

2. Features

Milestones can be a great source for reporting and notifying. For example, if Lead Qualification is a milestone on "Lead", milestones can help generate reports on the number of leads being qualified in a period.

2.1 Using Milestones with Dashboards

Used along with Dashboards, Milestones can help track the trends in milestones. For example, if "Qualification" is tracked as a "Lead Stage", a Dashboard on Milestone filtered by Qualification will show the trends of leads qualified.

2.2 Using Milestones with Energy Points

Energy Point Rules can be defined to automatically give Energy Points to users who achieve a milestone. This can be used to incentivize action on transactions at various levels.

Mode of Payment

https://docs.frappe.io/erpnext/mode-of-payment

The Mode of Payment stores the medium through which payments are made or received.

To access the Mode of Payment list, go to:

Home > Accounting > Settings > Mode of Payment

1. How to create a Mode of Payment

  1. Go to the Mode of Payment list and click on New.
  2. Enter a name for the Mode of Payment.
  3. Set a type whether Cash, Bank, or General. This is useful for knowing the mode of payment used in Point Of Sale (PoS).
  4. Set a default payment Account for all the companies.
  5. Save.

Mode of Payment

Tip: Setting the default Account will this account fetched into Payment Entries.

Mode of Payment

Note: When making Payment Entries, the default bank account will be fetched in the following order if set:

  • Company form
  • Mode of Payment default account
  • Customer/Supplier default bank account
  • Select manually in Payment Entry
  1. Payment Entry
  2. Payment Request

Moving Asset from Stock Item to Fixed Asset Item

https://docs.frappe.io/erpnext/moving-asset-from-stock-item-to-fixed-asset-item

Question: We have added Asset Item as a Stock / consumable Item. How to move this item to Fixed Asset register, so that Depreciation can be applied on it?

Answer: To move a stock or consumable item to the Fixed Asset Register in ERPNext, follow these steps:

Create a Fixed Asset Item:

  • Go to the "Item" list and create a new item, making sure to set its type as "Fixed Asset."
  • Ensure the relevant details for depreciation and asset management are filled out.

Create a Fixed Asset from the Existing Item:

  • Navigate to the "Asset" module.
  • Click on "New" to create a new Fixed Asset record.
  • Enter the details of the asset, including its asset type and the item code from the stock/consumable item.

Update Asset Details:

  • In the Fixed Asset record, update details such as purchase date, purchase amount, and other relevant information.
  • If you need to apply depreciation, set up the depreciation rules accordingly.

Transfer Stock to Asset:

If the item is already in stock, you’ll need to adjust the stock and record the transfer:

  • Create a Stock Reconciliation or Stock Entry to adjust the inventory.
  • Move the item from stock to a fixed asset account if needed.

Set Up Depreciation:

  • Go to the "Depreciation Schedule" in the Fixed Asset module.
  • Create a depreciation schedule for the asset based on your company's policies.

Make sure to follow your company's accounting and inventory policies when making these changes.

M-Pesa Integration

https://docs.frappe.io/erpnext/mpesa-integration

M-Pesa integration allows processing transactions with the payment gateway provider M-Pesa.

M-Pesa Integration facilitates the processing of payments between the M-Pesa application and ERPNext. M-Pesa Integration only works with the POS to facilitate the payments for the same. This feature doesn't work with the shopping cart.

To set up M-Pesa, go to:

Integrations > Payments > M-Pesa Settings

1.How to get your M-Pesa credentials?

  1. In order to activate your API credentials, you need to log in to your M-Pesa account.
  2. Then, open the Go Live section of the application and follow the steps to get the approval for the app.
  3. When all the test cases are satisfied and expected results match the final results, you need to submit the document and follow the steps to get the final credentials for your application.
  4. Details mentioned in the Production URL and Credentials section are the credentials that you are supposed to use in M-Pesa Settings.

Mpesa Credentials

2.Setting up M-Pesa

To enable M-Pesa Express, you need to configure all the mandatory parameters which you have received from M-Pesa. If you want to use the staging environment of the integration, you can select the staging option and use the staging credentials provided by M-Pesa by creating a separate application for the same.

Mpesa Settings

On enabling the M-Pesa integration in ERPNext, the system will create a Payment Gateway record and an Account head in the Chart of Accounts with the Account type as Bank as seen in the following screenshot.

Mpesa COAMpesa POS Settings

It will also create a Mode of Payment with the same name and account as the payment gateway's, along with certain custom fields in POS Settings to handle the POS payments.

Payment Gateway Account

After configuring the Payment Gateway Account, you will be able to accept online payments via M-Pesa.

3. M-Pesa POS Payments

On setting up the POS profile with M-Pesa mode of payment, the POS checkout would show an additional information section. This section contains two fields that were automatically set-up on adding M-Pesa settings.

POS Additional Information

As soon as a POS user fills the mobile number of the customer, they can initiate a request for payment from the customer. A request is sent to the customer's M-Pesa mobile application linked with the specified mobile number. Once the payment is processed by the user, the user is prompted by a confirmation dialog to submit the payment.

4. M-Pesa Account Balance

Account balance linked with an individual M-Pesa can be fetched via the Get Account Balance button. This will load the M-Pesa account balance details in the dashboard.

POS Account Balance

5. Supporting transaction currencies

M-Pesa will only work for the Company which has KSH (Kenyan Shilling) as the Company Currency.

Multi Currency Accounting

https://docs.frappe.io/erpnext/multi-currency-accounting

Transacting in two different currencies is known as Multi Currency Accounting.

In ERPNext, you can make accounting entries in multiple currencies. For example, if you have a bank account in foreign currency, you can make transactions in that currency and the system will show bank balance in that specific currency only.

Bank accounts in foreign currencies can be for other branches of your own company or Debtors/Creditors account for foreign Customers/Suppliers.

1. Setup

1.1 Set currency in Chart of Accounts

To get started with multi-currency accounting, you need to assign accounting currency in the Account record. You can define Currency from Chart of Accounts while creating an Account.

Set Currency in Account

1.2 New account with different currency

You can also assign/modify the currency by opening specific Account records for existing Accounts.

Update Currency in Ledger

1.3 Currency for Customer/Supplier

For Customer/Supplier (Party), you can also define its billing currency in the party record. If the party's accounting currency is different from Company Currency, you should mention Default Receivable/Payable Account in that currency.

Billing Currency in Customer

1.4 After setup

Once you define Currency in the required account(s) and select relevant accounts in the Party record, you are ready to make transactions against them. If party account currency is different from the Company currency, the system will restrict from making transactions with that party.

You need to change the currency to party currency in the transaction (Sales or Purchase Order/Invoice). If party account currency is the same as company currency, you can make transactions for that Party in any currency. But accounting entries (GL Entries) will always be in Party Account Currency.

Note: Ensure that the correct account with currency is set in the 'Debit To' field when making invoices/payments.

You can change accounting currency in Party/Account record before you make any transactions against them. After making accounting entries, the system will not allow you to change the currency for both Party/Account records. In case of multi-company setup, the accounting currency of the party must be the same for all the companies.

2. Exchange Rates

When dealing with multiple currencies, ERPNext has the Currency Exchange page for managing exchange rates. It allows you to save the exchange rate quotes you require. To know more, visit the Currency Exchange page.

For foreign currency transactions, ERPNext checks exchange rates from:

  1. From the Currency Exchange for any matching record (if created by a User).
  2. If this fails, ERPNext will attempt to get the current market exchange rate from Frankfurter.
  3. NOTE: Starting from ERPNext version 13.10.0, Frankfurter is replaced by a new service called exchangerate.host.
  4. If this still fails, then the exchange rate will have to be entered manually.

The rates in the Currency Exchange master are fetched based on whether 'Allow Stale Exchange Rate' is enabled in Accounts Settings. To know more, visit the Accounts Settings page.

3. Transactions

3.1 Sales Invoice

In a Sales Invoice, transaction currency must be the same as the accounting currency of Customer if Customer's accounting currency is different from Company currency. Otherwise, you can select any currency in a Sales Invoice. On selection of Customer, system will fetch a Receivable account from Customer/Company. The Currency of the receivable account must be the same as the Customer's accounting currency.

Now, in Invoice, Paid Amount will be entered in transaction currency, instead of earlier Company Currency. Write Off Amount will also be entered in the transaction currency.

Outstanding Amount and Advance Amount will always be calculated and shown in Customer's Account Currency. The paid amounts will be reflected in the Payment Entry:

Multi-currency in Payment Entry

3.2 Purchase Invoice

Similarly, in a Purchase Invoice, accounting entries will be made based on Supplier's accounting currency. Outstanding Amount and Advance Amount will also be shown in the supplier's accounting currency. Write Off Amount will now be entered in the transaction currency.

3.3 Journal Entry

In Journal Entry, you can make transactions in different currencies. There is a checkbox 'Multi Currency', to enable multi-currency entries. Only when 'Multi Currency' option selected, you will be able to select accounts which have different currencies.

Multi-currency in Journal Entry

In the Accounts table, on the selection of a foreign currency account, the system will show the Currency section and fetch Account Currency and Exchange Rate automatically. You can change/modify the Exchange Rate later manually. Debit/Credit amount should be entered in Account Currency, the system will calculate and show the Debit/Credit amount in Company Currency automatically.

Company and Transaction Currency in Journal ENtry

4. Reports

4.1 General Ledger

In General Ledger, the system shows debit/credit amount in party currency if filtered by an Account and that Account Currency is different from Company Currency.

Multi-currency in General Ledger

4.2 Accounts Receivable/Payable

In Accounts Receivable/Payable report, the system shows all the amounts in Party/Account Currency.

Multi-currency in Accounts Receivables
  1. Exchange Rate Revaluation
  2. Currency Exchange
  3. Currency
  4. Sales Invoice
  5. Purchase Invoice

Multi Currency Setup

https://docs.frappe.io/erpnext/multi-currency-setup

Multi-currency functionality in ERPNext simplifies managing transactions in different currencies.

It allows users to set up multiple currencies, record transactions in their respective currencies, and automatically convert values based on current exchange rates. This feature is important for businesses operating internationally which ensures accurate financial reporting and analysis across diverse currency range.

Naming Series

https://docs.frappe.io/erpnext/naming-series

Masters and transactions can be given prefixes in the form of naming series.

ERPNext allows you to make prefixes to your documents, with each prefix forming its own series. For example, a series with prefix INV12#### will have numbers INV120001, INV120002, and so on.

You can have multiple series for all your transactions. For example, Sales Invoice IDs like these can be generated:

  • ACC-SINV-.YYYY.-
  • SINV12####
  • SALESINV-00####

You can define or select the Naming Series pattern from:

Home > Settings > Naming Series

1. Setting up Naming Series for Documents

Select the transaction for which you want to make the series. The system will update the current series in the text box.

Edit the series as required with unique prefixes for each series. The first prefix will be the default prefix. Each new prefix Naming Series must be added on a new line. The newly added naming series will be available in the document.

Multiple naming series

If you want the user to explicitly select a series instead of the default one, check the “User must always select” checkbox. There will be no default naming series if this is ticked.

You can also update the starting point of a series by entering the series name and the starting point in the “Update Series” section.

Click on the Update button to update the set of Naming Series for the selected document.

Note: To see the newly added Naming Series, click on Settings > Reload.

2. Financial Year in Naming Series

You can also show the financial year in the Naming Series. By default, if you enter 'YYYY' in the naming series, it'll pick up the current year. To set naming series based on the fiscal year, enter something like 'ACC-SINV-.FY.-' where 'FY' will be resolved to match the current Fiscal Year. It is common to have a separate series for each financial year.

Alternatively it is also possible to manually embed the fiscal year in the naming series, for example by entering something like 'ACC-SINV-.19-20.-' where 19-20 is the current Fiscal Year.

As you can see, in the following screenshot of a Sales Invoice, the year 2019 is listed:

Fiscal year in Naming Series

3. Updating the current value for existing Naming Series

You can change the starting/current sequence number of an existing series.

  1. Under the Update Series section, select the prefix whose sequence is to be changed.
  2. The current value will be fetched and displayed.
  3. Change starting/existing sequence number if needed.
  4. Click on Update Series Number.

For example, if the current Sales Order series number is at 16, and you want to restart or set it as 50, enter 0 or 50 depending on your case. Any new Sales Order created will start from the new sequence number.

To know more about this, visit this article.

Tip: You could have a separate series for each type of Customer or for each of your retail outlets.

4. Using Field Values in Naming Series

Some companies prefer to make use of "short-codes" for suppliers, i.e. WN for company "Web Notes" that later can be used in naming series for quick identification.

For example:

A custom field "Vendor ID" is created under Document: Supplier. Then under Naming Series, we allow something like PO-.YY.MM.-.vendor_id.-.#### Resulting in "PO-1503-WN-00001"

5. Video

Naming Series as Per GST Rules

https://docs.frappe.io/erpnext/naming-series-as-per-gst-rules

Rule 46 (b) of the CGST Rules 2017 specifies that the tax invoice issued by a registered person should have a consecutive serial number, not exceeding sixteen characters, in one or multiple series, containing alphabets or numerals or special characters – hyphen or dash and slash symbolized as “-” and “/” respectively

This validation will come into effect in ERPNext from the new fiscal year i.e FY 2021-22. If you encounter an error similar to one shown in the screenshot below, follow the below steps to resolve the issue and add a new naming series for Sales and Purchase Invoices

Step 1: Go to "Naming Series" doctype and select transaction as "Sales Invoice"

Step 2: Add a new naming series having maximum upto 16 characters. For eg INV-.YYYY.-.#####. Add this as the first option and don't check "User must always select" inorder to make this as the defaut naming series

Set Current Value for Naming Series

https://docs.frappe.io/erpnext/naming-series-current-value

Naming Series feature allows you to define prefix for naming of a documents. For example, if a Sales Order has prefix "SO", then the series will be generated as SO-00001, SO-00002... and so on. Click here to learn how you can customize Number Series for a transaction/master in ERPNext.

1. Setting the Current Value

Naming Series feature also offers a tool where you can set Current Value for specific prefix. This is generally required if you have recently started using ERPNext, and have old transactions in the previous system, and you want the numbering series to start in from where it ended in the old system. Let's consider a scenario to learn this better.

For example, you have 322 Sales Orders created in your old system with SO00322 as highest Sales Order Id. In ERPNext, you need the first Sales Order to pick up #323 when it is saved. To enable this, you should set Current Value for SO series in following steps.

Go to Naming Series Tool

Setup > System > Naming Series

Update Series Section

Update Series Section

Select Prefix

Considering our scenario, prefix for Sales Order will be "SO".

Series Prefix

Current Value

If you have currently 12 Sales Orders created in your account, then current value updated will be 12. You can edit Current Value to 322, and then click on Update Series Number.

Series Current Value

With this setting, you will have numbering for the New Sales Orders starting with #323.

2. Error Due Series Number

If you receive a Duplicate Name error while saving a transaction, for example, while saving Item Price, you receive an error saying:

Duplicate name Item Price RFD/00016

This error message indicates that when you are saving Item Price, system is trying to allocate "RFD/00016" to that Item Price record. But it is finding that Item Price with this ID is already existing in your system.

This error could arise because Current Value for Series/Prefix of Item Price is disturbed and not in sync with actual Current Value. While actual Current Value for Item Price could be 20 (or any number more than 16), someone has set Current Value for this series as 15.

To confirm actual Current Value for particular Series, you should check report for document in question (Item Price in this case), and check for the Item Price ID with highest value.

Let's assume we find that actual Current Value for Item price is 22, then you go Naming Series, and set Current Value for the Prefix/Series of Item Price to 22, and Update Series Number.

These instructions is applicable for all the documents in ERPNext for which user can customize Series and its Current Value.

Let's consider another scenario to learn this better. On assigning a document to another user, error message says:

Duplicate name ToDo TDI00014286

This indicate the Current Value for Series/Prefix of ToDo (TDI) has been disturbed. You should follow these steps to correct value for Current Value for TDI prefix.

  1. Check ToDo report for the highest ToDo id value.
  2. Setup >> Settings >> Naming Series
  3. Check section B of Update Series
  4. Select Prefix for ToDo "TDI"
  5. Ensure that highest number for ToDo is updated as Current Value in Naming Series. If not, correct Current Value, and click on "Update Series Numbering".

Change the Rate of Items in the Sales Cycle

https://docs.frappe.io/erpnext/need-to-change-rate-of-items-during-sales-cycle

Sometimes, the rate of items in the Sales Invoice might differ from the one declared in the Sales Order. You may follow these steps to allow this configuration within ERPNext:

  1. Go to Selling Settings and make sure the "Maintain Same Rate Throughout Sales Cycle" checkbox is unchecked. This setting will allow you to have different rates for the same items in different Sales transactions (Sales Order, Delivery Note, Sales Invoice, etc.).
  2. Go to Accounts Settings and set the Over Billing Allowance (%).

With the above two settings, you can change the rates of an item in a Sales Transaction.

Newsletter

https://docs.frappe.io/erpnext/newsletter

Newsletter is an email which is sent to a specific group of subscribers periodically.

In the context of CRM, its is an informational and product-focused email that is sent to existing and potential customers with an intention of softly pushing the subscriber to do required actions.

Newsletter can also be used to share information to employees, investors etc.

You need to create Email Groups before sending the newsletters.

To access the Newsletter list, go to:

Home > Settings > Email > Newsletter

1. How to Create a Newsletter

  1. Go to the Newsletter list and click on New.
  2. Select the Email Group in RECIPIENT table.
  3. Enter 'Subject'.
  4. Enter 'Message'.
  5. 'Publish' the newsletter to make it available on the web.
  6. Tick 'Send Unsubscribe Link' if you would like to include unsubscribe link in the email.
  7. 'Send Web View Link' will include a link in the email to open the newsletter on the web. This option is only visible when the newsletter is published.

Newsletter

Below is the screenshot of the email received with link to unsubscribe and a link to open the email on the web.

Newsletter With Unsubscribe Link

2. Features

2.1 Create Subscriber Groups

You can manage subscribers by grouping them into different Email Groups.

You can select multiple email groups in the 'RECIPIENT' tables in the newsletter.

2.2 Schedule Send

You can choose to send your newsletter at any future datetime by specifying time in hourly steps.

Scheduled Newsletter

2.3 Test Newsletter Before Sending to Subscribers

Once the newsletter is ready you can provide a 'Test Email Address' and click on 'Test'.

You can review the newsletter received in the test email, verify it and then send it to all subscribers by clicking on 'Send'.

Newsletter Test

Non Conformance

https://docs.frappe.io/erpnext/non-conformance

A Non Conformance is a observation that can be filed by any person in the organization to note non compliance to a specific procedure

Once Quality Procedures are defined, the goal of a quality focussed organization is to ensure that they hare followed. This ensures consistent quality and parameters as per the customer's expectation. If these procedures are not followed, an observation is recorded via a Non Conformance or called NC in quality systems.

In ERPNext, you can create a Non Conformance by selecting the Quality Procedure against which it was observed, maintain its status and record corrective and preventive actions

1. Prerequisites

  1. Quality Procedure

2. How to Create a Non Conformance

  1. Go to Quality > Non Conformance or find the Quality Procedure and click on + from the dashboard.
  2. Record your observations
  3. Record corrective / preventive actions if any
  4. Update status

  1. Quality Procedure

Cannot enable Serial and Batch Number

https://docs.frappe.io/erpnext/not-able-to-select-has-serial-no-batch-option-in-item-list

It is quite possible at times that you do not want to start tracking the inventory as batched and/or serialized but want to start doing so at a later stage. 
The system, by design, doesn't allow you to activate these options once stock transactions have been made.You can read more about why the same is disabled here.
To enable the options again, you can either delete all stock transactions for this item, or if that is not an option, you can duplicate the same item and inward the stock with these options checked.
STEPS:****1. You will have to first stock out the current item using Stock Reconciliation Tool (make current stock zero). You can also stock out the item by making a stock entry of type Material issue. 2. Then using material receipt, inward the serialized inventory. Refer the following link for help on the same: Opening Stock Balance Entry for Serialized and Batch Item 3. Disable the old items so it cannot be selected in transactions again.

Note: If you want to maintain the same item code, you will need to rename the existing items, and then create the new item as per the actual item code. Otherwise, you will be maintaining the item under a new code.

Notification

https://docs.frappe.io/erpnext/notifications

You can configure various notifications in your system to remind you of important activities.

  1. The completion date of a Task.
  2. Expected Delivery Date of a Sales Order.
  3. Expected Payment Date.
  4. A reminder of follow up.
  5. If an Order greater than a particular value is received or sent.
  6. Expiry notification for a Contract.
  7. Completion/Status change of a Task.

To access notification setup, go to:

Home > Settings > Notification

  1. Setting Up An Alert

To set up a Notification:

Define what events you want to watch under Send Alert On. Events are:

  1. New: When a new document of the selected type is made.
  2. Save/Submit/Cancel: When a document of the selected type is saved, submitted, or canceled.
  3. Days Before/Days After: Trigger this alert a few days before or after the Reference Date. To set the days, set Days Before or After. This can be useful in reminding you of upcoming due dates or reminding you to follow up on certain leads of quotations.
  4. Value Change: When a particular value in the selected type changes.
  5. Method: Sends notification when a specific method is triggered. Eg: before_insert.
  6. Custom: Send a notification to an Email Account selected.

Select the Document Type you want to watch changes on. From Version 16, You can also select child Document Types if Send Alert On is set to Days Beforeor Days After.

Set additional Conditions if required.

Set the recipients of this alert. The recipient could either be a field of the document or a list of fixed Email Addresses.

Compose the message.

Save.

1.1 Setting a Subject

You can retrieve the data for a particular field by using . To use it in your subject/message, you have to surround it with . These are called Jinja tags. For example, to get the name of a document, you use . The following example sends an email on saving a Task with the Subject, "TASK#### has been created"

doc.[field_name]{% raw %}{{ }}{% endraw %}{% raw %}{{ doc.name }}{% endraw %}

Setting Subject

1.2 Setting Conditions

Notifications allow you to set conditions according to the field data in your documents. For example, if you want to receive an Email if a Lead has been saved as "Interested" as it's status, you put in the conditions textbox. You can also set more complex conditions by combining them with the operator and or or.

doc.status == "Interested"

Setting Condition

The above example will send a Notification when a Task is saved with the status "Open" and the "Expected End Date" for the Task is the date on or before the date on which it was saved on.

1.3 Setting a Message

You can use both Jinja Tags () and HTML tags in the message textbox.

{% raw %}{{ doc.[field_name] }}{% endraw %}
{% raw %}<h3>Order Overdue</h3>

Transaction {{ doc.name }} has exceeded Due Date. Please take necessary action.

{% if comments %} Last comment: {{ comments[-1].comment }} by {{ comments[-1].by }} {% endif %}

<h4>Details</h4>
  • Customer: {{ doc.customer }}
  • Amount: {{ doc.total_amount }}

{% endraw %}

1.4 Setting a Value after the Alert is Set

Sometimes to make sure that the Notification is not sent multiple times, you can define a custom property (via Customize Form) like "Notification Sent" and then set this property after the alert is sent by setting the Set Property After Alert field.

Then you can use that as a condition in the Condition rules to ensure emails are not sent multiple times

Setting Property in Notification

1.5 Example

  1. Defining the Criteria
  2. Setting the Recipients and Message
Defining CriteriaSet Message
  1. Slack Notifications

If you prefer to have your notifications sent to a dedicated Slack channel, you can also choose the option "Slack" in the channel options and select the appropriate Slack Webhook URL.

2.1 Slack Webhook URL

A Slack webhook URL is a URL pointing directly to a Slack channel.

To generate webhook URLs, you need to create a new Slack App:

  1. Go to https://api.slack.com/slack-apps.
  2. Click on "Create a Slack App".
  3. Give your App a name and choose the right workspace. Once your app is created, go to the "Incoming Webhooks" section and add a new Webhook to Workspace.
  4. Copy the created link, go back to ERPNext and use it to create a new Slack Webhook URL in Integrations > Slack Webhook URL.
  5. Select Slack and your Slack channel in the channel and Slack channel fields within your notification
Set MessageSet MessageSet Message

2.2 Message Format

Unlike Email messages, Slack doesn't allow HTML formatting.

Instead, you can use markdown formatting: Slack Documentation

Example: {% raw %} Order Overdue

Transaction {{ doc.name }} has exceeded Due Date. Please take the necessary action.


{% if comments %}
Last comment: {{ comments[-1].comment }} by {{ comments[-1].by }}
{% endif %}

*Details*

• Customer: {{ doc.customer }}
• Amount: {{ doc.grand_total }}
{% endraw %}

Set Message
  1. System Notifications

In Version 12 we introduced System notifications for Assignments, mentions, documents shared, and Energy Points. These notifications show up in the notifications dropdown on the the navigation bar's top right corner.

In Version 13 we have introduced an additional channel to send alerts - System Notifications:

Notifications Dropdown

Choosing this channel will send a system notification when a notification is triggered, instead of an Email or a Slack notification.

Notifications Dropdown

Clicking on the notification routes to the Notification Log document which contains the configured subject, message as well as the attached file, if Attach Print is set:

Notifications Dropdown

If Email/Slack alerts and System Notifications both are required, the main channel can be set as Email or Slack and this option can be checked:

Notifications Dropdown
  1. WhatsApp

In Version 13 we have introduced an additional channel to send alerts - WhatsApp:

Notifications WhatsApp Channel

If you prefer to have your notifications sent to a WhatsApp number, you can also choose the option "WhatsApp" in the channel options and select the appropriate Twilio Number. Twilio Numbers can be added to Twilio settings in Frappe. WhatsApp messages can only be sent to numbers which have country codes in them.

Twilio Settings

4.1 Twilio Settings

In order to configure Twilio settings, you need to first obtain Twilio credentials from your Twilio Account's account settings. You can only add those phone numbers that have been activated in your Twilio Account with WhatsApp access.

Twilio Credentials

4.2 Message Format

WhatsApp allows their users to only send those message templates that are pre-approved by them to your customers. Failure to do so might result in restrictions on you Twilio account.

Pre Approved Message Template
  1. SMS

In Version 13 we have introduced an additional channel to send alerts - SMS:

SMS Channel

In order to use this channel, you would need to complete the configuration of SMS Settings.

  1. SMS Settings
  2. Document Follow

7. One-off Reminders

Note: This feature is only available in nightly version as of now.

Since setting up notifications is quite involved process, Frappe Framework also provides a way to setup one-off reminders on documents. Example of such notification would be "Remind me to follow up about this lead in 4 hour"

To set up one-off reminder on document:

  1. Open the document on which you want to set a reminder
  2. Click on menu (three dots) > "Remind Me"
  3. Select time and add a description for yourself and click "Create"
  4. System will send you a system notification around the time you've configured with reminder description as subject.

Open Source

https://docs.frappe.io/erpnext/open-source

The term open source refers to those software where the source code is available to the public for inspection, modification, enhancement and distribution to the software. This is contrast to the proprietary systems where the code is highly restricted.

ERPNext is a free and open source software published under GNU General Public License (GPLv3) license.

It grants you the freedom to..

  • Use the software for any purpose
  • Change the software to suit your needs
  • Share the software with anyone
  • Share the changes you make

The source code of ERPNext is available on GitHub.

System Security

ERPNext uses encryption to protect all data at rest and in transit. This means that even if a hacker gains access to your data, they will not be able to read it without the correct key.

There are two main types of encryption used by ERPNext:

  • Symmetric encryption: This uses the same key to encrypt and decrypt data. This is a simpler and more efficient type of encryption, but it requires that both the sender and receiver of the data have the same key.
  • Asymmetric encryption: This uses two different keys, one for encryption and one for decryption. This is a more secure type of encryption, but it is also more complex and less efficient.

ERPNext uses a combination of symmetric and asymmetric encryption to protect data. For example, symmetric encryption is used to encrypt data at rest, while asymmetric encryption is used to encrypt data in transit.

In addition to encryption, ERPNext also uses other security features to protect data, such as:

  • Access control: This allows you to control who has access to your data. You can create different user roles and permissions, so that only authorized users can access the data they need.
  • Intrusion detection: This monitors your system for suspicious activity. If a hacker attempts to breach your security, ERPNext will alert you so that you can take action.
  • Regular security audits: ERPNext is regularly audited by independent security firms to ensure that its security is up to date.

These security features make ERPNext one of the most secure ERP solutions on the market. If you are looking for a secure way to manage your business data, ERPNext is a good choice.

Here are some additional benefits of using encryption in ERPNext:

  • It can help to protect sensitive data, such as customer information, financial data, and intellectual property.
  • It can help to prevent data breaches, which can damage a company's reputation and financial bottom line.
  • It can help to comply with data privacy regulations, such as the General Data Protection Regulation (GDPR).

Advantages of an open source software are:

  1. There is no lock-in with one specific vendor.
  2. You can host the application anywhere, including your own server to gain complete ownership and privacy of the data.
  3. You can access a community for help.
  4. You can benefit from using a product that is critiqued and used by a wide range of people, who have reported hundreds of issues and suggestions to improve the product.

While ERPNext is free and open source, running a server for ERPNext, implementing it and, supporting it is not an easy task. You can opt for professional help at erpnext.com or find a suitable service provider. This will allow you to reduce your risk and focus on delivering business value.

Open Work Order Report

https://docs.frappe.io/erpnext/open-work-orders

We can easily identify the manufacturing progress of certain items in our organizations using Open Work Orders in ERPNext.

Open Work Orders

In this report users are able to see:

  • Items that need to be produced
  • The total quantity to produce
  • The quantity that has already been produced

For further details, users can proceed to click on the work order and expand it e.g. MFG-WO-2018-00009. This helps you prioritise Work Orders by their date

Opening and Closing

https://docs.frappe.io/erpnext/opening-and-closing

The Opening Invoice Creator, Chart of Accounts Importer, and Period Closing Voucher are vital features within ERPNext's accounting module.

The Opening Invoice Creator facilitates the creation of invoices at the beginning of an accounting period, streamlining the process of recording opening balances for receivables or payables.

The Chart of Accounts Importer is a powerful tool that enables users to import a structured list of accounts into ERPNext, saving time and reducing errors associated with manual data entry. This feature is particularly useful during system setup or when updating account structures, ensuring that the Chart of Accounts is correctly configured to reflect an organisation's financial structure.

The Period Closing Voucher automates the closing activities at the end of an accounting period. It consolidates adjustments, accruals, and other closing entries, providing a systematic way to finalise financial transactions for the period..

Opening Balance in Accounts

https://docs.frappe.io/erpnext/opening-balance

The opening balance is the balance that is brought forward at the beginning of an accounting period from the end of a previous accounting period or when starting out.

This also applies when starting a new Company and would like your offline balances to be updated in ERPNext.

1. Introduction

If you are a new company, you will have minimal opening balances to be imported. However, if you are migrating from a legacy accounting system like Tally or a Fox Pro based software you will have considerable data to be imported as opening balance.

We recommend that you start using ERPNext for accounting from a new financial year, but you could start midway too. To set up your accounts, you will need the following for the “day” you start using accounting in ERPNext:

1.1 Assets

  1. Stock assets (stock in hand).
  2. Fixed assets like furnitures, computers, etc.
  3. Accounts Receivables (AR) i.e. unpaid invoices which you have sent to your Customers.
  4. Current assets like bank balances, cash in hand, deposits, etc.

1.2 Liabilities

  1. Capital accounts like your shareholder’s (or owner’s) capital
  2. Current liabilities like loans, salary payables etc
  3. Accounts Payables(AP) i.e. unpaid invoices which your suppliers have sent you

If you were using another accounting software before, you should close financial statements in that software first. The closing balance of the accounts should be updated as an opening balance in the ERPNext. Before starting to update opening balance, ensure that your Chart of Accounts has all the Accounts required.

Opening entries can be created using the Opening Invoice Creation Tool in ERPNext.

Opening entry is only for Balance Sheet accounts and not for Profit and Loss Accounts.

2. Opening Balance of Assets

2.1 Update Fixed Assets

To import all the existing fixed assets first create the asset record and then create a Journal Entry to update the General Ledger.

Step 1. Create Asset Records

To know about Assets in detail, visit this page.

Create Asset record for each asset that your company owns which is not fully depreciated.

To create a new Asset:

  1. Create an Item with 'Is fixed Asset' enabled.
  2. Go to Assets > Assets > New.
  3. Enter Asset Name.
  4. Enter Item Code.
  5. Enter Location.
  6. Enter the Purchase Date.
  7. Enter Gross Amount.
  8. Tick Is Existing Asset.
  9. Save.

Step 2. Create Journal Entry to Update the Ledgers

When you create an Asset with 'Is Existing Asset' checkbox ticked, the General Ledger is not updated. You will have to update the value via a Journal Entry.

To create a new Journal Entry:

  1. Go to: Accounting > Masters and Accounts > Journal Entry > New.
  2. Enter Posting Date.
  3. Select the appropriate fixed asset ledgers in Account column and enter the value in Debit column.
  4. Select 'Temporary Opening' ledger in Account column and enter the balancing amount in Credit column.
  5. Set 'Is Opening' to Yes.

2.2 Update Stock Assets

Read Opening Stock to understand how to set this up

2.3 Update Accounts Receivable

Accounts Receivables is the balance amount your Customer owes you towards the Sales Invoices you have already sent to them.

You can import the accounts receivables details using the Opening Invoice Creation Tool.

After importing, Sales Invoices will be created. You can post Payment Entry against these invoices as and when you receive payment from your customer.

2.4 Update Current Assets

Before importing current assets, make sure that you have created the required ledgers under Chart of Accounts > Assets > Current Assets group.

To import details of current assets:

  1. Go to: Accounting > Company and Accounts > Journal Entry > New.
  2. Enter Posting Date.
  3. Select the appropriate current asset ledger in the Account column and enter the value in Debit.
  4. Select 'Temporary Opening' ledger in Account and enter the balancing amount in Credit.
  5. Set 'Is Opening' to Yes.

To know about Journal Enter in detail, visit this page.

3. Opening Balance of Liabilities

3.1 Update Capital Accounts

Before importing capital accounts, make sure that you have created the required ledgers under Chart of Accounts > Liabilities > Capital Accounts group.

To import details of capital accounts:

  1. Go to: Accounting > Masters and Accounts > Journal Entry > New.
  2. Enter Posting Date.
  3. Select the appropriate capital account ledgers in Account column and enter the value in Credit column.
  4. Select 'Temporary Opening' ledger in Account and enter the balancing amount in Debit column.
  5. Set 'Is Opening' to Yes.

3.2 Update Current Liabilities

Before importing current liabilities, make sure that you have created the required ledgers under Chart of Accounts > Liabilities > Current Liabilities group.

To import details of current liabilities:

  1. Go to: Accounting > Masters and Accounts > Journal Entry > New.
  2. Enter Posting Date.
  3. Select the appropriate current liability ledgers in the Account column and enter the value in the Credit column.
  4. Select 'Temporary Opening' ledger in Account and enter the balancing amount in Debit column.
  5. Set 'Is Opening' to Yes.

3.3 Update Accounts Payable

Accounts Payables is the balance amount you owe your Suppliers towards the invoices they have already sent you.

You can import the accounts payables details using the Opening Invoice Creation Tool.

After importing, Purchase Invoices will be created. You can post Payment Entry against these invoices as and when you make the payment.

4. Verify the Opening Balance

Once all assets and liabilities have been imported, the balance of Temporary Opening ledger should be zero.

Opening Invoice Creation Tool

https://docs.frappe.io/erpnext/opening-invoice-creation-tool

The Opening Invoice Creation Tool allows importing data of outstanding Purchase or Sales Invoices into ERPNext. This specific tool is used in place of the Data Import Tool for cases where the Item data is irrelevant and outstanding balances against Customers/Suppliers are to be imported into ERPNext.

To access the Opening Invoice Creation Tool, go to:

Home > Accounting > Opening and Closing > Opening Invoice Creation Tool

1: How to import Opening Invoices

  1. Select the Company to which you want to import opening balances.
  2. Select the Invoice Type. Selecting Sales or Purchase will generate Sales Invoices or Purchase Invoices respectively.
  3. Checking the "Create Missing Party" checkbox will automatically create customers or suppliers if missing according to the name provided in the Party column.
  4. Fill up the Invoices table. It consists of the following fields: Party: You can select an existing Customer/Supplier or enter the name of a new one which will be automatically created.
    Posting Date: The date at which the invoice will be posted.
    Due Date: The date after which the invoice will be overdue.
    Item Name: (Optional) The item name entered here will be shown in the invoice item table.
    Outstanding Amount: The outstanding amount of the invoice.
    Invoice Number: The corresponding invoice number as present in the previous system. If this field is empty, the ERPNext naming series will be used.

Tip: You can click the download button to download an excel sheet that you can fill up easily with appropriate data. If you have downloaded the excel sheet, then use the Upload button to upload it. Once you upload the sheet, the table will be filled with appropriate data rows.

Opening Stock

https://docs.frappe.io/erpnext/opening-stock

Opening Stock is the amount and value of materials that a company has available for sale or use at the beginning of an accounting period.

The closing Stock of the previous accounting period becomes the opening Stock of the current accounting period.

1. Prerequisites

  • Create Warehouses.
  • Link Warehouse to the appropriate accounting ledgers.

2. Opening Stock for Non-serialised Items

To post opening stock, visit the Stock Reconciliation page.

3. Opening Stock for Serialised and Batched Items

Create the Batch and Serial No records beforehand. To post opening stock for serialised and batched items:

  1. Go to Stock > Stock Transactions > Stock Entry > New.
  2. Select 'Material Receipt' in 'Stock Entry Type'.
  3. Set as .
  4. Select the Warehouse in 'Default Target Warehouse'.
  5. In the Items table, select Item Code, Qty and Basic rate.
  6. For batched items, select Batch No.
  7. For serialised items, select Serial No.
  8. Save and Submit.
Is OpeningYes
  1. Accounting Of Inventory Stock
  2. Stock Entry
  3. Stock Reconciliation

Opening Stock Balance Entry for Serialized and Batch Item

https://docs.frappe.io/erpnext/opening-stock-balance-entry-for-serialized-and-batch-item

Items for which Serial No. and Batch No. is maintained, opening stock balance entry for them is update via Stock Entry. Click here to learn how serialized inventory is managed in ERPNext.

Question: Why Opening Balance entry for the Serialized and Batch Item cannot be updated via Stock Reconciliation?

In the ERPNext, stock level of a serialized item is derived based on the count of Serial Nos for that item. Hence, unless Serial Nos. are created for the serialized item, its stock level will not be updated. In the Stock Reconciliation Tool, you can only update opening quantity of an item, but not the Serial No. and Batch No.

Opening Balance for the Serialized Item

Following are the steps to create opening stock balance entry for the Serialized and Batch item.

Step 1: New Stock Entry

Stock > Stock Entry > New

Step 2: Select Purpose

Stock Entry Purpose should be updated as .

Material Receipt

Step 3: Update Posting Date

Posting Date should be date on which you wish to update opening balance for an item.

Step 4: Update Target Warehouse

Target Warehouse will be one in which opening balance of an item will be updated.

Step 5: Select Items

Select Items for which opening balance is to be updated.

Step 6: Update Opening Qty

For the serialized item, update quantity as many Serial Nos are their.

For the serialized item, mention Serial Nos. equivalent to it's Qty. Or if Serial Nos. are configured to be created based on Prefix, then no need to mention Serial Nos. manually. Click here to learn more about Serial No. naming.

For a batch item, provide Batch ID in which opening balance will be updated. Keep batch master ready, and updated it for the Batch Item. To create new Batch, go to:

Stock > Setup > Batch > New

Click here to learn how Batchwise inventory is managed in ERPNext.

Step 7: Update Item Valuation Rate

Update valuation rate, which will be per unit value of item. If different units of the same items having different valuation rate, they should be updated in a separate row, with different Valuation Rates.

Step 8: Difference Account

As per perpetual inventory valuation system, accounting entry is created for every stock transaction. Double entry accounting system requires Total Debit matching with Total Credit in an entry. On the submission of Stock Entry, system debits Warehouse account by total value of items. To balance the same, we use Temporary Opening account as a Difference Account.

Difference Account

Step 9: Save and Submit Stock Entry

On submission of Stock Entry, stock ledger posting will be posted, and opening balance will be updated for the items on a given Posting Date.

Operation

https://docs.frappe.io/erpnext/operation

An Operation refers to any manufacturing operation performed on the raw materials to process it further in the manufacturing path.

The Operation master stores a single manufacturing operation, its description and the Default Workstation for the Operation.

Prerequisites

Before creating and using an Operation, it is advised that you create a Workstation first.

How to create an Operation

  1. Go to the Operation list, click on New.
  2. Enter a name for the Operation, for example, cutting.
  3. Select the Default Workstation where the Operation will be performed. This will be fetched in BOMs and Work Orders.
  4. Select a Quality Inspection Template for the operation in the Job Card section. It will be fetched on the Job Card for that particular operation when Work Order is created. When a new Quality Inspection is created from the Job card, then the same Quality Inspection Template is set for the Quality Inspection.
  5. Optionally, add a description to describe what the Operation involves.
  6. Save.

Once saved, the following can be created against an Operation:

Opportunity

https://docs.frappe.io/erpnext/opportunity

Opportunity is a qualified lead.

When you get a hint that lead is looking for a product/service that you offer, you can convert that lead into an opportunity. You can also create an opportunity against an existing customer. Multiple Opportunities can be collected against a lead or a customer.

To access the Opportunity list, go to:

Home > CRM > Sales Pipeline > Opportunity

1. How to Create an Opportunity

  1. Go to the Opportunity list and click on 'Add Opportunity'.
  2. In 'Opportunity From', select Lead if opportunity is from a lead.

Creating New Opportunity
  1. You can also go to a Lead with 'Open' status and select “Opportunity” under Create dropdown as shown below.

Create Opportunity From Lead

In 'Opportunity From', select Customer if opportunity is from a customer.

Select Opportunity Type. This indicates the broad category of opportunity like Sales, Support, Maintenance etc.

You can add more details like Opportunity Amount, Probability (of conversion), Currency in 'SALES' section.

You can capture the details of the products/services needed by clicking on 'With Items' checkbox and adding the item and quantity details in 'Items' section.

Item Details in Opportunity
  1. Enter the Source of the opportunity in the SOURCE section.

2. Features

2.1 Reminders to Follow Up on Opportunities

It is important to reach out to opportunities from time to time and build the relationship. You can set the 'Next Contact Date' and 'Next Contact By' fields and a calendar event will be added for the user chosen in 'Next Contact By' field and a notification is shown on the that Date.

2.2 Auto-assign Opportunities to Sales Executives

Introduced in Version 12

You can define Assignment Rules to automatically assign the opportunities to sales executives.

Opportunity Assignment

2.3 Auto-close Opportunities

If you do not receive a response from an opportunity for a certain number of days, you may want that opportunity to be closed automatically.

You can set the number of days in Selling Settings.

Auto Close Opportunities

2.4 Create a Quotation

You can create a Quotation from the Make dropdown. Relevant field values will be copied over.

Create Quotation From Opportunity

2.5 Create a Supplier Quotation

You may need to get a quotation from your supplier against the customer requirement and based on that, prepare the quotation for your customer. With ERPNext, you can make a Supplier Quotation from the opportunity itself.

Best Practice: Leads and Opportunities are often referred as your “Sales Pipeline” this is what you need to track if you want to be able to predict how much business you are going to get in the future. Its always a good idea to be able to track what is coming in order to adjust your resources.

2.6 Capture the Reasons and Competitors for Lost Opportunities

When an opportunity is lost, you can capture the reasons, competitors and detail reason for losing. This will help you to analyse the trends over a long period of time and identify the insights needed for improvements at various areas in the organisation.

Opportunity Lost Reason

2.7 Minutes to First Response

When you send the first reply(email) to an Opportunity, it calculates Mins to First Response and is displayed in a field.

A report is generated called 'Minutes to First Response for Opportunity'. Read CRM Reports for more details.

  1. Quotation
  2. Customer
  3. Lead
  4. Supplier Quotation
  5. Difference between Lead, Contact, and Customer

Opportunity Type

https://docs.frappe.io/erpnext/opportunity_type

'Opportunity Type' indicates the broad category of opportunity like Sales, Support, Maintenance, Partnership etc.

Adding the appropriate opportunity type helps in assigning the opportunity to the right sales executive and also categorise opportunities in different groups.

To access the Opportunity Type, go to:

Home > CRM > Settings > Opportunity Type

How to create an Opportunity Type

  1. Go to the Opportunity list and click on New.
  2. Enter 'Name'.
  3. Enter 'Description' to elaborate more on the type.

Screenshot 2023-12-28 at 11.14.56 AM

The system allows you to maintain a list of different Opportunity Types.

Screenshot 2023-12-28 at 11.15.46 AM

Packing Slip

https://docs.frappe.io/erpnext/packing-slip

A packing slip is a document that lists the items in a shipment.

It is usually attached to the goods delivered.

From a single Delivery Note, multiple Packing Slips can be created. It is useful when the shipment is packed in different boxes. Each box can have a weight and number of Items it contains. For example, if you're shipping 20 chairs in 4 boxes, each box can contain 5 chairs with different Packing Slips for each box.

To access the Packing Slip list, go to:

Home > Stock > Tools > Packing Slip

Note: In order to create Packing Slips from a Delivery Note, the Delivery Note needs to be in the Draft stage.

1. Prerequisites

Before creating and using a Packing Slip, it is advised that you create the following first:

2. How to create a new Packing Slip

Usually, you should create a Packing Slip from a Delivery Note when it is in the Draft stage, however, if you want to create a Packing Slip manually, follow these steps.

  1. Go to the Packing Slip list, click on New.
  2. Select the Delivery Note.
  3. Enter the From Package No of this Packing Slip.
  4. Click on the Get Items button to fetch the Items and Quantities into the Items table.
  5. Save.

Most of these details will be fetched if you create the Packing Slip from the Delivery Note.

Packing Slip

1.1 Additional options when creating a Packing Slip

To Package No: If there are multiple packages of the same type to be shipped at once then set the From and To Package numbers. For example, package numbers 1 to 5 in one Packing Slip, then package numbers 6 to 10 in the next Packing Slip and so on. This will be shown if you print then Packing Slip. Note that this will only work if you Shipment has that many quantities of the Items.

2. Features

2.1 Items table

  • If this is a Batched Item, you'll have to select the Batch Number.
  • The Quantity, UoM, Net Weight, and Weight UoM will be fetched from the Delivery Note.
  • Page Break will create a page break just before this item when printing.

2.2 Package weight details

These details will be shown when printing the Packing Slip.

Net Weight: This is calculated as the sum of weights of all Items in the table. Gross Weight: This is the final total weight including the weight of the packing materials used. Gross Weight UOM: A UoM can be set here for the final weight of the product.

2.3 Letterhead

You can print your Packing Slip on your company's letterhead. Know more here.

  1. Quality Inspection
  2. Delivery Note

Payment Entry

https://docs.frappe.io/erpnext/payment-entry

A Payment Entry is a record indicating that payment has been made for an invoice.

Payment Entry can be made against the following transactions.

  • Sales Invoice
  • Purchase Invoice
  • Sales Order (Advance Payment)
  • Purchase Order (Advance Payment)
  • Expense Claim
  • Internal Transfer

In ERPNext, there are two options through which User can capture the payment:

  • Payment Entry (Default)
  • Journal Entry

Here are diagrams to understand the flow:

In Sales:

Payment Sales

In Purchase:

Payment Purchase

To access the Payment Entry list, go to:

Home > Accounting > Accounts Receivable/Payable > Payment Entry

  1. Prerequisites

A Payment Entry can also be created directly then linked to an order/invoice later. Before creating and using Payment Entry, it is advised to create the following first:

  1. Customer
  2. Supplier
  3. Bank Account

If you're following the Sales/Purchase Cycle, you'd need the following:

  1. Sales Order (Advance Payment)
  2. Purchase Order (Advance Payment)
  3. Sales Invoice
  4. Purchase Invoice

Set up:

Chart Of Accounts

Company (for default accounts)

How to create a Payment Entry

On submitting a document against which Payment Entry can be made, you will find the Payment option under the Create button.

Payment Entry from Sales Invoice
  1. Change the posting date.
  2. The Payment Type will be set based on the transaction you're coming from. The types are 'Receive', 'Pay', and 'Internal Transfer'.
  3. The Party Type, Party, Party Name will be fetched automatically.
  4. The Account Paid To and Account Paid From will be fetched as set in the Company form.
  5. The Amount Paid will be fetched from the Invoice.
  6. Save and Submit.
Payment Entry from SO

2.1 Creating a Payment Manually

A Payment Entry created manually will have no order/invoice linked to it. Payments made this will be recorded in the Customer's/Supplier's account and can be reconciled later using the Payment Reconciliation Tool.

Go to the Payment Entry list and click on New.

Select the Party Type and the respective Customer/Supplier.

Select the Bank Account/Cash Account Paid To and Paid From. Enter the Cheque Number and date if bank transfer.

Enter the Amount Paid.

Save and Submit.

Features

3.1 Setting Mode of Payment

Mode of Payment: Entering this helps classify Payment Entries based on the payment mode used. Modes of Payment can be Bank, Cash, Wire Transfer, etc.

Tip: In the Mode of Payment master, default Account can be set. This default payment Account will be fetched into Payment Entries.

3.2 Payment From/To

Payment Party
  • Party Type: Whether Customer, Supplier, Employee, Shareholder, Student, or NGO Member.
  • Party: The specific party for which the Payment Entry is made.
  • Party Name: The name of the party, this is fetched automatically.
  • Company Bank Account: Your Company's Bank Account.
  • Party Bank Account: The Party's Bank Account.
  • Contact: If the Party is an organization, a Contact person can be stored here.

3.3 Accounts

Payment Accounts
  • Party Balance: The overall amount receivable or payable from Customer or Supplier from Invoices set in the current Payment Entry. Paid amounts will be positive and if advance payments are made, they will be negative.
  • Account Paid From: The Account from which the amount will be deducted when Payment is submitted.
  • Account Paid To: The CoA account from which the amount will be added when Payment Entry is submitted.
  • Account Currency: The Currencies of these accounts will be fetched as set in the Account and cannot be edited here. To know about more about transactions in multiple currencies, visit this page.
  • Account Balance: The total amount balance from all the invoices of the selected accounts.

Paid Amount: The total amount paid for the current Payment Entry is shown in this field.

Note: When making Payment Entries, the default bank account will be fetched in the following order if set:

  • Company form
  • Mode of Payment default account
  • Customer/Supplier default bank account
  • Select manually in Payment Entry

3.4 Reference

Fetching outstanding Invoices

This can be used to make payments to multiple Sales Invoices using one Payment Entry. When creating a new Payment Entry, on clicking the Get Outstanding Invoices button or the Get Outstanding Orders button, all the outstanding Invoices and open Orders respectively will be fetched for the party. You need to enter the 'Paid Amount' to see this button. From here a date range and invoices to be fetched can be selected.

If the Party has not made full payment, enter the amount paid in the 'Allocated' field.

If creating Payment Entry for a Customer, the Payment Amount will be allocated against a Sales Invoice. On the same lines, when creating Payment Entry for a Supplier, Payment Amount will be allocated against a Purchase Invoice.

Payment References table

  • Type: Whether the payment is being made against a Sales Order, Sales Invoice, or a Journal Entry.
  • Name: The particular transaction ID is fetched/selected here.
  • Total Amount: The total amount of one Invoice/Journal Entry in the row.
  • Outstanding: The amount to receive/to pay for this invoice.
  • Allocated: If the Paid Amount is less than the invoice amount only the paid amount will be allocated to the invoice(s) fetched in the Payment Entry. The payment may be made in parts, for example, if there are three invoices of amounts 20, 20, 20, the Paid Amount is 60 then this Paid Amount will be distributed equally. Payment Terms may also be involved.

payment_entry_get_outstanding_buttons

What is Unallocated Amount?

When a Payment Entry is made in ERPNext and the Paid Amount is more than the total invoice amount, it is stored in the Customer's/Supplier's account. This amount is hence currently 'Unallocated'. Unallocated amount can be used against future invoices.

For example, you create a Sales Invoice totaling 1,000 and the Customer paid 1,500. When another invoice is created for this Customer in the future for 1,000 again, the previously paid 500 can be used.

3.5 Deductions or Loss

When a Payment Entry is created against an invoice, there could be some difference in the actual Paid Amount and the invoice outstanding amount. This difference could be due to rounding errors or changes in the currency exchange rate. You can set an Account here where this difference amount will be booked.

The loss/deductions can be written off. Let's see an example here where the paid amount is 25 but the allocated amount is 30 since 30 is the amount to be collected as per the invoice. The 'Difference Amount' will be 5 in this case. This difference amount can occur due to discounts or Currency Exchange. The Difference Amount needs to be 0 in order to submit the Payment Entry. This can be adjusted using the Make Difference Entry button. The amount will be adjusted in the Write Off account.

Writing Off

3.6 Write Off

Write off happens when the paid amount is less than the allocated amount. I.e. the remaining amount is considered as lost in miscellaneous charges or that amount isn't going to be paid. This is considered as loss.

3.5 After Submitting

Save and Submit Payment Entry. On submission, outstanding will be updated in the Invoices.

Invoice Status Updated To Paid

If payment entry was created against Sales Order or Purchase Order, the field 'Advance Paid' will be updated in them. When creating Invoice against those transactions, Payment Entry will be auto-updated in that Invoice so that you can allocate invoice amount against advance payment entry.

For incoming payment, the accounts posting will be done as follows.

  • Debit: Bank or Cash Account
  • Credit: Customer (Debtor)

For outgoing payment:

  • Debit: Supplier (Creditor)
  • Credit: Bank or Cash Account
  1. Other cases

4.1 Multi Currency Payment Entry

If you want to maintain a receivable/payable account in foreign currency, then create accounts with foreign currency (different from Company currency) and link it in the party account. For example:

Non-standard Currency in Receivable in Customer

ERPNext allows you maintain accounts and invoicing in multiple currency. If an invoice is made in the party currency, Currency Exchange Rate between the Company's base currency and party currency is also entered in the invoice.

Note: A separate Debtor/Creditor account needs to be created and selected in the Sales Invoice/Order for currency exchange to work correctly. For example, if the Customer is from the US, create a receivable account called 'Debtors US'.

When creating Payment Entry against that invoice, the current exchange rate will be fetched, but you can set the Currency Exchange Rate at the time of payment to match your records.

Click on the Set Exchange Gain/Loss button to automatically add a row to write off the difference amount.

Exchange Rate in Payment Entry

Since Currency Exchange Rate fluctuates all the time, it can lead to a difference in the payment amount against invoice total. This difference amount can be booked in the Currency Exchange Gain/Loss Amount.

Exchange Gain Loss Ledger

Payments can also be made independent of invoices by creating a new Payment Entry.

To know more about managing transactions in multiple currencies visit this page.

4.2 Internal Transfer

Internal Transfer is used in cases where the money is transferred between the same Company's accounts. For example, if a customer from the US using PayPal, transferring money from PayPal to a bank account can be considered as Internal Transfer.

Following internal transfers can be managed from the Payment Entry.

  1. Bank - Cash
  2. Bank - Bank
  3. Cash - Cash
  4. Cash - Bank

Internal Transfer via Payment Entry

4.3 Managing Different Payment Scenarios

For an unpaid invoice, outstanding amount = grand total. When creating Payment Entries, the value in the outstanding amount will reduce.

In most cases, apart from retail sales, billing and payments are separate activities. There are several combinations in which these payments are done. These cases apply to both Sales and Purchases.

  • They can be upfront (100% in advance).
  • Post shipment. Either on delivery or within a few days of delivery.
  • Part in advance and part on or post delivery.
  • Payments can be made together for a bunch of invoices.
  • Advances can be given together for a bunch of invoices (and can be split across invoices).

ERPNext allows you to manage all these scenarios. All accounting entries (GL Entry) can be made against a Sales Invoice, Purchase Invoice or Payment Entry of advance payment (in special cases, an invoice can be made via a Sales Invoice too).

The total outstanding amount against an invoice is the sum of all the accounting entries that are made “against” (or are linked to) that invoice. This way you can combine or split payments in Payment Entry to manage the scenarios.

4.4 Difference between Payment Entry and Journal Entry

Using Journal Entry requires an understanding of which Account will get Debited or Credited. In the Payment Entry, it is managed in the backend, hence simpler for the User.

Payment Entry is more efficient in managing payments in foreign currencies.

Cheques can be printed from Payment Entries using the Cheque Print Format.

Journal Entry can still be used for:

  • Updating opening balance in Accounts.
  • Fixed Asset Depreciation entry.
  • For adjusting Credit Note against Sales Invoice and Debit Note against Purchase Invoice, in case there is no payment happening at all.

Related Topics

  1. Payment Request
  2. Payment Terms
  3. Sales Invoice
  4. Purchase Invoice

Payment Entry for Capital Account

https://docs.frappe.io/erpnext/payment-entry-for-capital-account

Question:

How to create a Payment Entry where a shareholder is investing capital. The amount should get added in the company's Bank Account.

Answer:

You can create a Payment Entry for a Shareholder as well. Once you have added a Shareholder in ERPNext, you can select them in the Payment Entry on these lines.

The only thing you will have to check with your CA would be Account Paid From. If you create this Entry from Payment Entry, which is designed to receive payment based on accruals, you will have to define a Debtor or Creditor account for selection in Account Paid From field.

Payment Entry via Journal Entry

If this doesn't help, you can very much create a Journal Entry to manage this scenario. A simple Journal Entry would be: Cr. Shareholder's account................ XXXDr. Bank account ............................. XXX
In the Journal Entry as well, you use the fields like Reference No. and Date for tracking cheque details of the customer.

Payment Order

https://docs.frappe.io/erpnext/payment-order

A Payment Order is an internal document to record bulk payments against Suppliers.

In big corporations, the decision of making payment to Suppliers is done by someone like the Purchase Manager. The action of making the payments is done by an Accountant (Accounts User).

The Payment Order is the communication between the Purchase Manager and the Account notifying the Accountant to proceed with the Payment.

In ERPNext, using the Payment Order, you can fetch multiple Payment Requests created against a Supplier.

1. Prerequisites

Before creating and using the Payment Order, it is advisable to create the following first:

  1. Purchase Order

Or

  1. Purchase Invoice

2. How to create a Payment Order

  1. Go to the Payment Order list and click on New.
  2. Select the Company bank account.
  3. Click on the Get from button and select Payment Request. Apply filters if needed and select the Payment Requests.
  4. The Payment Requests will be fetched into the Payment Order.
  5. Save and Submit the Payment Order. Now, you'll see a button to make the Payment Entries in bulk.
Payment Order FetchPayment Order FetchPayment Order Fetch

Payment Reconciliation

https://docs.frappe.io/erpnext/payment-reconciliation

Payment Reconciliation is used to link payments with invoices.

In complex scenarios, especially in the capital goods industry, sometimes there is no direct link between payments and invoices. For example, suppose a party is a customer, you send invoices to a customer and the customer sends you block payments or payments based on some schedule that is not linked to your invoices.

In such cases, you can match Payments with Invoices using Payment Reconciliation.

To access Payment Reconciliation, go to:

Home > Accounting > Accounts Receivable > Payment Reconciliation

  1. How to Match Payments with Invoices
  1. Go to Payment Reconciliation.
  2. Select a Company.
  3. Select a Party Type and select the Party. The Receivable/Payable account will be selected automatically.
  4. Select the Bank/Cash account against which the payments need to be reconciled.
  5. If you want to filter the records, select a date range for the invoices or set minimum or maximum amount for invoices as well as payment transactions
  6. Click on the Get Unreconciled Entries button.
  7. This will fetch all un-linked invoices and payment transactions from that party in Invoices and Payments table resp.
  8. You can either select any particular entries to be allocated or can click on Allocate button without selecting anything to allocate all the entries.
  9. Allocation table will be populated based on FIFO or/and selection.
  10. Allocated Amount is the amount you want to allocate for the reconciliation.
  11. Click on Reconcile to reconcile allocated entries. You will get a message that says 'Successfully Reconciled'.

Payment Reconciliation Tool
  1. What happens on Payment Reconciliation

If the invoices are reconciled against:

  1. Payment Entry - A journal entry is not auto-created when reconciliation happens against a payment entry. This is because payment entries are associated with linked transactions.
  2. Credit/Debit Note - A journal entry is auto-created to allocate a credit/debit note to an invoice that is being reconciled. This automatic creation of a journal entry is necessary since credit/debit notes do not have linked transactions. The journal entry resulting from the reconciliation indicates the adjustment of a particular credit/debit note with a specific invoice.
  1. Payment Request
  2. Sales Invoice
  3. Purchase Invoice
  4. Semi-Auto Payment Reconciliation

Payment Request

https://docs.frappe.io/erpnext/payment-request

A Payment Request is used to request payment from a Customer for a Sales Order or Invoice.

Payment Request is sent via email and will contain a link to a Payment Gateway if set up. You can create a payment request via a Sales Order or a Sales Invoice. A Payment Request can also be set up against a Purchase Order or a Purchase Invoice for internal records. Then, payments can be processed in bulk using a Payment Order.

To access Payment Request go to:

Home > Accounting > Accounts Receivable > Payment Request

1 Prerequisites

Before creating and using Payment Request, it is advisable to create the following first:

  1. Sales Invoice
  2. Purchase Invoice
  3. Sales Order
  4. Purchase Order

2 How to create a Payment Request

A Payment Request cannot be created manually, it is created from a Sales/Purchase Order or Invoice.

2.1 Creating Payment Request via Sales Order

In a Sales Order, click on Create and then click on Payment to make an advance payment. To know more about advance payment, visit the Advance Payment Entry page.

Payment Request From Sales Order

2.2 Creating Payment Request via Sales Invoice

In a Sales Invoice, click on Create and then click on Payment to make payment against the invoice.

Payment Request From Sales Invoice

Select appropriate Payment Gateway Account on Payment Request for accounts posting. Account head specified on payment gateway will be considered to create a Journal Entry.

Note: Invoice/Order currency and 'Payment Gateway Account' currency should be the same.

Payment Request Details

2.3 Notifying the Customer

You can notify customer from Payment Request using Print Format. If the customer contact email is set, it will be fetched automatically. If not so you can set an email address in Payment Request.

Payment Request Details

2.4 Request Mail

Here is an example request email. The URL is generated automatically if you've set up the respective payment integration. To know more about integrations, visit this page.

Payment Request

2.5 Payment Request without using any Gateway

In case you don't want to use any integration or payment gateway and only want to send a notification, simply set the Bank Account. You'll have to compose the message accordingly with bank details. The party can then transfer the amount to the mentioned bank account.

Payment Terms

https://docs.frappe.io/erpnext/payment-terms

A Payment Term helps to set a schedule according to which payments will be made.

A Payment Term defines a specific payment slab. For example, 50% payment on shipping and 50% on delivery of the item. You can save your business's payment terms on ERPNext and include them in all documents in the sales/purchase cycle. ERPNext will make all the General Ledger entries accordingly.

In ERPNext, the Payment Terms form only defines portion percentages. The actual payment schedule can easily be applied using the Payment Terms Template.

You can use Payment Terms in the following documents:

  • Sales Invoice
  • Purchase Invoice
  • Sales Order
  • Purchase Order
  • Quotation

To access Payment Term go to:

Home > Accounting > Accounting Masters > Payment Term

Payment Terms

1. How to create a Payment Term

  1. Go to the Payment Term list and click on New.
  2. Enter a name for the Payment Term (eg: 50% post-shipment).
  3. Enter the Invoice portion. If you enter 50, the portion will be 50 percent of the Invoice amount.
  4. Select a Due Date type.
  5. Under Credit Days enter the number of days after which the remaining amount has to be paid.
  6. Save.

The fields are explained as follows:

  • Payment Term Name: The name for this Payment Term.
  • Due Date Based On: The basis by which the due date for the Payment Term is to be calculated. This is calculated X number of days from the posting date of the invoice/order. There are three options:
  • Day(s) after invoice date: Due date should be calculated in days concerning the posting date of the invoice. For example, if 7 is entered on date 20th, the due date will be 27.
  • Day(s) after the end of the invoice month: Due date should be calculated in days concerning the last day of the month in which the invoice was created. For example, if 7 is entered in the current month and the last day of the month is 30th, the due date will be the 7th of the next month.
  • Month(s) after the end of the invoice month: Due date should be calculated in months concerning the last day of the month in which the invoice was created. For example, if 3 is entered on the 20th of January, the due date will be on 20th March.
  • Invoice Portion: The portion of the total invoice amount for which this Payment Term should be applied. The value given will be regarded as percentage i.e 50 = 50% of the invoice/orders Grand Total
  • Credit Days (optional): The number of days or month credit is allowed depending on the option chosen in the Due Date Based On the field. 0 means no credit allowed.
  • Description: (optional) A brief description of the Payment Term.

1.1 Setting up Discount on Early Payments

You can set up a discounted payment terms such that if payment is done within the specified period then some amount/percentage of the invoice value will be discounted. The following fields define the discount configuration:

  • Discount Type: Default is Percentage. You can also change it to Amount.
  • Discount: In terms of Percentage or Amount (eg. 10% or ₹ 5,000).
  • Discount Validity Based On: This field acts similar to the Due Date Based On the field in the previous section.
  • Discount Validity: The number of days or months the discount is valid with respect to the invoice date (eg. 10 days after the invoice date).

Payment Terms with Discount

You can now link the Payment Terms with an Invoice and on creating the payment against such invoice, the discount will be applied automatically.

Note: This discount is only applied on a Payment Entry that is made from an individual invoice. Independently made Payment Entries, where invoice references are fetched, will not have any early payment discount applied.

1.2 Payment Terms in Converted Documents

When converting or copying documents in the sales/purchase cycle, the attached Payment Term(s) will be copied. When creating a Sales Order from a Quotation, the Due Date in the Payment Terms will be according to the Quotation, this needs to be updated.

For ease of use, you can also set a Payment Terms Template and simply reselect it.

1.3 Adding Payment Terms To Documents

Once you have composed the Payment Terms Template, you can use them in sales and purchase transactions. Based on the value defined for Payment Terms and transaction value, the payment schedule will be defined, with a Due Date for each payment slab.

Payment Schedule

Note: The Payment Schedule can be shown in the Print View using the Print Format Builder.

  1. Sales Invoice
  2. Purchase Invoice

Payment Terms Template

https://docs.frappe.io/erpnext/payment-terms-template

Payment Terms Template allow you to club multiple payment terms together and fetch in transactions.

After creation, the Payment Terms Table can be set to a specific Customer/Supplier. On selecting the Customer/Supplier in a transaction, the Payment Terms Template will be fetched automatically into the transaction.

For example:

If you receive payment in the slab of 30-70, then you can define Payment Term for each slab, i.e. 30% and 70%.

In the Payment Terms Template, you can select all the Payment Terms and define a template which can be easily applied in the sales and purchase transactions.

Payment Terms Template
  1. Prerequisites

Before creating and using Payment Request, it is advisable to create the following first:

Payment Terms

How to create a Payment Terms Template

A Payment Terms Template tells ERPNext how to populate the table in the 'Payment Terms Schedule' section of the sales/purchase document.

You should use it if you have a set of standard Payment Terms or for ease of use.

Go to the Payment Term Template list and click on New.

Enter a name for the template.

Add the created Payment Terms in the table rows.

Make sure that the total Invoice Portion adds up to 100.

Save.

Video

If 'Allocate Payment Based On Payment Terms' is enabled on a template, Payments made against the Invoice through Create->Payment will have allocation based on the Terms.

  1. Template with 'Allocate Payment Based on Payment Terms' enabled.
  2. Invoice made with above template.
  3. Payment created against above invoice.
Screenshot 2023-08-01 at 10.30.32 AMScreenshot 2023-08-01 at 10.32.01 AMScreenshot 2023-08-01 at 10.32.31 AM

Payment Ledger

https://docs.frappe.io/erpnext/payment_ledger

A Separate Ledger that only records transactions on Receivable and Payable accounts. Account type should be set to or for transactions to be recorded in Payment Ledger.

ReceivablePayable

Ex:

A Sales Invoice of ₹1000 and a Payment Entry against that invoice will look like below.

Screenshot 2022 05 18 at 11.13.28 AM

Usage

Reports

Accounts Receivable, Account Receivable Summary, Account Payable and Account Payable Summary uses Payment Ledger as its source.

Tools

Payment Reconciliation and its extension Semi-Auto Payment Reconciliation tools uses Payment Ledger to calculate outstanding Invoices. Reconciliation process only updates Payment Ledger.

Payment Terms Status Report

https://docs.frappe.io/erpnext/payment_terms_status_report

Payment Terms Status Report

Report to calculate status of Payment Terms based on the invoices created against that Sales Order. Invoice amount is split into the respective payment terms at runtime using FIFO method.

Example:

Consider a Sales Order with total value of 7000₹ and a payment terms of 50-50.

If a Sales Invoice is made against that SO for 4900₹.

Then, the report will split the invoice amount into payment terms in FIFO method and display the statuses as 'Completed' for the first 50% and 'Partly Paid' for the second 50%.

Setting up PayPal

https://docs.frappe.io/erpnext/paypal-integration

A payment gateway is an e-commerce application service provider service that authorizes credit card payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar.

A payment gateway facilitates the transfer of information between a payment portal (such as a website, mobile phone or interactive voice response service) and the Front End Processor or acquiring bank.

To setup PayPal ,

Explore > Integrations > PayPal Settings

Setup PayPal

To enable PayPal payment service, you need to configure parameters like API Username, API Password and Signature.

PayPal Settings

You also can set test payment environment, by settings

Use Sandbox

On enabling service, the system will create Payment Gateway record and Account head in chart of accounts having account type as Bank.

PayPal COA

Also it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template.

Payment Gateway Account

After enabling service and configuring Payment Gateway Account your system is able to accept online payments.

####Supporting transaction currencies AUD, BRL, CAD, CZK, DKK, EUR, HKD, HUF, ILS, JPY, MYR, MXN, TWD, NZD, NOK, PHP, PLN, GBP, RUB, SGD, SEK, CHF, THB, TRY, USD

##Get PayPal credentials

Paypal Sanbox API Signature

Login to paypal developer account, PayPal Developer Account

From Accounts tab. create a new business account.

Payment Request

From this account profile you will get your sandbox api credentials

Payment Request

PayPal Account API Signature

Login to PayPal Account and go to profile

Payment Request

From My Selling Tools go to api Access

Payment Request

On API Access Page, choose option 2 to generate API credentials

Payment Request

Paytm Integration

https://docs.frappe.io/erpnext/paytm-integration

Paytm integration allows processing transactions with the payment gateway provider Paytm.

Paytm Integration facilitates processing of payments between Paytm payment portal and ERPNext. Your customers can choose to pay from any credit/debit card, UPI, Netbanking, Paytm Wallet.

To set up Paytm, go to:

Integrations > Payments > Paytm Settings

1.How to get your Paytm API credentials?

  1. In order to activate your API credentials, you need to log in to your Paytm account.
  2. Then, open the Developer Settings option in the sidebar.
  3. Choose API Keys option, it should display a two types of API details (Test/Production).
  4. Details mentioned in the Production API details are the credentials that you are supposed to use in Paytm Settings.

Razorpay Settings

2.Setting up Paytm

To enable Paytm payment service, you need to configure all the mandatory parameters which you received from the Paytm. If you want to use staging environment of the integration, you can select the staging option and use the test API developer credentials provided by Paytm.

Razorpay Settings

On enabling the Paytm integration in ERPNext, the system will create a Payment Gateway record and an Account Head in Chart of Account with the Account type as Bank as seen in the following screenshot.

Stripe COA

Also, it will create a Payment Gateway Account entry. Payment Gateway Account is the configuration hub from where you can set Account Heads and the default Payment Request email template for requesting payments from customers.

Payment Gateway Account

After configuring Payment Gateway Account, you will be able to accept online payments via Paytm.

3.Supporting transaction currencies

Paytm will only work for the Company which has INR (Indian Rupee) as Company Currency.

Period Closing Voucher

https://docs.frappe.io/erpnext/period-closing-voucher

A Period Closing Voucher indicates that the profit/loss for an accounting period has been balanced and the books can start fresh.

At the end of every year or (quarterly or maybe even monthly), after completing auditing, you can close your books of accounts. This means that you make all your special entries like:

  • Depreciation
  • Change in value of Assets
  • Defer taxes and liabilities
  • Update bad debts

Then book your Profit or Loss.

By doing this, your balance in your Income and Expense Accounts becomes zero. You start a new Fiscal Year (or period) with a balanced Balance Sheet and fresh Profit and Loss account. In ERPNext after making all the special entries via Journal Entry for the current fiscal year, you should set all your Income and Expense accounts to zero via a Period Closing Voucher.

To access the Period Closing Voucher list, go to:

Home > Accounting > Opening and Closing > Period Closing Voucher

1. How to create a Period Closing Voucher

  1. Go to the Period Closing Voucher list and click on New.
  2. Set a posting date.
  3. Select the account, usually this is the 'Reserves and Surplus' account.
  4. Enter any remarks.
  5. Save and Submit.

1.2 The fields explained

  • Transaction Date will be Period Closing Voucher's creation date.
  • Posting Date will be when this entry should be executed. If your Fiscal Year ends on 31st December, then that date should be selected as Posting Date in the Period Closing Voucher.
  • Closing Fiscal Year will be an year for which you are closing your financial statement.
  • Book Cost Center Wise Profit/Loss will book closing entries as per cost center of income & expense accounting entries

1.3 What happens on submitting?

The Period Closing Voucher will make accounting entries (GL Entry). This will make all your Income and Expense Accounts zero and transfer Profit/Loss balance to the Closing Account.

You should select a liability account like Reserves and Surplus, or Any Revenue Reserve account or into Owners Capital account as Closing Account.

Period Closing Voucher ledger

If Book Cost Center Wise Profit/Loss is enabled, the net profit & loss will be booked according to the individual transaction's cost center. Below is the closing entry made for two sales transaction having different cost center.

Cost Center-wise Period Closing Voucher

Note: If accounting entries are made in a closing Fiscal Year, even after Period Closing Voucher was created for that Fiscal Year, you should create another Period Closing Voucher. Later voucher will only transfer the pending P&L balance into Closing Account Head.

  1. Fiscal Year
  2. Tax Withholding Category
  3. Accounting Period

Periodic Inventory

https://docs.frappe.io/erpnext/periodic-inventory

If you enable Perpetual Inventory in the Company master, the system will automatically create the GL entries for stock transactions. However, if Perpetual Inventory is disabled for your company, you will need to manually create periodic accounting entries.

To make a periodic accounting entry, you must create a Journal Entry manually. For the calculations, you need to compare the closing balance in the Stock Balance Report with the Trial Balance report for stock asset accounts. This process takes time, as it requires verifying and matching the differences in closing balances.

To address this in Version 16, we introduced a new Journal Entry type called 'Periodic Accounting Entry'. With this, users don’t need to perform manual calculations. The system will automatically fetch the difference in balance when the user clicks the 'Get Balance' button.

Perm Level Error

https://docs.frappe.io/erpnext/perm-level-error-in-permission-manager

While customizing rules in the Permission Manager, you might receive an error message saying:

For System Manager (or any other role) at level 2 (or another level) in Customer (or any other document) in row 8: Permission at level 0 must be set before higher levels are set.

Error message indicates problem is in the existing permission setting for this document.

For any role, before assigning permission at Perm Level 1 or 2 (and so on), permission at Perm Level 0 must be assigned. Error message says that System Manager has been assigned permission at Perm Level 1 and 2, but not at level 0. You should first correct the permission for System Manager's role by:

  • Assigning permission to System Manager at level 0.

Or

  • By removing permission at level 1 and 2.

After executing one of the above steps, you should be able to successfully add new permissions rules in the Role Permission Manager.

Role Based Permissions

https://docs.frappe.io/erpnext/permissions

Permission to different documents can be controlled using Role Based Permissions.

ERPNext has a role-based permission system. It means that you can assign Roles to Users, and Permissions can be set on Roles. The Role Permissions Manager allows you to set which roles can access which documents and with what permissions (read, write, submit, etc.).

Once roles are assigned to a user, their access can be limited to specific documents. The permission structure allows you to define different permission rules for different fields using a concept called Permission Level of a field.

  1. How to use the Role Permissions Manager

To start using the Role Permission Manager, go to: > Home > Users and Permissions > Role Permissions Manager

Manage Read, Write, Create, Submit, Amend access using the Role Permissions Manager

Permissions are applied on a combination of:

  • Roles: As we saw earlier, Users are assigned Roles and it is on these Roles that permission rules are applied. For example, a sales user may be given the roles of an Employee and a Sales User.

Examples of Roles include Accounts Manager, Employee, HR User, etc.

  • Document Types: Each type of document, master or transaction, has a separate list of role-based permissions as seen in the preceding screenshot.

Examples of Document Types are Sales Invoice, Leave Application, Stock Entry, etc.

  • Permission Levels: In each document, you can group fields by "levels". Each group of fields is denoted by a unique number (0 to 9). A separate set of permission rules can be applied to each field group. By default, all fields are of level 0.

Permission "Level" connects fields with level X to a permission rule with level X. To know more click here.

  • Document Stages: Permissions are applied on each stage of the document like Creation, Saving, Submission, Cancellation, and Amendment. A role can be permitted to Print, Email, Import or Export data, access Reports, or define User Permissions.
  • User Permissions: Using User Permissions in ERPNext a user can be restricted to access only specific Documents for that Document Type. Eg: Only one Territory from all Territories. User Permissions defined for other Document Types also get applied if they are related to the current Document Type through Link Fields.

For example, a Customer is a link field in a Sales Order or Quotation. In the Role Permissions Manager, User Permissions can be set using the 'Set User Permissions' button.

To set User Permissions based on documents/fields go to: > Home > Users and Permissions > Permissions > User Permissions

  • Add a New Rule: In the Role Permissions Manager, to add a new rule, click on the Add a New Rule button and a pop-up box will ask you to select a Role and a Permission Level. Once you select this and click on 'Add', this will add a new row to your rules table.
  1. How Role Based Permissions Work

Leave Application is a good example that encompasses all areas of a Permission System.

  • It should be created by an Employee. For this, Employee Role should be given Read, Write, Create permissions.

Giving Read, Write and Create Permissions to Employee for Leave Application
  • An *

Employee* should only be able to access his/her Leave Application. Hence, User Permissions record should be created for each User-Employee combination.

Limiting access to Leave Applications for a user with Employee Role via User Permissions Manager
  • If you want an *

Employee* to only select a document in another document and not have read access to that document as a whole, then grant only Select perm to the role, Employee.

Limiting access to Leave Applications for a user with Employee Role via User Permissions Manager

HR Manager* should be able to see all Leave Applications. Create a Permission Rule for HR Manager at Level 0, with Read permissions. Apply User Permissions should be disabled.

Giving Submit and Cancel permissions to HR Manager for Leave Applications. 'Apply User Permissions' is unchecked to give full access.

Leave Approver* should be able to see and update Leave Applications of employees under him/her. Leave Approver is given Read and Write access at Level 0. Relevant Employee Documents should be enlisted in the User Permissions of Leave Approvers. (This effort is reduced for Leave Approvers mentioned in Employee Documents, by programmatically creating User Permission records).

Giving Read, Write and Submit permissions to Leave Approver for Leave Applications.'Apply User Permissions' is checked to limit access based on Employee.
  • It should be Approved/Rejected only by HR User or Leave Approver. The Status field of a Leave Application is set at Level 1. HR User and Leave Approver are given Read and Write permissions for Level 0, while everyone else (All) are given Read permission for Level 1.

*

Limiting read access for a set of fields to certain Roles

HR User should be able to delegate Leave Applications to his/her subordinates. HR User is given the right to Set User Permissions. A User with HR User role would be able to define User Permissions on Leave Application for other users.

Let HR User delegate access to Leave Applications by checking 'Set User Permissions'. This will allow HR User to access User Permissions Manager for 'Leave Application'

In case you have correctly assigned the roles but still you're getting errors when accessing documents, refer this page.

3. Permission Type

In the Role Permission Manager, multiple permissions can be enabled for each Role. Below are the details of the available permission options and their usage.

Screenshot 2025 12 19 at 5.15.56 PM
Permission Description Example
Select Allows the user to search and see records. The user can select a Customer in Sales Order but cannot open the Customer master.
Read Allows the user to view the document. The user can view Sales Invoices but cannot change them.
Write Allows the user to edit existing records they have access to. The user can update a Customer address but cannot create a new Customer.
Create Allows the user to create new documents. The user can create a new Item but cannot edit existing items.
Delete Allows the user to delete documents. The user can delete submitted documents.
Print Allows printing or PDF download of documents. The print button is enabled for the user in the document.
Email Allows the user to email from the document. The email button is enabled for the user in the document.
Report Allows the user to access reports related to the document. If the user has access to Employee and Report is enabled, they can view Employee-based reports.
Export Allows the user to export data from the Report view. The user can export report data.
Import Allows the user to import data into the document. The user can import data for the document.
Share Allows sharing document access with other users. The user can share document access with another user.
Mask (Data Masking) In ERPNext Version 16, Data Masking allows configuration of specific fields to display masked or hidden values based on the user's roles and permissions, without restricting field visibility. Ensures sensitive information remains protected while keeping the user interface consistent and informative.

Perpetual Inventory

https://docs.frappe.io/erpnext/perpetual-inventory

As per the perpetual inventory system, accounting entry is done for every stock transaction. Otherwise, it's done in larger intervals for example monthly or quarterly. Each warehouse is linked with a corresponding account head.

On receipt of items in a particular warehouse, the balance in the Warehouse Account will increase. Similarly, when items are delivered from the Warehouse, an expense will be booked, and the balance in the Warehouse Account will reduce.

In a new ERPNext site, Perpetual Accounting is enabled by default.

1. Activate perpetual inventory

  1. Go to: Home > Accounting > Company > Enable Perpetual Inventory* Perpetual Inventory
    Note that if you disable perpetual inventory, users will have to create manual entry to update actual stock balance in the Stock in hand account (or ledger).
  2. Set up the following default accounts for each Company if not set. These accounts are created automatically in the new ERPNext accounts. Default Inventory Account (Asset)
    Stock Received But Not Billed (Liability)
    Stock Adjustment Account (Expense)
    Expenses Included In Valuation (Expense)
    Cost Center
  3. If the user wants to set an individual account for each warehouse, create account head for each account. Go to: Accounts > Chart of Accounts > Company > Application of Funds (Assets) > Current Asset > Stock Assets > Create a new account with same name as Warehouse* Now, go to a warehouse and link this account to the warehouse. This helps in filtering and viewing statements warehouse-wise.
  4. For stock transactions, general ledger entries made against the Account Head set on the warehouse, if the user had not set the account for the warehouse then the system gets the account head from the parent warehouse. If Account was not set for parent warehouse then the system gets the account(Default Inventory Account) from the company master.

2. Example

Consider the following Chart of Accounts and Warehouse setup for your company:

Chart of Accounts:

  • Assets (Dr)
  • Liabilities (Cr)
  • Direct Income
  • Expenses (Dr)
  • Indirect Expenses
  • Current Assets
  • Stock Assets
  • Tax Assets
  • Accounts Receivable
  • Debtors
  • Stores
  • Finished Goods
  • Work In Progress
  • VAT
  • Current Liabilities
  • Stock Liabilities
  • Tax Liabilities
  • Service Tax
  • Accounts Payable
  • Creditors
  • Stock Received But Not Billed
  • Income (Cr)
  • Sales Account
  • Direct Expenses
  • Stock Expenses
  • Cost of Goods Sold
  • Expenses Included In Valuation
  • Stock Adjustment
  • Shipping Charges
  • Customs Duty

2.1 Warehouse - Account Configuration

  • Stores
  • Work In Progress
  • Finished Goods

2.2 Purchase Receipt

Suppose you have purchased 10 nos of item "RM0001" at $200 from supplier "Arcu Vel Quam Fabricators". Following are the details of Purchase Receipt:

Supplier: Arcu Vel Quam Fabricators

Items:

Item Warehouse Qty Rate Amount Valuation Amount
RM0001 Stores 10 200 2000 2250

Taxes:

Account Amount Category
Shipping Charges 100 Total and Valuation
VAT (10%) 200 Total
Customs Duty 150 Valuation

Stock Ledger

Perpetual Inventory

General Ledger

Perpetual Inventory

As stock balance increases through Purchase Receipt, "Store" accounts are debited and a temporary account "Stock Receipt But Not Billed" account is credited, to maintain double-entry accounting system. At the same time, the negative expense is booked in account head having category as "Valuation" or "Total and Valuation" in taxes and charges table for the amount added for valuation purpose, to avoid double expense booking.

2.3 Purchase Invoice

On receiving Bill from supplier, for the above Purchase Receipt, you will make Purchase Invoice for the same. The general ledger entries are as follows:

General Ledger

Perpetual Inventory

Here "Stock Received But Not Billed" account is debited and nullified the
effect of Purchase Receipt.

2.4 Delivery Note

Let's say, you have an order from "Utah Automation Services" to deliver 5 qty of item "RM0001" at $300. Following are the details of Delivery Note:

Customer: Utah Automation Services

Items:

Item Warehouse Qty Rate Amount
RM0001 Stores 5 300 1500

Taxes:

Account Amount
Service Tax 150
VAT 100

Stock Ledger

Perpetual Inventory

General Ledger

Perpetual Inventory

As an item is delivered from "Stores" warehouse, "Stores" account is credited and
an equal amount is debited to the expense account "Cost of Goods Sold". The
debit/credit amount is equal to the total valuation amount (buying cost) of
the selling items. And the valuation amount is calculated based on your preferred
valuation method (FIFO / Moving Average) or actual cost of serialized items.

In this example, we have considered the valuation method as FIFO.

Valuation Rate = Purchase Rate + Charges Included in Valuation = 200 + (250 / 10) = 225

Total Valuation Amount = 225 * 5 = 1,125

2.5 Sales Invoice with Update Stock

Let's say, you did not make Delivery Note against the above order and instead,
you have made Sales Invoice directly, with "Update Stock" options. The details
of the Sales Invoice are same as the above Delivery Note.

Stock Ledger

Perpetual Inventory

General Ledger

Perpetual Inventory

Here, apart from normal account entries for an invoice, "Stores" and "Cost of
Goods Sold" accounts are also affected based on the valuation amount.

2.6 Stock Entry (Material Receipt)

Items:

Item Target Warehouse Qty Rate Amount
RM0001 Stores 50 220 11000

Stock Ledger

Perpetual Inventory

General Ledger

Perpetual Inventory

2.7 Stock Entry (Material Issue)

Items:

Item Source Warehouse Qty Rate Amount
RM0001 Stores 10 220 2200

Stock Ledger

Perpetual Inventory

General Ledger

Perpetual Inventory

2.8 Stock Entry (Material Transfer)

Items:

Item Source Warehouse Target Warehouse Qty Rate Amount
RM0001 Stores Work In Progress 10 220 2200

Stock Ledger

Perpetual Inventory

General Ledger

Perpetual Inventory
  1. Accounting Of Inventory Stock
  2. Migrate to Perpetual Inventory

Perpetual Inventory for Non-stock Item

https://docs.frappe.io/erpnext/perpetual-inventory-for-non-stock-item

Question:

We have enabled Perpetual Inventory in the Company master. Still, in some Purchase Invoice, posting if done in the Expense Account.

Answer: As per the perpetual inventory, when item is a stock item, then only it's value is booked under Stock-in-hand at the time of Purchase. In this case, the posting in the GL Entry for Purchase Invoice will be as follows.

Account Debit Credit
Creditors 100
Stock Received but not Billed 90
Tax 10

Perpetual Inventory doesn't apply on the non-stock item, and expense is booked for them as soon as Purchase Invoice is submitted. The posting in General Ledger for in this scenario will look like:

Account Debit Credit
Creditors 100
COGS / Other Expense Account 90
Tax 10

Personal Data Deletion

https://docs.frappe.io/erpnext/personal-data-deletion

Personal data deletion tool enables a user to delete their account and anonymize all the personally identifiable data a user has generated while using ERPNext. That is, personally identifiable information will be randomized. This includes personally identifiable data from your user account like: username, full name, birth date, phone numbers, mobile numbers, location, interests, bio, email signature, Email, Contact, Address, Communication, etc. It also includes data from Leads and Opportunities, the details you have saved like phone numbers, mobile numbers, fax, website, and name.

However, this excludes data that is required by law to be maintained by a business.

How to request account deletion

  1. To begin deleting users account and personally identifiable data, you need to visit [host-name]/request-for-account-deletion (e.g. example.erpnext.com/request-for-account-deletion) in the URL field.
  2. Enter the email associated with your ERPNext account. After submitting your request, you will receive a success response.
  3. This will send an email with a verification link to delete data to the email address associated with the user.
  4. Once the user clicks on the verification link. A confirmation message will be displayed.

How deleting a user's personal data works

The request to delete data is recorded in the doctype "Personal Data Deletion Request".

Personal Data Download Request Doctype

This doctype maintains three states of status to complete the process of removal of user data.

Pending Verification

This status indicates that the user has requested data deletion via the web-form. However, verification of this request is still pending. Search for Personal Data Deletion Request from the search bar.

Pending Verification

Pending Approval

This indicates that the user has verified the request via email. This enables the option of "Delete Data" for System Managers.

Pending Approval

Deleted

This indicates that the System Manager has clicked on the "Delete Data" button. This means that the user's personally identifiable data has been anonymized.

Deleted User

Setting SLA for Personal Data Deletion Request.

You can also set an SLA for Personal Data Deletion Request through Website Settings. This will appear on the web form description.

  • Go to Website Settings
  • Scroll to the section called Account Deletion Settings
  • In the Account Deletion SLA (Days) field set the number of days within which users request for Account Deletion will be fulfilled.
  • If you enable Show Account Deletion link in My Account page, the form link will be visible to users on the My Account Page of the website

Account Deletion Settings

Personal Data Download

https://docs.frappe.io/erpnext/personal-data-download

Personal data download tool enables a user to automatically download all the personal data they have generated while using ERPNext. This includes personally identifiable data from your user account like: username, full name, birth date, phone numbers, mobile numbers, location, interests, bio, email signature, Email, Contact, Address, Communication, etc. It also includes data from Leads and Opportunities, the details you have saved like phone numbers, mobile numbers, fax, website, and name.

How to request a user data download

  1. To begin downloading data, the user has to log in and visit [host-name]/request-data (e.g. erpnext.com/request-data) in the URL field.
  2. After submitting your request, you will receive a success response.
  3. This will send an email with a download link of the data to the email address associated with the user.The file available for download will be in the JSON format.

Personal Data Download Request DocType

The request is also recorded in the DocType "Personal Data Download Request", the file link that is sent to the user via email is also attached to the doc. Search for Personal Data Download Request from the search bar.

Book Petty Cash Entry

https://docs.frappe.io/erpnext/petty-cash-entry-in-erpnext

Petty Cash is a small amount of cash on hand used for paying expenses like Travel, Telephone, etc, that are too small to merit writing a cheque. You can make such entries into ERPNext via Journal Entry.

To book petty cash expenses, follow the below steps:

  1. Create accounts under Chart of Accounts.

a) Cash Account

b) Expense Accounts (under Indirect Expenses)

NOTE: Most of these accounts will already be created. If you need to create a few more of your choice, you can do so. You can refer this link to know how to create the same.

  1. Create a Journal Entry (JV) of type Cash.

3) The default Cash account will be auto-populated in the row for the Credit side.You can change this account

  1. Add the Expense account in the table. You can also add multiple Expense accounts (eg. Telephone Expense, Travel Expense, etc.) as separate rows. Make sure the Debit and Credit side is balanced.

Additionally, you can also add Reference number, Date, Remarks for future reference.

Save and Submit.

You can view the Accounting Ledger from the Journal Entry Itself via the View button.

Pick List

https://docs.frappe.io/erpnext/pick-list

A Pick List is a document that indicates which items should be taken from your inventory to fulfill orders.

This is particularly useful for shippers with a large amount of inventory, volume of orders, or customers ordering many Stock Keeping Unit(SKU). Pick list selects Warehouse where an Item is available on FIFO (First-In-First-Out) basis. Selection of Warehouse for a batched item is different. In case of batched items, Warehouse where the batch is nearer to its expiry will be selected.

To access Pick List, go to:

Home > Stock > Stock Transactions > Pick List

  1. Prerequisites

Before creating and using a Pick List, it is advised that you create the following first:

  1. How to create Pick List

Go to the Pick List list, click on New.

Unsaved Pick List

Set the Company.

Select the Purpose of Pick List. These are the options under Purpose:

  • Delivery: This option will let you add Items from a Sales Order, to deliver. After submitting Pick List a new Delivery Note can be created based on the Warehouse from which items were picked.
  • Material Transfer for Manufacture: This will let you select a Work Order from which raw materials will be pulled for picking. You will be presented with an option to select the number of finished goods for which you want to pick raw materials. After picking the stock you can create Stock Entry for the picked items i.e., raw materials.
  • Material Transfer: This will let you select a Material Request for which you want to pick items. After picking the stock you can create a Stock Entry for the picked items.

Add Item and the quantity you want to pick in the Item Locations table. Click on Get Item Locations to get the Warehouse and other details for each Item.

Parent Warehouse: If a parent Warehouse is selected, Warehouses only under that parent Warehouse will be suggested.

Get Item Locations: Once items to be picked is finalized you can click on the Get Item Locations button to get Warehouse selection for each item. Since Warehouse will be automatically fetched if you get an Item from any reference document, this button can be useful to manually add additional Items or change the quantity of existing Items in the Item Locations table.

Item Locations: This will have the information of the item location (Warehouse), Serial Number for serialized items and batch no for batched items.

Item Locations

If Serial Numbers are involved, the Item row will look like this: 8. Save and Submit.

Item Location DetailSubmitted Pick List

2.1 Create Pick List from a Sales Order

  1. Go to a Sales Order.
  2. Click on the Create button on the top right of the form and then click the Pick List option.
  3. Once you click Pick List, all the data required for Pick List will be fetched from the Sales Order.
  4. Alternatively, you can create a new Pick List and click on "Get Items". This would show a popup of all pending Sales Orders.

  1. You should be able to see the Item Locations Table with the Warehouse selected for each item.
  2. Save this document and it can be used for stock picking by the person performing this activity.
  3. Submit the document once the stock picking is done and picked item quantities are updated in the document.

Note: > > - Pick list can only be created for Sales Orders which has '% picked' < 100 > - A Delivery Note can be created only if the Pick List is submitted.

2.2 Create Pick List from a Work Order

  1. Go to a Work Order.
  2. Click Create Pick List button.
  3. You'll see the dialog box asking for the quantity of Finished Goods Item. This is required to calculate the number of raw material items required to manufacture the entered quantity of Finished Goods Item.
  4. You should be able to see the Item locations table with the Warehouse selected for each raw material item.
  5. Save this document and then this document can be forwarded to the person who is picking the stock.
  6. Submit the document once the stock picking is done and the picked item is updated in the document accordingly.
Dialog For qty

Note: > > - Pick list can only be created for Work Orders that are still in the state of 'Not Started' or 'In Progress'. > - A Stock Entry can be created only after the Pick List is submitted.

2.3 Create Pick List from Material Request

  1. Go to a Material Request.
  2. Click on Create button and then click Pick List option.
  3. You should be able to see the Item Locations table with the Warehouse selected for each item in Material Request.
  4. Save this document and then this document can be forwarded to the person picking the stock.
  5. Submit the document once the stock picking is done and the picked item is updated in the document accordingly.

Note: > > - Only Material Requests with type 'Material Transfer' can be used for Pick List creation. > - A Stock Entry of type 'Material Transfer' can be created after the Pick List is submitted.

  1. Features

3.1. Update Current Stock

If a Pick List is outdated, there could be a shift in stock availability by the time a Delivery Note or Stock Entry is created against it. Clicking Update Current Stock will update the quantities and warehouses in the Item Locations table.

Note: This button is visible as long as there are no Delivery Notes or Stock Entries against the Pick List.

3.2 Barcode Scanning

Pick list supports barcode scanning, introducing two check boxes. Scan Mode, and Prompt Qty.

Scan Mode: Scan Mode in ERPNext's Pick List feature is designed to streamline and verify the item-picking process in a warehouse or store environment. When using Scan Mode, users can scan barcodes on items to confirm that they are picking the correct products according to the Picklist. This mode is particularly useful for ensuring accuracy and efficiency during the picking process.

Prompt Qty: When enabled, instead of incrementing the scanned items qty by 1, a dialog will prompt the user to enter a qty to increment by.

  1. Pick Manually

In the pick list, if a user manually selects batches, the system overrides the changes upon saving the pick list. To solve this issue added a checkbox 'Pick Manually' in the pick list. If this checkbox is enabled, the system will not override the user's changes in the pick list.

pick_manual
  1. Related Topics
  1. Sales Order
  2. Work Order
  3. Material Request

Plaid Integration

https://docs.frappe.io/erpnext/plaid_integration

ERPNext offers the possibility to synchronize your bank accounts through a service called Plaid. Please check the Plaid FAQ to see if your country is supported.

If your instance is connected to Plaid, you are able to synchronize your bank account transactions without having to manually import a CSV or XLSX file.

Settings

In order to give ERPNext access to Plaid, you need to add the following three parameters to your file.

site_config.json
plaid_envplaid_public_keyplaid_secret

Activation

In order to activate Plaid on an instance, click on the button "Enable" in the Plaid Settings DocType.

Enable Plaid

Once activated, you can create a new account directly from the Bank Reconciliation dashboard.

Bank account creation

In order to link one of your existing bank accounts to ERPNext, click on "Link a new bank account" and follow the steps proposed by Plaid.

Link your bank account

Bank synchronization

In order to synchronize a bank account with ERPNext, select an account and click on the "Action" button to select "Synchronize this account".

Synchronize your bank account

The synchronization is based on the "Last integration date" available in the "Bank Account" doctype.

If, for any reason, you want to redo a synchronization, you can change this date and synchronize the account again. Since all bank transactions are tagged with a specific transaction ID, the synchronization will only be incremental.

Automatic Synchronization

You can allow plaid to synchronize your bank account with ERPNex every hour by selecting "Synchronize all accounts every hour" in Plaid Settings.

Plant Floor

https://docs.frappe.io/erpnext/plant-floor

Plant Floor feature in the ERPNext is used to visualize the status of machines and workstations within the corresponding plant floor. This feature provides visual interface for processing job cards.

How It Works

  • Create the plant floor and set the warehouse (Manufacturing -> Plant Floor -> New)
  • Create machine using workstation and select the plant floor.
  • Set the Illustration for the active and inactive status in the workstation.

After that you can see the status of machines and workstations using plant floor.

Visualize Stock Summary

Using plant floor, users can visualize the stock of the corresponding plant floor. Using this feature user can add or move the stock.

stock-summary

Visualize Job Cards

job_cards

Introduction

https://docs.frappe.io/erpnext/point-of-sale

Introduction

What is POS?

The Point of Sale module in ERPNext offers a streamlined solution for managing retail transactions efficiently. It seamlessly integrates with inventory management, updating stock levels in real-time and preventing stock discrepancies. ERPNext’s POS also supports multiple payment methods, streamlining the payment process for customers and reducing transaction errors.

With built-in reporting and analytics, businesses can gain valuable insights into sales performance, top-selling items, and customer trends, helping them make informed decisions to improve overall efficiency and profitability in their retail operation.

Why Use POS in ERPNext?

  • Seamlessly integrates retail transactions with Inventory and Accounting.
  • Enables real-time or deferred posting depending on session closing.
  • Supports multiple payment methods and loyalty programs.
  • Reduces stock discrepancies and improves operational efficiency.

Getting Started

https://docs.frappe.io/erpnext/point-of-sale/setup

You require to setup a few things to ensure smooth POS billing.

Ensure you already have:

  1. POS Profile (defined with payment methods & defaults)
  2. Items with selling prices in Price Lists
  3. Customers defined
  4. Warehouse configured (for stock posting)

Portal Login

https://docs.frappe.io/erpnext/portal-login

To login into the customer account, the customer has to use his Email Address and the password sent by ERPNext; generated through the sign-up process.

Website User Signup

POS Invoice Consolidation

https://docs.frappe.io/erpnext/pos-invoice-consolidation

In the version 13 refactor of the Point of Sale, in an effort to add speed to the Point of Sale, the sales from the POS session do not affect the stock and accounting ledgers until a Closing POS Voucher is submitted for that session. It functions like so:

  1. Each transaction from the POS screen now creates an intermediate invoice (called a POS Invoice) which doesn’t update the stock and accounting ledgers to keep it as fast as possible. This is also called a “sub-ledger”. Separating the POS ledger from the General Ledger makes the system a lot more scalable.
  2. The stock and accounting entries are now created at the end of day while closing a POS session by a single sales invoice which merges all the intermediate invoices created throughout the day.
  3. This single consolidated sales invoice only creates 3-4 ledger entries. The older system would create n x 3 ledger entries where ‘n’ is the number of invoices created throughout the day.
  4. Since drastically fewer ledger entries are made, the load on the general ledger is also eased, making it faster.

How Stock is Tracked Until a POS Session is Closed

While it is true that the Stock Ledger will disclude transactions from any active POS session, the stock levels from this "sub-ledger" update the Stock Projected Quantity Report.

Stock > Stock Reports > Stock Projected Quantity

Stock Projected Quantity Report

In the above image, the "Actual Qty" column represents the value of the stock ledger. The "Reserved for POS Transactions" represents the "Actual Qty" less what quantities are currently reserved because of active POS sessions that have not yet made entries on the Stock Ledger because the sessions have not been closed. Note also that "Projected Qty" ("Active Qty" less quantities reserved for the POS, production, etc.) adds a quantity of 100 to the first line item because of an order for 100 units that has yet to be received.

Within the Point of Sale, however, quantities on order but not received will not be reflected in the "Available Qty at Warehouse" field in the Item Details view. In the instance below, as there's not enough quantity on-hand, the transaction won't be permitted. This applies to any and all open POS sessions active at any time and is applied globally (as in, the transaction from one session affects the quantities available for all other open sessions).

Available Quanity at Warehouse

Item Unavailable

POS Profile

https://docs.frappe.io/erpnext/pos-profile

In ERPNext, a POS profile allows using the Point of Sale feature to some extent for “Paid” Sales Invoice.

POS includes advanced features to cater to different functionality, such as inventory management, financials, warehousing, etc., all built into the POS software.

If you are in retail operations, you want your Point of Sale to be as quick and efficient as possible. To do this, you can create a POS Profile for a user.

POS Profile is also utilized in

To access the POS Profile list, go to:

Home > Selling > POS > POS Profile

How to create POS Profile

  1. Go to POS Profile List, click on “Add POS Profile”.
  2. Select the Company and Warehouse.
  3. Add Payment Methods.
  4. Set Currency, Write Off Account, Write Off Cost Center and Write Off Limit.
  5. Save.

Additional Options when creating a POS Profile

  • Customer: If a Customer is set on POS Profile, selecting the POS Profile on the Sales Invoice/POS Invoice will set the same Customer.

Applicable for Users

By default, all Sales Users can access the POS Profiles created in ERPNext. However, if you want only certain Users to access certain POS Profiles, you can add them to the table. Once even one User is set in the POS Profile, other Users cannot use this POS Profile for retail transactions.

Setting POS Profile as default: On ticking the Default checkbox in the table, the current POS Profile becomes the default POS Profile for that User. So, the next time the User logs into the system, the POS Profile will be set by default.

Note: If you specify a particular User, the POS setting will be applied only to that User. If the User option is left blank, the setting will be set for all users. To understand how POS works, visit the Point of Sale page.

Payment Methods

Set up payment modes in the table; the default will be cash if nothing is set here. Only the modes set here will be available when using POS. After adding payment modes, set one of them as the default payment method by ticking the checkbox.

To allow Payment Methods on Return Invoices, set the “Allow in Returns”.

Configurations

The Configurations section in the POS Profile applies only to the Point of Sale (POS) view in ERPNext. These settings control the behavior, layout, and user experience of the POS interface and do not affect standard Sales Invoices or other views.

  • Hide images: By default, POS displays items in Grid View. However, enabling “Hide images” configuration will switch to List View.
  • Ignore Pricing Rule: Any active Pricing Rule will be ignored for this POS Profile.
  • Hide unavailable Items: Items with non-positive stock will not be displayed.
  • Allow User to Edit Rate: Users will be allowed to edit the rate on the POS Item Detail View.
  • Automatically Add Filtered Item To Cart: When enabled, the filtered item is automatically added to the POS cart without manual selection. Applies only to the POS view.
  • Allow User to Edit Discount: Users will be allowed to edit the discount on the POS Item Detail View.
  • Validate Stock on Save: Validate stock availability on saving the Invoice.
  • Set Grand Total to Default Payment Method: Auto-set Grand Total to Default Payment Method during checkout.
  • Print Receipt on Order Complete: Open Print Preview for Invoice automatically on Order Complete.
  • Allow Partial Payment: Allow partial payment to POS Invoices.
  • Action on New Invoice: Action on clicking the New Invoice Button on POS in case of an unsaved invoice for an ongoing Order.
  • Always Ask: Ask the user if they want to save the ongoing invoice or discard the invoice and load a new invoice.
  • Save Changes and Load New Invoice: Auto-save the ongoing incomplete invoice and load a new invoice.
  • Discard Changes and Load New Invoice: Discard the incomplete invoice and load a new invoice.

Setting Item Group and Customer Group

On setting an Item Group/Customer Group in a POS Profile, the group will be automatically selected when making transactions with the POS Profile.

  • Print Format: You can set a Print Format which will decide what the layout of the printed document will look like. To know more, visit the Print Format page.
  • Letterhead: You can print your POS Sales Invoice on your Company's letterhead. Know more here.
  • Print Headings: POS Sales Invoice headings can also be changed when printing the document. For example, the heading can be 'Invoice', or 'Bill'. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.
  • Terms and Conditions: There may be certain terms and conditions on the Item you're selling, these can be applied here. To know about adding Terms and Conditions, click here.

Accounting

  • Price List: A Price List stores the Item Prices. Setting a Price List here will fetch the Item Prices for the current POS Profile from that Price List.
  • Currency: By default, this will be set according to the Company's default currency. However, you can change it. In case you change the currency, remember to change the accounts too.
  • Taxes and Charges: Selecting a Sales Taxes and Charges Template or Purchase Taxes and Charges Template here will automatically apply the taxes and charges to the POS transaction.
  • Apply Discount On: Here you can set whether the discount is to be applied on the Grand Total (pre tax amount) or the Net Total (post tax amount).
  • Tax Category: On selecting a Tax Category here, the Tax Rules associated with the Tax Category will be applied to each transaction performed from this POS Profile.

The following accounts can be set so that the general ledger is updated accordingly:

  • Account for Change Amount
  • Write Off Account
  • Write Off Cost Center
  • Income Account
  • Expense Account

Accounting Dimensions

Accounting Dimensions lets you tag transactions based on a specific Territory, Branch, Customer, etc. This helps in viewing accounting statements separately based on the criteria selected. To know more, visit the Accounting Dimensions page.

Note: Cost Center is treated as a dimension by default.

POS Workflows

https://docs.frappe.io/erpnext/pos-workflows

POS Workflows

Open POS Session

  1. Go to Point of Sale workspace.
  2. Select a POS Profile.
  3. Select Customer.
  4. Add items from the item list.
  5. Edit quantities as needed.

Note: You need to set a default Warehouse for stock impact. If both Item and POS Profile define a Warehouse, the POS profile warehouse gets priority.

How to Create a POS Invoice

  1. Add items to cart in the POS screen.
  2. If editing rate/discount is needed, enable options in the POS Profile.
  3. Click Pay and select payment mode.
  4. Submit — a POS Invoice is created.

POS Opening Entry

Before selling, open a session with an Opening Entry.
This sets the session start and can capture opening cash if required.

POS Closing Entry

At the end of the session:

  1. Go to POS Closing Entry
  2. Select the POS Profile and closing period
  3. Submit — stock and accounting postings occur.

Loyalty Integration

ERPNext supports linkage of loyalty programs to customers, allowing:

  • Earning points on POS invoices
  • Redemption during checkout
    To set up the loyalty program, follow the ++Loyalty Program++ documentation.

Post Dated Cheque Entry

https://docs.frappe.io/erpnext/post-dated-cheque-entry

Post Dated Cheque is a cheque dated on future date. Party generally give post dated cheque, as advance payment. This cheque would be cleared only when cheque date arrives.

In ERPNext, create Payment Entry for post dated cheque.

New Payment Entry

To open new journal voucher go to:

Accounting > Payment Entry > New

Set Posting Date

Assuming your Cheque Date is 31st December, 2016 (or any future date). As a result, this posting in your bank ledger will appear on Posting Date updated.

Screenshot 2024-07-30 at 12.33.43 PM

Note: Payment Entry Reference Date should equal to or less than Posting Date.

Save and Submit

After entering required details, Save and Submit the Payment Entry.

Adjusting Post Dated Cheque Entry

You can adjust Post Dated Payment Entry against an invoice via Payment Reconciliation Tool.

When cheque is cleared, i.e. on actual date on the cheque, you can update its Clearance Date via Bank Reconciliation Tool.

In the Chart of Accounts, you might find value of this Payment Entry already reflecting against bank Account. You should check Bank Reconciliation Statement, a report in the account module to know difference of bank balance as per system, and actual balance in the bank's statement.

Using Prepared Report

https://docs.frappe.io/erpnext/prepared-report

Many times when generating a report that deals with a large volume of data, say, a GL report for the entire year, you may end up getting the following error message: Request Timed Out. This occurs as there is a lot of data to be processed and presented on the report page, but not enough server resource hence resulting in a time out.

For better processing of such reports, ERPNext offers Prepared Reports (since v11). When a report is set as a Prepared Report, it is generated through a background job, and once ready, is available for users to view.

Steps to Set Up Prepared Reports

  1. Go to Role Permission for Page and Report.
  2. In the field 'Set Role For' select Report.
  3. In the 'Report' field select the report for which you want to enable/disable prepared report.
  4. Use the Disable Prepared Report checkbox to enable/disable the prepared report. If the option is checked, the prepared report option will be disabled for the selected report.
  5. Click on Update.

Setup Prepared Report

How To Use A Prepared Report

  1. Open said report (say General Ledger) and apply all filters needed.
  2. If the prepared report option is enabled for that report, you will see a Generate Report button. Click on the same.
  3. You will see a notification on the bottom-right of the screen saying "Report initiated. You can track its status here"
  4. You can either wait on the said screen or click on here in the above message to open the page for the report. This will open a new page for the report: As you see, the report page has status as "Queued". Once the report is ready, you will see a Show Report button which you can click to view the report:
  5. Since Prepared Report is also a doctype, to view the list of Prepared Reports, you can use the Role Permission Manager to grant access to the same.
Generate Prepared ReportPrepared Report InitiatedPrepared Report QueuedPrepared Report Initiated

Price Lists

https://docs.frappe.io/erpnext/price-lists

A Price List is a collection of Item Prices either Selling, Buying, or both.

ERPNext lets you maintain multiple Selling and Buying Item Prices using Price Lists.

Price Lists can be used in scenarios where you have different prices for different zones (based on the shipping costs), for different currencies, etc. An Item can have multiple prices based on customer, currency, region, shipping cost, etc, which can be stored as different rate plans.

In ERPNext, all the Item Prices are stored separately. Buying Price for an item is different from Selling Price and thus they're stored separately.

To access a Price List go to:

Home > Selling/Buying/Stock > Items and Pricing > Price List

  1. How to use a Price List
  • Price Lists will be used when creating item prices to track the selling or buying price of an item.
  • Specific countries can be assigned in the Price List.
  • To disable a specific Price List, untick the 'Enabled' checkbox. The Disabled Price List will not be available for selection in the Sales and Purchase transactions.
  • Price Not UOM Dependent: Consider an item, Tomatoes, which you buy in Boxes and sell in Kilos. 1 Box = 10 Kilos, and 1 Kilo buying price is 10rs. If this Box is unchecked and you select 1 Box in your transaction, the price will show up only for a Kilo since that's the only Item Price saved.

Now, if you tick this checkbox and make a transaction with a Box of Tomatoes, then the price will be automatically set as 100 since the price of 1 Box (10 Kilos) is 100.

  • Standard Buying and Selling Price Lists are created by default.

Note: If you have multiple Price Lists, you can select a Price List or tag it to a Customer (so that it is auto-selected). Your Item Prices will automatically be updated from the Price List.

  1. Item Price

Pricing

https://docs.frappe.io/erpnext/pricing

In the stock module of ERPNext, item pricing plays a vital role in managing the cost and selling price of items. Each item in the system can have a defined purchase price, which reflects the cost incurred to acquire the item. ERPNext allows businesses to set different pricing levels based on factors such as currency, customer groups, or pricing rules.

This flexibility enables businesses to implement diverse pricing strategies, such as volume discounts, promotional pricing, or tiered pricing based on customer relationships. Effective item pricing in ERPNext helps businesses maintain accurate cost calculations, optimize profit margins, and tailor pricing strategies to meet customer needs and market demands.

Pricing Rule

https://docs.frappe.io/erpnext/pricing-rule

A Pricing Rule defines the discount/pricing rules that apply based on set conditions.

A Pricing Rule has many options using which you can control the pricing of an Item. Filters like quantity, date, groups, and other conditions can be set.

A Pricing Rule is somewhat similar to a Tax Rule.

Following are the few cases which can be addressed using Pricing Rule:

  • As per a promotional sale policy, if the Customer purchases more than 10 units of an item, he enjoys 20% discount.
  • For Customer "XYZ", the selling price for the specific Item should be updated as ###.
  • Items categorized under specific Item Group have same selling or buying price.
  • Customers belonging to specific Customer Group should get ### selling price, or % of Discount on Items.
  • Supplier categorized under specific Supplier Group should have ### buying rate applied.

To have Discount and Price List Rate for an Item auto-applied, create Pricing Rules for it.

To access the Pricing Rule list, go to:

Home > Accounting > Pricing Rule

1. Prerequisites

Before creating and using a Pricing Rule, it is advisable to create the following first:

  1. Item
  2. Item Group
  3. Customer
  4. Supplier

2. How to create a Pricing Rule

Go to the Pricing Rule list and click on New.

Set a title for the rule.

Select what to Apply On from Item Code, Item Group, Brand, or Transaction.

Select whether you want to apply Price discount or Product discount. If you want to give free products then select the product discount.

Pricing Rule

For a single item, select Item Code and select the items.

If you want Pricing Rule to be applied on all the items, select 'Item Group' and select All Item Group (parent Item Group).

Set the discount/price to be applied. To know more, go to this section.

Save.

2.1 Additional options when creating a Pricing Rule

Warehouse

Setting a Warehouse here will cause the Pricing Rule to be applied only if the Item is selected from the Warehouse specified here.

Apply Rule On

Based on the attribute selected in the 'Apply On' field, you can set the Pricing Rule based on one of these:

  • Item
  • Item Group
  • Brand
  • Transaction (on the total amount of the transaction)

In this table, you can select the specific Item/Item Group/Brand. For example, if you select Apply On 'Item Group' and select 'Raw Materials' in the table, this Pricing Rule will be applied only on Items that belong to the Group 'Raw Materials'.

UoM: The Pricing Rule will apply only if the UoM set here matches with the transaction.

Condition

In this field you can add a condition in python to check against field values in the transaction doctype, like shown below for Sales Invoice:

customer=='Customer Name' and status!='Overdue'

Please note that only single line python conditions will work, using fieldnames of the target doctype.

Mixed Conditions

If you select two or more Items and set the Min and Max Quantity. The Pricing Rule will be applied only if the total sum of Items matches the set quantities. For example, you create a Pricing Rule on Item 1 and Item 2 and set the Min and Max Quantity as 30, the Pricing Rule will apply only if the total quantity is 30.

Is Cumulative

Enabling this options allows the Pricing Rule to be applied cumulatively. You need to set the 'Min Amt' and 'Max Amt' for this.

Consider a scenario where the Min Amt is 1,500 and Max Amt is 2,000. Now, if one transaction is created for 1,400 then Pricing Rule will not be applied. However, on creating a second invoice of amount 600, Pricing Rule will be applied. This happened since the total (cumulative) amount of the invoices added up to 2,000. Note that the discount will be applied only to the latest transaction that crosses the cumulative limit.

This can be useful to give discounts if a Customer buys an Item multiple times and you want to reward him with discounts/special prices.

3. Features

3.1 Apply Rule On Other

This feature checks condition on first Item but applies rule on another Item.

Apply Pricing Rule on Other Item

For example, set Item1 and Item2 in the 'Apply Rule On' table and set 'Apply Rule On Other' on Item3. Now, if the transaction has Item1, Item2, and Item3, the Pricing Rule will apply on Item3 since the first two Items were present in the transaction.

3.2 Party Information

Set whether the Pricing Rule is for Selling of Buying the Item.

Based on your selection you can set applicability to one of the following masters.

3.3 Quantity and Amount

Specify minimum qty, maximum qty, minimum amount, or maximum amount of an Item when this Pricing Rule should be applied.

Note that if the quantity or amount falls short or exceeds the limits set here, the Pricing Rule will not be applied at all. However, it will be applied if you have enabled the options Mixed Conditions or Cumulative.

Pricing Rule Quantity and Amount

3.4 Validity

You can also set a date interval for when the Pricing Rule will be valid. This is useful for a sales promotion. On leaving the dates blank the Pricing Rule will not have any time frame limit.

Pricing Rule Period Settings

3.5 Margin

Pricing Rule Margin

Margin Type: When selling an Item, you may sell it for a certain margin. If you don't want to add selling prices to Items every time and would like to automatically set a margin, it can be done with this feature.

Margin Rate or Amount: The margin set can be based on Percentage or Amount, eg: 5% margin or $50 fixed margin.

Read adding margin for more details.

3.6 Price Discount Scheme

The actual rule to be applied is set in this section.

Pricing Rule Discount
  • Rate: This will be the new rate for an Item. For example, if you sell an Item for 100 and want to sell it for 112 for a specific party, then select Rate and set the Rate as 112.
  • Discount Percentage: A specific discount percentage can be set. The discount percentage can be set to a specific Price List. Leaving the 'For Price List' blank will apply the Pricing Rule to all Price Lists.
  • Discount Amount: A fixed discount amount will be applied. For example if you sell an Item for 100 and want to sell it with a discount of 7, then this condition can be set using the Discount Amount option.

3.7 Advanced Settings

Pricing Rule Advanced Settings

Threshold for Suggestion: This is the threshold based on which the system will notify you to adjust Item Quantity for discount. For example, if the Min Quantity is 10 and the Threshold is 9, the system will notify to add 1 more Item for the discount to be applicable. This also applies to the amount set.

Priority: Consider an Item Group, you want to set specific rules on one Item from the group. This can be done by creating a new Pricing Rule and setting a higher priority. This can also apply to Customer Group and Supplier Group.

Apply Multiple Pricing Rules: To understand this, consider an Item of Rate 500. There are two Pricing Rules on it P1 and P2. P1 applies 10% discount and P2 applies 5%. Enabling this option will apply a total of 15% on the Item Rate which gives 425.

Apply Discount on Rate: The discount will be compounded. Consider the same scenario as above. On enabling this option, 10% will be applied on 500 which will give 450, then 5% will be applied on 450 which will give 427.5.

Validate Applied Rule: Shows the entered validation message if the discount/rate set manually by you in a transaction does not match the Pricing Rule.

This is useful when the top distributor in the hierarchy decides the discount/rate to be applied and you are only validating if the Pricing Rule is applied correctly.

4. Pricing Rule Discount Types

4.1 Price Discount

Under the Margin Type, you can set whether the margin is calculated as a percentage or an amount. Eg: 10% margin on supplier price list at the time of sales.

Rate mentioned in Pricing Rule will be given priority over Item's Price List (Item Price) rate.

Price Discount Scheme Rate
  1. Discount Percentage can be applied for a specific Price List (Selling or Buying). To apply it for both, leave the 'For Price List' field blank.

Price Discount Scheme Discount
  1. Discount can also be set in terms of amount.

Price Discount Scheme Amount

4.2 Product Discount

  1. "Buy 2 quantities get 1 free quantity of the same item." To configure such type of rules, set the Price or Product Discount as 'Product discount', tick the Same Item checkbox, and set the quantity.

Pricing Rule Product Discount
  1. "Buy 2 quantities get 1 free quantity of the another item." To configure such type of rules. Set the Price or Product Discount as Product discount, untick the 'Same Item' checkbox and set the 'Free Item' and quantity.

Pricing Rule Other Product Free

New Feature - Don't Enforce Free Item Qty

By default, ERPNext enforces the Product Discount rules without any exceptions. Imagine a scenario where a Pricing Rule is set which says that for one item, five quantity of another item will be given for free. However, it is possible that you may only have 3 quantity of that item in stock instead of 5. With this default behaviour when you try to edit the quantity or remove the free item and try to save the document, the free item will be refetched again in the child table rendering you effectively unable to submit that document as an error citing insufficent stock will be thrown.

Since free items are usually at discretion of the seller, a new option called "Don't Enforce Free Item Qty" has been introduced for Pricing Rule. When you have this option enabled, ERPNext will fetch the free items only for the first time the item is added. You will then be free to edit the quantity of the free item or remove it entirely. The free item will no longer be fetched again when you save the document.

  1. Promotional Scheme
  2. Tax Rule
  3. Supplier
  4. Item

Printing and Branding

https://docs.frappe.io/erpnext/print

Documents that you send to your customers carry your brand and image and they must be tailored to your requirements. ERPNext gives you many options so that you can set your oraganization's branding in your documents.

ERPNext also gives you the option to print barcode labels, POS receipts and send other raw commands to printers using the Raw Printing feature.

Topics

  • print-settings
  • print-format-builder
  • print-style
  • print-headings
  • letter-head
  • address-template
  • terms-and-conditions
  • cheque-print-template
  • custom-translations
  • raw-printing

Printing

https://docs.frappe.io/erpnext/printing

In ERPNext, the printing feature facilitates the generation of desired documents directly from the system pertaining to the business. Users can effortlessly create and customise templates for various documents such as invoices, purchase orders, sales orders, pay slips etc.

The users can build and maintain various print formats as per the company's branding guidelines including relevant information as per business requirements.

Process Deferred Accounting

https://docs.frappe.io/erpnext/process-deferred-accounting

Process Deferred Accounting is a log which is created on every processing of deferred revenue or expense.

Process Deferred Accounting records are automatically created on booking Deferred Revenue or Expense. It is done via a background job but the user can also create a record for manual Deferred Revenue or Expense booking.

To access the Process Deferred Accounting list, go to:

Home > Accounting > General Ledger > Process Deferred Accounting

1. Prerequisites

Before creating and using a Process Deferred Accounting, it is advised to create and understand the following first:

2. How to create a Process Deferred Accounting

  1. Go to Process Deferred Accounting list, click on New.
  2. Enter the Company.
  3. Select the type of deferred accounting process. Select 'Income' for booking deferred revenue or select 'Expense' for booking deferred expense
  4. Expand the posting date.
  5. Enter service Start Date and End Date.
  6. Save and Submit.

Process Deferred Revenue

3. Features

3.1 On Submitting

On submitting a Process Deferred Accounting document, GL Entries for deferred revenue or expense booking will be created for all the invoices falling between the service Start Date and End Date.

Enter the account if Deferred Revenue or Expense has to be booked only for specific deferred income or expense account

3.2 Enabling automatic deferred accounting

To enable automatic deferred accounting, enable the 'Automatically Process Deferred Account Entry' checkbox by navigating to Accounts Settings.

To access Accounts Settings go to:

Home > Accounting > Accounting Masters > Accounts Settings

Deferred Accounting Settings

Process Statement Of Accounts

https://docs.frappe.io/erpnext/process-statement-of-accounts

Introduced in Version 13

Process Statement Of Accounts is a tool which helps you send Statement Of Accounts (General Ledger Report) and Ageing (Accounts Receivable Summary) Report as a PDF to your customers in bulk via email either manually or automated periodically.

This feature is useful when you want to send email updates to customers periodically about their transactions (like Sales Invoices). In the PDF attachment sent via emails sent to the customers, for each customer, there will be details like invoice posting date, Sales Invoice number, debit and credit details, etc relevant to their account.

The purpose of this feature is remind multiple customers that they have pending unpaid invoices.

To access Process Statement Of Accounts list you can either search in the navbar or go to:

Home > Accounting > Tools > Process Statement Of Accounts

1. Prerequisites

  1. The tool uses the email IDs of customers to send them the reports. On not finding the below email entries in the Customer contacts the tool won't allow you to select the respective Customer, so please ensure the following details are filled in the Customer documents.
  • Billing Email of Customer: This is mandatory and can be set within the Customer Contact with "Is Billing Contact" option checked.
  • Primary Email of Customer: This is not mandatory, unless you select the "Send To Primary Contact" in the form.
  1. Email Account setup with outgoing enabled. Learn more about this here.

2. How to create a Process Statement Account entry

Go to the "Process Statement Of Account" list view by searching in the navbar and click on "New".

Enter a name for the entry, for future reference.

Set the General Ledger filters for the statements which will be sent to the customers.

  • "From Date" and "To Date" filters will be hidden and auto-filled dynamically when "Enable Auto Email" option is selected.
  • "Project" and "Cost Center" are Table MultiSelect fields. Meaning you can select multiple Projects and Cost Centers in the General Ledger filters.

New Process Statement of Accounts
  1. In the "Customers" section, you have an option to select customers in the child table and fetch their primary and billing emails.
  • The "Select Customer By" field lets you select customers in bulk, by grouping them based on "Customer Group", "Territory", "Sales Partner", and "Sales Person" by entering the selection and clicking on "Fetch Customers".
  • In tree doctypes like "Territory", "Sales Person", and "Customer Group" on selecting group values, the customers having the child values of these fields will also be fetched. So when you select "India" as territory in the form, all customers with "Territory" values under India in the Territory tree will get selected.
  • The "Send To Primary Contact" option will send the Statement Of Account to the primary contact email IDs of the customers too apart from the billing email.

Customer
  1. In "Print Preferences" section you can select 2 things:
  • Print orientation of the PDF file, either "Landscape" or "Portrait".
  • Whether you want to see the ageing report (Accounts Receivable Summary report), which shows the ageing amount for 30/60/90/120 days for vouchers (like Sales Invoice), based on either "Due Date" or "Posting Date".

Print Preference
  1. The "Email Settings" section lets you configure how you want the emails to be sent. There are two subsections in this:

Email Settings
  • On selecting "Enable Auto Email" you will see the options to send automated periodic reports to the customers in the entry.
  • You can select the "Frequency" at which the emails will be sent after the "Start Date" to the customers. The available options are weekly, monthly, and quarterly.
  • You can also select the "Filter Duration" in months. For example, if you set "Filter Duration" as '3', you'll get the reports for the last three months counting from the current date. Here, current date refers to the date on which the emails are sent.
  • These mails are not sent right away, but at midnight as a background process.
  • After this you can select the "Subject", "CC To", and "Body" fields of the email. If you don't set values to this field, default values will be set like shown below.
  1. Review your settings and click on "Save".

Now, wait for the emails to get sent if you've enabled "Enable Auto Email" or click on Send Emails to send them immediately.

3. Features

3.1 Download consolidated PDF of all customers

On creating an entry, there is a button seen at the top called "Download" which lets you see the consolidated report PDF of all customers. You can use this for reviewing.

3.2 Send emails manually

On creating an entry, there is a button seen at the top called "Send Emails" which lets you trigger email sending manually to the customers. The emails are queued via a background job, which you can track in the "Email Queue" doctype with the DocType and Document references. You can do this even if "Enable Auto Email" is on.

Send Email and Download

3.3 Using dynamic values in the Email Subject and Body

You can use Jinja tags to enter dynamic values from:

  • The customer to which the email will be sent to under the "customer" object
  • Any field in the selected Process Statement Of Account document under the "doc" object
  • Any method in under the "frappe" object
frappe.utils

They can be used as shown below:

Template

Resulting Email:

Email

Report PDF:

Report
  1. Setting up an Email Account
  2. Creating Customer Contact
  3. Contact

Procurement Cycle Overview

https://docs.frappe.io/erpnext/procurement-cycle-overview

For a beginner level understanding of the flow of process in the Procurement cycle, there are a total of 7 Stages:

  1. Material Request
  2. Request For Quotation
  3. Supplier Quotation
  4. Purchase Order
  5. Purchase Receipt
  6. Purchase Invoice
  7. Payment Entry

To begin with, considering the standard flow of the Purchase cycle, let's say you raise a Material request in ERPNext depending upon the item to be Purchased.
Once a Material request is raised, there can be multiple cases like Multiple Suppliers bidding or selling same item, in this case a Request for Quotation[RFQ] is opened up.
Once an RFQ is raised, suppliers post their rates against the required quantity against it. The rates from the different Suppliers can be sent by the users within ERPNext or even using the Web portal. Also, once quotations are received, they can be compared using Supplier Quotation. After comparing the best quote, a Purchase Order is raised against it. After a PO is raised, an Invoice can be generated or a Purchase Receipt depending upon the flow of process in the organisation, subsequently Payment Entry is made.

Procurement Tracker Report

https://docs.frappe.io/erpnext/procurement-tracker-report

This report lists all the transactions related to goods that are currently in the process of procurement.

To access this report, go to:

Home > Buying > Procurement Tracker

The procurement tracker allows a user to monitor the process of obtaining goods. It provides information about the user requesting the purchase, the warehouse it was requested from, along with the quantity of the requested item. It also provides a comparison between the estimated cost of the goods at the time of requisition versus actual cost of obtaining them along with the date at which the goods where obtained. This ensures reviewing, ordering, delivery, and billing management for goods involved in the procurement process.

Procurement Tracker

Product Bundle

https://docs.frappe.io/erpnext/product-bundle

A Product Bundle is a master where you can list existing items which are bundled together and sold as a set (or bundle).

For instance, when you sell a smartphone, you need to ensure that the charger, cable, and sim ejector pin are delivered with it and stock levels of these items get affected. To address this scenario, you can create a Product Bundle for the main item, i.e. smartphone. Then list deliverable items i.e. smartphone + charger + cable + sim ejector pin as so-called "Child Items".

A Product Bundle can be seen as a "Bill-of-Materials" on the Sales side.

Following are the steps to set up a Product Bundle and using it in sales transactions.

To access product bundle, go to:

Home > Selling > Items and Pricing > Product Bundle

  1. Prerequisites

Before creating and using a Product Bundle, it is advised that you create the following first:

  1. How to create a Product Bundle
  1. Go to the Product Bundle list, click on Add Product Bundle.
  2. Select a Parent Item, create one if not already created. Make sure Maintain Stock unchecked when creating a Parent Item. eg: Dinner Set.
  3. Enter a price for the parent item, this will be fetched when making a transaction.
  4. You can enter a description for internal use.
  5. Enter the products to be bundled in the Items table and enter their quantities.
  6. Save.

Screenshot 2024-08-29 at 11.41.56 AM

2.1 Selecting Parent Item

In Product Bundle master, there are two sections. The "Parent Item" and a List of items to be shipped (Child Items).

The "Parent Item" should be seen more like a vessel or virtual item and not a physical product. The "Parent Item" must be a non-stock item. To create a non-stock item you have to unmark "Maintain Stock" in the Item Form. This is a non-stock item because there is no stock maintained for it but only for the "Child Items".

If you want to maintain stock for the Parent Item, then you must create a regular Bill of Material (BOM) and package them using Stock Entry Transactions.

2.2 Selecting Child Items

In the Items table, you have to list all the child items for which we maintain stock and is delivered to customer. Remember: The "Parent Item" is just virtual, so your main product (a smartphone in our example here) also has to be listed on the List of Child (or Package) Items.

  1. Features

3.1 Product Bundle in the Sales Transactions

When making Sales transactions (Sales Invoice, Sales Order, Delivery Note) the Parent Item will be selected in the main item table.

Screenshot 2024-08-29 at 11.42.41 AM

On selection of a Parent Item in the main item table, its child items will be fetched in Packing List table of the transaction. If child item is the serialized item, you will be able to specify its Serial No. in packing List table itself. On submission of the transaction, the system will reduce the stock level of child items from warehouse specified in Packing List table.

Screenshot 2024-08-29 at 11.44.47 AM

Use Product Bundle to Manage Offers/Schemes:
This was discovered when a customer dealing into nutrition products asked for a feature to manage offers like "Buy One Get One Free".

To manage the same, he created a non-stock item which was used as Parent Item. In description of item, he entered offer details with the item's image displaying the offer. The sellable product was selected in Package Item where qty was two. Hence every time they sold one qty of Parent item under this offer, the system deducted two quantities of product from Warehouse.

  1. Item

Product Listing

https://docs.frappe.io/erpnext/product-listing

ERPNext provides a product listing page where your customers can discover your products. It is enabled by default if you have published Website Items on your system.

You can go to the product listing visiting the /all-products route. For example, .

https://apple.erpnext.com/all-products

Actions are visible only on hovering over the card in the new Product Listing.

Here there are two views available that can be toggled:

Product List View

The List View can hold additional data in it such as a short description which can be mentioned in the Website Item's Short Website Description field. Product List View

Product Grid View

Product Grid View

Product Grid View

Filters

This page also shows filters alongside the products. There are three types of filters visible here: Field Filters, Attribute Filters and Discount Filters.

  • Field Filters and Attribute Filters can be configured in the Filters and Categories section of E Commerce Settings.
  • Discount Filters are automatically generated based on the discounts applied on the products. They do not require any configuration.

Production Analytics

https://docs.frappe.io/erpnext/production-analytics

To access the Production Analytics, go to:

Home > Manufacturing > Reports > Production Analytics

Task

This report shows the overall analytics of all Work Orders.

Production and Material Planning

https://docs.frappe.io/erpnext/production-and-material-planning

Production and material planning in ERPNext is a comprehensive process that integrates various aspects of manufacturing, inventory management, and resource allocation.

It involves creating production schedules, determining material requirements, and optimizing resources to meet production goals efficiently. ERPNext streamlines this process by providing tools for capacity planning, work order creation, and tracking of inventory levels.

By centralising data and automating workflows, ERPNext enables businesses to enhance productivity, reduce lead times, minimise costs, and improve overall operational efficiency in their production processes.

Capacity Planning

https://docs.frappe.io/erpnext/production-and-material-planning-capacity-planning

Capacity planning is the process in which an organization decides whether or not to accept the new orders based on the resources and existing work orders.

Capacity planning has been enabled by default in your account, to know more go to:

Home > Manufacturing > Settings > Manufacturing Settings

Work Order

1. Prerequisites

Before creating and using a Work Order, it is advised that you create the following first:

  • Bill Of Materials
  • Operation
  • Workstation
  • Work Order

2. How Capacity Planning Works in ERPNext

The user has to define the number of days in the "Capacity Planning For" field under manufacturing settings to plan the upcoming work orders. For example, if you have kept the Capacity Planning For 30 days and to make 1 finished good it requires 5 days then on the current date user can only accept the 6 work orders (30/5 = 6). You can take the next Work Order when your Workstation gets free.

2.1 Create Work Order With Operations

User needs to create the Work Orders with Operations so that the system will track the Job Card timings against the Work Order.

Work Order

Once the user submits the Work Order, system will generate the Job Card with the available Workstation's time details. If 'Allow Overtime' is disabled in Manufacturing Settings then the system schedules the job as per the timings defined in the Workstation. If "Allow Production on Holidays" is disabled then the system schedules job only on working days.

2.2 Workstation's Production Capacity

In the Workstation, the user can set the 'Production Capacity'. This is the number of Operations the system will allow you work on in this Workstation. For example, if a certain Workstation can handle 10 operations at the same time, enter the 'Production Capacity' as 10.

Work Order

2.3 Job Card With Timing

The system will auto-create the Job Card with timing against each operation based upon the time required to complete that operation and Workstation's availability. The user has to set the planned start date and based on the operation time, system calculates the planned end date.

Work Order

2.4 Work Order Planned Start Date and End Date

Based on the planned start date and end date, users can calculate the capacity of their work stations. Also, they can track the status of the work order using the Calendar.

To view calendar, goto:

Work Order List > Calendar > Default

Work Order

2.5 Capacity Planning Error

If the Production Capacity days is less than time required to complete the operation then system throws a capacity planning error. In this case, user has to increase the number under "Production Capacity" days in the Manufacturing Settings or reduce the number of finished goods as per the capacity of the Workstations

Work Order

Production Plan

https://docs.frappe.io/erpnext/production-plan

A Production Plan helps in production and material planning for the Items planned for manufacturing. These production items can be committed via Sales Order (to Customers) or Material Requests (internally).

Production Plan helps the user to plan production against multiple Sales Orders or the Material Requests. Also, it helps in Material Procurement planning for the raw material item, based on the quantity of finished products to be manufactured.

To access the Production Plan list, go to:

Home > Manufacturing > Production > Production Plan

  1. Prerequisites

Before creating and using a Production Plan, it is advised that you create the following first:

  1. How to Create a Production Plan

As mentioned earlier, a Production Plan can be used for planning the manufacture of Items against Sales Orders or Material Requests.

The common steps are:

  1. Go to the Production Plan list, click on New.
  2. Select whether to get items from a Sales Order or a Material Request.

A Production Plan can also be created manually where you can select the Items to manufacture.

2.1 Production Against Sales Orders

  1. Select option as Sales Order from the 'Get Items From' drop-down list. The system will show the filters, using that you can pull the Sales Orders for the production. You don't need to use all these filters if you have only a few Sales Orders in a particular time frame.

2. Click on Get Sales Orders to fetch sales orders based on the above filters.

Production Plan fetch items

3. Click on 'Get Items for Work Order' to fetch the items from the above Sales Orders. Items only for which a BOM is present will be fetched. 4. On expanding a row in the Items to Manufacture table, you'll see an option to 'Include Exploded Items'. Ticking this includes raw materials of the sub-assembly items in the production process. 5. If "Consolidate Items" is ticked and saved, items with the same BOM are combined into a single item with the combined total planned quantity.

Sales Order FiltersGet items for Production PlanGet items Combined for Production Plan

2.2 Production Against Material Requests

  1. Select option as Material Request from the Get Items From drop-down list. The system will show the filters, using that we can pull the Material Requests for the production.

2. Click on 'Get Material Request' to fetch material requests based on the above filters.

Material Request Filters

3. Click on Get Items for Work Order to fetch the items from the above material requests.

Material Requests

Material Request Item

2.3 Fetching Sub Assembly Items

Clicking on 'Get Sub Assembly Items' will fetch Sub Assembly Items from the BOM of the Finished Good Items, in the table above.

Get Sub Assembly Items

2.3.1 Sub Assembly Items

User will get option to make In House (Work Order) / Sub-contract Purchase Order / Material Request for Purchase against the Sub-assembly items using Manufacturing Type.

If user wants to make Material Request for their Sub-assembly items as well their Final Raw Materials then they have to select the Manufacturing Type as "Material Request" for Sub-assembly items and then they have to click on the button "Get Items for Purchase Only" to fetch Sub-assembly items in the Material Request Plan Item table.

2.3.2 Combining Sub Assembly Items

If there are Finished Goods that share the same Sub Assembly Item, the Sub Assembly Items can be combined. The criteria for combination would be to have the same Item, Warehouse, BOM and Manufacturing Type.

Combine Sub Assemby Items

In this way a common Work Order can be made to bulk create Sub Assemblies for various Finished Goods.

2.3.3 Skip Available Sub Assembly Items or Skip Available Raw Materials

If users enable the checkbox 'Skip Available Sub-Assembly Items' or 'Skip Available Raw Materials', the system will consider the Projected Qty which is available in the bin to calculate the required quantity for sub-assembly items or raw materials. To understand this, consider the following case.

Example

To produce 1 qty of Item A, 1 qty of Item B (sub-assembly) is required, and to produce 1 qty of Item B, 1 qty of Item C is required.

In the production plan, Item A has a quantity of 100 to produce.

Against Item B already work order created for 20 qty which is not completed and 20 more qty available in the stock. Which meant total 40 qty is available in the Projected Qty

Against Item C already purchase order created for 40 qty which is not completed and 20 more qty available in the stock. Which meant total 60 qty is available in the Projected Qty

If Skip Available Sub Assembly Items enabled, while calculating the required qty for Item B

  • Reqd Qty = Required Qty (as per BOM) - Projected Qty (in BIN)
  • Reqd Qty = 100 - 40
  • Reqd Qty = 60

If Skip Available Raw Materials enabled, while calculating the required qty for Item C

  • Reqd Qty = Required Qty (as per BOM) - Projected Qty (in BIN)
  • Reqd Qty = 100 - 60
  • Reqd Qty = 40

2.4 Planning for Material Requests

Clicking on the 'Get Items for Purchase Only' button will fetch the required raw material Items in the Material Request Plan table. For example, to manufacture 200 plastic canes, you need 100 raw plastic Nos but have only 20 in your Warehouse, then clicking this button will add a row with 80 in the Required Quantity column (make sure Skip Available Raw Materials is enabled).

If partial materials are available in a different warehouse and you want to perform a material transfer and create a purchase entry for the remaining quantity, use the "Get Items for Purchase / Transfer" button. Here, you need to specify the warehouse from which the transfer should be made. If you select the parent warehouse, the system will check stock availability in its child warehouses and suggest transferring materials from those child warehouses.

Use the following checkboxes to perform certain actions:

Include Non Stock Items: To include non-stock items in the material request planning. i.e. Items for which 'Maintain Stock' checkbox is unticked. Refer the Item page for more details.

Include Subcontracted Items: To add subcontracted Item's raw materials if include exploded items is disabled.

Skip Available Raw Materials: If enabled, the system will consider items with a shortfall in quantity. Formula to calculate Required Qty: Required Qty = BOM Required Qty – Projected Qty

Example: Item A has 50 qty in stock and 20 qty in a Material Request (with a pending Purchase Order). To complete production, 100 qty is required.

If the "Skip Available Raw Materials" checkbox is enabled, the system will calculate the required quantity as: 100 - (50 + 20) = 30

If the "Skip Available Raw Materials" checkbox is not enabled, the system will calculate the required quantity as: 100, ignoring the available stock or incoming quantities.

For Warehouse: User can set the Warehouse for which they want to create the material request. When creating Stock Entries during the production process, the system will look for raw material stock in this Warehouse.

2.4.1 Download Material Request Plan

On click of "Download Material Request Plan" button the User will get the Excel sheet with the raw materials that are needed to complete this Production Plan. User can select the Warehouse to check the available quantity in the respective Warehouse. On click of "Download Material Request Plan" a popup will open to select warehouses. If user wants to Run plan for multiple warehouses then they can select those warehouses in the Popup to download the plan in the excel sheet format. Excel sheet will look similar to:

Material Request Plan

2.5 After Submitting

Once the Production Plan is submitted, the User gets an option to make Work Orders for the production items and Material Requests for the raw materials. Users can also set the Status as Closed in the Production Plan.

2.5.1 Closing a Production Plan

There could be occurrences where a Production Plan is partially complete and is going to be discontinued. This could happen due to reasons such as:

  • One of the items was independently produced outside the Production Plan.
  • A change in plans occurred and pending items will not be produced.

In cases like these, Users can set the Production Plan status to Closed, so that no new Work Orders or Material Requests are created against it.

Closing a Production Plan

The same can be Re-opened.

2.6 Making work order for the sub-assembly items

User will get option to make Work Order / Sub-contract Purchase Order / Material Request for Purchase against the Sub-assembly items using Manufacturing Type.

If user wants to make Work Order for sub-assembly items then select the Manufacturing Type as In House and submit it. After Submit you have to click on the button Create -> Work Order / Subcontract PO

  1. Related Topics
  1. Work Order
  2. Job Card

Production Planning Report

https://docs.frappe.io/erpnext/production-planning-report

To access the Production Planning Report, go to:

Home > Manufacturing > Reports > Production Planning Report

Task

This report will help users plan the finished good as well as the raw materials against the Sales Order / Work Order / Material Request (with the request type as Manufactured) data. Mostly, in the case of make to order, this report helps you plan the production of the finished goods as well the raw materials.

Using this report user will get the information about the available finished goods as well as available raw materials that are required in the production process. The unavailable finished good or raw materials will be highlighted in the red color.

In this report system will allocate the available stock to the order based on the sorting. The Order By filter will be use to sort the orders based upon the Delivery Date, Order Amount.

For example, Bob works in the Furniture Manufacturing company. Their organization follows the make to order production planning. On Monday, Bob received the Sales Orders for tables and chairs from different customers. So Bob has checked the production planning report to check the availability of the raw materials and he found that either table or chair can be manufactured with the available raw materials. Bob used the 'based on' filter to know which Finished Good order's delivery date is earlier. He has found that he has to deliver the Table earlier so he has started working on it and his colleague has created the purchase order for raw materials which will be used to make chair.

Using the Production Planning Report, this report auto allocate the raw materials to the order once it's available in the respective warehouse.

Project

https://docs.frappe.io/erpnext/project

A Project is a planned piece of work that is designed to find information about something, to produce something new, or to improve something.

In ERPNext, project management is task-driven. You can create a Project and divide it into multiple Tasks.

A Project has a broad scope and hence can be divided into tasks. Think of coming up with a new smartphone for the next year as a Project. Then things like designing, prototyping, testing, delivery, etc. become tasks under the project.

Whilst each task within a Project can be assigned to an individual or a group of individuals, the assignment can also be done at the project level.

These Tasks can be created from a Project itself or a Task can be created separately as well.

To access Projects, go to:

Home > Projects > Project

How to Create a Project

  1. Go to the Project list and click on New.
  2. Add the following details:
  • Project Name: Title of the Project.
  • Status: The default status of a Project is going to be 'Open', which can later be changed to 'Completed' or 'Cancelled'.
  • Expected End Date: Enter the date on which you aim to finish the project.

Additional Options while creating a Project

  1. From Template: If you have an existing Project Template, you can choose to create your project using this template.
  2. Expected Start Date: If you have a time-line fixed for the project, you can define both expected Start Date and Expected End Date in the form.
  3. Project Type: You can classify your projects into different types, e.g., Internal or External.
  4. Priority: You can select the priority level of the Project based on how crucial it is. You can also add more priority levels.
  5. Department: If the project belongs to, or is owned by a Department in the organization, you can add that here.
  6. Is Active: A Yes/No tab, which lets you change the active status of the project at any later stage.
  7. Completion Method: You can track the % completion of your project based on one of the three methods, viz. Manual, Task Completion, Task Progress and Task Weight.

Some examples of how the Percentage Completion is calculated based on Tasks:

Project Activity % Progress Weight Status
SC001 Build 100 0.4 Completed
SC001 Operate 100 0.2 Completed
SC001 Transfer 50 0.2 Open
Method Formula Calculation % Task Completed
Manual - - Manual
Task Completion Task completed / Total no. of Tasks 2/3 66.66
Task Progress Sum of % Progress of all Tasks / Total No. of Tasks (100+100+50)/3 83.33
Task Weight Sum of (Task weight + % Progress) (0.4 * 100 + 0.2 * 100 + 0.2 * 100) 70

Note: If the total weight of the Tasks is not 100, then the calculated result will be divided by the total weight. For example, if the total of task weights is 70, then the percentage completed = (70/0.8)% = 87.5%.

Project Configuration

Customer, Sales, and Access Control

  • Customer: If a Project is being carried out for a particular Customer, the details can be fed in here.
  • Sales Order: If the Project originates from a Sales Order, you can fetch its details here. This allows you to:
  • Project Users and Access: You can add Website Users to the Project to grant them access. This is useful for:
  • Notes: You can add any additional notes to the project.
  • Track Project execution against the Sales Order
  • Update Customers on progress as per the agreed scope
  • Customers who want to monitor progress or provide feedback
  • Suppliers, Freelancers, or Contractual Employees working on the Project. You can also:
  • Send a Welcome Email when adding a user
  • Control Attachment Viewing permissions for each user

Learn more about allowing users to view projects - click here

Project Timeline Tracking

  • Actual Start Date: The Actual Start Date and Time are automatically captured based on the first Timesheet entry linked to the Project.
  • Actual End Date: The Actual End Date and Time are automatically recorded based on the latest Timesheet update for the Project.

To learn more about Timesheets, click here.

Costing, Billing, and Financial Tracking

  • Estimated Cost: Enter the Estimated Cost of the Project.
  • Total Sales Amount: If you have already linked the Project with a Sales Order, the Total Sales Order Amount will be auto-populated here.
  • Total Costing Amount: The system will automatically fetch the Total Costing Amount from all the Timesheets linked to this project.
  • Total Billable Amount: The system will automatically fetch the Total Billable Amount from all the Timesheets linked to this project.
  • Total Expense Claim: Based on the expenses claimed by an Employee for the completion of the Project, the Total Expense Claim will be auto-calculated.
  • Total Billed Amount: The Total Billed Amount gets auto-populated in the system using the Sales Invoice created against the Sales Order.
  • Total Purchase Cost: The Total Purchase Cost of a Project is the cost fetched from the Purchase Invoices that get created against a Purchase Order issued for supply of Materials required for a Project.
  • Total Consumed Material Cost: Using the Stock Entry made as per the requirement of Materials in the Project, the Total Consumed Material Cost gets captured.

Margin

Gross Margin: Gross Margin would give you the margin you have between your Total Costing Amount and the Total Billed Amount.

Gross Margin = (Total Sales Amount + Total Billable Amount) 
                - Total Costing Amount 
                + Total Billable Amount 
                + Total Expense Claim 
                + Total Purchase Cost + Total Consumed Material Cost)

Gross %: The percentage of the Total Billed Amount spent in the Total Costing Amount makes for the Gross %.

 ((Total Sales Amount + Total Billable Amount)
 - Total Costing Amount + Total Billable Amount
 + Total Expense Claim + Total Purchase Cost 
+ Total Consumed Material Cost) / Total Sales Amount) 100*

Monitor progress

When you enable the 'Collect Progress' option by checking the box, it will enable you to add monitoring details to the project. A report on the progress of the project shall be sent to all stakeholders of the project.

  • Holiday List: You can select the Holiday List for your company. This will allow you to collect the Progress Reports only on the Working Days.
  • Frequency: You can set the frequency at which you wish to get the reports. It can be set to an hourly, twice daily, daily or on a weekly frequency.

  1. Task
  2. Project Type
  3. Project Template

Project Costing

https://docs.frappe.io/erpnext/project-costing

Each project has multiple tasks associated with it. To track the actual cost of a Project, primarily in terms of services, a User has to create a Timesheet based on the time spent on a Task within a Project. You can track the service cost against a Project in the following ways.

Activity Type

Activity Type is a master of services offered by your personnel. You can add a new Activity type from:

Home > Projects > Activity Type > New

Screenshot 2024-06-21 at 3.13.26 PM

Activity Cost

Activity Cost is a master where you can track billing and costing rate for each Employee, for each Activity Type.

Timesheet

Based on the time spent on the Project-Task, an Employee will create a Timesheet.

On selection of the Activity Type in the Time Log, Billing and Costing Rate will be fetched for that Employee from the respective Activity Cost.

Multiplying these rates with total no. of hours in the Time Log gives Costing Amount and Billing Amount for the specific Time Log.

Costing in Project and Task

Based on all the Timesheets created for specific Tasks, its costing will be updated in the respective Task.

Same way, the Project cost will be updated based on Timesheets created against each of its associated tasks and the cost of the Project gets updated simultaneously.

Project from Customer Portal

https://docs.frappe.io/erpnext/project-customer-portal

If you are working on a Project for a Customer, then they need to be updated on its progress from time-to-time. You can achieve this in ERPNext via the Customer Portal.

Add User as a Website User

To access a project from the portal, a customer must be added as a Website User. A Customer can also sign up from the Login Page of your ERPNext account, using the same Email ID as mentioned in the Contact. You can also send an invite to the contact using the Invite User button in Contact.

Add Customer and User in Project

In the Project, check Customer Details section. Select a Customer and Sales Order associated with this Project.

Under the User table, select the contacts who can access this project.

Portal View of Project

When a Customer logins from the Portal, they will be able to view all the tasks for that project along with the associated timesheets. Also, the customer will be able to update the status of the tasks or comment when needed.

Project and Managing Expenses

https://docs.frappe.io/erpnext/project-expense-claims

Employees working on a Project incur various expenses, sometimes from their pockets and then can claim such expenses using Expense Claim.

While filling up the claim, they can specify the Project for which they have made the expense.

Based on the Expense Claims made for a particular project, total Expense Claim Amount is updated in the Project master, under project costing section.

Project Profitability

https://docs.frappe.io/erpnext/project-profitability

Project and related activities are generally active for longer periods. While developments keep happening on the Project, various transactions are done against each project. While new developments keep happening on a project, it may lead to more investment in terms of time, money, and material. Hence, it becomes important to track the Profitability of a Project to ensure that you don't overspend.

In simple terms, Project Profitability is the difference between the revenue generated from a project versus the costs associated with it.

Project in Sales Transactions

You can link a Project in all sales transactions like Sales Order, Delivery Note, Sales Invoice, and Payment. Linking your project with the sales transactions will help you track the income received against that Project.

In sales transactions, Project field is generally available in the More Information section.

Project in Purchase Transactions

You can also link your project to the purchase transactions like Purchase Order, Purchase Receipt, and Purchase Invoice.

In the purchase transactions, the option to link a project is available in the Item table. This is because you could be procuring material for multiple projects from the same purchase entry.

Budgeting against Project

You can create a Budget for a project as well. The expense limit defined in the Budget will be validated in the expense transactions.

Project Profitability

Based on all the income and expense entries created for the Project, you can get its profitability.

Accounting > Profitability Analysis

You can filter the report by Project to check Project-wise Profitability.

Project Reports

https://docs.frappe.io/erpnext/project-reports

These reports help track project progress, project status, and key metrics such as timelines, costs, and resource allocation

Project Summary

The Project Summary provides an overview of key project information, including the current project status, start and end dates, and a consolidated view of related records. It displays the number of associated Tasks and Timesheets, allowing users to quickly assess project progress and activity at a glance.

The image below shows the summary of the example we discussed in Getting started for the Rack Storage manufacturing.

Project Summary

Daily Timesheet Summary

The Daily Timesheet Summary provides a consolidated view of all tasks recorded in a timesheet for a selected time period. It displays the timesheet activities along with the logged hours and the corresponding linked tasks and projects, enabling users to review daily time allocation at a glance.

Daily Timesheet Summary

Timesheet Billing Summary

This report provides a summary of timesheet-based billing for a selected time period. It displays the total working hours along with the corresponding billable hours, billing rates, and calculated billing amounts, enabling users to review and analyze time-and-material billing at a glance.

Timesheet Billing Summary

Project Wise Stock Tracking

This report provides visibility into stock movements associated with projects, including purchased items and issued items. It also displays key project information such as the project status, total project value, and the project start and completion dates, enabling effective tracking of material usage and overall project progress.

Project wise stock tracking

Delayed Task Summary

The Delayed Tasks Summary report helps identify the tasks which have exceeded their Expected End Dates. It provides visibility into both on-track and delayed tasks, along with their current progress and the expected start and end dates, enabling users to identify schedule deviations and take corrective action.

To view this report, you can go to:

Home > Projects > Reports > Delayed Tasks Summary

The report is generated based on the Task Doctype.

Calculation of Delay

Tasks have a date field called Completed On, which becomes visible when a Tasks status is changed to Completed.

Scenario 1

If a task is marked as Completed and the Completed On field is set, then the delay is calculated as the difference between the Completed On and the Expected End Date.

Delay = Completed On - Expected End Date
Scenario 2

If the Completed On field is not set, then the delay is calculated as the difference between the current date and the Expected End Date.

Delay = Current Date - Expected End Date

Chart

The chart shows the number of tasks that are On Track or Delayed based on the report generated after applying the filters.

Delayed Tasks Summary

Delayed Tasks Summary

Project Template

https://docs.frappe.io/erpnext/project-template

A Project Template is a predefined sequence of tasks arranged in stipulated schedule.

These templates can be pulled for similar kind of Projects and the tasks therein get auto-populated at the time of creation of each new project.

To access Project Template, go to:

Home > Projects > Projects > Project Template

How to Create A New Project Template:

  1. Go to the Project Template List and click on New.
  2. Add the following details:
  • Project Template Name: Title of the Project Template
  • Project Type: Project Templates, just like projects can be classified into different project types, e.g., Internal or External.
  • Tasks: Each Project Template will have a set of a predefined sequence of tasks. In this table, you can select the tasks you want for this template.
  1. Project
  2. Task

Project Type

https://docs.frappe.io/erpnext/project-type

A Project Type is the classification of projects into different types to group similar kind of projects.

Internal Projects, External Projects could be examples of Project types and are already created in the system. You can choose to add more Project Types. This comes handy when you are reviewing the Projects, and you want to filter the information based on Project Types.

To access Project Type, go to:

Home > Projects > Projects > Project Type

How to Create a Project Type

  1. Go to the Project Type List and click on New.
  2. Add the name of the Project Type and description
  3. Save.
  1. Project
  2. Project Template

Project Update

https://docs.frappe.io/erpnext/project-update

A Project Update is the status of the Project which can be sent to all the stakeholders of the Project.

Each time you want to update the stakeholders about the project, you can send a Project Update to them.

To access Project Update, go to:

Home > Projects > Projects > Project Update

How to Create a Project Update

  1. Go to the Project Update List and click on New.
  2. Add the name of the Project for which you want to send an update.
  3. Add the name of the Users to whom you want to send the Project Update in the Child Table. These Users could be your Customers or any other Internal or External Stake Holders.
  4. Save and Submit.

Once you have submitted the Project Update, an email is sent to the selected stakeholders with project updates.

Additional Details

When you expand the table which has the names of the Users, you will be able to add the following details:

  1. You can select whether you want to send a Welcome Email to any particular User while sending them the Project Update.
  2. You can select whether you want any particular User to view Attachments in the Project Update.
  3. You can add the description of the Current Status of the Project in the 'Project Status' field which will indicate the progress of the project.

Project Views

https://docs.frappe.io/erpnext/project-views

As projects are time-sensitive, we need different kind of views to convey information in a visual manner to users viewing them.

Apart from the generic list and report views for projects and tasks, ERPNext also provides Gantt, Kanban, and Calendar views for tasks. You can access these views by going to the Task list and selecting them via the left sidebar.

Gantt View

A Gantt Chart shows how tasks are linked to each other and shows their execution sequence, based on start and end dates set in the tasks along with any dependencies, if available.

Gantt Chart View

You can update the range of the chart by selecting one of Quarter Day, Half Day, Day, Week, or Month.

Dragging a task along the dates will update the start and end date of a task.

If you want to further customize the chart and make it more colorful, read this article

Kanban View

Kanban in Japanese means "billboard" or "signboard" as the task management method traces its origin back to Toyota's lean manufacturing process. In a typical kanban board setup, you have a board or wall which is divided into section which represent different stages of execution or realization. Tasks go up on the board as sticky notes or Post Its and move through the board updating its current stage in the process.

Kanban View

ERPNext renders the Kanban view for tasks based on its status. You can update the status of a task by moving the representative card from one column to the next. You can also assign colors to these columns for visual reference.

Read customizing Kanban board to learn more.

Calendar View

Like the Gantt chart, the calendar view also shows the task and the planned number of days it'll take to complete. However, this one shows the task spread across your regular calendar.

*Calendar view *

Projected Quantity

https://docs.frappe.io/erpnext/projected-quantity

Projected Quantity is the level of stock that is predicted for a particular Item based on the current stock levels and other requirements.

It is the quantity of gross inventory that includes supply and demand in the past which is done as part of the planning process.

The projected inventory is used by the planning system to monitor the reorder point and to determine the reorder quantity. The projected Quantity is used by the planning engine to monitor the safety stock levels. These levels are maintained to serve unexpected demands.

Having tight control of the projected inventory is crucial to determine shortages and to calculate the right order quantity.

Projected Quantity

The formula to calculate projected quantity is as follows:

Projected Qty = Actual Qty + Planned Qty + Requested Qty + Ordered Qty - Reserved Qty - Reserved Qty for Production - Reserved Qty for Subcontracting - Reserved Qty for Production Plan

  • Actual Qty: Quantity available in the Warehouse. This is the actual physical stock you have.
  • Planned Qty: Quantity, for which, Work Order has been raised, but is pending to be manufactured.
  • Requested Qty: Quantity requested via a Material Request. It is added on submission of Material Request and subtracted when Purchase Order/Work Order/Stock Entry is created against it based on the Material Request type.
  • Ordered Qty: Quantity ordered for purchase (Purchase Order), but not received (via a Purchase Receipt or a Purchase Invoice.
  • Reserved Qty: Quantity ordered for sale by your Customer (Sales Order), but not delivered (via a Delivery Note). This quantity increases when a Sales Order is submitted and decreases when a Delivery Note or Sales Invoice is created against that Sales Order is submitted.
  • Reserved Qty for Production: Raw materials are reserved on submission of Work Order and is reduced when raw materials are transfered to Work in Progress warehouse via a Stock Entry.
  • Reserved Qty for Subcontracting: Raw materials reserved when a subcontracting Purchase Order is submitted. When raw materials are transfered to Supplier Warehouse via a Stock Entry, this quantity reduces. To know more about subcontracting click here.
  • Reserved Qty for Production Plan: Raw materials are reserved when a Production Plan is submitted. When materials are reserved for the production against the work order then the system will reduce the "Reserved Qty for Production Plan" in the respective BIN. The system reduces the quantity if the work order was made against the production plan.
  1. Warehouse
  2. Material Request

Project Overview

https://docs.frappe.io/erpnext/projects-introduction

Overview

The Project Module in ERPNext is used to plan, track, and manage projects within the system. It helps organize project work, monitor progress, and keep track of time and costs, while remaining closely integrated with other ERPNext modules.

Projects in ERPNext act as a central point for tasks, timesheets, expenses, and billing. This makes it easier to track work progress and understand the project's actual cost and outcome without relying on external tools.

Key Features

The Project Module offers a comprehensive set of features to manage projects end-to-end:

  • Projects and Tasks
    Create projects and define tasks with assigned users, status, and timelines.
  • Timesheets
    Log time spent on tasks and associate it with projects.
  • Cost Tracking
    Record project-related expenses and material usage.
  • Billing
    Create invoices based on time logs, milestones, or fixed project values.
  • Integration with ERPNext
    Projects are linked with Accounting, HR, Sales, Purchase, and Inventory modules.

Getting Started

https://docs.frappe.io/erpnext/projects/introduction/getting-started

The Project Module in ERPNext is used to track work that involves multiple steps, people, and transactions. A project brings together tasks, time, materials, deliveries, and billing under a single reference.

The example below shows how a simple manufacturing job can be managed as a project and how it connects with other ERPNext modules.

Scenario**:**

A manufacturing company receives an order to make a custom metal storage rack for a warehouse customer.

Prerequisites:

  • Create an Item - Storage Rack

Step 1: Create a Sales Order for the rack

  • To create a sales order, go to:

Home > Selling > Sales Order

Sales order with the Storage Rack

Step 2: Create the project from the Sales Order

  • After the sales order is submitted, we can create the project from it
  • Creating project from Sales Order
  • Once the project is created, the dashboard will be created, which will allow the creation of tasks and timesheets
  • Project Dashboard

Step 3: Creating the Basic Tasks for the project

  • We create separate tasks for the project, like cutting and welding, painting, and final assembly.
  • Task for Cutting & welding

Step 4: Create purchase orders for the raw materials and respective stock entries as well

  • The raw material required for making the Storage rack would be purchased, therefore the purchase order would be made for the same
  • Purchase order for raw material

Step 5: Create a timesheet to record the execution of steel sections and paints

  • To maintain the execution of the steel sections and the painting of the storage rack, we create a timesheet
  • The changes made in this project will reflect the costing and billing details
  • Execution details in timesheet

Step 6: As the process continues, we update the task with its progress

*Task Status *

  • Once all the tasks are completed, the project moves into a fully completed state as well

Final Project Status

Project Settings

https://docs.frappe.io/erpnext/projects/project-settings

There are certain settings that are available for the Project module, which allow for handling overlap time scenarios, and the billing settings control whether logged time can be invoiced. These are all disabled by default.

The settings available are:

Project Settings

Ignore Workstation Time Overlap

When enabled, ERPNext allows multiple overlapping time logs against the same workstation. It would be useful in places where workstations are shared

Ignore User Time Overlap

When enabled, ERPNext allows overlapping time entries for the same user. It would be useful for users who log time on behalf of multiple employees or teams.

Ignore Employee Time Overlap

When enabled, ERPNext allows overlapping time entries for the same employee. This can be useful at times activity tracking is done and no strict hour validation is required like the HR use cases

Fetch Timesheet in Sales Invoice

When enabled, billable Timesheet entries can be fetched directly into a Sales Invoice.

This allows:

  • Billing customers based on logged hours
  • Automatic population of invoice items from Timesheet Details linked to a Project

Promotional Scheme

https://docs.frappe.io/erpnext/promotional-scheme

Introduced in version 12

A Promotional Scheme is a temporary discount on one or more products.

Promotional schemes help businesses become successful as lower prices for a limited period of time to attract more Customers. They can be easily configured in ERPNext. A Promotional scheme is linked to a pricing rule, against each slab system that will generate the pricing rule.

On creating a Promotional Scheme, the system creates a Pricing Rule. A Promotional Scheme can have multiple Pricing Rules associated with it. In ERPNext, a Promotional Scheme is an easier way to manage pricing on multiple Item/Groups based on different parties and conditions.

To access the Promotional Scheme list, go to:

Home > Selling > Items and Pricing > Promotional Scheme

Prerequisites

Before creating and using a Promotional Scheme, it is advisable to create the following first:

  1. Item
  2. Item Group
  3. Customer
  4. Supplier

How to create a Promotional Scheme

  1. Go to the Promotional Scheme list and click on New.
  2. Enter a title for the rule.
  3. Select what to Apply On like Item Code, Item Group, Brand, or Transaction. Selecting Transaction will apply the scheme on the total amount of the transaction.
  4. Based on the 'Apply On', system will give you the provision to select the Item Code / Item Group / Brand in the table.
  5. Select whether the scheme is for Selling, Buying, or both and set the party information.
  6. In the Price Discount Slabs table, set the price discount, product discount.
  7. Users can also apply the discount on the other Item Code / Item Group / Brand by selecting the value for Apply Rule On Other field. Promotional Scheme
  8. Save.

Note: On saving a Promotional Scheme, a new Pricing Rule is created.

Additional fields when creating a Promotional Scheme

Mixed Conditions

If you select two or more Items and set the Min and Max Quantity. The Promotional Scheme will be applied only if the total sum of Items matches the set quantities. For example, you create a Promotional Scheme on Item 1 and Item 2 and set the Min and Max Quantity as 30, the Promotional Scheme will apply only if the total quantity is 30.

Is Cumulative

Enabling this options allows the Promotional Scheme to be applied cumulatively. You need to set the 'Min Amt' and 'Max Amt' for this.

Consider a scenario where the Min Amt is 1,500 and Max Amt is 2,000. Now, if one transaction is created for 1,400 then the Promotional Scheme will not be applied. However, on creating a second invoice of amount 600, Promotional Scheme will be applied. This happened since the total (cumulative) amount of the invoices added up to 2,000. Note that the discount will be applied only to the latest transaction that crosses the cumulative limit.

This can be useful to give discounts if a Customer buys an Item multiple times and you want to reward him with discounts/special prices.

Features

Apply Scheme On Other Item

This feature checks condition on the first Item but applies scheme/discount/rate on another Item.

For example, set Item1 and Item2 in the 'Apply Rule On' table and set 'Apply Rule On Other' on Item3. Now, if the transaction has Item1, Item2, and Item3, the Pricing Rule will apply on Item3 since the first two Items were present in the transaction.

Party Information

Set whether the Promotional Scheme is for Selling of Buying the Item.

Based on your selection you can set applicability to one of the following masters.

  • Customer
  • Customer Group
  • Territory
  • Sales Partner
  • Campaign
  • Supplier
  • Supplier Group

Validity

You can also set a date interval for when the Promotional Scheme will be valid. This is useful for a sales promotion. On leaving the dates blank the Promotional Scheme will not have any time frame limit.

Currency: Setting a Currency here will cause the Promotional Scheme to be applied only when the Currency is the same in the transaction.

Price Discount Slabs

Rule Description: Enter a description to keep a not of what this Promotional Scheme entails.

Quantity and Amount

Specify minimum qty, maximum qty, minimum amount, or maximum amount of an Item when this Promotional Scheme should be applicable.

Note that if the quantity or amount falls short or exceeds the limits set here, the Promotional Scheme will not be applied at all. However, it will be applied if you have enabled the options Mixed Conditions or Cumulative.

Setting the Discount/Rate

  • Rate: This will be the new rate for an Item. For example, if you sell an Item for 100 and want to sell it for 112 for a specific party, then select Rate and set the Rate as 112.
  • Discount Percentage: A specific discount percentage can be set. For example, a 10% discount on an Item worth 500 would result in a price of 450.
  • Discount Amount: A fixed discount amount will be applied. For example if you sell an Item for 100 and want to sell it with a discount of 7, then this condition can be set using the Discount Amount option.

Filters for setting discount

  • Warehouse: Setting a Warehouse here will cause the Promotional Scheme to be applied only if the Item is selected from the Warehouse specified here.
  • Priority: Consider an Item Group, you want to set specific rules on one Item from the group. This can be done by creating a new Promotional Scheme and setting a higher priority.
  • Threshold for Suggestion: This is the threshold based on which the system will notify you to adjust Item Quantity for discount. For example, if the Min Quantity is 10 and the Threshold is 9, the system will notify to add 1 more Item for the discount to be applicable. This also applies to the amount set.
  • Validate Applied Rule: If the entered price is not valid for the Item, the system will not allow you to apply a different rate/discount.

Product Discount Slabs

A Product Discount is applicable when one or more Items are free on the purchase of other Items. Most fields in this table are the same as the previous section.

The additional options are:

  • Same Item: If you want to give the same Item as free (product discount) on purchase of an Item, enable this checkbox. If you want to give another Item, untick and select the Item to be given as free.
  • Apply Multiple Pricing Rules: To understand this, consider an Item of Rate 500. There are two Pricing Rules on it P1 and P2. P1 applies 10% discount and P2 applies 5%. Enabling this option will apply a total of 15% on the Item Rate which gives 425.
  • UoM: The Promotional Scheme will apply only if the UoM set here matches with the transaction.
  • Rate: An Item may be offered free of cost by the Supplier but there may be some tax applicable. Entering a Rate here means that the Customer will have to pay the applicable taxes.

Promotional Scheme types

Price Discount

In this type of promotional scheme, the user gets an option to set the discount in terms of percentage or amount based on the min quantity, max quantity, min amount and max amount on the products. Users can also configure the scheme where they can set the flat rate for the product based on the quantity or the amount of the product.

Product Discount

In this type of promotional scheme, the user gets an option to give a free product on purchase of the same or different product with conditions like min quantity, max quantity, min amount, max amount.

How to configure a Promotional Scheme (Examples)

Let's understand how to configure a promotional scheme in ERPNext using some examples.

Mixed Conditions Schemes

Customer A has purchased 10 quantities of Britannia Cake 5 Rs packet and 5 quantities of Britannia Cake 10 Rs packet. Now, the Supplier wants to give a discount of 10% to Customer A. This Supplier also wants to give a 10 % discount to Customer B who has purchased 15 quantities of Britannia Cake 5 Rs packet.

So, the Supplier wants to apply the discount on products Britannia Cake 5 Rs, Britannia Cake 10 Rs only if his Customers have purchased 15 quantities of any product or sum of both products.

To configure this in ERPNext the steps are as follows:

  1. Set Apply On as Item Code.
  2. Set the Item Code Britannia Cake 5 Rs, Britannia Cake 10 Rs in the Pricing Rule Item Code table.
  3. Enable the "Mixed Conditions" field.
  4. In the price discount table, set the min qty, max qty as 15.
  5. Set the discount type as Discount Percentage and rate as 10.

To apply a discount on other Item

Customer A has purchased 30 quantities of Britannia Cake 5 Rs packet and 2 quantities of Britannia Cake 15 Rs. The Supplier wants to sell the product Britannia Cake 15 Rs at the flat rate 12. Here the original price for the product Britannia Cake 15 Rs is 15.

The Supplier wants to apply the rule only if the Customer has purchased min 30 quantities of the product Britannia Cake 5 Rs or Britannia Cake 10 Rs.

To configure this in ERPNext the steps are as follows

  1. Set Apply On as Item Code.
  2. Set the item code Britannia Cake 5 Rs, Britannia Cake 10 Rs in the Pricing Rule Item Code table.
  3. Apply Rule On Other as Item Code and set Item Code as Britannia Cake 15 Rs.
  4. In the price discount table, set the min qty as 30.
  5. Set the discount type as Rate and rate as 12.

  1. Pricing Rule
  2. Customer
  3. Supplier
  4. Item

Purchase Invoice

https://docs.frappe.io/erpnext/purchase-invoice

A Purchase Invoice is a bill you receive from your Suppliers against which you need to make the payment.

Purchase Invoice is the exact opposite of your Sales Invoice. Here you accrue expenses to your Supplier. Making a Purchase Invoice is very similar to making a Purchase Order.

To access the Purchase Invoice list, go to:

Home > Accounting > Accounts Payable > Purchase Invoice

PI Flow
  1. Prerequisites

Before creating and using a Purchase Invoice, it is advised to create the following first:

  1. How to create a Purchase Invoice:

A Purchase Invoice is usually created from a Purchase Order or a Purchase Receipt. The Supplier's Item details will be fetched into the Purchase Invoice. However, you can also create a Purchase Invoice directly.

To fetch the details automatically in a Purchase Invoice, click on the Get Items from. The details can be fetched from a Purchase Order or Purchase Receipt.

For manual creation, follow these steps:

  1. Go to the Purchase Invoice list, click on New.
  2. Select the Supplier.
  3. The posting date and time will be set to current, you can edit after you tick the checkbox below Posting Time.
  4. Set the Due Date for payment.
  5. Add Items and quantities in the Items table.
  6. The Rate and Amount will be fetched.
  7. Save and Submit.

2.1 Additional options when creating a Purchase Invoice

  • Is Paid: You can tick 'Is Paid' if the amount has already been paid via an Advance Payment Entry. This should be ticked if there is full or partial payment.
  • Is Return (Debit Note): Tick this if the customer has returned the Items. To know more details, visit the Debit Note page.
  • Apply Tax Withholding Amount: If the selected Supplier has a Tax Withholding Category set, this checkbox will be enabled. For more information, visit the Tax Withholding Category page.

2.2 Statuses

  • Draft: A draft is saved but yet to be submitted to the system.
  • Return: The Items have been returned to the Supplier.
  • Debit Note Issued: The Items have been returned and a Debit Note has been issued against the invoice.
  • Submitted: The Purchase Invoice has been submitted to the system and the general ledger has been updated.
  • Paid: Supplier has been fully paid the invoice amount and the corresponding Payment Entries have been submitted.
  • Partly Paid: Supplier has been paid a part of the invoice amount and the corresponding Payment Entries have been submitted.
  • Unpaid: The Purchase Invoice is yet to be paid.
  • Overdue: The due date has passed for payment.
  • Canceled: The invoice has been canceled due to some reason.
  1. Features

3.1 Accounting Dimensions

Accounting Dimensions lets you tag transactions based on a specific Territory, Branch, Customer, etc. This helps in viewing accounting statements separately based on the criteria selected. To know more, visit the Accounting Dimensions page.

Note: Project and Cost Center are treated as dimensions by default.

3.2 Holding the Invoice

Sometimes you may need to hold an invoice from being submitted.

Hold Invoice: Enable this checkbox to put the Purchase Invoice on hold. This can be done only before submitting the invoice. Once 'Hold Invoice' is enabled and the Purchase Invoice is submitted, the status will change to 'Temporarily on Hold'.

Once the purchase invoice gets submit and you want to change 'Release Date' then you can take the help of the 'Hold Invoice' button, which is available on the top right.

If you want to hold submitted purchase invoice then you can hold using 'Block Invoice' option and If you want to unblock again then use 'Unblock Invoice' option.

This is invoice level holding, Suppliers can be put on hold. Learn more here.

3.3 Supplier Invoice Details

  • Supplier Invoice No: The Supplier may identify this order with a number of his own. This is for reference.
  • Supplier Invoice Date: The date on which the Supplier placed/confirmed your order from his end.

3.4 Address and Contact

  • Supplier Address: This is the Billing Address of the Supplier.
  • Contact Person: If the Supplier is a Company, the person to be contacted is fetched in this field if set in the Supplier form.
  • Shipping Address: Address where the items will be shipped to.

For India, the following details can be recorded for GST purposes:

  • Supplier GSTIN
  • Place of Supply
  • Company GSTIN

3.5 Currency and Price list

You can set the currency in which the Purchase Invoice order is to be sent. This is fetched from the Purchase Order. If you set a Pricing List, then the item prices will be fetched from that list. Ticking on 'Ignore Pricing Rule' will ignore the Pricing Rules set in Accounts > Pricing Rule.

Read about Price Lists and Multi-Currency Transactions to know more.

3.6 Subcontracting or 'Supply Raw Materials'

Setting 'Supply Raw Materials' option is useful for subcontracting where you provide the raw materials for manufacturing an Item. To know more, visit the Subcontracting page.

3.7 Items table

  • scan barcode: You can add Items in the Items table by scanning their barcodes if you have a barcode scanner. Read documentation for tracking items using barcode to know more.
  • The Item Code, name, description, Image, and Manufacturer will be fetched from the Item master.
  • Manufacturer: If the Item is manufactured by a specific manufacturer, it can be added here. This will be fetched if set in the Item master.
  • Quantity and Rate: When you select the Item code, its name, description, and UOM will be fetched. The 'UOM Conversion Factor' is set to 1 by default, you can change it depending on the UOM received from the seller, more in the next section.

'Price List Rate' will be fetched if a Standard Buying rate is set. 'Last Purchase Rate' shows the rate of the item from your last Purchase Order. Rate is fetched if set in the item master. You can attach an Item Tax Template to apply a specific tax rate to the item.

  • Item weights will be fetched if set in the Item master else enter manually.
  • Discount on Price List Rate: You can apply a discount on individual Items percentage-wise or on the total amount of the Item. Read Applying Discount for more details.
  • Item Weight: The Item Weight details per unit and Weight UOM are fetched if set in the Item master, else enter manually.
  • Accounting Details: The Expense account can be changed here you wish to.
  • Deferred Expense: If the expense for this Item will be billed over the coming months in parts, then tick on 'Enable Deferred Expense'. To know more, visit the Deferred Expense page.
  • Allow Zero Valuation Rate: Ticking on 'Allow Zero Valuation Rate' will allow submitting the Purchase Receipt even if the Valuation Rate of the Item is 0. This can be a sample item or due to a mutual understanding with your Supplier.
  • BOM: If there is a Bill of Materials created for the Item, it'll be fetched here. This is useful for reference when subcontracting.
  • Item Tax Template: You can set an Item Tax Template to apply a specific Tax amount to this particular Item. To know more, visit this page.
  • Page Break will create a page break just before this Item when printing.

Update Stock

Note: From version-13 onwards we have introduced immutable ledger which changes the rules for cancellation of stock entries and posting backdated stock transactions in ERPNext. Learn more here.

The Update Stock checkbox should be checked if you want ERPNext to automatically update your inventory. Consequently, there will be no need for a Purchase Receipt.

3.8 Taxes and charges

The Taxes and Charges will be fetched from the Purchase Order or Purchase Receipt.

Visit the Purchase Taxes and Charges Template page to know more about taxes.

The total taxes and charges will be displayed below the table.

To add taxes automatically via a Tax Category, visit this page.

Make sure to mark all your taxes in the Taxes and Charges table correctly for an accurate valuation.

Shipping Rule

A Shipping Rule helps set the cost of shipping an Item. The cost will usually increase with the distance of shipping. To know more, visit the Shipping Rule page.

3.9 Additional Discount

Any additional discounts to the whole Invoice can be set in this section. This discount could be based on the Grand Total i.e., post tax/charges or Net total i.e., pre tax/charges. The additional discount can be applied as a percentage or an amount.

Visit the Applying Discount page for more details.

3.10 Advance Payment

For high-value Items, the seller can request an advance payment before processing the order. The Get Advances Received button opens a popup from where you can fetch the orders where advance payment was made. To know more, visit the Advance Payment Entry page.

3.11 Payment Terms

The payment for an invoice may be made in parts depending on your understanding with the Supplier. This is fetched if set in the Purchase Order.

To know more, visit the Payment Terms page.

3.12 Write Off

Write off happens when the Customer pays an amount less than the invoice amount. This may be a small difference like 0.50. Over several orders, this might add up to a big number. For accounting accuracy, this difference amount is 'written off'. To know more, visit the Payment Terms page.

3.13 Terms and Conditions

In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

3.14 Printing Settings

Letterhead

You can print your Purchase Invoice on your Company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the Items table. This can be seen when your print.

Purchase Invoice headings can also be changed when printing the document. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

3.15 GST Details (for India)

The following details can be set for GST:

  • GST Category
  • Invoice Copy
  • Reverse Charge
  • E-commerce GSTIN
  • Eligibility For ITC
  • Availed ITC Integrated Tax
  • Availed ITC Central Tax
  • Availed ITC State/UT Tax
  • Availed ITC Cess

3.16 More Information

  • Is Opening Entry: If this is an opening entry to affect your accounts select 'Yes'. i.e. if you're migrating from another ERP to ERPNext mid year, you might want to use an Opening Entry to update account balances in ERPNext.
  • Remarks: Any additional remarks about the Purchase Invoice can be added here.

3.17 After Submitting

On submitting a Purchase Invoice, the following documents can be created against it:

  1. Journal Entry
  2. Payment Entry
  3. Payment Request
  4. Landed Cost Voucher
  5. Asset

  1. More

4.1 Accounting Impact

Similar to a Sales Invoice, in a Purchase Invoice you have to enter an Expense or an Asset account for each row in your Items table. This helps to indicate if the Item is an Asset or an Expense. You can also change the Cost Center. These can also be set in the Item master. The Cost Center can be set at the Company level.

The Purchase Invoice will affect your accounts as follows:

  • Accounting entries (GL Entry) for a typical double entry “purchase”:
  • Debits:
  • Credits:
  • Expense or Asset (net totals, excluding taxes)
  • Taxes (/assets if VAT-type or expense again)
  • Supplier

4.2 Accounting When Is Paid is checked

If Is Paid is checked, ERPNext will also make the following accounting entries:

Debits:

  • Supplier

Credits:

  • Bank/Cash Account

To see entries in your Purchase Invoice after you “Submit”, click on “View Ledger”.

4.3 Is purchase an “Expense” or an “Asset”?

If the Item is consumed immediately on purchase, or if it is a service, then the purchase becomes an “Expense”. For example, a telephone bill or travel bill is an “Expense” - it is already consumed.

For inventory Items, that have a value, these purchases are not yet “Expense”, because they still have a value while they remain in your stock. They are “Assets”. If they are raw-materials (used in a process), they will become “Expense” the moment they are consumed in the process. If they are to be sold to a Customer, they become “Expense” when you ship them to the Customer.

4.4 Deducting Taxes at Source

In many countries, the law may require you to deduct taxes, while paying your suppliers. These taxes could be based on a standard rate. Under these type of schemes, typically if a Supplier crosses a certain threshold of payment, and if the type of product is taxable, you may have to deduct some tax (which you pay back to your government, on your Supplier’s behalf).

To do this, you will have to make a new Tax Account under “Tax Liabilities” or similar and credit this Account by the percent you are bound to deduct for every transaction.

4.5 Hold Payments For A Purchase Invoice

There are two ways to put a purchase invoice on hold:

  • Date Span Hold
  • Explicit Hold

Explicit Hold

Explicit hold holds the purchase invoice indefinitely. To do it, in the "Hold Invoice" section of the purchase invoice form, simply check the "Hold Invoice" checkbox. In the "Reason For Putting On Hold" text field, type a comment explaining why the invoice is to be put on hold.

If you need to hold a submitted invoice, click the "Make" button and click "Block Invoice". Also, add a comment explaining why the invoice is to be put on hold in the dialog that pops up and click "Save".

Date Span Hold

Date span hold holds the purchase invoice until a specified date. To do it, in the "Hold Invoice" section of the purchase invoice form, check the "Hold Invoice" checkbox. Next, input the release date in the dialog that pops up and click "Save". The release date is the date that the hold on the document expires.

After the invoice has been saved, you can change the release date by clicking on the "Hold Invoice" drop-down button and then "Change Release Date". This action will cause a dialog to appear.

Select the new release date and click "Save". You should also enter a comment in the "Reason For Putting On Hold" field.

Take note of the following:

  • All purchases that have been placed on hold will not be included in a Payment Entry's references table
  • The release date cannot be in the past.
  • You can only block or unblock a purchase invoice if it is unpaid.
  • You can only change the release date if the invoice is unpaid.

4.6 Provisional accounting for expenses (only for Non-Stock Items)

In many situations, a service is received and the expense is incurred but the Purchase Invoicing for that service is done in the subsequent month, so this expense doesn't flow into your monthly financial statements like Profit and Loss as invoicing is still pending. Provisional Accounting helps you address this problem. Below are the steps to set up provisional accounting.

  1. Enable provisional accounting in the company master and set the default provisional account

  1. Make a Purchase Receipt for a non-stock item

Accounting entries against the Purchase Receipt will be as follows

  1. Make a Purchase Invoice against the Purchase Receipt Accounting entries against the Purchase Invoice will be posted as usual

On posting a purchase invoice accounting entries against the purchase receipt will be reversed

  1. Sales Invoice
  2. Item Wise Taxation
  3. Payment Entry
  4. Payment Request
  5. Request For Quotation
  6. Purchase Order
  7. Purchase Receipt

Purchase Invoice - Account Type Error

https://docs.frappe.io/erpnext/purchase-invoice-account-type-error

Question: On saving the Purchase Invoice, I am getting a validation message that Credit To Account must be a Balance Sheet account.

Credit To Account in Purchase Invoice

**Answer: **On submission of a Purchase Invoice, payable is updated towards the Supplier. As per the accounting standards, Payable Account is aligned under Current Liability (credit side of Balance Sheet).

The error message indicates that Account selected in the Credit To field doesn't belong to the Liability Group. Please ensure that Payable Account selected in the Purchase Invoice is located under Liability group.

Purchase Order

https://docs.frappe.io/erpnext/purchase-order

A Purchase Order is a binding contract with your Supplier that you promise to buy a set of items under given conditions.

It is similar to a Sales Order but instead of sending it to an external party, you keep it for internal records.

Home > Buying > Purchasing > Purchase Order

Buying Flow
  1. Prerequisites

Before creating and using a Purchase Order, it is advised that you create the following first:

  1. How to create a Purchase Order

A Purchase Order can be automatically created from a Material Request or Supplier Quotation.

  1. Go to the Purchase Order list, click on New.
  2. Select the Supplier, required by date.
  3. In the items table, select the item by code, you can change the required by date for each item.
  4. Set the quantity and the price will be fetched automatically if set in the Item master.
  5. Set taxes.
  6. Save and Submit.

2.1 Setting Warehouses

  • Set Target Warehouse: Optionally, you can set the default target Warehouse where the purchased Items will be delivered. This will be fetched into the Item table rows.

2.2 Fetching Items from Open Material Requests

Items can be fetched into the Purchase Order automatically from open Material Requests. For this to work, the following steps need to be done:

  1. Select a Supplier in the Purchase Order.
  2. Set default Supplier in the Item form under Item Defaults.
  3. A Material Request needs to be present of type 'Purchase'.
  4. Click on the Get Items from open Material Requests button below the Supplier name. Now a dialog will appear with Material Requests containing Items for which the default Supplier is the same as the one selected in the Purchase Order. On selecting the Material Requests and clicking on Get Items, the Items will be fetched from the Material Requests.

Note: The Get Items from Open Material Requests button is visible as long as the Items table is empty.

  1. Features

3.1 Address and Contact

  • Select Supplier Address: The Supplier's billing address.
  • Select Shipping Address: The Supplier's shipping address from which they'll be sending the items.
  • Address, Shipping Address, Contact, Contact Email will be fetched if saved in the Supplier master.

For India:

  • Supplier and Company GSTIN: The GST Identification Number of your Supplier and your company.
  • Place of Supply: For GST, Place of Supply is necessary. It consists of the state's name and number.

3.2 Currency and Price List

You can set the currency in which the purchase order is to be stored. If you set a Pricing List, then the item prices will be fetched from that list. Ticking on Ignore Pricing Rule will ignore the Pricing Rules set in Accounts > Pricing Rule.

Read about Price Lists and Multi-Currency Transactions to know more.

3.3 Subcontracting or 'Supply Raw Materials'

Setting 'Supply Raw Materials' option is useful for subcontracting where you provide the raw materials for manufacturing an item. To know more, visit the Subcontracting page.

3.4 The Items table

  • Scan Barcode: You can add Items in the Items table by scanning their barcodes if you have a barcode scanner. Read documentation for tracking items using barcode to know more.
  • Quantity and Rate: When you select the Item code, its name, description, and UOM will be fetched. The 'UOM Conversion Factor' is set to 1 by default, you can change it depending on the UOM received from the seller, more in the next section.

'Price List Rate' will be fetched if a Standard Buying rate is set. 'Last Purchase Rate' shows the rate of the item from your last Purchase Order. Rate is fetched if set in the item master. You can attach an Item Tax Template to apply a specific tax rate to the item.

  • Item weights will be fetched if set in the Item master else enter manually.
  • Warehouse: The warehouse where the items will be delivered, will be auto filled if 'Set Target Warehouse' was set in the Purchase Order. Via Blanket Order, a Blanket Order can be linked, to know more click here. A 'Project' can be linked to track progress. A 'BOM' or Bill of Materials can also be linked to track progress.
  • 'Qty as per Stock UOM' will show the current stock as per the UOM set in the Item master. 'Received Qty' will be updated when the items are billed.
  • Accounting Details: This section is auto filled for a Purchase Order. 'Expense Account' is the account against which the PO is billed, and Cost Center is the CC against which the PO is charged.

A “Required By” date on each Item: If you are expecting part delivery, your Supplier will know how much quantity to deliver at which date. This will help you from preventing over-supply. It will also help you to track how well your Supplier is doing on timeliness.

Allow Zero Valuation Rate: Ticking on 'Allow Zero Valuation Rate' will allow submitting the Purchase Receipt even if the Valuation Rate of the Item is 0. This can be a sample item or due to a mutual understanding with your Supplier.

3.5 Purchase UOM and Stock UOM Conversion

You can change your UOM as per your stock requirements in the Purchase Order.

For example, if you have bought your raw material in large quantities with UOM - boxes and wish to stock them in UOM - Nos; you can do so while making your Purchase Order.

  1. Store UOM as Nos in the Item master. Note that the UOM in the Item master is the stock UOM.
  2. In the Purchase Order mention UOM as Box. (Since material arrives in Boxes)
  3. In the Warehouse and Reference section, the UOM will be pulled in as Nos (from the Item form):

Purchase Order - UOM
  1. Mention the UOM conversion factor. For example, (1); If one box has 1 kilo.
  2. Notice that the stock quantity will be updated accordingly.

Purchase Order - UOM

3.6 Taxes and Charges

If your Supplier is going to charge you additional taxes or charge like a shipping or insurance charge, you can add it here. It will help you to accurately track your costs. Also, if some of these charges add to the value of the product you will have to mention them in the Taxes table.

Visit the Purchase Taxes and Charges Template page to know more about taxes.

The total taxes and charges will be displayed below the table.

To add taxes automatically via a Tax Category, visit this page.

Make sure to mark all your taxes in the Taxes and Charges table correctly for an accurate valuation.

Shipping Rule

A Shipping Rule helps set the cost of shipping an Item. The cost will usually increase with the distance of shipping. To know more, visit the Shipping Rule page.

Purchase Order Taxes

For example, you buy Items worth X and sell them for 1.3X. So, your Customer pays 1.3 times the tax you pay your Supplier. Since you have already paid tax to your Supplier for X, what you owe your government is only the tax on 0.3X.

This is very easy to track in ERPNext since each tax head is also an Account. Ideally you must create two Accounts for each type of VAT you pay and collect, “Purchase VAT-X” (asset) and “Sales VAT-X” (liability), or something to that effect.

3.7 Additional Discount

Other than recording discount per item, you can add a discount to the whole purchase order in this section. This discount could be based on the Grand Total i.e., post-tax/charges or Net total i.e., pre-tax/charges. The additional discount can be applied as a percentage or an amount.

Read Applying Discount for more details.

3.8 Payment Terms

Sometimes payment is not done all at once. Depending on the agreement, half of the payment may be made before shipment and the other half after receiving the goods/services. You can add a Payment Terms template or add the terms manually in this section.

Read Payment Terms to know more.

3.9 Terms and Conditions

In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

3.10 Print Settings

Letterhead

You can print your request for quotation / purchase order on your company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the items table. This can be seen when your print.

Titles of your documents can be changed. Know more here.

The seller's Additional Discount, Payment Terms, Terms and Conditions can be recorded in your Purchase Order.

3.11 More Information

This section shows the status of the Purchase Order, percentage of items received, and percentage of items billed. If this is an Inter-Company Order, the Sales Order can be linked here.

3.12 After Submitting

Once you “Submit” your Purchase Order, you can trigger actions these actions:

  • You can Add, Update, Delete items in the Purchase Order by clicking on the Update Items button. However, you cannot delete items which has already been received.
  • Status: Once submitted, you can hold a Purchase Order or Close it.
  • Create: From a submitted Purchase Order, you can create the following:

  1. Request For Quotation
  2. Purchase Taxes and Charges Template
  3. Purchasing In Different Unit
  4. Amending Purchase Order After Submit

Purchase Receipt

https://docs.frappe.io/erpnext/purchase-receipt

Purchase Receipts are made when you accept Items from your Supplier usually against a Purchase Order.

You can also accept Purchase Receipts directly without the need for a Purchase Order. To do this, set Purchase Order Required as “No” in Buying Settings.

To access the Purchase Receipt list, go to:

Home > Stock > Stock Transactions > Purchase Receipt

Purchase Receipt flow

1. Prerequisites

Before creating and using a Purchase Receipt, it is advised that you create the following first:

  • Purchase Order

Note: From version-13 onwards we have introduced immutable ledger which changes the rules for cancellation of stock entries and posting backdated stock transactions in ERPNext. Learn more here.

2. How to create a Purchase Receipt

A Purchase Receipt is usually created from a Purchase Order. In the Purchase Order, click on Create > Purchase Receipt.

To create a Purchase Receipt manually (not recommended), follow these steps:

  1. Go to the Purchase Receipt list, click on New.
  2. The Supplier name and the Items can be fetched from the Purchase Order by clicking on 'Get Items from > Purchase Order'.
  3. You can set the Accepted Warehouse for all items in this Purchase Receipt. This is fetched if set in Purchase Order.
  4. In case any Items are defective, set the Rejected Warehouse where those Items will be stored.
  5. Select the Item and enter the quantity in the Items table.
  6. The rate will be fetched and the amount will be calculated automatically.
  7. You can expand the item row to change the Accepted Warehouse for an Item.
  8. Save and submit. Purchase Receipt

You can also add a 'Supplier Delivery Note' to the Purchase Receipt if your Supplier has added some notes. Using the 'Edit Posting Date and Time' checkbox you can edit the posting time and date of the Purchase Receipt. By default, the date and time are set when you click on the New button.

Is Return: Tick this checkbox if you're returning Items that were not accepted to your Warehouse.

2.1 Statuses

These are the statuses a Purchase Receipt can be in:

  • Draft: A draft is saved but yet to be submitted to the system.
  • To Bill: Yet to be billed using a Purchase Invoice.
  • Completed: Submitted and received all the Items.
  • Return Issued: All the Items have been returned.
  • Cancelled: Cancelled the Purchase Receipt.
  • Closed: The purpose of the Close is to manage short-closing. For example, you ordered 20 qty, but closing at 15 qty. The remaining 5 is not to be received or billed.

3. Features

3.1 Currency and Price List

The currency of the Purchase Receipt is shown in this section, it is fetched from the Purchase Order. The item prices will be fetched from the set Price list. Ticking on Ignore Pricing Rule will ignore the Pricing Rules set in Accounts > Pricing Rule.

Since the incoming Item affects the value of your inventory, it is important to convert it into your base currency if you have ordered in another Currency. You will need to update the Currency Conversion Rate if applicable.

Read about Price Lists and Multi-Currency Transactions to know more.

3.2 Warehouse details

The following Warehouses set will apply to all Items in the Items table of the Purchase Receipt. You can change the Warehouses for individual Items via the table.

  • Accepted Warehouse: This is the Warehouse in which you'll accept and store the incoming Items. Usually, this is the 'Stores' Warehouse.
  • Rejected Warehouse: This is the Warehouse in which you'll keep the rejected Items which were either defective or not up to the quality mark.

Subcontracting

  • Raw Materials Consumed: In case you're subcontracting, select 'Yes' to consume the Raw Materials from the vendor. Read Subcontracting to know more.

3.3 Items table

  • Barcode: You can track Items using barcodes.
  • Scan Barcode: You can add Items in the Items table by scanning their barcodes if you have a barcode scanner. Read documentation for tracking items using barcode to know more.
  • The Item Code, name, description, Image, and Manufacturer will be fetched from the Item master.
  • Received and Accepted: Set the received, accepted and rejected quantity. The UoM is fetched from the Item master. You will need to update the “UOM Conversion Factor” if your Purchase Order for an Item is in a different Unit of Measure (UOM) than what you stock (Stock UOM).

Purchase Receipt Items table
  • Rate: The Rate is fetched if set in the Price List and the total Amount is calculated.
  • Item Tax Template: You can set an Item Tax Template to apply a specific Tax amount to this particular Item. To know more, visit this page.
  • The Item Weight details per unit and Weight UOM are fetched if set in the Item master.
  • Warehouse and Reference: You can set the accepted and rejected Warehouses and also add a Quality Inspection, see next section.
  • Serial No, Batch No, and BOM: If your Item is serialized or batched, you will have to enter Serial Number and Batch in the Items table. You are allowed to enter multiple Serial Numbers in one row (each on a separate line) and you must enter the same number of Serial Numbers as the quantity.

There are separate fields for entering Serial Numbers of both accepted and rejected Items here. A Batch Number can also be set if you're storing a batch of plastic medicines for example.

Ticking on 'Allow Zero Valuation Rate' will allow submitting the Purchase Receipt even if the Valuation Rate of the Item is 0. This can be a sample item or due to a mutual understanding with your Supplier.

  • You can link a BOM here if the Item is being subcontracted. Linking the BOM here will affect the Stock ledger, i.e. the raw material stock will be deducted from the Supplier Warehouse.

Note: The Item has to be serialized or batched for these features to work. If the Item is serialized a popup will appear where you can enter the Serial Numbers.

  • Accounting Dimensions help to tag each transaction with different Dimensions without the need for creating new Cost Centers. You need to create Accounting Dimensions first, to know more, visit this page.
  • Page Break will create a page break just before this item when printing.

3.4 Tracking Quality Inspection

If for certain Items, it is mandatory to record Quality Inspections (if you have set it in your Item master), you will need to update the “Quality Inspection" field. The system will only allow you to “Submit” the Purchase Receipt if you update the “Quality Inspection”.

After enabling Inspection Criteria in the Item form for Purchase and attaching a Quality Inspection Template there, Quality Inspections can be recorded in Purchase Receipts.

To know more, visit the Quality Inspection page.

Quality Inspection

3.5 Raw Materials Consumed

  • The Consumed Items table contains the Raw Materials consumed by the Supplier in order to receive the Finished Item.
  • The Get Current Stock button will fetch the current stock of the Consumed Items from the Supplier Warehouse.
Purchase Receipt

3.6 Taxes and Valuation

The Taxes and Charges will be fetched from the Purchase Order.

Visit the Purchase Taxes and Charges Template page to know more about taxes.

The total taxes and charges will be displayed below the table.

To add taxes automatically via a Tax Category, visit this page.

Make sure to mark all your taxes in the Taxes and Charges table correctly for an accurate valuation.

Shipping Rule

A Shipping Rule helps set the cost of shipping an Item. The cost will usually increase with the distance of shipping. To know more, visit the Shipping Rule page.

3.7 Additional Discount

Any additional discounts to the whole order can be set in this section. Read Applying Discount for more details.

3.8 More Information

The Status of the Purchase Receipt is shown here and at the top. The various statuses are: Draft, To Bill, Completed, Canceled, and Closed. This section also shows % Amount Billed, i.e. the percentage of amount for which Sales Invoices are created.

3.9 Printing Settings

Letterhead

You can print your Purchase Receipt on your company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the items table. This can be seen when your print.

Purchase Receipt headings can also be changed when printing the document. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

3.10 After Submitting

A Stock Ledger Entry is created for each Item adding the Item in the Warehouse by the “Accepted Quantity” If you have rejections, a Stock Ledger Entry is made for each Rejection. The “Pending Quantity” is updated in the Purchase Order.

After submitting the Purchase Receipt, the following can be created:

  • Purchase Return
  • Stock Entry
  • Purchase Invoice
  • Retaining Sample Stock

Purchase Receipt submit

3.11 Returning a Purchase Order

Once you've received a Purchase Order using a Purchase Receipt, you can create a return entry in case the Item needs to be returned to the Supplier. To know more, visit the Purchase Return page.

3.12 Skipping Purchase Receipt

If you don't want to create a Purchase Receipt after a Purchase Order and directly want to create a Purchase Invoice, enable the feature for it in Buying Settings.

Changing the value of Items post Purchase Receipt:

Sometimes, certain expenses that add to the total of your purchased Items are known only after a while. Common example is, if you are importing the Items, you will come to know of Customs Duty, etc only when your “Clearing Agent” sends you a bill. If you want to attribute this cost to your purchased Items, you will have to use the Landed Cost Voucher. Why “Landed Cost”? Because it represents the charges that you paid when it landed in your possession.

  1. Delivery Note
  2. Purchase Order
  3. Purchase Invoice
  4. Supplier
  5. Landed Cost Voucher

Purchase Return

https://docs.frappe.io/erpnext/purchase-return

A purchased Item being returned is known as a Purchase Return.

With the Purchase Return feature, you can return products to the Supplier. This may be on account of a number of reasons like defects in goods, quality not matching, the buyer not needing the stock, etc.

1. Prerequisites

Before creating and using a Purchase Return, it is advised that you create the following first:

Or

Purchase Receipt

2. How to create a Purchase Return

  1. First open the original Purchase Receipt, against which supplier delivered the Items.

Original Purchase Receipt
  1. Click on 'Create > Return', it will open a new Purchase Receipt with 'Is Return' checked. Items, Rate, and taxes will negative numbers.

Return Against Purchase Receipt
  1. On submission of Return Purchase Return, the system will decrease item quantity from the mentioned Warehouse. To maintain correct stock valuation, stock balance will also go up according to the original purchase rate of the returned items.

Return Stock Ledger
  1. In the Accounting Ledger, the Stock In Hand account will be credited and the Stock Received but Not Billed account will be debited.

Return Stock Ledger

If Perpetual Inventory enabled, the system will also post accounting entry against warehouse account to sync warehouse account balance with stock balance as per Stock Ledger.

3. Impact on Stock Return via Purchase Receipt

On Creating a Purchase Return against a Purchase Receipt:

The Returned Quantity in the original Purchase Receipt along with any Purchase Order linked to it, is updated.

The original Purchase Receipt's status is changed to Return Issued if 100% returned:

Return Issued
  1. Sales Return
  2. Perpetual Inventory

Purchase Taxes and Charges Template

https://docs.frappe.io/erpnext/purchase-taxes-and-charges-template

Purchase Taxes and Charges may be applied to any item you buy.

The Purchase Taxes and Charges Template is similar to the Sales Taxes and Charges Template. The templates created from this form can be used in Purchase Orders and Purchase Invoices for internal records.

For Tax Accounts that you want to use in the tax templates, you must set the Account Type field as 'Tax' for that particular account.

To access Purchase Taxes and Charges Template, go to:

Home > Buying > Settings > Purchase Taxes and Charges Template

1. How to add Purchase Taxes/Charges via a template

Before creating a new template, note that templates are already created for many of the commonly used taxes.

  1. Click on New.
  2. Enter a title name for the Tax.
  3. Under type, set on what the tax will be calculated and the tax rate. There are five options under type for which tax will be calculated.
  4. Actual: On the actual amount of each item.
  5. On Net Total: On the grand total of all the items.
  6. On Previous Row Amount: This is for compounding the charges. For example, cess charges over the amount to which tax was already applied in the previous row.
  7. On Previous Row Total: Same as above but applied on the total bill and not just the amount of an item.
  8. Select an account head which has pre set tax rates or create your own.
  9. Selecting default will apply this template by default for new Purchase transactions.
  10. Save.
Purchase taxes

Is Inter State: For India. On selection of a customer in Sales Invoice or Delivery Note, if the GST codes of place of supply and customer shipping address don't match, the template with 'Is Inter State' ticked will be set as the taxes template. If the place of supply and shipping address are the same, the default taxes template will be applied. This also applies to Purchase Invoice, on selection of Supplier, the templates are set depending on the addresses. For example, IGST.

2. Features

2.1 Purchase Taxes and Charges table

Consider Tax or Charge for: Total - for the total of all items. Valuation - for each item. Valuation and total - apply tax/charge to both. Check out this article to know the difference.

Add or Deduct: Whether you want to add or deduct the tax from the item.

Reference Row #: If tax is based on "Previous Row Total" you can select the row number which will be taken as a base for this calculation (default is the previous row).

Purchase taxes table

Is this Tax included in Basic Rate?: If checked, the tax amount will be considered as already included in the Print Rate / Print Amount.

Account Head: The Account ledger under which this tax will be booked. If you select VAT or any other preset heads, the rate will be automatically filled.

Cost Center: If the tax/charge is an income (like shipping) or expense it needs to be booked against a Cost Center.

Description: Description of the tax (that will be printed in invoices/quotes).

Rate: The Tax rate, eg: 14 = 14% tax.

Amount: The Tax amount to be applied, eg: 100.00 = ₹100 tax.

  1. Purchase Order
  2. Buying Settings

Purchase Transactions

https://docs.frappe.io/erpnext/purchase-transactions

Purchase transactions in ERPNext encompass the various activities involved in acquiring goods or services from suppliers.

These transactions typically include creating purchase orders to specify the items or services needed, receiving goods against these orders to update inventory levels, and processing purchase invoices for payment. Additionally, ERPNext facilitates communication with suppliers, tracks purchase history, and integrates with accounting modules for seamless financial management.

Purchasing an Asset

https://docs.frappe.io/erpnext/purchasing-an-asset

Purchasing an asset in ERPNext involves creating the asset record, optionally automating asset creation from a purchase, and following the purchase and accounting cycle.

Assets can be purchased manually or automatically created when receiving an item in a Purchase Receipt or Purchase Invoice. This ensures accurate asset tracking and proper accounting entries.

1. Prerequisites

Before purchasing a new asset, ensure the following are configured:

  • Asset Category is created
  • Item is created with ‘Is Fixed Asset’ enabled
  • Optional: Enable ‘Auto Create Assets on Purchase’ in the item master if you want assets to be created automatically upon receipt

Item Master

2. How to Purchase an Asset

  1. Follow the standard purchase cycle for the asset:
  • Create a Purchase Order (if required)
  • Receive the item via Purchase Receipt
  • Submit a Purchase Invoice
  1. Enter the asset location in the Items table of the Purchase Receipt or Purchase Invoice.
  2. On submission of the Purchase Receipt:
  • If Auto Create Assets is enabled, ERPNext will automatically create the Asset record.
  • You can then update other details manually in the Asset form.

Auto create asset on purchase

2.1 Accounting Entries

  1. With Capital Work in Progress (CWIP) Enabled
  • On submitting the Purchase Receipt, the CWIP account is debited instead of the asset account.
  • This represents that the asset is purchased but not yet available for use.
  • When the asset becomes available for use, CWIP is credited, and the corresponding asset account is debited.
  1. With CWIP Disabled
  • The receipt entry is posted directly to the asset accounts defined in the Asset Category.
  1. Temporary Liability Account
  • ERPNext uses “Asset Received But Not Billed” (a liability account) when submitting a Purchase Receipt.
  • On submitting the Purchase Invoice, this account is debited/reversed.

  1. Purchase Receipt
  2. Purchase Invoice

Purchasing in Different UoM

https://docs.frappe.io/erpnext/purchasing-in-different-unit

Each item has a stock unit of measurement (UoM) associated with it. For example, the UoM of pen could be numbers (Nos) and sand could be stocked kg. However, when we place an order with a supplier, the UoM for an item could change. Like we can order 1 set/box of pens, or one truck of sand to our supplier. When creating a purchase transaction, you can change Purchase UoM for an item.

Scenario:

Item Pen is stocked in Nos, but purchased in Box. Hence, we will make a Purchase Order for a Pen in a box.

Step 1: Edit UoM in the Purchase Order

In the Purchase Order, you will find two UoM fied.

  • UoM
  • Stock UoM

In both fields, the default UoM of an item will be fetched by default. You should edit UoM field, and select Purchase UoM (Box in this case). Updating Purchase UoM is mainly for the reference of the supplier. In the print format, you will see item qty in the Purchase UoM.

Item Purchase UoM

Step 2: Update UoM Conversion Factors

In one Box, if you get 20 Nos. of Pen, UoM Conversion Factor will be 20.

Item Conversion Factor

Based on the Qty and Conversion Factor, qty will be calculated in the Stock UoM of an item. If you purchase just one Box, then the Qty in the stock UoM will be set as 20.

Purchase Qty in Default UoM

Stock Ledger Posting

Irrespective of the Purchase UoM selected, stock ledger posting will be done in the Default UoM of an item. Hence, you should ensure that the conversion factor is entered correctly while purchasing an item in a different UoM.

Print Format in Purchase UoM

Set Conversion Factor in Item

In the Item master, under the Purchase section, you can list all the possible UOM purchases of an item, with its UoM Conversion Factor.

Purchase UoM master

Purpose of Stock Delivered But Not Billed

https://docs.frappe.io/erpnext/purpose-of-stock-delivered-but-not-billed

Stock Delivered but Not Billed

The Stock Delivered but Not Billed account is an adjustment account used to record the value of delivered items before a bill has been raised. Rather than debiting an expense account directly at the time of delivery, the system routes the entry through this intermediate account to keep the sales cycle accounting clean and consistent.

The balance in this account at any point represents the value of items for which Delivery Notes have been submitted, but Sales Invoices have not yet been raised.

How It Works

On Delivery Note submission: The warehouse's Stock In Hand account is credited, and the full stock value is debited to the Stock Delivered but Not Billed account.

Example: A Delivery Note worth ₹400 → Stock In Hand credited ₹400, Stock Delivered but Not Billed debited ₹400.

On Sales Invoice submission: The Stock Delivered but Not Billed account is credited as a reversal, and the Cost of Goods Sold (COGS) account is debited for the same amount.

Example: Sales Invoice raised for ₹400 → Stock Delivered but Not Billed credited ₹400, COGS debited ₹400.

Stock Delivered But Not Billed account configuration

Configuration

  • The Stock Delivered but Not Billed account can be configured at the Company level.
  • To exclude this account from Sales Return entries, enable the Disable Stock Delivered but Not Billed in Sales Return checkbox in the Company.

Backdated Entries and Reposting

If a backdated entry changes the valuation rate on a Delivery Note, the system automatically updates the billed value on the corresponding Sales Invoice through reposting. This ensures that the accounting entries across the Delivery Note and Sales Invoice remain consistent throughout the entire sales cycle.

Putaway Rule

https://docs.frappe.io/erpnext/putaway-rule

A Putaway Rule defines a Warehouse Assignment Strategy for incoming stock.

A Putaway Rule is uniquely defined for an Item-Warehouse combination in a Company. It takes Warehouse Capacity and Priority into consideration.

In Purchase Receipts and Stock Entries (Material Receipt & Material Transfer), the Putaway Rules are applied and Items are auto-assigned to Warehouses based on the given strategy.

This is particularly useful for capacity management in large Warehouses with multiple locations.

To access a Putaway Rule, go to:

Home > Stock > Stock Transactions > Putaway Rule

1. Prerequisites

Before creating and using a Putaway Rule, it is advised that you create the following first:

2. How to create a Putaway Rule

Go to the Putaway Rule list, click on New.

Unsaved Putaway Rule

Set the Company and Select an Item.

Select the Warehouse on which this rule is applicable.

Set the Capacity. You can also select a UOM if you want to set the Capacity in a different UOM. The Capacity in Stock UOM will be set automatically.

Multi UOM Putaway Rule

Set the Priority. This can begin from 1 onwards, 1 being the highest priority.

Save.

You can additionally Disable a Putaway Rule as well.

The rule is unique to each Item-Warehouse combination.

3. How Putaway is strategized

  1. Here the strategy is purely based on Capacity and Priority.
  2. Warehouses will be auto-assigned until they reach full capacity.
  3. Priority will be considered first. Followed by free space. If two rules have the same priority, the rule with more free space available will be assigned.
  4. If you are running at full capacity (no free space in any Warehouse), ERPNext will let you know.

4. How it works

As mentioned before, the Putaway Rules are applied on Purchase Receipts and Stock Entries (Material Receipt & Material Transfer).

A checkbox called Apply Putaway Rule will allocate items to Warehouses based on the Putaway Rules.

Apply Putaway Rule checkbox

Putaway Rules are applied on checking this checkbox. They are also re-applied on save if this checkbox is enabled.

Let us see the same in action:

Here is a Purchase Order with a requirement of 5 Cartons (60 Nos) of Mineral Water.

Purchase Order

Two active Putaway Rules have been created below with capacity 4 Cartons (48 Nos) each. One has a higher priority than the other.

Active Putaway Rules List

A Purchase Receipt is created from this Purchase Order.

On checking Apply Putaway Rule, one row of 5 Cartons is split and assigned according to the rules.

Putaway Rules applied in a Purchase Receipt

First, 4 out of 5 Cartons are accommodated in the 'Finished Goods - UPI' Warehouse. Once this Warehouse is at capacity, it assigns the rest (1 Carton) to the 'Stores - UPI' Warehouse.

5. Warehouse Capacity Summary

The Warehouse Capacity Summary Report shows Warehouse capacities and their respective stock levels.

Only Warehouses having Putaway Rules will be listed here. The Edit Capacity button gives provision to edit the Putaway Rule capacity.

Warehouse Capacity Summary

6. Types of Putaway Application

6.1. Direct Putaway

  1. The example in the previous section explains Direct Putaway.
  2. It is, essentially, directly assigning incoming stock to certain Warehouses based on a strategy.
  3. This can easily be exercised via a Purchase Receipt.

6.2. Indirect (Combined) Putaway

  1. Stock is often received into temporary or staging Warehouses first.
  2. From here it is placed into appropriate locations within the Warehouse.
  3. This is called Indirect or Combined Putaway.
  4. To simulate this within ERPNext, a simple Purchase Receipt can be created into the temporary Warehouse, without Putaway applied.
  5. From here, a Stock Entry (Material Transfer) can be done, where Putaway Rules can be applied similar to Purchase Receipts.
  1. Purchase Receipt
  2. Stock Entry

Quality Feedback Template

https://docs.frappe.io/erpnext/quality-feedback-template

For creating the Quality Feedback first you must decide the parameters by creating the Quality Feedback Template. The templates generally contain the name the template, scope and the different parameters to be entered. The different parameters can be decided on the basis of different occasions and survey.

To access the Quality Feedback Template, go to:

Home > Quality > Quality Feedback Template

1. How to create a Quality Feedback Template

  1. Go to the Quality Feedback Template list, click on New.
  2. Enter a name for the template.
  3. In the Parameters table, list down the various processes/parameters on which you want the user to rate and give the feedback.
  4. Save.

Quality Inspection Summary

https://docs.frappe.io/erpnext/quality-inspction-summary

To access the Quality Inspction Summary, go to:

Home > Manufacturing > Reports > Quality Inspction Summary

Task

This report will give information about the Quality Inspections as well as the status of the Quality Inspections like Accepted or Rejected.

Quality Inspection

https://docs.frappe.io/erpnext/quality-inspection

In ERPNext, you can mark your incoming or outgoing products for Quality Inspection.

To access this feature go to:

Home > Stock > Tools > Quality Inspection

  1. Prerequisites

Before creating and using a Quality Inspection, it is advised that you do the following first:

  • Create an Item.
  • Enable Quality Inspection Criteria in the Item master. On enabling either checkboxes, submission of a stock delivery/receipt document will be allowed only after a Quality Inspection is done against it:
  • (Optional) Create a Quality Inspection Template. You can add inspection parameters and acceptance criteria in the template, which can be easily fetched into any Quality Inspection. After saving the template, you can set this template in the Item Master (as shown above).
Enable Quality InspectionQuality Inspection Template
  1. How to create a new Quality Inspection
  1. From a Draft Purchase/Subcontracting Receipt or Delivery Note, go to the Item table's Quality Inspection field and click on Create a New Quality Inspection. You can also create a Quality Inspection for Job Card in order to monitor the quality of in-process items. In this case, you can create a Quality Inspection for the Production Item in Job Card.
  2. Select the inspection type whether Incoming (Purchase), Outgoing (Sales), or In Process (Manufacturing).
  3. Select the Reference Document Type whether Purchase Receipt, Purchase Invoice, Delivery Note, Sales Invoice, Stock Entry, or Job Card.
  4. Select the Item and set the sample size which will be inspected. Note that only Items having Inspection Criteria enabled in the Item master, will be fetched.
  5. The Quality Inspection Template set in the Item master will be fetched.
  6. You can change who it's inspected by and also add who it's verified by.
  7. Any additional Remarks about the Inspection can be added.
  8. Save. Set the Status. Submit.

Quality Inspection
  1. Features

A single Quality Inspection consists of many Quality Checks (Parameters) within it. Each of these checks could be Numeric, Non-numeric or Formula Based.

3.1 Numeric Quality Checks

Numeric Quality Checks include all checks that require number-based readings and acceptance criteria.

E.g. checking if a reading is in a certain range.

By default the checks are numeric. There are two fields: Minimum Value and Maximum Value, to define a range that each reading must be in. These fields can be set in the Quality Inspection Template once and be simply fetched into the Quality Inspection.

Numeric Quality Check

If any of the readings entered are not within this range, the status on the row will be set to 'Rejected' automatically on Save.

3.2 Non-numeric (Value-Based) Quality Checks

Non-numeric Quality Checks include checks that require alphabetical values or those that do not require any mathematical calculations.

E.g. checking if the color is white in a color quality check, Yes/No values for certain parameters, etc.

For Non-numeric checks, enable the 'Non-numeric' checkbox. You will notice the field Acceptance Criteria Value and the section Value-Based Inspection are visible.

Enter the field Reading Value. The Acceptance Criteria Value can be set in the Quality Inspection Template once and then be fetched into the Quality Inspection.

Non-numeric Quality Check

If the Reading Value does not match the Acceptance Criteria Value, the status on the row will be set to 'Rejected' automatically on Save.

3.3 Formula-Based Quality Checks

Formula-Based Quality Checks are useful for more complex scenarios where just specifying a range or an acceptance value is not enough.

E.g. checking if the grade of a material is A/B/C, checking if the mean of some readings is within a certain range, etc.

Formula-Based Quality Checks are applicable to Numeric and Non-numeric Quality Checks.

Enable the 'Formula Based Criteria' checkbox to perform a Formula-Based Quality Check. You will then notice a field called Acceptance Criteria Formula where you can specify a formula that determines whether a certain check is Accepted or Rejected. This formula can be set in the Quality Inspection Template once and then be fetched into the Quality Inspection.

Acceptance Criteria Formula

This formula depends on the many Reading fields in the Readings table.

For Numeric readings, , and so on are accepted in the formula.

reading_1reading_2

For Non-numeric readings, only is accepted in the formula.

reading_value

Here are some examples of formulas:

# Numeric
(reading_1 + reading_2) < 10 # sum of both readings is less than 10
(reading_1 + reading_2) <= 10 # sum of both readings is less than or equal to 10
mean < 15  # mean of non empty numeric readings is less than 15
(reading_1 * 2) < 20 # Reading 1 multiplied by 2 is less than 20
(reading_1) / 2 < 20 # Reading 1 divided by 2 is less than 20

# Non-numeric
reading_value in ("A", "B", "C") # Reading Value is either A / B / C
reading_value != "Red" # Reading Value is not equal to Red

Update the readings and Save. The Status field in the Readings table rows is set automatically based on the formula for acceptance.

3.3 Manual Inspection

So far, all the Quality Checks have automatic acceptance/rejection on Save. In the real world, there could be cases where a check is rejected but yet will be accepted because there is some tolerance.

Such cases will require the user to determine the row-level status. To avoid any system interference in such checks, enable the 'Manual Inspection' checkbox. You can now set the status manually and it will be untouched on Save.

Manual Inspection

Here Reading 1 is outside the defined range, this check would be rejected. But, since it is not very far from 0.153 we accept it manually.

The status for the entire Quality Inspection can then be decided by the user.

  1. Video
  1. Purchase Receipt
  2. Delivery Note
  3. Stock Entry
  4. Sales Invoice
  5. Purchase Invoice
  6. Job Card

Introduction

https://docs.frappe.io/erpnext/quality-management

Quality management in ERPNext focuses on maintaining high standards throughout the production and procurement processes.

  • Quality Checks: Implement checks at various stages to ensure products and materials meet quality standards.
  • Inspection Templates: Standardize quality assessments with predefined criteria and parameters.
  • Non-Conformance Management: Track and address quality issues, managing corrective actions to prevent recurrence.
  • Batch Tracking: Monitor and manage quality by tracking specific batches of products.
  • Supplier Quality Management: Evaluate and manage the quality of materials from suppliers.
  • Reporting and Analytics: Generate reports and analyze data to monitor quality performance.

These features help businesses ensure consistent product quality, improve operational efficiency, and enhance customer satisfaction.

Quality Action

https://docs.frappe.io/erpnext/quality_action

A Quality Action is taken on a Quality Review to correct unsatisfactory results or prevent them from happening.

Quality Action is a standard feature to allow implementation of corrective and preventive actions. This will meet compliance with industry regulations including GMP, ISO 9001 and 14001, TSCA, REACH, etc.

Quality Action workflows provide a controlled environment and reduce the risk of repeat issues by ensuring that defined solutions and processes are met.

Quality Actions can be initialized for a Quality Goal or for a Customer Feedback which may not meet the expected quality standards. Depending on that a Corrective or Preventive Action can be started.

To access Quality Action, go to:

Home > Quality > Review and Action > Quality Action

1. Prerequisites

Before creating and using a Quality Action it is advised to create the following first:

2. How to create a Quality Action

  1. Go to the Quality Action list, click on New.
  2. Select whether it's a Corrective or Preventive action. This indicates whether the action is being scheduled for Corrective or for Preventive Purpose.
  3. Select the Document Type whether a Quality Review or a Quality Feedback.
  4. Select the actual Quality Review or Feedback under Document Name.
  5. Enter a Resolution proposed for the problem in the Resolution field.
  6. Save.

The Status field indicates whether the Quality Action is Open and ongoing or Closed.

Quality Feedback

https://docs.frappe.io/erpnext/quality_feedback

Quality Feedback is the information that a Customer expresses about the satisfaction or dissatisfaction about the products or services you offer.

Quality Feedback has different fields to rate different parameters. The Customer/User can easily give their feedback by selecting their template to rate on different parameters and also provide qualitative feedback on these parameters.

You can also fetch the parameters using a Quality Feedback Template. The templates store preset information for you to select in the Quality Feedback.

If the Feedback is not as per expectations, a Quality Action may be initialized on the basis of the seriousness of the Feedback.

To access Quality Feedback, go to:

Home > Quality > Feedback > Quality Feedback

1. How to create a Quality Feedback

  1. Go to the Quality Feedback list, click on New.
  2. Select whether Feedback is by a Customer or a User (ERPNext account User).
  3. Select the particular Customer or User.
  4. Selecting a Quality Feedback Template will automatically populate the parameters for the Quality Feedback.
  5. The date will be automatically set to the current date.
  6. The Parameters table has the following columns: Parameter: Various Parameters that are pre-defined in the Quality Feedback Template you create. Rating: Rating for a parameter from 1 to 5. Feedback: Feedback based on the given Rating.
  7. Save.

Quality Goal

https://docs.frappe.io/erpnext/quality_goal

It is a collection of individual metrics that helps to define your quality goals. It is a basic quality management process to establish a set of quality objectives.

You can create a Quality Goal for your business having multiple Quality Objectives. Different Quality Objectives for a Goal can have definite numeric target or target measured in terms of completion status(yes or no). It is monitored based on Frequency which is set for that Goal.

If you set the frequency, a Quality Review document will be created automatically periodically where you can maintain the actual performance measures.

To access the Quality Goal list, go to:

Home > Quality > Quality Goal

1. How to Create a Quality Goal

  1. Go to the Quality Goal list, click on New.
  2. Enter a name for the goal.
  3. Select a Quality Procedure to be followed to achieve the Goal.
  4. Created By is the Person responsible for the creation of the Goal.
  5. Enter a Monitoring Frequency from 'Daily', 'Weekly', 'Monthly', or 'Quarterly'. Select 'None' if no monitoring is needed.

In the Objectives table, enter:

  1. The Objectives which consist the various Objectives that need to be completed to meet the a Quality Goal.
  2. The Target which consists of the numeric target value of an Objective that is to be met.
  3. The Unit of Measurement to measure the Target. Eg: Leads, Hours, etc.

The Revision field shows The number of times the document was saved.

Creating a Quality Goal:

  1. Quality Procedure
  2. Quality Review

Quality Meeting

https://docs.frappe.io/erpnext/quality_meeting

It is an assembly of people for a particular purpose or agenda, especially for formal discussion about Quality aspects.

Quality Meetings are conducted to review the Quality Reviews that have been generated. The minutes (summary) of these meetings would include the discussion on the various Quality Reviews.

To access Quality Meeting, go to:

Home > Quality > Meeting > Quality Meeting

1. How to Create a Quality Meeting

  1. Go to the Quality Meeting list, click on New.
  2. Enter an Agenda. It is a list of meeting activities in the order in which they are to be taken up.
  3. In the Minutes table, select the Quality Review, Action, Feedback discussed inthe meeting along with the references to the appropriate documents.
  4. Save.

The Status of the Meeting can be set to Closed once the agenda is done.

Quality Procedure

https://docs.frappe.io/erpnext/quality_procedure

A Quality Procedure is a Standard Operating Procedure (SOP) used as a reference to carry out routine actions

A standard operating procedure (SOP) is a set of step-by-step instructions compiled by an organization to help the employees execute routine operations. SOPs aim to achieve efficiency, quality output and uniformity of performance while reducing miscommunication and failure to comply with industry regulations.

A Quality Procedure can be of two types:

  1. A Procedure consisting of simple steps that you must follow to achieve a Quality Goal
  2. A procedure having sub-Procedures which may also have its own steps

To access the Quality Procedure list, go to:

Home > Quality > Goal and Procedure > Quality Procedure

How to create a Quality Procedure

  1. Go to the Quality Procedure list, click on New.
  2. Enter a name for the Quality Procedure.
  3. In the Processes table, enter Process Descriptions.
  4. Child Procedure: If the Quality Procedure being created a is a parent procedure that contains sub-procedures, link the sub-procedure here. On doing this, the current procedure becomes a parent and the 'Is Group' checkbox is enabled.
  5. Save. Quality Procedure can also be saved without entering the Process descriptions if the title is self explanatory.

The 'Parent Procedure' is linked to the child procedure. For example 'Issue Classification' needs to be done before a resolution and hence 'Issue Resolution' is the parent here:

Features

1. Using Quality Procedure in Quality Goal

Once a Quality Procedure is created, it can be used in a Quality Goal:

2. Sub Procedures

Process can either be just a instruction or a different Quality Procedure. You can link a Quality Procedure as a sub-procedure to another one:

Quality Review

https://docs.frappe.io/erpnext/quality_review

A Quality Review is a record of the performance against Quality Goal at regular intervals.

A Quality Review is an inspection with a specific structure, defined roles, and procedure designed to ensure a product's completeness and adherence to quality standards. The Quality Review is used to check if all Objectives of a Quality Goal have been achieved.

To access the Quality Review list, go to:

Home > Quality > Review and Action > Quality Review

1. Prerequisites

Before creating and using a Quality Review it is advised to create the following first:

2. How to Create a Quality Review

  1. Go to the Quality Review list, click on New.
  2. Select a Quality Goal which is to be Reviewed.
  3. In the Review section of the Reviews table, leave a review about a Quality Objective.
  4. Save.

Note: If the Quality Procedure is linked to the Quality Goal, the Quality Procedure will be fetched in the Quality Review.

You can also add some notes in the 'Additional Information' section.

3. Features

Periodic Auto Creation

if you have set the frequency of review in your Quality Goal, then the Quality Review will automatically be created and its status will be set to "Open". The quality manager can then check open reviews and complete the inspection.

4. Next Steps

After you have completed a Quality Review, you can create a Quality Action against it if you want to record any corrective or preventive actions

Quick Stock Balance

https://docs.frappe.io/erpnext/quick-stock-balance

Quick Stock Balance is a tool that can be used to quickly retrieve the current stock balance (quantity) and value of an item, in the specified warehouse, on the specified date.

It comes in handy during audits, while verifying stock details before transactions, etc.

To access this tool, go to:

Home > Stock > Tools > Quick Stock Balance

1. Using Quick Stock Balance

Item and Warehouse are the basic fields required to fully utilize Quick Stock Balance. Item Barcode can also be used to fetch stock details.

Quick Stock Balance

You can opt to select a different warehouse or date. The stock value and quantity, will be fetched real-time according to the specified values.

You can also view the Stock Balance report by clicking on 'Stock Balance Report' . It will redirect you to the report with the Item and Warehouse filters populated.

Stock Balance Report
  1. Stock Level Report
  2. Stock Entry

ERPNext QuickBooks Migrator

https://docs.frappe.io/erpnext/quickbooks-migrator

How to Setup QuickBooks Migrator?

Create a QuickBooks Online App

  1. From Awesome-bar, Go to "QuickBooks Migrator" DocType.
  2. Go to Inuit Developer Portal
  3. Sign In with your existing account or Sign Up.
  4. Go to "My Apps" page.
  5. Click on "Select APIs".
  6. Under "QuickBooks API" Check "Accounting".
  7. Click on "Create App".
  • You'll be taken to the Dashboard of your App.
  1. Go to "Keys" tab.
  2. Go to "Production Keys" Section.
  • Complete requirements.
  1. In "QuickBooks Migrator" DocType a "Redirect URL" will be generated for you and add it in the list of "Redirect URIs" of your Inuit App (under "Production Keys" section). Click Save.
  • Make sure that the Redirect URL starts with .
https
  1. From "Production Keys" section copy "Client ID" and "Client Secret" to "QuickBooks Migrator" DocType.
  2. Save "QuickBooks Migrator".

Connect to QuickBooks Online API

  1. Click "Connect to QuickBooks".
  2. A new tab will open in your browser and You'll be asked to Log In.
  3. If you have more than one companies then Select the company you want to migrate.
  4. Click "Connect".
  5. Upon successful authorization, the tab will close.
  6. The indicator will be set to "Connected to QuickBooks".
  7. In "QuickBooks Migrator" select "Company" where you want to migrate your data.
  8. Save "QuickBooks Migrator".

Migrate Data

  1. Click the "Fetch Data" button.
  2. The indicator will change from "Connected to QuickBooks" to "In Progress".
  3. Progress bars will show the status of migration.
  4. This will take a few minutes depending on the size of data.
  5. After migration is complete, the indicator will change to "Complete" or "Failed".

What Will Happen when I Click Fetch Data?

Account

Existing Chart of Accounts

Upon creation of a Company ERPNext creates a chart of accounts for that company, these accounts will be kept.

Account Naming

To avoid name collision with existing accounts, all accounts from QuickBooks will be assigned "- QB" suffix.

e.g. will become .

Job ExpenseJob Expense - QB

Note: ERPNext also encodes account names with Company abbreviation. Taking this into account will become (assuming is the company abbreviation).

Job ExpenseJob Expense - QB - AZAZ

Root Accounts

Five root accounts, namely , , , , will be created and all accounts (depending on the account type) will become children of these accounts.

AssetEquityExpenseLiabilityIncome

Group Accounts

QuickBooks allows transactions on group accounts, which is not allowed in ERPNext, to handle this, every group account will have a child with a hyphenated name.

e.g.

Job Expenses
Job Materials

will become

Job Expenses
Job Expenses - 1
Job Materials

Name Collisions

QuickBooks allows multiple accounts to have the same name, which is not allowed in ERPNext, to handle this, every duplicate account will have a hyphenated name.

e.g.

Insurance
Job Materials
Job Expenses
Job Materials

will become

Insurance
Job Materials
Job Expenses
Job Materials - 1

Item

Naming

All Items will have company encoded names.

e.g. will become (assuming is the company abbreviation).

PenPen - AZAZ

UOM

All Items will be assigned as the default UOM.

Unit

Fractional UOM

will be allowed to have fractional value.

Unit

Inventory

Irrespective of whether Item is an Inventory or Non-Inventory Item in QuickBooks, No Inventory related information will be kept.

Customer and Supplier

Naming

All Customer and Suppliers will have company encoded names.

e.g. will become (assuming is the company abbreviation).

PenPen - AZAZ

Invoice

Variants

QuickBooks has four transactional variants of Invoice, all of these will be saved as Sales Invoice.

  • Invoice is equivalent to a Sales Invoice.
  • Sales Receipt is equivalent to a POS Sales Invoice.
  • Credit Memo is equivalent to a return Sales Invoice (Credit Note).
  • Refund Receipt is equivalent to a return POS Sales Invoice.

Discount and Markup

QuickBooks uses special accounts for both Markup and Discount, ERPNext doesn't handle the discount expense and markup this way, instead, all Item's will see the change in their Income accounts.

Shipping

For Invoices with Shipping, an Item with name Shipping will be added in the Item table.

Round off

ERPNext uses different rounding method than QuickBooks, because of this, in Invoices with Tax and with a currency different than company currency, Sales Invoice will have different grand total than that of the QuickBooks Invoice.

Special Case

If a QuickBooks Invoice is linked to a or then an equivalent is created for this Invoice.

Delayed ChargeStatement ChargeJournal Entry

Bill

Variants

QuickBooks has two transactional variants of Bill, all of these will be saved as Purchase Invoice.

  • Bill is equivalent to a Purchase Invoice.
  • Supplier Credit is equivalent to a return Purchase Invoice.

Other

Following transactions will be saved as Journal Entry

  • Advance Payment
  • Bill Payment
  • Cheque
  • Credit Card Credit
  • Expense
  • Inventory Qty Adjustment
  • Journal Entry
  • Payment
  • Tax Payment

Tax

For every QuickBooks Tax Rate an ERPNext account will be created.

Custom Fields

QuickBooks Migrator will add following Custom Fields

Company field

Customer

Item

Supplier

QuickBooks ID field

Customer

Item

Journal Entry

Purchase Invoice

Sales Invoice

Supplier

Quotation

https://docs.frappe.io/erpnext/quotation

A quotation is an estimated cost of the products/services you're selling to your future/present customer.

During a sale, a customer may request for a note about the products or services you are planning to offer along with the prices and other terms of engagement. This has many names like "Proposal", Estimate", "Pro Forma Invoice" or a Quotation.

To access the Quotation list, go to:

Home > Selling > Sales > Quotation

A typical sales flow looks like:

Make Quotation from Opportunity

A Quotation contains details about:

  • The recipient of the Quotation
  • The Items and quantities you are offering.
  • The rates at which they are offered.
  • The taxes applicable.
  • Other charges (like shipping, insurance) if applicable.
  • The validity of contract.
  • The time of delivery.
  • Other conditions.

Tip: Images look great on Quotations. Make sure your items have an image attached.

Prerequisites

Before creating and using a Quotation, it is advised that you create the following first:

  • Customer
  • Lead
  • Item

How to create a Quotation

  1. Go to the Quotation list, click on New.
  2. Select if the Quotation is to a Customer or a Lead from the 'Quotation To' field.
  3. Enter Customer/Lead name.
  4. Enter a Valid till date after which the quoted amount will be considered invalid.
  5. Order Type can be Sales, Maintenance, or Shopping Cart. Shopping Cart is for website shopping cart and is not intended to be created from here.
  6. Add the Items and their quantities in the items table, the prices will be fetched automatically from Item Price. You can also fetch items from an Opportunity by clicking on Get Items from > Opportunity.
  7. Add additional taxes and charges as applicable.
  8. Save.

You can also create a Quotation from an Opportunity shown as follows.

Features

Address and Contact

In this section there are four fields:

  • Customer Address: This is the Billing address of the customer.
  • Shipping Address: Address where the items will be shipped to.
  • Contact Person: If your customer is an organization, then you can add the person to contact in this field.
  • Territory: Region where the customer belongs to. Default is All Territories.

Currency and Price List

You can set the currency in which the quotation/sales order is to be sent. If you set a Pricing List, then the item prices will be fetched from that list. Ticking on Ignore Pricing Rule will ignore the Pricing Rules set in Accounts > Pricing Rule.

Read about Price Lists and Multi-Currency Transactions to know more.

The Items Table

This table can be expanded by clicking on the inverted triangle present rightmost of the table.

  • On selecting Item Code, the following will be fetched automatically: item name, description, any image if set, quantity default as 1, the rates. You can add discounts in the Discounts and Margin section.
  • Under Discount and Margin you can add extra margin for profit or give a discount. Both can be set based on either amount or percentage. The final rate will be shown below in the Rate section. You can assign an Item Tax Template created specifically for an item.
  • Item weights will be fetched if set in the Item master.
  • In Warehouse and Reference, the warehouse will be fetched from the Item master, this is the warehouse where your stock is present.
  • Under Planning you can see the Projected quantity and the actual quantity present. To know more about these fields, click here. If you click on the 'Stock Balance' button, it'll take you to a doctype where you can generate a stock report for the item.
  • Shopping cart, additional notes is for website transactions. Notes about the item will be fetched here when added via a shopping cart. For example: make food extra spicy. Introduced in v12
  • Page Break Will create a page break just before this item when printing.
  • You can insert rows below/above, duplicate, move, or delete rows in this table.
  • Tip: You can also Download the items table in CSV format and Upload it to another transaction.

The total quantity, rate, and net weight of all items will be shown below the item table. The rate shown here is pre-tax.

Alternative Items

You can manually add Items and mark them as alternatives by checking the Is Alternative checkbox in the Items Table row. These items will not be counted towards the taxes and totals of the Quotation.

It is important to maintain the right order i.e. alternative item rows must follow a non-alternative item row (the item that they are alternatives to). Grouping will be done on this basis.

FSH-ROD-001, FSH-ROD-002 and FSH-ROD-003 are treated as a group to select from. In this way you can provide alternatives to your Customer/Lead and they can select from among those.

Selection of items to proceed with occurs after the Quotation is submitted. Visit the Selecting Alternatives section of this page to know more.

Taxes and Charges

To add taxes to your Quotation, you can select a Sales Taxes and Charges Template or add the taxes manually in the Sales Taxes and Charges table.

The total taxes and charges will be displayed below the table. Clicking on Tax Breakup will show all the components and amounts.

To add taxes automatically via a Tax Category, visit this page.

Shipping Rule

A Shipping Rule helps set the cost of shipping an Item. The cost will usually increase with the distance of shipping. To know more, visit the Shipping Rule page.

Additional Discount

Other than offering discount per item, you can add a discount to the whole quotation in this section. This discount could be based on the Grand Total i.e., post tax/charges or Net total i.e., pre tax/charges. The additional discount can be applied as a percentage or an amount.

Read Applying Discount for more details.

Payment Terms

Sometimes payment is not done all at once. Depending on the agreement, half of the payment may be made before shipment and the other half after receiving the goods/services. You can add a Payment Terms template or add the terms manually in this section.

Read Payment Terms to know more.

Terms and Conditions

In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

Letterhead

You can print your quotation/sales order on your company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the items table. This can be seen when your print.

Quotations can also be titled as “Proforma Invoice” or “Proposal”. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

More Information

  • Campaign: A Sales campaign can be associated with the quotation. A set of quotations can be part of a sales campaign.
  • Source: A Lead Source type can be linked if quoting to a lead, whether from a campaign, from a supplier, an exhibition etc,. Select Existing Customer if quoting to a customer.
  • Supplier Quotation: A Supplier Quotation can be linked for comparing with your current quotation to a buyer. You can get an idea of profit/loss by comparing the two.

Submitting the Quotation

Quotation is a “Submittable” transaction. When you click on Save, a draft is saved, on submitting, it is submitted permanently. Since you send this Quotation to your Customer or Lead, you must freeze it so that changes are not made after you send the Quotation.

On submitting, you can create a Sales Order from the Quotation using the Create button. In the Dashboard present on the top, you can go to the Sales Order linked with this Quotation. In case it didn't work out, you can set the Quotation as lost by clicking on the 'Set as Lost button'.

Selecting Alternatives

If the Quotation contains alternative items, you will be prompted to select from among alternatives while creating a Sales Order from the Quotation.

As you can see, FSH-ROD-002 and FSH-ROD-003 are alternatives to FSH-ROD-001 that are offered to the Customer.

One of these will be agreed upon and selected, following which the selected item will be mapped.

If simple items are involved (without alternatives), they will mapped as usual.

Provision to select alternative items before mapping is only available while creating Sales Orders from individual Quotations. If 'Get Items From' is used in a Sales Order or Sales Invoice to fetch Quotation items, only non-alternative items will be fetched and no item selection will be prompted.

  1. Applying Discount

Raw Printing

https://docs.frappe.io/erpnext/raw-printing

Introduced in Version 12

Sending a string of commands to a printer directly in its native language is called Raw Printing.

Many thermal printers need these raw commands sent to them in order to perform functions like barcode printing, receipt printing, label printing, etc. Raw Printing bypasses the printer's drivers in most cases, making them very fast and reliable. Raw Printing is also capable of doing some advanced features such as cutting receipt paper, kicking out cash drawers, etc.

1. Setting up Raw Printing in ERPNext

1.1 Installing QZ Tray application on the client computer

Download and install the QZ Tray application on the computer to which your thermal printer is connected. This application can be found at its official site. Currently, Windows, macOS, and Linux are supported by QZ Tray. During the installation you will be prompted to install Java if not already installed, please install Java to complete the installation.

Further instructions on installing the QZ Tray Application can be here.

1.2 Create Raw Commands Print Format

To be able to send raw commands to a printer you need to first create a print format in raw commands. Jinja Templating Language is used in raw commands just like in the HTML custom print format.

To create a new print format for Raw Printing:

  1. Go to print format list: Home > Settings > Printing > Print Format
  2. Click on New.
  3. Select the relevant DocType.
  4. Check the Custom format and Raw Printing options.
  5. Fill in the Raw Commands field with the required raw commands to be sent to the printer.
  6. Click Save.

Raw Commands Print Format

Currently, any string-based printer languages can be used in the field in the print format. Writing raw commands requires knowledge of the printer's native language provided by the printer manufacturer. Please refer to the developer manual provided by the printer manufacturer on how to write their native commands.

Raw Commands

1.3 Enable Raw Printing in the Print Setting

To enable Raw Printing:

  1. Go to: Home > Settings > Printing > Print Settings > Raw Printing.
  2. Check the Enable Raw Printing option.
  3. Save.

2. Methods to utilize raw printing in ERPNext

There are two ways to send Raw Printing commands to your printer.

2.1 Clicking print on the print view page

To print a raw command print format from the Document print view:

  1. Select appropriate print format. For print format in Raw Commands, "No Preview available" message is shown in place of the print preview.
  2. Click on the print button.
  3. Please allow the connection prompt from the QZ Tray for the actions that you initiated (Keyboard Shortcut: Alt + A).
QZ Tray Prompt
  1. You may be asked to select the "print format - printer mapping".
  • This mapping is used to send the print commands to the appropriate printer.
  • The printer needs to be installed on your computer to be able to map it to a print format.
  • This mapping is stored locally on the same computer and will have to be set on each client machine.
  • You can also edit this by clicking on the Printer Settings button.
print format - printer mapping

Raw Printing from Print View

2.2 Calling Raw Print functions from a client script

It is often a requirement that a print command has to be issued on a certain event (like submit, save, amend, etc.). It is possible to write a client script to do this for you.

Following are the relevant Raw Print functions:

  1. function:
frappe.ui.form.qz_connect
  • A connection wrapper to establish a connection with the QZ Tray application.
  • Returns a promise which resolves on successful establishment of a connection.
  • Allows active and inactive connections to resolve regardless. Hence it can be called every time before sending a command.
  • Usage example:
 frappe.ui.form.qz_connect()
 .then(function () {
 return qz.print(config, data);
 })
 .then(frappe.ui.form.qz_success)
 .catch(err => {
 frappe.ui.form.qz_fail(err);
 });

Here, is a global object provided by the library.

qzqz-tray.js
  1. function:
frappe.ui.form.qz_get_printer_list
  • Gives you the list of printers available to the QZ Tray application
  • Returns a promise which resolves to a list of printers

Usage example:

 frappe.ui.form.qz_get_printer_list().then(
 // Required action on getting the printer list.
 // Note: Printer list is a array of strings.
 );
  1. function:
frappe.ui.form.qz_success
  • Displays a "Print Sent to the printer!" alert to the user. Can be called after the print command is successful.
  1. function:
frappe.ui.form.qz_fail
  • Displays the error message to the user. Should be called on failure of QZ Tray connection.

You can also directly access the functions provided by the library via the object. Click here for qz-tray.js library documentation. Note: The object is initialized only after calling the for the first time. In case you require the object before that you can use the .

qz-tray.jsqzqzfrappe.ui.form.qz_connectqzfrappe.ui.form.qz_init
  1. Print Settings
  2. Print Format
  3. Print Style

RazorPay Integration

https://docs.frappe.io/erpnext/razorpay-integration

A payment gateway is an e-commerce application service provider service that authorises credit card payments for e-businesses, online retailers, bricks and clicks, or traditional brick and mortar.

A payment gateway facilitates the transfer of information between a payment portal (such as a website, mobile phone or interactive voice response service) and the Front End Processor or acquiring bank.

To setup RazorPay,

Explore > Integrations > RazorPay Settings

Razorpay Settings

Setup RazorPay

To enable RazorPay payment service, you need to configure parameters like API Key, API Secret

Razorpay Settings

On enabling service, the system will create Payment Gateway record and Account head in the Chart of Account with account type as Bank.

Razorpay COA

Also, it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template.

Payment Gateway Account

After enabling service and configuring Payment Gateway Account your system is able to accept online payments.

####Supporting transaction currencies

RazorPay will only work for the company having as a Currency.

INR (Indian Rupee)

Rebuild Tree

https://docs.frappe.io/erpnext/rebuild-tree

The Rebuild Tree feature is a tool in ERPNext used to correct and refresh the structural integrity of hierarchical data, specifically the Chart of Accounts (CoA). It ensures that the parent-child relationships and display order of accounts are accurately reflected throughout the system.

Issue:

Sometime in the general Ledger report the user selects the Account but the data in the report shows for different account as shown below screenshot.

Rebuild Issue

In this case you can Use the Rebuild Tree so that the user can easily fix this issue

Step-by-Step Guide to Rebuild the CoA Tree

Rebuilding the tree is a quick process.

Step 1: Access the Chart of Accounts Navigate to the Chart of Accounts Tree View:

Accounting > Chart of Accounts

Step 2: Open the Actions Menu In the Chart of Accounts tree interface, locate and click the Menu button (usually represented by three dots or lines) in the top-right corner of the window.

Step 3: Select "Rebuild Tree" From the dropdown menu that appears, select the Rebuild Tree option

Screenshot 2025 10 16 at 1.27.11 PM

After Rebuild tree process is done you can check the GL report shows the correct data in the report

Screenshot 2025 10 16 at 1.11.56 PM

Reconcile Advance Payment made to the Supplier

https://docs.frappe.io/erpnext/reconcile-advance-payment-made-to-the-supplier

While migrating from x application to ERPNext, how to book advance Accounts Payable and reconcile with future invoices?

Booking Advance Accounts Payable:

Create a Journal Entry with type Opening Entry, Debit the Creditor Account choosing the required Supplier and Credit the Temporary Opening Account.

Expand the Creditor's Row and select Yes for Is Advance.

Refer to the GIF illustrating the same:

Submitting the Journal Entry will reflect a negative balance in Accounts Payable Summary:Reconciling it with the Purchase Invoices:

Refer to Accounts Payable report after creating a Purchase Invoice:

Currently, they are not reconciled and are reflected as two separate entries, use the Payment Reconciliation tool to reconcile these both entries, refer to the GIF for the steps:

Refer to Accounts Payable Report after reconciling, it won't reflect the Journal Entry anymore and will reflect the (Invoiced Amount - Advance Amount):

Customize Print Format

https://docs.frappe.io/erpnext/records-print-format

Print Formats are the layouts that are generated when you want to Print or Email a transaction.

This feature comes handy for all the transactions in ERPNext like all the sales and purchase transactions, HR documents and lot more.

In ERPNext, there are three types of Print Formats, namely, Standard Print Format, Custom Print Format and HTML Print Format.

Standard Print Format

Every Printable Document Type in ERPNext will have it's own Standard Print Format which gets generated by the Frappe Framework. The field placement in the Standard Print Formats will be dependent on the position of the respective fields in the document.

Standard Print Format

Any changes made to the Standard Print Format will have to be done using a Customize Form. You can also checkout adding fields in Print Formats.

Custom Print Format

You can also create your own custom Print Formats by using a tool called Print Format Builder. This tool will help you in making a simple Customized Print Format by dragging and dropping fields in a format as per your preference.

Customize Print Format

For creating Custom Print Formats, ERPNext comes with several pre-defined templates in three styles, namely, Modern, Monochrome and Classic.

To create your versions, open an existing template from:

Build > Views > Print Format

To edit/update your print and PDF settings, go to:

Settings > Print Settings

Print Settings

HTML Print Format

For creating an HTML Print Format, you would require some knowledge of HTML, CSS, and Python. Here is an example of how a Print Format can be design which has very specific format.

HTML Print Format

Print Formats are provided on the server-side using the Jinja Templating Language. All forms have access to the doc object which contains information about the document that is being formatted. You can also access common utilities via the frappe module. To avail support when creating an HTML based print format, you can refer to ERPNext Community forum, or start a new post for your query.

For styling, the Bootstrap CSS Framework is provided and you can enjoy the full range of classes.

References

  1. Jinja Templating Language: Reference
  2. Bootstrap CSS Framework

Example

<h3>{{ doc.select_print_heading or "Invoice" }}</h3>
<div class="row">
    <div class="col-md-3 text-right">Customer Name</div>
    <div class="col-md-9">{{ doc.customer_name }}</div>
</div>
<div class="row">
    <div class="col-md-3 text-right">Date</div>
    <div class="col-md-9">{{ doc.get_formatted("invoice_date") }}</div>
</div>

        {%- for row in doc.items -%}
        
        {%- endfor -%}
    <table class="table table-bordered">
    <tbody>
        <tr>
            <th>Sr</th>
            <th>Item Name</th>
            <th>Description</th>
            <th class="text-right">Qty</th>
            <th class="text-right">Rate</th>
            <th class="text-right">Amount</th>
        </tr><tr>
            <td style="width: 3%;">{{ row.idx }}</td>
            <td style="width: 20%;">
                {{ row.item_name }}
                {% if row.item_code != row.item_name -%}
                <br>Item Code: {{ row.item_code}}
                {%- endif %}
            </td>
            <td style="width: 37%;">
                <div style="border: 0px;">{{ row.description }}</div>
            </td>
            <td style="width: 10%; text-align: right;">
                {{ row.qty }} {{ row.uom or row.stock_uom }}
            </td>
            <td style="width: 15%; text-align: right;">
                {{ row.get_formatted("rate", doc) }}
            </td>
            <td style="width: 15%; text-align: right;">
                {{ row.get_formatted("amount", doc) }}
            </td>
        </tr></tbody>
</table>

Notes

  1. To get date and currency formatted values use,
  2. For translatable strings, use
doc.get_formatted("fieldname"){{ _("This string is translated") }}

Regional

https://docs.frappe.io/erpnext/regional

ERPNext aims to support local regulation for all the regions in the world. In most cases ERPNext is very flexible so you can easily add Custom Fields and make Custom Reports to support the regulation of your region.

As of mid-2017, ERPNext aims to pre-set additional fields and forms required for companies to easily submit reports to the relevant authorities.

This section is still under-development.

India

United Arab Emirates

Saudi Arabia

United States of America

Italy

France

Regional Chart of Accounts

https://docs.frappe.io/erpnext/regional/regional-chart-of-accounts

ERPNext provides standard Chart of Accounts which are pre-configured based on the country or region, enabling users to get started quickly.

Below are the available regional chart of accounts:

Region Name Region Code
Algeria DZ
Argentina AR
Australia AU
Benin # BJ
Brazil BR
Burkina Faso # BF
Cameroon # CM
Canada CA
Central African Republic # CF
Chad # TD
Colombia CO
Comoros # KM
Congo # CG
Côte d'Ivoire # CI
Democratic Republic of the Congo # CD
El Salvador SV
Equatorial Guinea # GQ
France FR
Gabon # GA
Germany DE
Guatemala GT
Guinea # GN
Guinea-Bissau # GW
Hungary HU
India IN
Indonesia ID
Mali # ML
Mexico MX
Netherlands NL
Nicaragua NI
Niger # NE
Portugal PT
Senegal # SN
Singapore SG
Sweden SE
Switzerland CH
Taiwan TW
Togo # TG
Turkey TR
United Arab Emirates AE

ERPNext supports the SYSCOHADA (Système Comptable OHADA), which is the mandatory, unified accounting standard and chart of accounts for businesses operating in the 17 member states of the Organization for the Harmonization of Business Law in Africa (OHADA).

These regions are highlighted in the above table (marked with #).

Remove Description in Print Format

https://docs.frappe.io/erpnext/removing-description-removed-item-code-and-name

Question:

I want to remove the description from the from my print format since it takes up too much space:

But when I do so using the print format builder, I end up losing my Item Code and Name as well. How to fix this?

Answer:

This is because you have Compact Item Print option enabled in the Print Settings.

You can disable this option and then uncheck the Description in the print format builder. This should solve the issue for you.

Renaming Documents

https://docs.frappe.io/erpnext/renaming-documents

Using Renaming feature, you can change the name of a master document.

Using this feature you can also merge two master documents into a single one.

Check List of Renamable Documents for the list of all the documents that can be renamed in the system.

Steps to rename a Document

Step 1: Go to the document that you wish to rename.

Step 2: From the drop-down menu, select the option 'Rename'.

Document Renaming

Alternatively, you can also click on the Title of the document, which will result in a pop-up, wherein you will be able to change the name of the document that you wish to rename.

Document Renaming

Effect of Renaming

Renaming a document will affect all the existing transactions liked to this document. E.g., If you are changing the Item Code for an Item, the same will be updated in all the existing transactions wherein this Item is linked.

List of Renamable Documents

Following is the list of all the documents that can be renamed.

  1. Contact
  2. Address
  3. Warehouse
  4. Supplier
  5. Customer
  6. User
  7. Sales Partner
  8. Project
  9. Cost Center
  10. Item Group
  11. Item
  12. Company
  13. Role
  14. Earning Type
  15. Note
  16. Serial No
  17. Account
  18. Territory
  19. Terms and Conditions
  20. Supplier Group
  21. Workstation
  22. Employee
  23. Sales Taxes and Charges Master
  24. Purchase Taxes and Charges Master
  25. Price List
  26. Party Type
  27. Mode of Payment
  28. Designation
  29. Department
  30. Deduction Type
  31. Customer Group
  32. Brand
  33. Branch
  34. Sales Person

See also

  1. Bulk Rename

Repack Entry

https://docs.frappe.io/erpnext/repack-entry

Repack Entry is created for item bought in bulk, which is being packed into smaller packages. For example, item bought in tons can be repacked into Kgs.

Notes:

  1. Purchase Item and repack will be have different Item Codes.
  2. Repack entry can be made with or without BOM (Bill of Material).

In a Repack Entry, there can be one or more than one repack items. Let's check below scenario to understand this better.

Assume we are buying boxes of spray paint of specific colour (Green, Blue etc). And later re-bundling to create packs having multiple colours of spray paint (Blue-Green, Green-Yellow etc.) in them.

1. New Stock Entry

Stock > Documents > Stock Entry > New Stock Entry

2. Enter Items

Select Purpose as 'Repack Entry'.

For raw-material/input item, only Source Warehouse will be provided.

For repacked/output items, only Target Warehouse will be provided. You will have to provide valuation for the repack items.

Repack Entry

Update Qty for all the items selected.

3. Submit Stock Entry

On submitting Stock Entry, stock of input item will be reduced from Source Warehouse, and stock of repack/output item will be added in the Target Warehouse.

Repack Stock Entry

Permission Error Problems

https://docs.frappe.io/erpnext/report-permission-error

Question: User has roles like Account User and Account Manager assigned. Still, when accessing  Account Receivable report, User is getting an error message of no permission the territory master.

Screenshot 2024-06-21 at 2.31.40 PM

Answer:

As per the permission system in ERPNext, for the User to be able to access a form or a report, s(he) should have at-least read permission on all the link field in that form/report. Since Territory is a link field in Account Receivable report, please add a permission rule to let Account User/Manager have at-least Read permission on the Territory master. Please follow below-given steps to resolve this issue.

  1. Roles assigned to User are Account User and Account Manager.
  2. As indicates in the Error message, the user didn't have permission on the territory master. As per the default permission, none of the above role assigned to that User has any permission on the Territory master.
  3. To resolve this issue, I have assigned Account User permission to Read Territory master.

Screenshot 2024-06-21 at 2.26.27 PM

As per this permission update, User should be able to access Account Receivable report fine.

Repost Item Valuation

https://docs.frappe.io/erpnext/repost-item-valuation

Overview

The Repost Item Valuation feature in ERPNext is used to recalculate item valuation, stock balances, and related accounting values when inconsistencies occur due to backdated entries or stock ledgers related issues.

This process ensures that inventory valuation and General Ledger (GL) entries remain accurate and consistent.

When to Use Repost Item Valuation

Use this feature in the following scenarios:

  • Backdated stock transactions are created or modified
  • Stock Ledger Entries (SLEs) have incorrect balances
  • Negative stock issues appear due to reposting problems
  • After fixing bugs or applying patches related to stock or valuation
  • Data migration or bulk import of stock transactions

What Repost Item Valuation Does

Reposting item valuation performs the following actions:

  • Recalculates Stock Ledger Entries (SLEs) from a specific point in time
  • Recomputes Running Available Stock and Stock Balance
  • Re-evaluates item valuation based on the valuation method
  • Updates Stock Value and Valuation Rate
  • Reposts related General Ledger entries, if required

Types of Reposting

1. Automatic Reposting

ERPNext automatically creates reposting entries when:

  • Backdated stock transactions are saved
  • System detects that reposting is required

These entries are processed in the background by scheduled jobs.

2. Manual Repost Item Valuation

Users can manually trigger reposting using the Repost Item Valuation tool.

Steps:

Search Repost Item Valuation.

Click on New.

Fill in the required details:

  • Company – Company for which reposting is required
  • Item Code (optional) – Repost valuation for a specific item
  • Warehouse (optional) – Limit reposting to a warehouse
  • Posting Date and Posting Time – Starting point for reposting

Save the document.

Click on Start Reposting.

The system will enqueue reposting jobs based on the provided filters.

Using Stock Ledger Variance Report with Reposting

Before triggering reposting, it is recommended to use the Stock Ledger Variance report to:

  • Identify incorrect Stock Ledger Entries
  • Filter rows with quantity or balance differences
  • Select affected entries and create reposting entries directly

This helps reduce the scope of reposting and improves performance.

Performance Considerations

Reposting can be resource-intensive for large datasets

It is recommended to:

  • Limit reposting by item, warehouse, or date
  • Run reposting during non-peak hours

Avoid triggering full reposting unless necessary

Common Issues and Troubleshooting

Reposting Takes Too Long

  • Check the number of affected entries
  • Narrow down filters (Item, Warehouse, Date)
  • Ensure background workers are running

Negative Stock Errors After Reposting

  • Verify inward entries exist before outward transactions
  • Check posting dates and times
  • Use Stock Reconciliation if required

GL Entries Not Updated

  • Ensure Update Stock is enabled for relevant transactions
  • Confirm that accounting reposting is allowed

Best Practices

  • Always review stock data using reports before reposting
  • Avoid frequent backdated transactions
  • Keep ERPNext updated to the latest patch version
  • Use reposting tools incrementally instead of full reprocessing

Notes

  • Repost Item Valuation affects historical data; use it carefully
  • Reposting will change the closing balances of the respective financial year, so use it carefully.
  • Avoid using reposting for closed financial years, as it will change the closing balances of the closed financial years.
  • Users should have appropriate permissions to perform reposting
  • Applicable primarily to stock-impacting transactions

The Repost Item Valuation feature is a critical maintenance tool that helps ensure inventory accuracy and accounting integrity in ERPNext.

Request for Quotation

https://docs.frappe.io/erpnext/request-for-quotation

A Request for Quotation is a document that an organization sends to one or more suppliers asking a quotation for items.

Buying Flow

To access Request for Quotation, open the "Buying" workspace and, under "Reports & Masters" > "Buying", click on "Request for Quotation".

  1. Prerequisites

Before creating and using a Request for Quotation, it is advised that you create the following first:

  1. How to create a Request For Quotation

Go to the Request For Quotation list and click on "+ Add Request for Quotation".

Enter the Required Date, by which you'll need the requested materials.

Fill the "Suppliers" list with possible suppliers.
If you set a Contact and Email Id, that can later be used for sending the Request For Quotation via email and grant access to the supplier portal.

In the next table, enter the required items along with UOM and quantity, as well as the target warehouse.

The Warehouse can be left blank if Maintain Stock is not enabled for the item.

If you want to send the Request for Quotation to your suppliers as an email, you can create an Email Template and select it here. In the template, you can use special variables for supplier specific data:

  1. : A link where your supplier can set a new password to log into your portal.
  2. : A link to this RFQ in your supplier portal.
  3. : The company name of your supplier.
  4. : The contact person of your supplier.
  5. : Your full name.
{{ update_password_link }}{{ portal_link }}{{ supplier_name }}{{ contact.salutation }} {{ contact.last_name }}{{ user_fullname }}

Apart from these, you can access all values in this RFQ, like or .

{{ message_for_supplier }}{{ terms }}

You can check how the email will look for a specific supplier by using the "Preview Email" button.

8. If you want to send further attachments to your suppliers, you can enable the checkbox
Send Attached Files. This will add each file attached to the Request for Quotation as an attachment to each supplier email. 9. Once you're done, save the Request for Quotation as a draft. 10. When you're ready, you can submit the Request for Quotation. This will trigger an email to each supplier that has Send Email enabled.

Preview Email

Create RFQ

A Request for Quotation (RFQ) can also be created from a submitted Material Request. Once an RFQ is created, you can print and send suppliers the PDF which will have all the details you entered relevant to the RFQ. You can also get their reply (Supplier Quotation) in ERPNext itself, see section 4.1 Supplier Quotation by User. However, for a large number of items, your supplier may be more comfortable with an Excel sheet, etc.

  1. Features

3.1 Get items from

The items in the items table can be fetched from other documents. The options are: Material Request, Opportunity, and Possible Supplier.

  • Material Request: Items will be fetched from a submitted Material Request that you select. A Material Request can be searched with some matching words and a date range can also be selected to filter the Material Requests.
  • Opportunity: Items will be fetched from a saved Opportunity. A date range can be selected here also.
  • Possible Supplier: Select a possible supplier. Then if you have any submitted Material Requests against this supplier, items can be fetched from that.

RFQ get items

3.2 Get Suppliers

Instead of entering the suppliers manually in the table, you can also fetch them using the 'Get Suppliers' button. When you click on Tools > Get Suppliers, you will see the field 'Get Suppliers By'. There are two options to fetch suppliers: By Tag or By Group.

  • By tag: Go to 'Tag Category' via searching from the search bar. You must have created tags here first and assigned them to a Supplier in the Buying module. Then you can select 'By Tag'. On clicking Add 'All Suppliers', suppliers with matching tags will be fetched.
  • By Group: Select 'Supplier Group' and choose the supplier group from which suppliers need to be added. For example, if you select Hardware, all your hardware suppliers will be added so that you can get a quote from all of them.

RFQ get suppliers

In the Supplier table, on expanding a row with the inverted triangle, you'll see an option 'Download PDF' which will open a PDF of the RFQ.

When you click on Tools > Link to Material Requests, it links the Request for Quotation to available Material Requests. The items should be the same in the Request for Quotation and the Material Request.

Link to Material Request

Now, when the Request for Quotation is saved, you can see in the Dashboard that it is linked to the Material Request. If there are multiple Material Requests with the same items, then the link will be created with the newest Material Request.

3.5 Terms and Conditions

In Sales/Purchase transactions, there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

3.6 Print Settings

Letterhead

You can print your request for quotation/purchase order on your company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the items table. This can be seen when you print it.

Titles of your documents can be changed. Know more here.

Special properties

When printing a RFQ via the "Tools > Download PDF" button, you are asked select the specific supplier you want to address. In the Print Format for RFQ, this information can be accessed via special properties:

  • holds the selected supplier ID.
  • holds the Supplier Part Number of a requested line item.
{{ doc.vendor }}{{ doc.items[i].supplier_part_no }}

The data of the first supplier will be used while rendering the standard print preview. If you want to print for a different supplier, please use the "Tools > Download PDF" button.

  1. Creating a Supplier Quotation after RFQ

After creation of Request for Quotation, there are two ways to generate Supplier Quotation from Request for Quotation.

4.1 Supplier Quotation by User

  1. Open Request for Quotation and click on Supplier Quotation > Create.

2. Select the Supplier, click on the supplier again. In this page, click on the + next to 'Supplier Quotation'. A new Supplier Quotation page will be opened, user has to enter the quantity, rate and submit it.

Supplier Quotation from RFQ

Supplier Quotation from Supplier

4.2 Supplier Quotation from Supplier

  1. If a Contact is created for the Supplier and an email address is associated with the Contact, the Contact details and the email address will be fetched on selecting the Supplier. Create a Contact and email address if not present already.
  2. Click on Tools > Send Emails to Suppliers.

If the Supplier's account is not present: The system will create the Supplier's account and send details to the Supplier. The Supplier will need to click on the link (Password Update) present in the email. After the password update, the Supplier can access their portal with the 'Request for Quotation' form. The Supplier will be created as a Website User.

Supplier email if account not present

If Supplier's account is present: The system will send a Request for Quotation link to the Supplier. The Supplier must log in using his credentials to view the Request for Quotation form on the portal.

3. Either way, when the Supplier logs in, the following screen will be shown to them. From here they can send you a quotation:

Supplier email if account present

Supplier Quotation Screen

The Supplier has to enter the amount and notes (payment terms) on the form and click on Submit. In the Quotations section, previous quotations will be visible. 4. On submission, ERPNext will create a Supplier Quotation (draft mode) against the Supplier. The user has to review the Supplier Quotation and submit it. When all the items from the Request for Quotation have been quoted by a Supplier, the quote status is updated to 'Received' in the 'Suppliers' table of the Request for Quotation.

RFQ status after supplier quote

Read Supplier Quotation to know more.

  1. Video
  1. Purchase Order
  2. Supplier
  3. Supplier Quotation
  4. Quotation
  5. Material Request

Request for Raw Materials from Sales Order

https://docs.frappe.io/erpnext/request-for-raw-materials-from-sales-order

Production Plan helps user to plan production against multiple sales orders and helps in Material Procurement planning for the raw-material item, based on the quantity of finished product to be manufactured.

But, when you only need to plan for raw-material items of a single Sales Order, it becomes a bit of a tedious task. Hence, you can create a Material Request for the raw materials of the finished Items present in the Sales Order, from that Sales Order itself.

To do so, you can follow the below steps.

  • After your Sales Order has been submitted, click on Make and select Request for Raw Materials.

Request For Raw Materials
  • It will open a dialog and display all the Finished Items having a BOM.

Request For Raw Materials Dialog
  • Here, you can change the BOM as you want and choose the necessary options.

Suppose, enabling the Include Exploded Items will fetch the Raw Materials from the Exploded Items of BOM and enabling the Ignore Existing Ordered Qty will make a Request even if the required quantities are present.

  • Click on Make, and your Material Request will be submitted.

Submitted Material Request

Material Request generated for the Raw Material of the finished Item present in Sales Order.

Material Request

Deleting and Restoring Documents

https://docs.frappe.io/erpnext/restore-deleted-erpnext

In ERPNext, you can delete a document if not needed. They can be masters like Items, Customer or transactions like Sales Order, Payment Entries, etc.

To delete a document, you can go to the dropdown menu of the document and select 'Delete'.

Restore Deleted Document

For bulk deletion, you can select multiple Cancelled records and delete them at once from the List View.

Restore Deleted Documents

Note: Any submittable document will not be deleted after submission. To delete a submitted document, you will be required to first 'cancel' the document.

Restoration of Deleted Documents

Further, any document, if deleted by mistake, or is required after deletion, can also be restored from the Deleted Documents list.

To access Deleted Documents, go to:

Home > Settings > Data > Deleted Documents

1. How to Restore Deleted Documents

  1. Go to Deleted Documents List
  2. Open the deleted Document
  3. Click on the Restore button.

Restore Deleted Document

Note: If the document was deleted after getting ** canceled**, it would be restored with a new name.

Further, Only those Users having System Manager Role assigned to them can restore deleted documents.

Retaining Sample Stock

https://docs.frappe.io/erpnext/retain-sample-stock

Sample stock is a batch of any Items stored for analyzing should the need arise later.

The Item for which sample stock is stored can be raw material, packaging material, or finished product.

1. Prerequisites

Before using sample retention, it is advised that you create the following first:

1. How to Set Sample Retention Warehouse in Stock Settings

It is advised to create a new Warehouse separately for retaining samples and not use it in production.

Sample Retention Warehouse

1.2 Enable Retain Sample in Item master

Retain Sample is based on Batch hence Has Batch No should be enabled first. Check Retain Sample and set the Maximum allowed samples for a batch.

Retain Sample

1.3 Make Stock Entry

  • Whenever a Stock Entry is created with the purpose as Material Receipt, for items which have Retain Sample enabled, the Sample Quantity can be set during that Stock Entry. You need to select the Batch Number for the Item/Items. Sample quantity cannot be more than the Maximum sample quantity set in Item Master.

Retain Sample
  • On submission of this Stock Entry, button 'Make Retention Stock Entry' will be available to make another Stock Entry for the transfer of sample items from the mentioned batch to the retention warehouse set in Stock Settings.

Sample Retention Button
  • Clicking this button will direct you to new Stock Entry of type 'Material Transfer'. This entry is transfering your sample retention from your Target Warehouse (Stores) to the Sample Retention Warehouse. It will contain all the information, verify and click Submit.

Retain Sample
  1. Warehouse

Return Rejected Items

https://docs.frappe.io/erpnext/return-rejected-item

In the Purchase Receipt, you can receive the Items in the Accepted or the Rejected Warehouse.

If you are creating Purchase Return for the items received in the Rejected Warehouse, then create return entry following these steps.

  1. In the Purchase Receipt Item table, for the item to be returned, in the Received Qty field, enter return entry in negative.
  2. In the Accepted Warehouse field, set value as zero.
  3. In the Rejected Warehouse field, set the quantity to be returned in negative.

For detailed steps on how to create Purchase Return Entry for the Rejected Item, refer to the below example.

Returning Rejected Items

Returned Materials Against Work Order

https://docs.frappe.io/erpnext/returned_materials_against_work_order

To access the Returned Materials Against Work Order, go to:

Home > Manufacturing > Reports > Returned Materials Against Work Order

Task

This report shows the information about the raw materials which has been returned from the work in progress warhouse against the work orders.

Reviews and Ratings

https://docs.frappe.io/erpnext/reviews_and_rating

Feedback is important to gauge the public sentiment of a product being sold. You can measure your product's performance by adding Reviews and Ratings to the Website Item's page. To enable this go to:

E Commerce Settings > Add-ons > Enable Reviews and Ratings

Once this is done, there will be a provision in every Website Item's page to leave a review on the product.

Who can leave reviews?

Users that are also Customers in the system will be able to see the Write a Review button. These users must also have the Customer Role to be permitted to add reviews.

The average reviews are automatically calculated and a summary is displayed.

Item Reviews

Role and Role Profile

https://docs.frappe.io/erpnext/role-and-role-profile

A Role defines the permissions for accessing various documents in ERPNext.

Roles define a set of permissions which can be set from the Roles Permission Manager. Most commonly used roles are already defined in ERPNext, you can use the system with them. If needed, you can add more roles. For example, if you assign the Sales User role to a user, they'll be able to access documents like Quotations and Sales Orders since the permissions are already set for the role Sales User.

Role profiles store different roles so that multiple roles can be assigned at once.

Role Profiles act as a template to store and select multiple roles. This Role Profile can then be assigned to a User. For example, a Sales Supervisor will have the roles Employee, Sales Manager, Sales User, and Sales Master Manager. Role Profiles are useful to assign multiple roles at once when adding multiple employees.

To access Role, go to:

Home > Users and Permissions > Role

1. How to add a Role

  1. Go to the Role list, click on New.
  2. Enter a name for the Role.
  3. Choose whether the Role has desk access. A role that has desk access can access ERPNext modules and the company's documents. The level of access depends on the roles assigned to the user.
  4. Save.

You can add two factor authentication for the role and also restrict it to a specific domain. From here, you can go to the Roles Permission Manager and set permissions for the role across different DocTypes.

Permissions for new Role

2. How to add a Role Profile

To access Role Profile, go to:

Home > Users and Permissions > Permissions > Role Profile

  1. Go to the Role Profile list, click on New.
  2. Enter a name.
  3. Select the roles you want to assign to this profile.
  4. Save Role Profile

Role Based Permissions

https://docs.frappe.io/erpnext/role-based-permissions

Permission to different documents can be controlled using Role Based Permissions.

ERPNext has a role-based permission system. It means that you can assign Roles to Users, and Permissions can be set on Roles. The Role Permissions Manager allows you to set which roles can access which documents and with what permissions (read, write, submit, etc.).

Once roles are assigned to a user, their access can be limited to specific documents. The permission structure allows you to define different permission rules for different fields using a concept called Permission Level of a field.

  1. How to use the Role Permissions Manager

To start using the Role Permission Manager, go to: > Home > Users and Permissions > Role Permissions Manager

Manage Read, Write, Create, Submit, Amend access using the Role Permissions Manager

Permissions are applied on a combination of:

  • Roles: As we saw earlier, Users are assigned Roles and it is on these Roles that permission rules are applied. For example, a sales user may be given the roles of an Employee and a Sales User.

Examples of Roles include Accounts Manager, Employee, HR User, etc.

  • Document Types: Each type of document, master or transaction, has a separate list of role-based permissions as seen in the preceding screenshot.

Examples of Document Types are Sales Invoice, Leave Application, Stock Entry, etc.

  • Permission Levels: In each document, you can group fields by "levels". Each group of fields is denoted by a unique number (0 to 9). A separate set of permission rules can be applied to each field group. By default, all fields are of level 0.

Permission "Level" connects fields with level X to a permission rule with level X. To know more click here.

  • Document Stages: Permissions are applied on each stage of the document like Creation, Saving, Submission, Cancellation, and Amendment. A role can be permitted to Print, Email, Import or Export data, access Reports, or define User Permissions.
  • User Permissions: Using User Permissions in ERPNext a user can be restricted to access only specific Documents for that Document Type. Eg: Only one Territory from all Territories. User Permissions defined for other Document Types also get applied if they are related to the current Document Type through Link Fields.

For example, a Customer is a link field in a Sales Order or Quotation. In the Role Permissions Manager, User Permissions can be set using the 'Set User Permissions' button.

To set User Permissions based on documents/fields go to: > Home > Users and Permissions > Permissions > User Permissions

  • Add a New Rule: In the Role Permissions Manager, to add a new rule, click on the Add a New Rule button and a pop-up box will ask you to select a Role and a Permission Level. Once you select this and click on 'Add', this will add a new row to your rules table.
  1. How Role Based Permissions Work

Leave Application is a good example that encompasses all areas of a Permission System.

  • It should be created by an Employee. For this, Employee Role should be given Read, Write, Create permissions.

Giving Read, Write and Create Permissions to Employee for Leave Application
  • An Employee should only be able to access his/her Leave Application. Hence, User Permissions record should be created for each User-Employee combination.

Limiting access to Leave Applications for a user with Employee Role via User Permissions Manager
  • If you want an Employee to only select a document in another document and not have read access to that document as a whole, then grant only Select perm to the role, Employee.

Limiting access to Leave Applications for a user with Employee Role via User Permissions Manager
  • HR Manager should be able to see all Leave Applications. Create a Permission Rule for HR Manager at Level 0, with Read permissions. Apply User Permissions should be disabled.

Giving Submit and Cancel permissions to HR Manager for Leave Applications. 'Apply User Permissions' is unchecked to give full access.
  • Leave Approver should be able to see and update Leave Applications of employees under him/her. Leave Approver is given Read and Write access at Level 0. Relevant Employee Documents should be enlisted in the User Permissions of Leave Approvers. (This effort is reduced for Leave Approvers mentioned in Employee Documents, by programmatically creating User Permission records).

Giving Read, Write and Submit permissions to Leave Approver for Leave Applications.'Apply User Permissions' is checked to limit access based on Employee.
  • It should be Approved/Rejected only by HR User or Leave Approver. The Status field of a Leave Application is set at Level 1. HR User and Leave Approver are given Read and Write permissions for Level 0, while everyone else (All) are given Read permission for Level 1.

Limiting read access for a set of fields to certain Roles
  • HR User should be able to delegate Leave Applications to his/her subordinates. HR User is given the right to Set User Permissions. A User with HR User role would be able to define User Permissions on Leave Application for other users.

Let HR User delegate access to Leave Applications by checking 'Set User Permissions'. This will allow HR User to access User Permissions Manager for 'Leave Application'

In case you have correctly assigned the roles but still you're getting errors when accessing documents, refer this page.

  1. User Permissions
  2. Role Permission For Page And Report

Role Permission for Page and Report

https://docs.frappe.io/erpnext/role-permission-for-page-and-report

Access to different pages and reports can be controlled in Role Permission for Page and Report.

Document types are Sales Order, Customer, Supplier, etc. They are a document type meaning they can contain multiple documents of that type. A Page is a single page like Selling Settings. You cannot create multiple Selling Settings, but you can create multiple Sales Orders.

In ERPNext, user can make a custom user interface using Page and a custom report using Report Builder or Query Report. ERPNext has a role-based permission system where you can assign roles to the user. The same role can be assigned to the page and report to access them.

If the user has enabled developer mode, then they can add the roles directly in the page and report record. In that case, the permissions will also be reflected in the JSON file for the page/report. Consider you want to restrict the roles that can access certain pages and reports in ERPNext, this can be done via the Role Permission for Page and Report.

To access Role Permission for Page and Report, go to:

Home > Users and Permissions > Role Permission for Page and Report

1. How to use Role Permission for Page and Report Tool

If developer mode is disabled, the user can assign the roles to the page and report, using "Role Permission for Page and Report" page.

Tools to assign custom roles to the page

1.1 Reset to defaults

Using the "Reset to Defaults" button, the user can remove the custom permissions applied on a page or report. Then default permissions will be applicable on that page or report.

Reset the default roles

Setting Role Permissions from the Page/Report as a Developer

Role Permissions For Page

  1. Go to: Home > Developer > Page.
  2. Add a row and select which other roles can access the Page. Assign roles to the page

Role Permissions For Report

  1. Go to: Home > Developer > Report.
  2. Add rows with roles who can access the Report. Assign roles to the report

Round off Account Validation Message

https://docs.frappe.io/erpnext/round-off-account-validation

Question

When submitting an invoice, why does it ask for a Round Off Account? How to update it?

Round off Account in Purchase Invoice

Answer

In the Purchase Invoice, Grand Total is calculated based on various calculations like:

  • Qty * Rate = Amount
  • Tax and other charges applied to each item
  • Discount applied to some or all the items
  • Multiplication with exchange rate, in case of multiple currencies

As a result of multiple calculations, there could be some rounding loss in the final amount. This rounding loss is generally very marginal like 0.034. But for the accounting accuracy, has to be posted in the accounts. Hence, you need to define a default Round-Off account in the Company master in which such amount availed as a result of rounding loss can be booked.

You need to create Round-off Account in the Chart of Accounts and update in the Company master. Steps here.

  • Accounts > Chart of Accounts
  • In the Chart of Account, check or create new Account under Expense > Direct Expense. Ignore if account for this purpose already existing
  • Come to Company master Account > Company
  • Open Company in which Round-Off account has to be updated.
  • In the Company master, scroll to Accounts Settings and select Round-Off account and Cost Center.
Round Off Account in Company

Once Round-Off account this updated in the Company master, then try to submit Purchase Invoice once again.

Routing

https://docs.frappe.io/erpnext/routing

Routing is a template of BOM Operations.

A Routing stores all Operations along with the description, hourly rate, operation time, batch size, etc. Creating a Routing for your BOM Operations is useful when similar Operations are used for manufacturing different items.

Prerequisites

How to Create a Routing

  1. Go to the Routing list, click on New.
  2. Enter a name for the Routing.
  3. Enter the Operations in the BOM Operation table:
  4. Select the Operation.
  5. The default Workstation will be fetched.
  6. Enter the Hourly Rate for running this Operation.
  7. Enter the Operation Time in minutes.
  8. Enter the Batch Size, i.e. the number of units processed in this Operation.
  9. The Operating Cost will be calculated based on the Hourly Rate and the Operation Time.
  10. Save.

Once created, a Routing can be selected in a BOM to fetch the Operations stored in the Routing.

Sequence ID in Routing

Sequence ID enforces the users to complete the operations sequentially via Job Card. In case a user tries to complete an operation before completing any of its precedent operations as per the Sequence ID, the system throws a validation error.

  1. Work Order
  2. Bill Of Materials

Rules

https://docs.frappe.io/erpnext/rules

Shipping and pricing rules are essential features in ERPNext's stock module that streamline the management of shipping costs and pricing strategies.

Shipping rules allow businesses to define various parameters for calculating shipping charges, such as weight, volume, destination, or shipping method. These rules automate the calculation of shipping costs during sales transactions, ensuring accurate and consistent shipping charges based on predefined criteria.

On the other hand, pricing rules in ERPNext empower businesses to create dynamic pricing strategies based on specific conditions or criteria. This includes setting discounts, promotions, bulk pricing, or special pricing for different customer segments, items, or sales channels.

Salary Slip from Timesheet

https://docs.frappe.io/erpnext/salary-slip-from-timesheet

The salary of an employee can be calculated based on the number of hours that he has worked for on a particular project.

To enable the same, you may choose to create the Employee's Salary Slip directly from a Timesheet.

Salary Slip

1. How to Create A Salary Slip from A Timesheet

  1. Once the Timesheet is submitted, and an invoice has been generated, go to the Timesheet and click on 'Create Salary Slip'.
  2. All the details, like the Employee, Employee Name, Posting Date, Company Name, Letter Head, etc. will get captured from the Timesheet.
  3. Dates: Since this Salary Slip is getting generated out of a Timesheet, it will auto-fetch the Start Date and End Date from the Timesheet. However, the same can be changed.
  4. Salary Slip Timesheet: The details of the Timesheet from which the Salary Slip was created will be captured. You can also more Timesheets here to create a single Salary Slip against multiple Timesheets.
  5. Save and Submit.

Salary Slip

1.1. Additional Details while Creating a Salary Slip form a Time Sheet:

  1. Earnings and Deduction: Any Earnings like HRA, Incentives etc. or Deductions like Income Tax, Provident Fund etc. in the Salary generated from the Timesheet can be mentioned here.
  2. Other Information: According to the Salary Structure of the Employee, the Gross payment information, the Loan Repayment Information, and the Net Pay information will get auto-captured.
  3. For a detailed guide on setting up overtime via timesheets, click here.

Sales Reports

https://docs.frappe.io/erpnext/sales-analytics

You can view your company's sales performance, analyze sales data in different views to see the sales performance. With filters, you can dynamically change what is displayed. There are three window areas that make up the Sales Analytics Report-The Filter Toolbar Window, the Graph Window and the Data Window shown as follows:

These analytics can be found under:

Home > Selling > Key Reports

Sales Analytics Report

Go to Selling > Analytics > Sales Analytics. The Sales Analytics report looks like this:

The toolbar provides filters to select what data is to be used. Using the dropdown selections, the data displayed can be refined. As the selections are made, data is reflected in the data window as well as the graph window.

Within the data window, selections can be made to expand or compress the data to be analyzed. Each box can be selected or unselected. There is no restriction for data comparison, so a higher level can be compared to a lower level.

Sales Analytics Result

Using the 'Set Chart' button, you can set values for the X and Y fields, use different type of charts and select a color.

Sales Funnel Report

Go to Selling > Analytics. The report "Sales Funnel" provides a sales generation analysis. It displays the progression of stages in the sales process. There are four stages leading up to a Sales Order: Active Leads, Opportunities, Quotations and Converted (has become a Customer).

  • Active Leads shows the number of all your Leads, including all the other stages.
  • Opportunities shows the number of Leads for which an Opportunity was created.
  • Quotation shows the number of leads for which a Quotation was submitted.
  • Converted shows the number of leads for which a Quotation and Sales Order was submitted.

The earlier stages usually include the later stages. However, if an earlier stage was skipped, you might see counterintuitive results like two Quotations resulting from one Opportunity (because it is not mandatory to create an Opportunity first).

Sales Funnel

Once a date range has been selected, the graph is updated, the graph reflects the changes and the associated labels.

3. Customer Acquisition and Loyalty Report

Go to Selling > Analytics. To understand revenue, it's often helpful to look at the data from a new customer and existing customers standpoint. This report helps visualize customer loyalty. There are two windows within this report: The Filter Window and the Data Window.

Accessing the Filter Window, the company and date ranges can be applied. Data is updated in the Data Window as changes are applied.

Within the Data Window, columns of information are accessible.

  • Moving columns: The columns can be moved, re-arranged by clicking on the column headings and dragging them.
  • Sorting: To sort the data in columns, click on the right-hand side of a column heading and you'll see options to sort as ascending, descending, reset sorting, or remove a column.
  • Filtering: The text boxes below the column headings work as instant filters. Enter a number there and all matching records will be shown.

Customer Acquisition and Loyalty

Under Key Reports there are reports for Inactive Customers, Ordered Items To Be Delivered, Sales Person-wise Transaction Summary, Item-wise Sales History, Quotation Trends, Sales Order Trends in the Selling module.

In the Other Reports section there are reports for the following:

  • Lead Details
  • Customer Addresses And Contacts
  • BOM Search
  • Available Stock for Packing Items
  • Pending SO Items For Purchase Request
  • Customer Credit Balance
  • Customers Without Any Sales Transactions
  • Sales Partners Commission

Sales Cycle Integration

https://docs.frappe.io/erpnext/sales-integration

Standard whitelisted methods and flows for integrating external order management system and sales cycle using REST API

1. Sales Order

Frappe Framework generates REST API for all the DocTypes out of the box. This approach can be used for creating the very first document of the sales cycle. In case you are starting with the Sales Order you can use the standard REST API POST request for generating the Order. An example is shown below, you can include custom fields and other doctype details in the body accordingly.

POST /api/resource/Sales Order

# Body
{
 "doctype": "Sales Order",
 "customer": "Test Customer",
 "company_address": "Test - Billing",
 "customer_address": "Test-Billing-3",
 "items": [{
 "item_code": "Mobile Display",
 "qty": 10,
 "rate": 2000,
 "delivery_date": "2022-11-06",
 "delivery_warehouse": "Stores - GTPL"
 }]
}

2. Delivery Note

In case you are starting with a Delivery Note use the same method as shown above for Sales Order, just replace the doctype key value to Delivery Note instead of Sales Order. In case you want to make a Delivery Note from a Sales Order use the below endpoint. The parameter here is the Sales Order ID.

source_name
POST /api/method/erpnext.selling.doctype.sales_order.sales_order.make_delivery_note

# Body
{"source_name": "SO-2022-00001"}

The endpoint returns a Delivery Note JSON object as a response with all the pending items in the order to be delivered.

3. Sales Invoice

Again if you are just making a Sales Invoice the best approach will be to use the standard REST API. For this please refer to the example mentioned in the Sales Order section.

For making a Sales Invoice from a Sales Order, use the endpoint mentioned below. The parameter here is the Sales Order ID.

source_name
POST /api/method/erpnext.selling.doctype.sales_order.sales_order.make_sales_invoice

# Body
{"source_name": "SO-2022-00001"}

For making a Sales Invoice from a Delivery Note, use the endpoint mentioned below. The parameter here is the Delivery Note ID.

source_name
POST /api/method/erpnext.stock.doctype.delivery_note.delivery_note.make_sales_invoice

# Body
{"source_name": "SO-2022-00001"}

Both the enpoints returns a Sales Invoice JSON object with all the pending items to be billed.

4. Payment against the order or invoice

For generating a Payment Entry against a Sales Order or Invoice use the below endpoint

POST /api/method/erpnext.accounts.doctype.payment_entry.payment_entry.get_payment_entry

# Body
{
 "dt": "Sales Invoice",
 "dn": "SI-2022-0001",
 "party_amount": 2000, # Pass if the document doesn't have an `outstanding_amount` field (optional parameter)
 "bank_account": "Bank Name - CAB", # Pass is case want to use other than the default one (optional parameter)
 "bank_amount": 2000, # Paid or received amount depending on the type of payment entry (optional parameter)
 "party_type": "Customer", # If payment entry is against party type other than Customer or Supplier (optional parameter)
 "payment_type": "Pay", # Pay or receive (optional parameter)
 
}

Sales Invoice

https://docs.frappe.io/erpnext/sales-invoice

A Sales Invoice is a bill that you send to your Customers against which the Customer makes the payment.

Sales Invoice is an accounting transaction. On submission of Sales Invoice, the system updates the receivable and books income against a Customer Account.

To access the Sales Invoice list, go to: > Home > Accounting > Accounts Receivable > Sales Invoice

SO Flow

Prerequisites

Before creating and using a Sales Invoice, it is advised to create the following first:

  • Item
  • Customer
  • Optional:
  • Sales Order
  • Delivery Note

How to create a Sales Invoice

A Sales Invoice is usually created from a Sales Order or a Delivery Note. The Customer's Item details will be fetched into the Sales Invoice. However, you can also create a Sales Invoice directly, for example, a POS invoice.

To fetch the details automatically in a Sales Invoice, click on the Get Items from. The details can be fetched from a Sales Order, Delivery Note, or a Quotation.

For manual creation, follow these steps:

  1. Go to the Sales Invoice list and click on New.
  2. Select the Customer.
  3. Set the Payment Due Date.
  4. In the Items table, select the Items and set the quantities.
  5. The prices will be fetched automatically if Item Price is added, else add a price in the table.
  6. The posting date and time will be set to current, you can edit after you tick the checkbox below Posting Time to make a backdated entry.
  7. Save and Submit.

Additional options when creating a Sales Invoice

  • Include Payment (POS): If this invoice is for retail sales / Point of Sale. Know more here.
  • Is Return Credit Note: Tick this if the customer has returned the Items. To know more details, visit the Credit Note page.

For India: e-Way Bill No: According to GST rules, transporters need to carry an e-Way Bill. To know how to generate an e-Way Bill, visit this page.

Statuses

These are the statuses that are auto-assigned to Sales Invoice.

  • Draft: A draft is saved but yet to be submitted.
  • Submitted: The invoice is submitted to the system and the general ledger has been updated.
  • Paid: Customer has made the payment and a Payment Entry has been submitted.
  • Unpaid: Invoice is generated but payment is pending but within the payment due date.
  • Overdue: Payment is pending beyond the payment due date.
  • Canceled: The Sales Invoice is canceled due to any reason. Once an invoice is canceled, it's impact on Account and Stock is undone.
  • Credit Note Issued: The Item is returned by the Customer and a Credit Note is created against this invoice.
  • Return: It is assigned to Credit Note created against the original Sales Invoice. Though you can also create a standalone Credit Note.
  • Unpaid and Discounted: Payment is pending and any ongoing subscription has been discounted using Invoice Discounting.
  • Overdue and Discounted: Payment is pending beyond the payment due date and any ongoing subscription has been discounted using Invoice Discounting.

Features

Dates

  • Posting Date: The date on which the Sales Invoice will affect your books of accounts i.e. your General Ledger. This will affect all your balances in that accounting period.
  • Due Date: The date on which the payment is due (if you have sold on credit). The credit limit can be set from the Customer master.

Accounting Dimensions

Accounting Dimensions lets you tag transactions based on a specific Territory, Branch, Customer, etc. This helps in viewing accounting statements separately based on the selected dimension(s). To know more, check help on Accounting Dimensions feature.

Note: Project and Cost Center are treated as dimensions by default.

Customer PO Details

  • Customer's Purchase Order: Track customer's PO No. received, primarily to prevent the creation of duplicate Sales Order or Invoice for the same PO received from the Customer. You can do more configuration related to customer's PO No. validation in Selling Settings
  • Customer's Purchase Order Date: The date on which the Customer placed the Purchase Order.

Address and Contact

  • Customer Address: This is the Billing Address of the Customer.
  • Contact Person: If the Customer is a company, the person to be contacted is fetched in this field if set in the Customer form.
  • Territory: A Territory is the region where the Customer belongs to, fetched from the Customer form. The default value is All Territories.
  • Shipping Address: Address where the items will be shipped to.

For India, the following details can be recorded for GST purposes. You can capture these details in the Address and Customer master, which would be fetched in the Sales Invoice.

  • Billing Address GSTIN
  • Customer GSTIN
  • Place of Supply
  • Company GSTIN

Currency

You can set the currency in which the Sales Invoice order is to be sent. This can be fetched from the Customer master or preceding transactions like Sales Order.

  • Wish to select Customer's currency just for the reference of the Customer, whereas accounts posting will be done in the Company's base currency only. Learn more here.
  • Maintain separate receivable account in the Customer's currency. The Receivable for this invoice should be posted in that currency itself. Read Multi Currency Accounting to learn more.

Price list

If you select a Price List, then the item prices will be fetched from that list. Ticking on 'Ignore Pricing Rule' will ignore the Pricing Rules set in Accounts > Pricing Rule.

Read Price List documentation to know more.

The Items table

Note: From version-13 onwards we have introduced immutable ledger which changes the rules for cancellation of stock entries and posting backdated stock transactions in ERPNext. Learn more here.

  • Update Stock Ticking this checkbox will update the Stock Ledger on submitting the Sales Invoice. If you've created a Delivery Note, the Stock Ledger will be changed. If you're skipping the creation of Delivery Note, tick this checkbox.
  • Scan Barcode: You can add Items in the Items table by scanning their barcodes if you have a barcode scanner. Read documentation for tracking items using barcode to know more.
  • Grant Commission: Grant a commission to Sales Person and Sales Partner on the net amount of this line item. If disabled, this line item will be ignored in the calculation of commission.
  • The Item Code, name, description, Image, and Manufacturer will be fetched from the Item master.
  • Discount and Margin: You can apply a discount on individual Items percentage-wise or on the total amount of the Item. Read Applying Discount for more details.
  • Rate: The Rate is fetched if set in the Price List and the total Amount is calculated.
  • Drop Ship: Drop Shipping is when you make the sales transaction, but the Item is delivered by the Supplier. To know more, visit the Drop Shipping page.
  • Accounting Details: The Income and Expense accounts can be changed here you you wish to. If this Item is an Asset, it can be linked here. This is useful when you're selling an Asset.
  • Deferred Revenue: If the income for this Item will be billed over the coming months in parts, then tick on 'Enable Deferred Revenue'. To know more, visit the Deferred Revenue page.
  • Item Weight: The Item Weight details per unit and Weight UOM are fetched if set in the Item master.
  • Stock Details: The following details will be fetched from the Item master:
  • Batch No and Serial No: If your Item is serialized or batched, you will have to enter Serial Number and Batch in the Items table. You are allowed to enter multiple Serial Numbers in one row (each on a separate line) and you must enter the same number of Serial Numbers as the quantity.
  • Item Tax Template: You can set an Item Tax Template to apply a specific Tax amount to this particular Item. To know more, visit this page.
  • References: If this Sales Invoice was created from a Sales Order/Delivery Note, it'll be referred here. Also, the Delivered Quantity will be shown.
  • Page Break will create a page break just before this Item when printing.
  • Warehouse: The Warehouse from where the stock will be sent.
  • Available Qty at Warehouse: The quantity available in the selected Warehouse.

Timesheet

If you want to bill Employees working on Projects on an hourly basis (contract based), they can fill out Timesheets which consists of their billing rate. When you make a new Sales Invoice, select the Project for which the billing is to be made, and the corresponding Timesheet entries for that Project will be fetched.

If your Company's Employees are working at a location and it needs to be billed, you can create an Invoice based on the Timesheet.

To know more, visit this page.

Taxes and Charges

The Taxes and Charges will be fetched from the Sales Order or Delivery Note.

Visit the Sales Taxes and Charges Template page to know more about taxes.

The total taxes and charges will be displayed below the table.

To add taxes automatically via a Tax Category, visit this page.

Make sure to mark all your taxes in the Taxes and Charges table correctly for an accurate valuation.

Shipping Rule

A Shipping Rule helps set the cost of shipping an Item. The cost will usually increase with the distance of shipping. To know more, visit the Shipping Rule page.

Loyalty Points Redemption

If the Customer is enrolled in a Loyalty Program, they can choose to redeem it. To know more, visit the Loyalty Program page.

Additional Discount

Any additional discounts to the whole Invoice can be set in this section. This discount could be based on the Grand Total i.e., post tax/charges or Net total i.e., pre tax/charges. The additional discount can be applied as a percentage or an amount. Visit the Applying Discount page for more details.

Advance Payment

For high-value Items, the seller can request an advance payment before processing the order. The Get Advances Received button opens a popup from where you can fetch the orders where the advance payment was made. To know more, visit the Advance Payment Entry page.

Payment Terms

The payment for an invoice may be made in parts depending on your understanding with the Supplier. This is fetched if set in the Sales Order. To know more, visit the Payment Terms page.

Write Off

Write off happens when the Customer pays an amount less than the invoice amount. This may be a small difference like 0.50. Over several orders, this might add up to a big number. For accounting accuracy, this difference amount is 'written off'. To know more, visit the Payment Terms page.

Terms and Conditions

There may be certain terms and conditions on the Item you're selling, these can be applied here. Read Terms and Condition documentation to know how to add them.

Printing Settings

Letterhead

You can print your Sales Invoice on your Company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the Items table. This can be seen when your print.

Sales Invoice headings can also be changed when printing the document. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

There are additional checkboxes for printing the Sales Invoice without the amount, this might be useful when the Item is of high value. You can also group the same Items in one row when printing.

GST Details (for India)

The following details can be set for GST:

  • GST Category
  • Invoice Copy
  • Reverse Charge
  • E-commerce GSTIN
  • Print Heading

Additional Information

The following Sales details can be recorded:

  • Campaign: If this invoice is a part of on ongoing sales Campaign, it can be linked. To know more, visit the Campaign page.
  • Source: A Lead Source can be tagged here to know the source of sales. To know more, visit the Lead Source page.

Accounting Details

  • Debit To: The account against which receivable will be booked for this Customer.
  • Is Opening Entry: If this is an opening entry to affect your accounts select 'Yes'. i.e. if you're migrating from another ERP to ERPNext mid year, you might want to use an Opening Entry to update account balances in ERPNext.
  • Remarks: Any additional remarks about the Sales Invoice can be added here.

Commission

If the sale took place via one of your Sales Partners, you can add their commission details here. This is usually fetched from the Sales Order/Delivery Note.

Sales Team

Sales Persons: ERPNext allows you to add multiple Sales Persons who may have worked on this deal. This is also fetched from the Sales Order/Delivery Note.

Automatically Fetching Item Batch Numbers

If you are selling an Item from a Batch, ERPNext will automatically fetch a batch number for you if "Update Stock" is checked. The batch number will be fetched on a First Expiring First Out (FEFO) basis. This is a variant of First In First Out (FIFO) that gives the highest priority to the soonest to expire Items.

Note that if the first batch in the queue cannot satisfy the order on the invoice, the next batch in the queue that can satisfy the order will be selected. If no batch can satisfy the order, ERPNext will cancel its attempt to automatically fetch a suitable batch number.

POS Invoices

Consider a scenario where the retail transaction is carried out. For e.g: A retail shop. If you check the Is POS checkbox, then all your POS Profile data is fetched into the Sales Invoice and you can easily make payments.

Also, if you check the Update Stock the stock will also update automatically, without the need for a Delivery Note.

After Submitting

On submitting a Sales Invoice, the following documents can be created against it:

  1. Journal Entry
  2. Payment Entry
  3. Payment Request
  4. Invoice Discounting
  5. Delivery Note

More

Accounting Impact

All Sales must be booked against an “Income Account”. This refers to an Account in the “Income” section of your Chart of Accounts. It is a good practice to classify your income by type (like product income, service income, etc). The Income Account must be set for each row of the Items table.

Tip: To set default Income Accounts for Items, you can set it in the Item or Item Group.

The other account that is affected is the Account of the Customer. That is automatically set from “Debit To” in the heading section.

You can also mention the Cost Centers in which your Income must be booked. Remember that your Cost Centers tell you the profitability of the different lines of business or product. You can also set a default Cost Center in the Item master. See also: Accounting Dimensions.

Accounting entries (GL Entry) for a typical double entry “Sale”:

When booking a sale (accrual):

  • Debit: Customer (grand total)
  • Credit: Income (net total, minus taxes for each Item)
  • Credit: Taxes (liabilities to be paid to the government)

To see entries in your Sales Invoice after you “Submit”, click on “View Ledger”.

  1. Cost Center
  2. Journal Entry
  3. Payment Entry
  4. Purchase Invoice
  5. Purchase Receipt
  6. Item Wise Taxation
  7. Sales Order
  8. Quotation
  9. Delivery Note

Sales Invoice from Timesheet

https://docs.frappe.io/erpnext/sales-invoice-from-timesheet

A customer can be billed based on the total number of hours an employee has worked for that customer. The actual number of hours of billable work can be tracked via a Timesheet.

A sales invoice can be generated from each Timesheet submitted by an employee which can be used to bill the customer.

How to Create A Sales Invoice from A Timesheet

  1. Once the Timesheet is submitted, click on 'Create Sales Invoice'.
  2. Enter the Item Code and name of the Customer who has to be billed against this Timesheet. The Item could be a Product as well as a Service. Click on 'Create Sales Invoice'.
  3. All the details of the Timesheet will get auto-populated in the Sales Invoice.
  4. The posting date and time will be set to current, you can edit after you tick the checkbox below Posting Time.
  5. Optionally, you can include payments for POS or make this a credit note.
  6. Save and Submit.

To fetch the details automatically in a Sales Invoice, click on the Get items from button. The details can be fetched from a Sales Order, Delivery Note, or a Quotation. The details like Customer PO, Address and Contact Number, Currency and Price List, Items will get auto-populated.

Sales invoice from timesheet

Features

Additional Details while creating a Sales Invoice from a Timesheet:

  • Accounting Dimensions: Accounting Dimensions lets you tag transactions to a specific Territory, Branch, Project, etc. This helps in viewing accounting statements separately based on the criteria selected. To know more, visit the Accounting Dimensions page.
  • Time Sheet List: Since the Project is created from a Time Sheet, the details of the Time Sheet will get auto-fetched. You can click on 'Add Row' to add more Time Sheets to this Invoice.

All the other details can be added as you would add them in any Sales Invoice.

After submitting

Once you have submitted the Sales Invoice, The details like 'Total Billed Hours', 'Total Billed Amount' and '% Amount Billed' will get updated in the Timesheet. Further, a Salary Slip can also be generated from the Timesheet.

Sales Invoice without an Item

https://docs.frappe.io/erpnext/sales-invoice-without-an-item

A Sales Invoice is a bill that you send to your Customers against which the Customer makes the payment.

There are cases where the user needs to create sales invoices without an item code (miscellaneous charges, one-time items). There is a way to handle such cases in ERPNext.

1. Prerequisites

Before creating and using a Sales Invoice, it is advised to create the following first:

2. How to create a Sales Invoice without an Item Code

  1. Go to the Sales Invoice list and click on New.
  2. Select the Customer.
  3. Set the Payment Due Date.
  4. In the Items table, click on edit in the first row, and enter the:
  5. Item Name
  6. Description
  7. Quantity
  8. UOM
  9. Rate
  10. Income Account

  1. Save and Submit.

Similarly, you can create a Credit Note without an item using this method. An additional step would be to enable “Is Return” and to enter the quantity in negative.

All the other features related to Sales Invoices remain the same

Sales Order

https://docs.frappe.io/erpnext/sales-order

A Sales Order is a confirmation of an order from your customer.

It is usually a binding Contract with your Customer. Once your customer confirms the Quotation you can convert your Quotation into a Sales Order.

Sales Flow

To access Sales Order, go to:

Home > Selling > Sales > Sales Order

Prerequisites

Before creating and using a Sales Order, it is advised that you create the following first:

  • Customer
  • Item

How to create a Sales Order

  1. Go to the Sales Order list, click on New.
  2. Select the Customer.
  3. Set the 'Delivery Date' - applied to the whole order.
  4. With Order Type, you can set whether it's a Sales order, Maintenance order, or from the online Shopping Cart of your website. By default, this value is set to "Sales".
  5. In the "Customer's Purchase Order" you can enter the Customers Purchase Order No. or other details which may be useful as a reference.
  6. Enter the items and quantities to be delivered in the Item table. If Item Prices are set for the items, the Rate field will be populated automatically. If not, enter the item Rate manually. You can also overwrite the auto-populated Item Rate in case you want to change that value.
  7. Click "Save" to save a draft of the Sales Order.
  8. "Submit" to submit the Sales Order to the System.

Other ways to create a Sales Order

  1. You can also create a Sales Order from a submitted Quotation via the Create button on the top right. Make Sales Order from Quotation
  2. Or you can create a new Sales Order and pull details from a Quotation. Make Sales Order from Quotation

To allow for per-Customer, per-Item Pricing Rules, ("Customer A" pays $1.00 for "Item 1" but "Customer B" pays $1.25 for "Item 1"), there's a check box called 'Allow User to Edit Price List Rate in Transaction' in Selling Settings. This enables saving the specific item price per customer when you change a price in the Sales Order.

Features

Currency and Price List

You can set the currency in which the quotation/sales order is to be sent. If you set a Pricing List, then the item prices will be fetched from that list. Ticking on 'Ignore Pricing Rule' will ignore the Pricing Rules set in Accounts > Pricing Rule.

Read about Price Lists and Multi-Currency Transactions to know more.

Set Source Warehouse

If you have the same stock in multiple warehouses, setting a warehouse here will cause all the items from the item table to be fetched from this warehouse. You need to have stock available in this 'source warehouse' you're setting. Note that this option will override the 'Default Warehouse' you've set in the Item master.

The Items Table

  • Delivery Date against each item: If there are multiple items and if you enter a delivery date in the first row, the date will be copied to other rows as well where it is blank. You'll have to set these if not set globally at the top of the Sales Order.

A Sales Order displays the billed amount, valuation rate, and gross profit in the items table when you click on the inverted triangle to expand a row.

You can also add Items in the Items table by scanning their barcodes if you have a barcode scanner. Read documentation for tracking items using barcode to know more.

  • Delivery Warehouse: This is the warehouse from where the stock will be picked to be delivered to your customer.
  • Drop Ship: This is a situation where you do not keep items in stock in your own Warehouse but deliver items directly to a customer from a distributor. To enable drop shipping for an item tick on the 'Supplier delivers to Customer'. When you tick on this, the Delivery Warehouse option will disappear since you're not shipping the item. Select your supplier in the 'Supplier' field.

Further, if you create a purchase order from this sales order, it'll be created for the supplier you selected here and only the items which are valid for drop shipping.

  • Planning: Read Projected Quantity to know about the fields under planning.

The other fields in the item table are similar as explained in Quotation.

Packing List

This is linked to the Product Bundle and appears only when the transaction involves a product bundle.

The “Packing List” table will be automatically updated when you “Save” the Sales Order. If any Items in your table are Product Bundle (packets), then the “Packing List” will contain the exploded (detailed) list of your Items.

You will be asked to select a Delivery Warehouse even for a product bundle item, this warehouse will be then updated in the Packing List items. You can change the warehouse, serial number, and batch in the packing list items in case items in your product bundle come from different warehouses.

Here is what a Packing List looks like:

Taxes and Charges

To add taxes to your Sales Order, you can select a Sales Taxes and Charges Template or add the taxes manually in the Sales Taxes and Charges table.

The total taxes and charges will be displayed below the table. Clicking on Tax Breakup will show all the components and amounts.

Shipping Rule

A Shipping Rule helps set the cost of shipping an Item. The cost will usually increase with the distance of shipping. To know more, visit the Shipping Rule page.

If a Tax Category is selected, the template and tax table will be automatically populated. To know more, visit this page.

Additional Discount

Other than offering discount per item, you can add a discount to the whole sales order in this section. This discount could be based on the Grand Total i.e., post tax/charges or Net total i.e., pre tax/charges. The additional discount can be applied as a percentage or an amount.

Read Applying Discount for more details.

Payment Terms

Sometimes payment is not done all at once. Depending on the agreement, half of the payment may be made before shipment and the other half after receiving the goods/services. You can add a Payment Terms template or add the terms manually in this section.

Read Payment Terms to know more.

Terms and Conditions

In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here

Letterhead

You can print your quotation/sales order on your company's letterhead. Know more here.

'Group same items' will group the same items added multiple times in the items table. This can be seen when your print.

Quotations can also be titled as “Proforma Invoice” or “Proposal”. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

More Information

  • Campaign: A Sales campaign can be associated with the quotation. A set of quotations can be part of a sales campaign.
  • Source: A Lead Source type can be linked if quoting to a lead, whether from a campaign, from a supplier, an exhibition etc,. Select Existing Customer if quoting to a customer.
  • Inter Company Order Reference: If two of your companies are part of the same organization or have a parent-child relationship, you can link a Purchase Order to this Sales Order. Know more about inter-company invoicing here.
  • Project: If your Sales Order is part of a project, you can link it here and the Project progress will be updated.

Billing and Delivery Status

  • Status: The status of the Sales Order whether a Draft, On Hold, To Deliver and Bill, To Bill, To Deliver, Completed, Cancelled, or Closed.
  • Amount Billed and Delivered percent: The percentage of amount billed and the items delivered from the Sales Order.

Commission

If the sale took place via one of your Sales Partners, you can add their commission details here. Enter the commission rate and the commission amount will be displayed below.

Sales Team

Sales Persons: ERPNext allows you to add multiple Sales Persons who may have worked on this deal. You can change the contribution percentage of the Sales Persons and track how much incentives they earned on this deal.

Auto Repeat Section

Auto repeating Sales Orders is like a subscription. Set a start and end date for the auto-repeat. Select the Auto Repeat created. To know more about auto repeat click here.

After Submitting

Sales Order is a “Submittable” transaction. You will be able to execute further steps (like making a Delivery Note) only after “Submitting” a Sales Order.

Once you “Submit” your Sales Order, you can trigger actions from the Sales Order:

  • You can Add, Update, Delete items in the Sales Order by clicking on the Update Items button. However you cannot delete items which has already been delivered or has work order assigned to it.
  • Status: Once submitted, you can hold a Sales Order or Close it.
  • Create: From a submitted Sales Order, you can create the following:
  • Delivery Note - To make a shipment entry. You can also make Delivery Note for selected items based on the delivery date.
  • Work Order - To start a Work Order with the raw materials.
  • Sales Invoice - To bill the Order.
  • Material Request - To request re-stocking materials if out of stock.
  • Request for Raw Materials - To request raw materials required for manufacturing.
  • Project - To create a project based on the Sales Order.
  • Subscription - To auto repeat the Sales Order, i.e., make it a subscription.
  • Payment Request - To make a Payment Request.
  • Payment - To record payment against the Sales Order.

These actions can also be seen at the top of the Dashboard. You can also make an accounting Journal Entry based on the Sales Order from the dashboard.

Sales Order with Order type 'Maintenance'

When the 'Order Type' of the Sales Order is 'Maintenance' follow these steps:

  1. Enter Currency, Price list, and Item details.
  2. Mention taxes and other information.
  3. Save and Submit the form.
  4. Once the form is submitted, the Create button will provide these choices specific to the maintenance Order Type. ) Maintenance Visit i) Maintenance Schedule. Sales Order Maintenance Type

Note 1: By clicking on the Action button and selecting 'Maintenance Visit' you can directly fill the visit form. The Sales Order details will be fetched directly.

Note 2: By clicking on the Action button and selecting 'Maintenance Schedule' you can fill the schedule details. The Sales Order details will be fetched directly.

Note 3: By clicking on the Invoice button you can make an Invoice for your services. The sales orders details will be fetched directly.

  1. Quotation
  2. Close Sales Order
  3. Amending Sales Order After Submit
  4. Pick List

Sales Partner

https://docs.frappe.io/erpnext/sales-partner

Sales Partners are people or companies that assist you in getting business.

Sales Partners can be represented by different names in ERPNext. You can call them Channel Partner, Distributor, Dealer, Agent, Retailer, Implementation Partner, Reseller, etc.

For each Sales Partner, you can define a commission rate. When a Sales Partner is selected in transactions, their commission is calculated over Net Total of Sales Order/Invoice or Delivery Note.

To access Sales Partner, go to:

Home > Selling > Sales Partner

How to Create a Sales Partner

  1. Go to the Sales Partner list, click on New.
  2. Enter the Sales Partner name and the Commission Rate.
  3. You can also select the type of Sales Partner you're creating to identify if they're a Reseller or Retailer, and so on.
  4. Save.

Features

Address and Contact

You can add and track a Sales Partner's Addresses and Contact details. These can be added in the Address & Contacts section in a Sales Partner:

Sales Partner Target

You can allocate Targets for each Item Group and Territory, based on Qty and Amount. You can allocate targets Territory- or Month-wise, to know more see Related Topics.

Including Sales Partners in Your Website

To include the name of your Partner on your website, tick the "Show in Website" checkbox. When you click on "Show in Website", you will see a field where you can attach the logo of your partner's company and enter a brief introduction of the partner, and optionally add a description for internal purposes/references.

To see the listing of partners, go to:

https://yourCompanyName.erpnext.com/partners

Sales Partner

Track Sales via Sales Partner

Sales Partner can actively generates leads for your company products/ services. To track the performance of each sales partner use Referral Code and their URL as below

URL as shown below should be sent to the sales partner to use in their website/campaign.

e.g. A URL having "sp" as parameter like this http://xyz.erpnext.com?sp=speed will capture the Sales Partner Information in the Sales Order generated via Shopping Cart.

Sales Partner Reports

Sales Partner Commission Summary

To get Sales Order wise Sales Partner commission data.

Sales Partner Transaction Summary

To get Sales Order item-wise Sales Partner commission data.

Sales Partner Target Variance

This report will provide you variance between target and actual performance of the Sales Partner based on the Sales Order / Sales Invoice / Delivery Note data. User can view this report period wise like Monthly, Quarterly, Half-Yearly, or Yearly.

  1. Sales Person Target Allocation
  2. How to record Commission to Sales Partner in ERPNext?

Sales Person

https://docs.frappe.io/erpnext/sales-person

Sales Person is a person who sells your products/services.

Sales Persons are created in hierarchical manner in ERPNext. You can create sales persons and add other sales persons under the main sales persons.

To access the Sales Person list, go to:

Home > Selling > Selling > Sales Person

It can also be accessed from: Home > CRM > Settings > Sales Person

1. How to Create a Sales Person

  1. Go to the Sales Person list and clic on New.
  2. Enter the Sales Person Name.
  3. Select the Employee for the Sales Person.
  4. Tick 'Group Node' checkbox, if you would like to add more Sales Person under this Sales Person.
  5. Click on 'Create New'.

Sales Person Tree

2. Features

2.1 Sales Person in Transactions

You can use Sales Person sales transactions like Sales Order, Delivery Note and Sales Invoice. Read Sales Persons in Sales Transactions for more details.

2.2 Assign Sales Targets to Sales Person

You can assign sales target for sales person and track the progress. Read Sales Person Target Allocation for more details.

  1. Sales Order
  2. Sales Person Target Allocation
  3. Delivery Note
  4. Sales Invoice

Sales Person Target Allocation

https://docs.frappe.io/erpnext/sales-person-target-allocation

It is the assignment of Sales Persons to an item or a territory.

Along with the management of Sales Persons, ERPNext also allows you to assign target Sales Persons based on Item Group and Territory. Based on target allocated and actual sales booked by Sales Person, you will get the Target Variance Report for the Sales Person.

##1. Sales Person - Target Allocation

###1.1 Open Sales Person's Master

To allocate target, you need to open specific Sales Person master.

Selling > Sales Partners and Territory > Sales Person > Edit

###1.2 Allocate Target

In the Sales Person master, you will find a table called Sales Person Targets.

Sales person target

In this table, you should select Item Group, Fiscal Year, Territory, Target Qty, Target Amount, and Target Distribution.

You can give target in amount or quantity, or both. Item Group or Territory can also be left blank. In this case, the system will calculate target based on All Item Groups or All the Territories respectively.

Target Distribution

You can spread the target across months. For this create a new monthly distribution, you can see the option when you click on the Target Distribution field in the Targets table. For example, a target of selling 1,000 units for first quarter of the Fiscal Year 2019-2020 as shown in the preceding screenshot.

Target Distribution

###1.3 Report - Sales Person Target Variance

To check this report, go to:

Selling > Other Reports > Sales Person Target Variance

This report will provide you variance between target and actual performance of Sales Person. This report is based on Sales Order report.

Here, as per the report, allocated target to Sales Person was roughly 83 in quantity for a month, but he has achieved a target of 80 when the report is being viewed, hence the variance report is shown accordingly.

Target Item Group

Note: For the report to reflect correct details, you need to link a Sales Person to a Sales Order, it's present in the Sales Team section of Sales Order. The Sales Order also has to be in the submitted stage.

##2. Sales Person - Territorywise Target Allocation

For allocating Territory-wise targets to Sales Person, select the specific Sales Person in the Territory master. This Sales Person is entered just for the reference. Sales Person details are not updated in the variance report of Territorywise Target Allocation.

###2.1 Go to Territory master

Selling > Settings > Territory > (Edit specific Territory)

In the selected Territory, you will find a field to select Territory Manager. This field is linked to "Sales Person" master.

Sales Person Territory Manager

###2.2 Allocating Target

Target Allocation in the Territory master is similar to Sales Person master. You can follow the same steps given in section 1.2 Allocate Item Groupwise Target to specify target in the Territory master also.

###2.3 Report - Territory Target Variance Item Groupwise

This report will provide you variance between target and actual performance of Sales in particular territory. This report is based on Sales Order report. Though Sales Person is defined in the Territory master, its details are not pulled in the report.

Note that the Territory of the Customer/Customers must be set accordingly for this report to work. For example, in the following screenshot, the target was approx eight units and five was achieved, hence the variance is three.

Sales Person Territory Report

##3. Target Distribution

To create a new Monthly Distribution, go to: Accounting > Monthly Distribution

Target Distribution document allows you to divide allocated targets across multiple months. If your products and services are seasonal, you can distribute the sales target accordingly. For example, if you are into umbrella business, then target allocated in the monsoon season will be higher than in other months.

Target Distribution

You can link Monthly Distribution while allocating targets in Sales Person and in Territory master.

  1. Sales Persons in the Sales Transactions
  2. Using Sales Person in transactions

Sales Persons in the Sales Transactions

https://docs.frappe.io/erpnext/sales-persons-in-the-sales-transactions

In ERPNext, Sales Person master is maintained in tree structure. Sales Person is selectable in all the sales transactions.

Sales Persons can be updated in the Customer master as well. On selection of Customer in the transactions, Sales Persons as updated in the Customer will fetch into sales transaction.

Sales Person Customer

####Sales Person Contribution

If more than one sales persons are working together on an order, then contribution (%) should be set for each Sales Person.

Sales Person Order

On saving transaction, based on the Net Total and Contriution (%), will be calculated for each Sales Person.

Contribution to Net Total

Total % Contribution for all Sales Person must be 100%. If only one Sales Person is selected, then % Contribution will be 100.

####Sales Person Transaction Report

Check Sales Person's Transaction report from:

Selling > Standard Reports > Sales Person-wise Transaction Summary

This report can be generated based on Sales Order, Delivery Note and Sales Invoice. It will give you total amount of sale made by an employe.

Sales Person Report

####Sales Person wise Commission

ERPNext only provide total amount of sale made by a Sales Person. If you offer commission to Sales Person, you should add Sales Person as Sales Partners in ERPNext. For Sales Partners, you can define Commission (%). On selected on Sales Partner in a sales transction, based on Net Total, Commission Amount is calculated as well. You can check Sales Partner's commission report from:

Accounts > Standard Reports > Sales Partners Commission

Sales Pipeline

https://docs.frappe.io/erpnext/sales-pipeline

The sales pipeline in ERPNext CRM is a structured process that manages and tracks every stage of the sales cycle. It starts with lead generation and moves through different stages the cycle to deal closure. Each stage in the pipeline is managed and monitored in the system using activity tracking, communication logs, appointment management, contract generation etc.

With the help of effective management of sales pipeline, organisations to streamline their sales processes, improve conversion rates, and enhance customer relationships.

Sales Return

https://docs.frappe.io/erpnext/sales-return

A sold Item being returned is known as a Sales Return.

Businesses often return goods that are already sold. They could be returned by the customer due to quality issues, non-delivery on the agreed date, or any other reason.

Prerequisites

Before creating and using a Sales Return, it is advised that you create the following first:

  • Item
  • Sales Invoice or Delivery Note

How to create a Sales Return

  1. First open the original Delivery Note / Sales Invoice, against which Customer returned the Items. Original Delivery Note
  2. Then click on 'Create > Sales Return', it will open a new Delivery Note with 'Is Return' checked, Items, Rate, and taxes will negative numbers. Return Against Delivery Note
  3. You can also create the return entry against the original Sales Invoice, to return stock along with credit note, check "Update Stock" option in Return Sales Invoice. Return Against Sales Invoice
  4. On submission of Return Delivery Note / Sales Invoice, the system will increase stock balance in the mentioned Warehouse. To maintain correct stock valuation, stock balance will go up according to the original purchase rate of the returned items. Return Stock Ledger
  5. In case of Return Sales Invoice, Customer account will be credited and associated income and tax account will be debited as shown in the Accounting Ledger. Return Stock Ledger

If Perpetual Inventory is enabled, the system will also post accounting entry against warehouse account to sync warehouse account balance with stock balance as per Stock Ledger.

Impact on Stock Return via Delivery Note

On Creating a Sales Return against a Delivery Note:

The Returned Quantity in the original Delivery Note along with any Sales Order linked to it, is updated.

The original Delivery Note's status is changed to Return Issued if 100% returned:

  1. Purchase Return
  2. Perpetual Inventory

Sales Return Management

https://docs.frappe.io/erpnext/sales-return-use-cases

In an event of Sales Return, the following adjustment pertaining to stock and accounting can be handled in multiple ways. Let's check what stock and accounts posting would be posted based on the Sales Return adjustment.

Return Without Payment

If a customer request for the returns even before processing a payment, then you can simply:

  1. Cancel the Sales Invoice.
  2. Create a Sales Return against a Delivery Note

If your statutory laws don't allow you to cancel the Sales Invoice, you can create a Credit Note against a Sales Invoice as well.

This is a scenario where the customer purchased an item from you for which Sales Invoice as submitted, and also paid.

  1. Create a Credit Note against a Sales Invoice.
  2. In the Sales Invoice, check field "Is Paid". Ensure that Payment Account / Mode of Payment is selected in the relevant table.
  3. If you wish to also return items via Sales Invoice itself, check field "Update Stock".
  4. Save and Submit Credit Note.

Create sales return

As per this entry, the sold items will be accepted back in your Warehouse. Also, the payment received from the Customer will be reversed.

After the Credit Note creation, the Outstanding Balance of Sales Invoice will turn negative. This will give you scope to adjust this Sales Invoice (with a negative balance) to adjust against the future outstanding Sales Invoice.

Unpaid Sales Invoice - Credit Note

In the case of Sales Return where the customer didn't process any payment, you can simply create a Credit Note. On creation of Credit Note, Outstanding of the Sales Invoice will become negative.

For the Adjustment of stock, you can create a Sales Return against Delivery Note or in the Credit Note itself, check field "Update Stock".

Sales Taxes and Charges Template

https://docs.frappe.io/erpnext/sales-taxes-and-charges-template

Sales Taxes and Charges may be applied to any item you sell.

The templates created from this form can be used in Sales Orders and Sales Invoices.

For Tax Accounts that you want to use in the tax templates, you must set the Account Type field as 'Tax' for that particular account. The way ERPNext sets up taxes is via templates. Other types of charges that may apply to your invoices (like shipping, insurance etc.) can also be configured as taxes.

To know about setting up taxes visit this page.

To access Sales Taxes and Charges Template, go to:

Home > Selling > Settings > Sales Taxes and Charges Template

To know about setting up taxes visit this page

1. How to add Sales Taxes/Charges via a template

Before creating a new template, note that templates are already created for many of the commonly used taxes.

  1. Go to the Sales Taxes and Charges Template list, click on New.
  2. Enter a title name for the Tax.
  3. Under type, set on what the tax will be calculated and the tax rate. There are five options under type for which tax will be calculated.
  4. Actual: You can directly enter the amount for the expense.
  5. On Net Total: On the net total of all the items.
  6. On Previous Row Amount: This is for compounding the charges. For example, cess charges over the amount to which tax was already applied in the previous row.
  7. On Previous Row Total: Same as above but applied on the total bill and not just the amount of an item.
  8. On Item Quantity: Tax will be calculated as Tax Rate * Item Quantity. For example, if Tax Rate is 2% and number of Items is 1, then Tax Rate will be 4, if number of Items are 5, Tax Rate will be 10, and so on.
  9. Select an account head which has pre set tax rates or create your own.
  10. Selecting default will apply this template by default for new Sales transactions.
  11. Save.
Sales taxes

Is Inter State: For India. On selection of a customer in Sales Invoice or Delivery Note, if the GST codes of place of supply and customer shipping address don't match, the template with 'Is Inter State' ticked will be set as the taxes template. If the place of supply and shipping address are the same, the default taxes template will be applied. This also applies to Purchase Invoice, on selection of Supplier, the templates are set depending on the addresses. For example, IGST.

2. Features

2.1 Sales Taxes and Charges table

Consider Tax or Charge for: Total - for the total of all items. Valuation - for each item. Valuation and total - apply tax/charge to both. Check out this article to know the difference.

Reference Row #: If tax is based on "Previous Row Total" you can select the row number which will be taken as a base for this calculation (default is the previous row).

Sales taxes table

Is this Tax included in Basic Rate?: If checked, the tax amount will be considered as already included in the Print Rate / Print Amount in the Item table of a transaction. This is useful when you want to give tax inclusive price to your customers. To account for tax inclusive rates, the system calculates the Net Amount by deducting the amount of tax to be applied then calculates the tax on it.

Account Head: The Account ledger under which this tax will be booked. If you select VAT or any other preset heads, the rate will be automatically filled.

Cost Center: If the tax/charge is an income (like shipping) or expense it needs to be booked against a Cost Center.

Description: Description of the tax (that will be printed in invoices/quotes).

Rate: The Tax rate, eg: 14 = 14% tax.

Amount: The Tax amount to be applied, eg: 100.00 = ₹100 tax.

The tax rates you define in the template be the standard tax rate for all Items. If there are Items that are supposed have different rates, you can override the standard tax rate by setting an Item Tax Template to the Item or Item Group.

  1. Sales Order
  2. Selling Settings

CRM Analytics

https://docs.frappe.io/erpnext/sales_funnel

For example, if you notice that very few communications with the prospects have taken place in a month which may have led to decrease in the sales. You can make sure that the sales executives reach out and followup on the leads and opportunities on regular basis.

1. Sales Funnel

By using the sales funnel report, you can quantify the number of prospects at each stage of the process and you can get an idea of your potential customers.

More than this, by looking at the way these numbers change over time, you can identify problems in the sales pipeline and take any corrective action at an early stage.

Select the Company, select the From Date, To Date and select Sales Funnel in Chart.

Sales Funnel

2. Sales Pipeline

An opportunity will pass through many sales stages before it yields any business. Using this report you can visualise the total amount of business the opportunities have and compare them across the stages.

Select the Company, select the From Date, To Date and select Sales Pipeline in Chart.

Sales Pipeline

3. Opportunities by Lead Source

This report helps you visualise the business potential of opportunities based on the Lead Sources.

Select the Company, select the From Date, To Date and select 'Opportunities by Lead Source' in Chart.

Opportunities By Lead Source

Sales Stage

https://docs.frappe.io/erpnext/sales_stage

A Sales Stage indicates the level at which an opportunity is in the sales cycle.

Generally high values deals go through a number of stages before the sale is concluded. You will have to nurture high value opportunities over a period of time before you can successfully close a sale.

You can create the sales stages and in each opportunity you can select the stage it is in and update it as you nurture the opportunity. This helps you getting an overview of how many opportunities you have in each stage.

To access Sales Stage, go to:

Home > CRM > Settings > Sales Stage

  1. How to Create a Sales Stage
  1. Go to the Sales Stage and click on New.
  2. Enter the Stage Name.

Screenshot 2023-12-28 at 11.08.40 AM

The system allows you to maintain a list of different sales stages.

Screenshot 2023-12-28 at 11.08.14 AM

Production Scrap Management

https://docs.frappe.io/erpnext/scrap-management

Scrap means waste that either has no economic value or only the value of its basic material content recoverable through recycling.

Scrap is generally availed at the end of the manufacture process. Also you can find some products that are damaged or that are unusable due to expiry or for some other reason, which needs to be scraped.

In ERPNext, at the end of manufacturing process, scrap items are accounted in the scrap warehouses.

Scrap in Bill of Materials

You can update estimated scrap quantity of an item in the BOM, Scrap table. If required, you can reselect a raw-material item as scrap.

Scrap in BOM

Scrap in Manufacture Entry

When production is completed, Finish / Manufacture Entry is created against a Production Order. In this entry, scrap item is fetched in the Item table, with only Target Warehouse updated for it. Ensure that Valuation Rate is updated for this item for the accounts posting purposes.

Scrap in Manufacture Entry

Scrap from the BOM will only work if Manufacture Entry is created based on BOM, and not based on Material Transfer. This is configurable from Manufacturing Settings.

Manufacturing Settings

Scrapping an Asset

https://docs.frappe.io/erpnext/scrapping-an-asset

When an asset is no longer usable, it is scrapped.

You can scrap an asset anytime using the "Scrap Asset" button in the Asset record. The system will ask for a scrapping date.Then the asset will be scrapped on that date with back dated effect.

The scrapping date cannot be before the purchase date or it cannot be after the current date. Also, If the depreciation entries are passed, asset can only be scrap after the last depreciation date and not before it. In such cases depreciation entry needs to be manually cancelled first and then scrapping can be possible.

The "Gain/Loss Account on Asset Disposal" account mentioned in the Company is debited by the Current Value (After Depreciation) of the asset.

A Journal Entry will be created if you scrap an asset:

After scrapping, you can also restore the asset using "Restore Asset" button from the asset master.

Search Record by Specific Field

https://docs.frappe.io/erpnext/search-record-by-specific-field

While creating any DocType, you may want to link a particular field to another DocType. For example, in Sales Order DocType, 'Customer' field allows you to select an existing customer. Such fields are called Link Fields.

Using Link Fields you can create a

Let's assume that you want to see that Item in a Sales Order along with its Item Group. The steps to do this are given below:

Step 1: Go to Customize Form

Home > Customization > Form Customization > Customize Form

Step 2: Select the Document for which you want multiple fields to be visible in the Search Field

Here, we will select the Document Item.

Step 3: Search Field

Update Warehouse field name in the Search By field.

Search By in Customize FormSearch By in Customize Form

Once these settings have been updated, while creating a Sales Order, when you select the Item, you will also be able to the warehouse there.

Search By in Customize Form

Secondary Items

https://docs.frappe.io/erpnext/secondary-items

Available only in version 16 of ERPNext

Starting from version 16, Scrap Items table in the BOM DocType has been renamed to Secondary Items table. The secondary items table now includes items of 3 more types: , and . Using this table, users can now specify the distribution of the outgoing cost (or raw material cost) amongst all the outputs based on a percentage system.

Co-ProductBy-ProductAdditional Finished Good

Let's first understand the difference between , , and .

ScrapCo-ProductBy-ProductAdditional Finished Good
  1. Scrap: An item which is produced alongside the Finished Good which, in most cases, does not have much value.
  2. Co-Product: Item produced alongside the main Finished Good which is planned and has significant value.
  3. By-Product: This item is produced alongside the finished good which is not planned. This item may or may not have significant value.
  4. Additional Finished Good: This item is planned and has significant value. It is usually produced separately from extra materials, leftover capacity or further processing.

In ERPNext, there is virtually no difference on how these secondary items' value and quantity is calculated. The different names are merely for distinction purposes.

You can specify the process loss percentage and cost allocation percentage of each secondary item in the table.

In this example, we are saying that in manufacturing petrol, 10% of the outgoing (raw material) cost should be allocated to LPG and 5% to Bitumen. The remaining 85% will be allocated to the actual finished good (Petrol).

Let's see it in action:

Here, the outgoing cost is Rs. 100. 10% of 100 is 10 which is allocated to LPG and 5% is 5 which is allocated to Bitumen. Since we specified a 5% process loss for Bitumen, it's quantity has been calculated as 9.5 ( ).

10 - (5% * 10)

If you are migrating from earlier versions of ERPNext, the scrap items table will stay as it was. Those scrap items will be marked as and the calculations in Manufacture Entry and Subcontracting Receipt will stay the same as it was before migrating.

legacy

Introduction to Selling Module

https://docs.frappe.io/erpnext/selling

The Selling module in ERPNext is designed to streamline the sales process and enhance customer relationship management.

  • Quotations: Generate and send quotes to potential customers, and convert them into sales orders.
  • Sales Orders: Create, manage, and track sales orders from initial inquiry to delivery.
  • Invoices: Issue and manage sales invoices, including handling payments and managing accounts receivable.
  • Customer Management: Maintain detailed records of customers, including contact information, transaction history, and credit limits.
  • Reports and Analytics: Access reports on sales performance, revenue, and customer trends to inform strategic decisions.

The Selling module helps businesses efficiently manage their sales processes, improve customer service, and drive revenue growth.

Video Tutorials

Sales

  1. Frappe School Course on Selling Module
  2. Customer
  3. Product Bundle
  4. Sales Cycle
  5. Pricing Rule

Other

  1. Discounts
  2. Taxes

Selling an Asset

https://docs.frappe.io/erpnext/selling-an-asset

To sell an asset, open the asset record and clicking on the Sell Asset button. This will take you to a Sales Invoice. In the Sales Invoice, enter details like Customer and Payment Due Date.

On submission of the Sales Invoice, following accounting entries will take place:

  • "Receivable Account" (Debtors) will be debited by the sales amount.
  • "Fixed Asset Account" will be credited by the purchase amount of asset.
  • "Accumulated Depreciation Account" will be debited by the total depreciated amount till now.
  • "Gain/Loss Account on Asset Disposal" will be credited/debited based on gain/loss amount. The Gain/Loss account can be set in Company record.

  1. Asset Value Adjustment
  2. Purchasing an Asset

Selling Essentials

https://docs.frappe.io/erpnext/selling-essentials

In ERPNext's selling module, master doctypes play a pivotal role in managing sales-related data and processes.

By utilising master doctypes effectively, businesses can streamline their sales operations, maintain accurate customer records, track sales transactions, and ensure timely invoicing and payment collection, leading to improved customer satisfaction and overall business performance.

Selling Settings

https://docs.frappe.io/erpnext/selling-settings

Selling Settings is where you can define properties and validations which will be applied to the masters and transactions involved in the sales cycle.

To access Selling Settings, go to:

Home > Selling > Settings > Selling Settings

Customer Defaults

Screenshot 2024-08-29 at 12.29.37 PM

1. Customer Naming By

When a customer is saved, a unique ID is generated for that Customer.

By default, Customer ID is generated based on Customer Name.

If you wish to save Customer using a naming series, in the field Customer Naming Series, set value as "Naming Series". Example of Customer ID's saved in Naming Series - "CUST00001, CUST00002, CUST00003..." and so on.

2. Default Customer Group

Select a default Customer Group which will be auto-updated when creating a new Customer.

Quotations can be created for the Customers as well as for the Leads. When converting a Quotation into a Sales Order, which is created for a Lead, the system attempts to convert that Lead into a Customer. While creating Customer in the backend, the value for Customer Group is picked from Selling Settings. If no default values are found for Customer Group, then you will receive a validation message asking for the Customer Group. You can also manually convert a Lead into a Customer.

3. Default Territory

Select a default Territory which will be auto-updated when creating a new Customer.

Quotations can be created for the Customers as well as for the Leads. When converting a Quotation into a Sales Order, which is created for a Lead, the system attempts to convert that Lead into a Customer. While creating Customer in the backend, the value for Territory is picked from Selling Settings. If no default values are found for Territory, then you will receive a validation message asking for the Territory. You can also manually convert a Lead into a Customer.

Item Price Settings

Item Price Settings as of 2025-09-23 in v16

1. Default Price List

Price List set in this field will be auto-updated in the Price List field of sales transactions like Quotation, Sales Order, Delivery Note, and Sales Invoice.

2. Maintain Same Rate Throughout Sales Cycle

It ensures that the same rate is maintained throughout the sales process. Once enabled, ERPNext will validate whether an Item's price is changing in a Delivery Note or Sales Invoice created from a Sales Order.

3. Use prices from Default Price List as Fallback

If no Item Price is found for an item in the Price List set in the Transaction, prices from the Default Price List will be fetched. Don't use this together with Auto Insert Item Price If Missing from Stock Settings, since prices from the Default Price List can end up in other price lists.

3. Action if Same Rate is Not Maintained Throughout Sales Cycle

You can configure the action that system should take if the same rate is not maintained in the "Action If Same Rate is Not Maintained Throughout Sales Cycle" field:

  • Stop: ERPNext will stop you from changing the price by throwing a validation error.
  • Warn: The system will let you save the transaction but warn you with a message if the rate is changed.

Note: This field will only be visible if Maintain Same Rate Throughout Sales Cycle is enabled.

4. Role Allowed to Override Stop Action

Allow users to add role to override "Stop" action for Maintain Same Rate Throughout Sales Cycle, if Action if Same Rate is Not Maintained was set to Stop.

Note: This field will only be visible if 'Maintain Same Rate Throughout Sales Cycle' is enabled and 'Action if Same Rate is Not Maintained' is set to Stop.

5. Allow User to Edit Price List Rate in Transactions

The item table in sale transactions has a field called Price List Rate. This field is non-editable by default in all the sales transactions. This is to ensure that the price of an item is fetched from Item Price record and the user is not able to edit it.

If you need the Item Price fetched from Price List of an item to be editable, you should uncheck this field.

6. Validate Selling Price for Item Against Purchase Rate or Valuation Rate

When making sales, it's important to know that you're not making losses. Enabling this validation will validate the item's Selling Price with its valuation/buying price. If an item's selling price is found to be less than it's buying price, then you will get a prompt when this checkbox is ticked.

7. Calculate Product Bundle Price based on Child Items' Rates

Enabling this will do the following:

  • Make the Rate column of all Packed/Bundle Items tables editable.
  • Calculate the prices of all Product Bundles in the Items table, based on the prices of its Child Items, specified in the Packed/Bundle Items table.

Note: If this is enabled, updating the rate of the Product Bundle in the Items table will not change its price. It will get reset to the price based on its Child Items on saving the doc.

8. Allow Negative Rate for Items

Enable this option to permit the use of negative rates for items in sales transactions. This setting is useful for applying substantial discounts, processing refunds or returns, and handling special promotional pricing.

Transaction Settings

Screenshot 2024-08-29 at 12.41.21 PM

1. Is Sales Order Required for Sales Invoice & Delivery Note Creation?

If you wish to make Sales Order creation mandatory before the creation of a Sales Invoice or a Delivery Note, then you should set the 'Sales Order Required' field as 'Yes'. By default, this will be 'No'.

This configuration can be overridden for a particular customer by enabling the "Allow Sales Invoice Creation Without Sales Order" checkbox in customer master.

2. Is Delivery Note Required for Sales Invoice Creation?

To make Delivery Note creation as mandatory before Sales Invoice creation, you should set this field as 'Yes'. By default, this will be 'No'.

This configuration can be overridden for a particular customer by enabling the "Allow Sales Invoice Creation Without Delivery Note" checkbox in customer master

3. Sales Update Frequency

The frequency at which project progress and company transaction details will be updated. By default it is for Each Transaction, you can also set it to Daily or Monthly if you have a lot of transactions every day.

4. Blanket Order Allowance (%)

It indicates the percentage one is allowed to sell beyond the Blanket Order quantity

5. Allow Item to be Added Multiple Times in a Transaction

This is a validation check which prevents an item from being added multiple times in the same transaction when unchecked. In some cases, this might be an explicit need if so check this box.

6. Allow Multiple Sales Orders Against a Customer's Purchase Order

When creating a Sales Order, you can update the Purchase Order ID and Date received from the Customer. You can create only one Sales Order against the Customer's PO No. and Date. However, if you wish to allow the creation of multiple Sales Orders against the same PO No. of the Customer, tick the checkbox "Allow multiple Sales Orders against a Customer's Purchase Order".

7. Allow Sales Order Creation For Expired Quotation

This allows creation of sales orders from quotations that have passed their expiration date, providing flexibility in processing orders despite outdated quotes.

8. Don't Reserve Sales Order Qty on Sales Return

It prevents the automatic reservation of stock quantities from sales orders when processing sales returns.

9. Hide Customer's Tax ID from Sales Transactions

As per the statutory requirement, most of the Customers have unique Tax ID assigned to them. They also need to have this tax ID fetched in the selling transactions. However, if you don't wish to use this functionality, you can disable by checking this property.

10. Enable Discount Accounting for Selling

Once enabled, additional ledger entries will be made for discounts in a separate Discount Account

11. Enable Cut-Off Date on Bulk Delivery Note Creation

When enabled, it adds a cutoff date filter to Delivery Notes created in bulk from Sales Orders. This allows you to process orders only with a transaction date up to the specified cutoff date, which is useful for period-end processing and batch fulfillment.

12. Allow Quotation with Zero Quantity

The Allow Quotation with Zero Quantity feature enables users to create and submit Sales Quotations even when one or more items have a quantity of zero. Eg. Rate Contracts.

By default, ERPNext requires all items in a quotation to have a valid quantity. When this option is enabled, the system removes this restriction and allows quotations to be generated for items without specifying the quantity.

13. Allow Sales Order with Zero Quantity

The Allow Sales Order with Zero Quantity feature enables users to create and submit Sales Orders even when one or more items have a quantity of zero. Eg. Rate Contracts.

By default, ERPNext requires a valid quantity for each item in a Sales Order. When this option is enabled, the system bypasses this validation and allows Sales Orders to be created with zero-quantity items.

Selling Transactions

https://docs.frappe.io/erpnext/selling-transactions

Selling transactions in ERPNext encompass a series of actions involved in the sales process, from receiving and processing orders to delivering goods or services to customers and collecting payments.

Throughout these transactions, ERPNext facilitates seamless communication with customers, tracks sales activity, updates inventory levels in real-time, and integrates with accounting modules to ensure accurate financial records.

Semi-Auto Payment Reconciliation

https://docs.frappe.io/erpnext/semi-auto-payment-reconciliation

If there are large no of Invoices that needs be reconciled quickly without manual allocation, doctype can be used.

Process Payment Reconciliation

Steps:

  1. First this feature must be enabled through Accounts Setting. Enable in Accounts Settings.
Auto Reconcile Payments

Screenshot 2024-08-20 at 3.51.12 PM
  1. Navigate to doctype
  2. Select Company, Party and Receivable/Payable Account for which Reconciliation has to be done. Save and Submit
  3. Document will be status.
Process Payment ReconciliationQueued

Screenshot 2024-08-20 at 3.55.43 PM
  1. A Background Job that runs every 15 mins will pick up docs and will start reconciliation. If needed, the Job can triggered immediately using button.
  2. This will create a record with details on the Total No of Allocations that will be processed and the successfully reconciled entries.
QueuedStart / ResumeProcess Payment Reconciliation Log

Screenshot 2024-08-20 at 4.00.49 PM
  1. Payment Reconciliation

Sending Email from any Document

https://docs.frappe.io/erpnext/sending-email

In ERPNext you can send any document as email (with a PDF attachment) by clicking on Menu > Email after opening any document.

Send Email

Note: You must have outgoing Email Accounts set up for this.

After you click on send, the email gets added to the email queue. It will be in the Sending status until it is Sent. The status of the email is displayed in the queue, if sending has failed, it can be sent by clicking on Send Now.

Email Queue

The following options are available when sending an Email.

  • TO: Recipients of the email.
  • From: If user has access to multiple outgoing email accounts, the user can select which outgoing email account to use. Multiple outgoing email accounts can be configured from the User document by adding them to the "User Email" table.
  • CC: Carbon Copy of the email. Useful when you want to keep someone in the conversation loop but don't want to address the email directly to them.
  • BCC: Blind Carbon Copy is similar to CC but everyone else on the email thread cannot see that the mail was also sent to the BCC recipients. This is useful to hide the email address of certain people if you're sending the email to a lot of people who don't necessarily know each other.
  • Email Template: You can create preset templates to send out standard replies. Email Templates are already available in the system for Dispatch Notification, Leave Status Notification, and Leave Approval Notification. You can set a Default Email Template via Customize Form.
  • Send me a copy: This will send a copy to your email address. It's useful to ensure that the email was sent without any errors.
  • Send Read Receipt: Ticking this checkbox will send you a notification if the receiver has read the email. In case of multiple receivers, even if one has read the email, you'll get a notification.
  • Attach Document Print: Attach the PDF of the document you're sending via email.
  • Select Attachments: Any additional attachments can be added here.

The following two fields are the fields which appear on the print screen:

Email Print Options
  • Select Print Format: The print format of the document. Know more about Print Format here.
  • Select Languages: The language in which the PDF is to be generated.
  1. Email Domain
  2. Email Account
  3. Email Inbox

Serial and Batch

https://docs.frappe.io/erpnext/serial-and-batch

From version 16, to enable serial / batch feature for the item, first check the 'Enable Serial and Batch No for Item' checkbox in the 'Stock Settings'.

In ERPNext, serial and batch tracking are integral features for effectively managing inventory items with unique identifiers.

Serial tracking involves assigning a unique serial number to each individual item, enabling businesses to track its lifecycle from procurement to sale. This allows for precise traceability, warranty tracking, and identification of specific items in case of recalls or quality issues.

However, batch tracking involves grouping items with identical attributes, such as manufacturing date or lot number, into batches. This enables businesses to trace and manage batches of items as they move through the supply chain, ensuring compliance with regulations, managing expiry dates, and facilitating recalls if necessary.

Both serial and batch tracking functionalities in ERPNext provide businesses with granular control over inventory management, enhancing traceability, quality control, and compliance efforts.

Serial and Batch Bundle

https://docs.frappe.io/erpnext/serial-and-batch-bundle

NOTE: Users must create a separate Serial and Batch Bundle for each stock transaction. They cannot use the same Serial and Batch Bundle across multiple stock transactions.

Allow Negative Stock has been removed for Serial / Batch Items from version 15. From version 15 onward, users cannot make negative stock transactions for serial / batch items, even if Allow Negative Stock is enabled in Stock Settings.

In version 15, we introduced the Serial and Batch Bundle. This feature is used to link Serial / Batch Nos in stock transactions.

Before version 15, the Serial No field was a Small Text field, which meant one column could hold more than one serial number. Because of this design, there were a lot of data integrity issues. To solve this, we changed the Serial No field from Small Text to a Link field in version 15. Since we can't add a child table inside a child table, we added a new DocType: Serial and Batch Bundle to pick/dispatch multiple Serial / Batch numbers.

Serial no Configure

How does this work?

You need to create a Serial and Batch Bundle and link it to stock transactions whenever you deal with Serial / Batch numbers. Users must create a separate Serial and Batch Bundle for each transaction, and they can't link the same Serial and Batch Bundle to multiple transactions.

Auto Creation of Serial and Batch Bundle for Inward Entry

If the user wants to auto-create a Serial and Batch Bundle for an inward entry, they must ensure that Serial Number Series is set for the serial item and that the Automatically Create New Batch checkbox is enabled (with Batch Number Series set) for the batch item.

For Serial No

Serial no Configure

For Batch No

Batch no Configure

After the configuration, when the user creates a Purchase Receipt or a Stock Entry with the Type "Material Receipt", the system will automatically create the inward Serial and Batch Bundle on submission of the record.

Auto Serial Batch Bundle Inward

Auto Creation of Serial and Batch Bundle for Outward Entry

If the user wants to auto-create a Serial and Batch Bundle for an outward entry, they must enable the checkbox Auto Create Serial and Batch Bundle For Outward in Stock Settings. They can also set Pick Serial / Batch Based On to "FIFO / LIFO / Expiry" in Stock Settings.

Auto Serial Batch Bundle Outward Configure

After the configuration, when the user creates a Delivery Note or a Stock Entry with the Type "Material Issue", the system will automatically create the outward Serial and Batch Bundle on submission of the record.

Auto Serial Batch Bundle Outward

Manual Creation of Serial and Batch Bundle for Inward Entry

For the Serial and Batch Bundle, both Serial No and Batch records must already exist in the system. With the manual option, the user must first create the Serial No / Batch records in the system. Users can use the CSV import option to create Serial No / Batch records. The blank CSV template can be downloaded using the Serial and Batch Selector.

create-using-csv

Complete GIF for manual creation of a Serial and Batch Bundle for an inward entry is as follows:

manually-create-serial-no-inward

Manual Creation of Serial and Batch Bundle for Outward Entry

Using the Serial and Batch Selector, the user can pick the Serial / Batch Nos based on the "FIFO / LIFO / Expiry" method.

serial-batch-selector-outward

Complete GIF for manual creation of a Serial and Batch Bundle for an outward entry is as follows:

manually-create-serial-no-outward

Serial and Batch Bundle Creation Using CSV for Outward Entry

Now users can create serial and batch bundles for outward entries by importing a CSV file.

History of Serial Numbers

To check the history of serial numbers, see the report "Serial No Ledger".

Serial / Batch Selector

This is used to select Serial Nos / Batches manually. This popup is also used to create serial nos / batches automatically if they do not exist.

serial-batch-selector

Disable Serial / Batch Selector

If users don't want to use the Serial and Batch Selector (popup), they can disable it through Stock Settings. To disable it, go to Stock Settings > Serial and Batch Item (TAB) > enable Disable Serial No And Batch Selector, then save.

disable-serial-batch-selector

Old Serial / Batch Fields

Many customers requested that we retain the old serial and batch fields to address UX issues. In response to this demand, we retained the old serial/batch fields. These fields are solely used for entering serial numbers and batches. The system will automatically create the Serial and Batch Bundle upon submission of the stock transaction. To enable this feature, users must navigate to Stock Settings and enable the Use Serial / Batch Fields option (see the image below).

use-serial-batch-fields-global

After that, when the user creates a stock transaction (for example, a Delivery Note), the system will show the old Serial / Batch fields. For more details, see the GIF below.

user-old-serial-batch-fieldsd

Users can disable the old serial / batch fields at the transaction level too.

use-serial-batch-for-dn

Update Serial / Batch on Creation of Auto Bundle

If the user wants to automatically update the Serial No / Batch in the Serial / Batch fields when a Serial and Batch Bundle is created, go to Stock Settings and disable Do Not Update Serial / Batch on Creation of Auto Bundle.

update-Serial-Batch-on-creation-of-auto-bundle

Case:

  1. User has enabled Use Serial / Batch Fields in Stock Settings
  2. User wants to create the Serial and Batch Bundle per single batch
  3. User has set the auto-create batch in the Item master.
  4. On submission of the Purchase Receipt, the system has created the auto Batch and Serial and Batch Bundle, and set the Batch and Serial and Batch Bundle fields on the Purchase Receipt line item.
  5. Updating the value of the batch takes time. If you want to skip this step, enable Do Not Update Serial / Batch on Creation of Auto Bundle in Stock Settings.
  6. With this, the batch column remains blank, but the Serial and Batch Bundle will have the value of the auto-created bundle.

How to Use Serial and Batch Bundle

https://www.youtube.com/watch?v=-VjZvRtdjDQ&t=820s

Serial No and Batch Traceability Report

https://docs.frappe.io/erpnext/serial-and-batch-traceability-report

The Serial and Batch Traceability Report is used to track the full movement and lifecycle of serialized or batched items across your supply chain. Thre are two types of traceability methods

To view Serial No and Batch Traceability Report GoTo

Stock > Serial No and Batch > click on "Serial No and Batch Traceability"

Backward Traceability

To find out which components are required to manufacture the batch and where they came from, use the Backward Traceability filter.

Forward Traceability

To find out where the batch has been used or to whom it was delivered, use the Forward Traceability filter.

Backward and Forward (Both) Traceability

Serial Number

https://docs.frappe.io/erpnext/serial-no

Allow Negative Stock has removed for Serial / Batch Items from version 15. So from version 15 users won't be able to make negative stock transactions for serial /batch items even though Allow Negative Stock has enabled in the Stock Settings.

To enable serial / batch feature for the item, first check the 'Enable Serial and Batch No for Item' checkbox in the 'Stock Settings'.

As discussed in the Item page, if an Item is serialized, a Serial Number (Serial No) record is maintained for each quantity of that Item. This information helps track the location of the Serial No, its warranty and end-of-life (expiry) information.

You can also track from which Supplier you purchased the Serial No and to which Customer you have sold it. The Serial No status will tell you its current inventory status.

If your Item is serialized you will have to enter the Serial Nos in the related column with each Serial No in a new line. You can maintain single units of serialized items using Serial Number.

To access the Serial Number list, go to: > Home > Stock > Serial No and Batch > Serial No

  1. Prerequisites

Before creating and using a Serial Number, it is advised that you create the following first:

  • Item
  • Enable 'Has Serial No' in the Item master
Serial No Enabled
  1. How to create a Serial Number

Usually, Serial Numbers are auto-created when transactions are made against a serialized Item. This works only when 'Has Serial No' is enabled and a series is set in the Item master.

For example, a series was set for the following Item as 'PB2L.#####'. Then a Stock Entry was submitted to receive the Item. The Serial Numbers were created accordingly.

Serial No Created

However, if you want to create a Serial No manually follow these steps:

  1. Go to the Serial Number list, click on New.
  2. Enter a Serial Number.
  3. Enter the Item Code and details will be fetched.
  4. If any transaction is done with an item, Serial No cannot be set or unset.
  5. Save.

Inventory of an Item can only be affected if the Serial No is transacted via a Stock transaction (Stock Entry, Purchase Receipt, Delivery Note, Sales Invoice). When a new Serial No is created directly, its Warehouse cannot be set.

Serial Number

2.1 Notes about Serial Number

  • The Status is set based on Stock Entry.
  • Only Serial Numbers with status 'Available' can be delivered.
  • Serial Nos can automatically be created from a Stock Entry or Purchase Receipt. If you mention Serial No in the Serial Nos column, it will automatically create those serial Nos.
  • If in the Item Master, the Serial No Series is mentioned, you can leave the Serial No column blank in a Stock Entry / Purchase Receipt. Serial Nos will automatically be set from that series.
  1. Features

3.1 Purchase/Manufacture details

The document from which the Serial No was created will be shown. If you purchased it from a Supplier, it'll be linked here.

3.2 Delivery Details

If the Serial No was generated from a Sales Order, the Customer will be linked here.

3.3 Warranty/AMC Details

If the Item is under warranty or AMC (Annual Maintenance Contract), the expiry dates for these can be set.

3.4 More Information

Any additional information about this specific Item unit can be set under 'Serial No Details'.

  1. Video
  1. Item Codification
  2. Item Variants
  3. Serial Number Naming

Serial Number Naming

https://docs.frappe.io/erpnext/serial-no-naming

Serial Nos. is unique value assigned on each unit of an item. Serial no. helps in tracking item's warranty and expiry details. Generally high value items like machines, computers, costly equipments are serialized.

To make item Serialized, in the Item master, check Has Serial No.

There are two ways Serial no. can be generated in ERPNext.

###1. Serializing Purchase Items

If purchased items are received with Serial Nos. applied by OEM (original equipment manufacturer), you can follow same Serial No in ERPNext as well. While creating Purchase Receipt, you shall scan or manually enter Serial nos. for an item. On submitting Purchase Receipt, Serial Nos. will be created in the backend as per Serial Nos. provided for an item. If using OEM' Serial No., then in the Item master, Prefix should not be mentioned for serializalization. As per this scenaio, Prefix field should be left blank.

If received items already has its Serial No. barcoded, you can simply scan that barcode for entering Serial No. in the Purchase Receipt. Click here to learn more about it.

On submission of Purchase Receipt or Stock entry for the serialized item, Serial Nos. will be auto-generated.

Serial Nos Entry

Generated Serial numbers will be updated for each item.

Serial Nos Created

###2. Serializing Manufacturing Item

To Serialize Manufacturing Item, you can define Series for Serial No. Generation in the Item master itself. Following that series, system will create Serial Nos. for Item when its Production entry is made.

####2.1 Serial No. Series

When Item is set as serialized, it will allow you to mentioned Series for it.

Serial Nos Created

####2.2 Production Entry for Serialized Item

On submission of production entry for manufacturing item, system will automatically generate Serial Nos. following Series as specified in the Item master.

Serial Nos Created

Service Level Agreement

https://docs.frappe.io/erpnext/service-level-agreement

A service level agreement (SLA) is a contract between a service provider (either internal or external) and the end user on the level of service expected from the service provider.

SLAs are output-based, their purpose is specifically to define the timeline in which the Customer will receive the service. SLAs do not define how the service itself is provided or delivered.

To access the Service Level Agreement list, go to:

Home > Support > Service Level Agreement > Service Level Agreement

1.Prerequisites

Before creating and using a Service Level Agreement, it is advised that you create/update the following first:

Holiday List

Enable Track Service Level Agreement in Support Settings

Service Level Agreement

2. How to Create a Service Level Agreement

  1. Go to the Service Level Agreement list, click on New.
  2. Enter a name for the Service Level.
  3. Select an Employee group, that will handle a particular Service Level.
  4. Set a Holiday List. Service Level Agreement won't be applied in the days mentioned in the Holiday List.
  5. 'Enable' determines if a Service Level Agreement is enabled or disabled.
  6. Ticking 'Default Service Level Agreement' will apply this SLA to a customer if they don't have a particular SLA assigned to them.
  7. Entity Type: Service Level Agreements can be assigned to a Customer/Customer Group/Territory enabling you to apply Service Level Agreement based on these factors.
  8. Entity: Select the specific Customer/Customer Group/Territory.
  9. Start / End Date: Defines the validity of the agreement.
  10. Priorities: You can set multiple Issue Priorities and their Time to Respond and Resolve (in hours and mins).

Service Level
  1. Default Priority: Default Priority selected in Priorities table that will be applied in the Service Level Agreement.
  2. Support Hours: Contains the Days of the week on which Support is provided. Has a Start Time and End Time of the Working day.

SLA Support Hours
  1. Save.

SLA

3. Features

3.1 Applies to New Issues

Once an SLA is saved, it'll be applied to Issues raised by Customers/Territories as per the option you chose in 'Entity Type'.

SLA in Issue

3.2 Resetting an SLA

An SLA can also be reset until the time does not fail. For example, if the SLA is 3 days, you can reset the SLA only within 3 days of the Issue being created. After that, the Service Level will display failed.

SLA Issue

3.3 Time respond / resolve in Issues

The time to respond to an Issue and the time to resolve will be shown:

SLA in Issue

These times are based on the timelines set in the 'Priority' field in the Service Level's Priorities table.

3.4 Pause SLA on Statuses

From version 13 onwards, ERPNext allows you to pause SLA on issues when you are waiting for an event to happen. You can do this by selecting a status that is configured in this "Pause SLA On" table.

  • Set the statuses on which you want to pause SLA in the SLA document. You can also add custom statuses here.
  • When the status is changed to any of the above, resolution and response fields are unset and the dashboard indicators change to:
  • When the status of the issue changes back to a non-hold status (which is not configured in the "Pause SLA On" table), the Total Hold time field will be set in your Issue document. The Response and Resolution time will be recalculated by adding the hold time, thereby restarting your SLA timers.
Service LevelService LevelService Level

Note: Service Level DocType was removed in version 13 and all functions are handled only with the Service Level Agreement DocType.

Session Defaults

https://docs.frappe.io/erpnext/session-defaults

Session Defaults allow users to configurable default values for certain parameters during user sessions.

Let's assume that you have a multi company setup spanning across different countries then you have to set the 'Company' , 'Country' and 'Currency' fields every time while creating new transactions. This is a very time-consuming process when you have to deal with multiple Sales Orders daily. Hence, instead of putting the value manually, the value set in the Session Defaults gets displayed automatically by default.

  1. How to Create Session Defaults

1.1 Set up the Session Default Settings

  1. Go to Session Default Settings. There you can see a table for Session Defaults.
  2. Click on 'Add Row'.
  3. Select the DocType for which you want to set Session Defaults.
  4. Save.

1.2 Set up the Session Default Values

  1. Click on the 'Sidebar' and you will find an option 'Session Defaults'. Click on it.

  1. A 'Session Defaults' prompt will appear. Set the default values for the respective fields and Save.

  1. After saving, the default values will be set everywhere.

You can open a new Sales Order and check the company and currency fields as they are set to the default Company.

Once you open any report, the default company will be set respectively.

2. Features

2.1 Defaults cleared on logout

The default values are set for that particular user for the ongoing session. Once logged out, these default values are cleared.

2.2 'Settings' button visibility

The Settings button is only visible to the System Manager or to a person having permission to access 'Session Default Settings'. This button navigates you to Session Default Settings where you can add or remove the document types for which you want to set Session Defaults.

  1. Global Defaults
  2. System Settings

Set Language

https://docs.frappe.io/erpnext/set-language

ERPNext is a multilingual application and allows each user to select a preferred language.

Set a default system language

Go to "System Settings" and set the language. This setting applies to all users by default, unless overridden at the user level.

Set a language for a specific user

ERPNext allows each user to set their own preferred language for the interface. This can be set under the "User" document. To navigate to your user profile, click on the user profile image or go to "User List" and open your profile.

Note: For now, we have translation available only for few languages. You can contribute to make translation better, and add new languages from here.

Set Precision

https://docs.frappe.io/erpnext/set-precision

In ERPNext, default precision for Float, Currency and Percent field is three. It allows you to enter value having value upto three decimal places.

You can also change/customize the precision settings globally or for a specific field.

To change the precision globally, go to:

Desktop > ERPNext Settings > System Settings

Alternatively, you can also set field specific precision. To do that go to Customize Form and select the DocType there. Then go to the specific field row and change precision. Precision field is only visible if field-type is one of the Float, Currency and Percent.

Set Up E-commerce

https://docs.frappe.io/erpnext/set_up_e_commerce

If you're using version 15 or migrating to version 15, you need to install the frappe's Webshop app first in order to use the E-commerce features

In addition to tracking Items, ERPNext also has the provision to set up an attractive E-commerce shop to sell them. You can seamlessly publish items onto your web store and configure what to show in clicks. You can also choose to enable/disable features such as Wishlist, Customer Reviews, etc.

Assuming you have some Items setup in ERPNext, you can follow the steps below to set up your store:

  1. Explore and Configure E Commerce Settings (In v15 E Commerce Settings has renamed to Webshop Settings)
  2. Publish and Update an Item
  3. Explore the Product Listing
  4. Explore Item group wise product listing
  5. Shopping Cart
  6. The Shop by Category page
  7. Wishlist
  8. Reviews and Ratings
  9. Search

Setting Company Sales Goal

https://docs.frappe.io/erpnext/setting-company-sales-goal

Defining and achieving sales goals/targets can help your company reach new goals and increase revenue.

  1. Monthly sales targets can be set for a Company via the Company master under the Sales Settings section. By default, the Company master dashboard displays month-wise past sales stats.

Sales Graph
  1. You can set the Sales Target field to track progress against the graph:

Setting Sales Goal
  1. The target progress is also shown in notifications:

Sales Notification
  1. Company Setup
  2. Sales Order
  3. Sales Partner

Set default values for any field

https://docs.frappe.io/erpnext/setting-default-values-for-any-field-in-erpnext

Using Customize Form, we can set a default value for any field of any Doctype in ERPNext.

Steps:

1. Open Customize Form using awesome search bar or via Menu options of any DocType. This will open a screen where you can view all the fields that comprise in this DocType.

2. Expand the field for which you want to store a default value and enter it under Display -> Default

Check out the below GIF where we have set default value as Stores - ETL for field "Default Source Warehouse" in DocType Stock Entry:

To learn more about customisations in ERPNext, check out this link

Setting Up

https://docs.frappe.io/erpnext/setting-up

Setting up an ERP system is like starting your business all over again but in the virtual world. Thankfully it is not as hard as the real business and you get to do a trial too!

To get an ERP implementation right, the implementor needs to set aside time and perform the implementation with dedication. Usually, this is not your post work side project you spare a couple of hours on.

You'll find the global configuration options here. For module-wise setup, visit the respective modules.

ERPNext Site

It’s always recommended to be completely hands-on with the product, even while learning. We recommend setting up an ERPNext site for yourself. If you don’t already have one, here’s how you can get started.

Once you log in to ERPNext, you will see a host of options. Stay focused to achieve clear outcomes. The following are the master and transaction records you will use to get your ERPNext site up and running. With these masters configured correctly, you will have almost completed the implementation.

Masters

Video Tutorial

Enrol for a ERPNext Course which covers tutorial on the fundamentals, basic setup and advance features, all in one.

Intoduction to ERPNext Frappe School Course

Setting up "Buy 1 Get 1 Free" Pricing Rule

https://docs.frappe.io/erpnext/setting-up-buy-1-get-1-free-pricing-rule

A Pricing Rule defines the discount rules that applied on items based on set conditions.
To set up a Pricing Rule for "Buy 1 Get 1 Free" scheme, follow the below steps:

Go to Pricing Rule List > Click on New.

Select the Item Code of the Item in the "Apply Rule on Item Code" table on whose purchase a free item will be given. Also, select Product discount as shown.

Select the Party Information (if needed). You can leave this blank as well, but make sure to select either "Selling", "Buying" or both depending on the requirement.

Next, the free item information needs to be set up under the "Product Discount Scheme" section. There are two scenarios in this case:
a) Free item is a different item. For example, on purchase of a packet of Sugar, you get a packet of Salt free. In this case, select the item code of the free item, Salt in this case.

b) Free item is the same item. For example, on purchase of a packet of Sugar, you get another packet of Sugar free. In this case, select the "Same Item" checkbox.

Additionally, you can set the Qty, Rate and UOM if needed.
5) Save the Pricing Rule.
6) Create a Sales Order/Purchase Order (depending on the rule). On selection of the first item, the second item is automatically fetched with rate 0.
a) "Buy 1 Get 1 Free" of two different items.

b) "Buy 1 Get 1 Free" on the same item.

Note: If you expand the free item row in the Sales Order/Invoice, you will see the "Is Free Item" checkbox checked.

Setting Up Email Signature in ERPNext

https://docs.frappe.io/erpnext/setting-up-email-signature-in-erpnext

To add your signature, go to your User Profile under Settings > My Settings

Scroll down to the Email Settings section where you can add your signature in HTML:

Setting up Sendgrid SMTP Email in ERPNext

https://docs.frappe.io/erpnext/setting-up-sendgrid-smtp-email-in-erpnext

SMTP, or simple mail transfer protocol, is a quick and easy way to send email from one server to another. SendGrid provides an SMTP service that allows you to deliver your email via our server instead of your client or server. ERPNext comes built-in with a configured email client so that you can send and receive emails in ERPNext and append them to documents if required.

Integrating SendGrid's Web API

SendGrid’s SMTP API allows developers to specify custom handling instructions for e-mail using an X-SMTPAPI header inserted into the message.

Step 1: You need to create an API key to authenticate your application. In this case, ERPNext. Learn more about integrating SendGrid with SMTP here

Click on SMTP Relay

Screenshot 2024-06-01 at 12.44.17 PM

Generate an API Key

Screenshot 2024-06-01 at 12.44.33 PM

Step 2: Once your API key has been created, you need to configure it in your ERPNext account > Create a New Email Account.

Email Address: Your Email Address

Service: Select "SendGrid"

Check "Use Different Email ID"

Alternative email ID: apikey

Password: <API Key Generated in step 1>

Outgoing server: <server name generated in step 1>

Port: <port number generated above>

Screenshot 2024-06-01 at 12.44.45 PM

For SSL connections, uncheck the "use TLS" option

Screenshot 2024-06-01 at 12.45.14 PM

Now save this information and you have successfully configured the SendGrid SMTP Email in ERPNext.

Power to you!



Setting Up Taxes

https://docs.frappe.io/erpnext/setting-up-taxes

Taxes are compulsory contributions to the state/country revenue.

One of the primary motivators for compulsory use of accounting tools is the
calculation of taxes. ERPNext allows you to make configurable tax templates that you can apply to your sales or
purchase transactions.

1. Tax Accounts

For Tax Accounts that you want to use in the tax templates, go to:

Home > Accounting > Chart of Accounts

Select an account and click on edit. Select the 'Account Type' as 'Tax' for the account.

2. Sales Taxes and Charges Template

Sales Taxes and Charges Template fetched taxes for your sales transactions like Sales Order and Sales Invoice.
Read Sales Taxes and Charges Template to know more.

3. Purchase Taxes and Charges Template

Purchase Taxes and Charges Template fetched taxes for your sales transactions like Purchase Order and Purchase Invoice.
Read Purchase Taxes and Charges Template to know more.

4. Item Tax Template

The tax set in Item Tax Template applies specifically to an Item or an Item Group. It is given preference over the Sales/Purchase Tax Template.
Read Item Tax Template to know more.

5. Tax Category

Tax category helps in automatically applying sales/purchase tax templates in your transactions based on the customer/supplier chosen.
Read Tax Category to know more.

Setting Workflows on Masters

https://docs.frappe.io/erpnext/setting-workflows-on-masters

Workflows are usually set on submittable documents. Once the document is approved, it gets automatically submitted as per the workflow set. However, sometimes, businesses do have use cases where there is a need for approval of masters such as Items, Item Price, Pricing Rule, etc.

In ERPNext, these masters are non-submittable. Hence, even on rejection, sometimes, they are still active and you can use them in transactions. In this article, we have taken the example of the Item master. We will set a simple workflow on Item and make it active only when it has been approved. To do so, follow the below steps:

  1. Make sure the master on which you are going to set the workflow has an Enable/Disable checkbox. If this is not present by default, you need to create one via Customize Form and set the default value as follows:
  1. 0 if checkbox is "Disable"
  2. 1 if checkbox is "Enable"

In our case, the Item master has a checkbox called "Disabled". We have set the default value as 1 in the Customize Form of the Item DocType as shown below.

This means that every time a new Item is created, it will be disabled by default, unless approved (as seen in the screenshot below).

  1. Next, set the Workflow.

In the States table, on approval, make sure to update the "Disabled" (or Enabled) checkbox to 0 (or 1 in case of enabled) as shown below.

This will ensure that whenever the Item is approved, the Item will automatically be enabled and you will be able to use it in transactions.

Check the below GIF to understand the workflow in detail:

Setup Two Factor Authentication

https://docs.frappe.io/erpnext/setup-two-factor-authentication

##Enable Two Factor Authentication (2FA)

Activate two factor authentication by running the command.

bench --site [sitename] set-config enable_two_factor_auth true

Specify the following in System Settings

  • The method of OTP validation (OTP App = TOTP using Soft or Hard Token while Email/SMS = HOTP using Email or SMS
  • The expiry time for the QR Code on the server if OTP App is specified
  • The OTP Issuer Name.

Enable Two Factor Auth

On activation of 2FA from setup, it is also activated for the Role "All". In this way, all users including the Administrator have to perform a 2nd level authentication with a token. By unchecking the "Two Factor Authentication" checkbox in the "All" role and enabling it in other roles, the need to login with a token can be limited to specific roles. 2FA does not apply to login by Web Users and API login

Role Enable Two Factor Auth

If using SMS authentication, please make sure that your SMS settings are updated

SMS Settings

If using Email, make sure that your outgoing Email account settings are updated

Email Settings

When the new user tries to log in for the first time in a system that has two-factor authentication enabled and which has the authentication option as OTP App, an email is sent containing a link to the QR Code.

Email Notify Two FactorQR Code Page

Scanning the QR Code with an authentication app like Google Authenticator registers the access for the user and automatically starts to generate tokens that can be used to login

Two Factor Scan App

If either of Email/SMS is used as the authentication method, you get notifications also

Email and SMS

Frequently asked questions (FAQ)

Q. I am unable to login even after following entire process.

Ans: Frappe uses TOTP based OTP algorithm, which depends on your device's system time. Please make sure that device you're using has same time set as your ERPNext server.

Share Reports

https://docs.frappe.io/erpnext/share-reports

There are two types of reports in ERPNext for shares. Share Balance and Share ledger.

1. Share Balance

This is a report view which gives the list of all the shares held by a given Shareholder and its value.

To access the Share Balance report, go to:

Home > Accounting > Share Management > Share Balance

Share Balance Report

2. Share Ledger

This is a report view which gives the list of all the transactions made by a given Shareholder.

To access the Share Ledger report, go to:

Home > Accounting > Share Management > Share Ledger

Share Ledger Report

Share Transfer

https://docs.frappe.io/erpnext/share-transfer

A Share Transfer is the Issue, Transfer, or Purchase of Company shares from one party to another.

There may be times when you want to change the share structure of your Company; either by adding new Shareholders or by changing the existing proportion of shares between Shareholders. A Share Transfer is the process of transferring existing shares from one person to another; either by sale or gift.

When creating a new Shareholder, they need to be issued shares first. Only then a Folio Number is visible and further transfer can be done using that Shareholder.

To access the Share Transfer list, go to:

Home > Accounting > Share Management > Share Transfer

1. How to create a Share Transfer

  1. Go to the Share Transfer list and click on New.
  2. Select the Transfer Type, for first ever Shareholder transaction this will be 'Issue'.
  3. Set a date for the transfer.
  4. Select the From and To Shareholders.
  5. Select the from and to Folio Numbers.
  6. Set the Liability and Asset accounts.
  7. Select the share type whether Preference or Equity (more share types can be added if needed).
  8. Select the number of shares to be transferred.
  9. Select the From and To number of shares. For example 1 to 3,000.
  10. Set the rate of one share, the amount will be calculated based on the number of shares.
  11. Save and Submit.

Share Transfer

After submitting, a Journal Entry can be created to update the ledger using the Create Journal Entry button.

Note: Before you can Purchase or Transfer shares between shareholders, shares need to be issued.

1.1 Terminology

Transfer Types:

  • Issue: Shares are being issued to an existing Shareholder by the Company.
  • Purchase: The Company is purchasing back shares from an existing Shareholder.
  • Transfer: Shares are being transferred from one Shareholder to another.

Folio Number: This is a number used to uniquely identify a Shareholder and their transaction.

Share Type: The two default options in ERPNext are Preference and Equity. This only indicates the type of share, more can be added as per your Company structure.

Shareholder

https://docs.frappe.io/erpnext/shareholder

A Shareholder is someone who owns shares of a Company.

A Shareholder is any person, company or other institution that owns at least one share of a company’s stock. Because shareholders are a company's owners, they reap the benefits of the company's successes in the form of increased stock valuation. If the company does poorly, shareholders can lose money if the price of company stock declines.

Any profit or loss made by a Company belongs to the Shareholders and hence the Shareholders are a liability to the Company.

ERPNext allows you to keep a track of all your Shareholders and maintain Share Transfers, Share Ledger and Share Balances. A shareholder is uniquely identified by the Shareholder ID. Normally this ID is a Naming Series starting with 'ACC-SH-'. Also as soon as the Shareholder makes even a single transaction, a Folio number is allocated to him. This also is unique to the Shareholder.

To access the Shareholder list, go to:

Home > Accounting > Share Management > Shareholder

1. How to create a Shareholder

  1. Go to the Shareholder list and click on New.
  2. Enter the name of the Shareholder.
  3. Add Address and Contact details.
  4. Save.

Shareholder

A Shareholder can avail the features (operations) in the Share Transfer process. Only after shares are issued to them, a Folio Number and the shares will be visible.

1.1 Contacts and Addresses

Contacts and Addresses in ERPNext are stored separately so that you can attach multiple Contacts or Addresses to Shareholders and other parties.

Shareholder Management

https://docs.frappe.io/erpnext/shareholder-management

Shareholder management in ERPNext encompasses various functionalities aimed at effectively managing relationships with shareholders and maintaining accurate records.

Sharing

https://docs.frappe.io/erpnext/sharing

'Sharing' allows users to share a particular document with other users in ERPNext.

In addition to user and role permissions, you can also share a document with another user if you have sharing rights for that document. Note that, a shared document will be visible to the other user even if the document is restricted via User Permissions.

How to share a document?

  1. Open the document that you want to share and click on the '+'icon under 'Shared With'.
  2. Select the user with whom you need to share the document.
  3. If the document is to be shared with all users then just select 'Everyone'.
  4. Tick appropriate checkboxes to provide relevant rights to the user with whom the document is getting shared.
  5. Click on the Add button to get the user added.
  6. You can share the same document with multiple users by adding them one by one.

Screenshot 2023-12-28 at 2.39.05 PM

Note:- The document indicates the users with whom is has been shared.

Screenshot 2023-12-28 at 2.54.24 PM
  1. Role and Role Profile
  2. Role Based Permissions
  3. User Permissions
  4. Role Permission For Page And Report

Shipment

https://docs.frappe.io/erpnext/shipment

A Shipment is a document that keeps track of real-world Shipments created against a Delivery Note or independently.

Introduced in version 13

Shipments are particularly useful for shippers who want to track all their Shipment information such as AWB Number, Shipment Status, Carrier, etc. within ERPNext.

To access the Shipment list, go to:

Home > Stock > Stock Transactions > Shipment

1. Prerequisites

Before creating and using a Shipment, it is advised that you create the following first:

  • Company and Customer Address with Postal Code, Email Address and Phone Number set.
  • Customer Contact.

2. How to create a Shipment

A Shipment can be created manually or from a Delivery Note:

2.1. Manual Shipment

To create a Shipment manually, follow these steps:

  1. Go to the Shipment list, click on New.

Unsaved Shipment
  1. Select an option in the Pickup from field. On selecting one of the three options, you will be prompted to select a Company/Supplier/Customer based on your selection.
  2. If you select 'Company' in the Pickup from field, along with the Address you must also select a Pickup Contact Person who will be a user from your organization, in ERPNext. Make sure the Last Name, Email Address and Phone Number are set for this user.
  3. You can similarly fill the Delivery To section.
  4. Add Shipment Parcel Information in the Shipment Parcel table.
  5. Fill in the Value of Goods.
  6. Select a Pickup Date.
  7. Add a Description of Contents in this Shipment.
  8. You can optionally fill the Shipment Information section if you are tracking Shipments manually.
  9. Save and Submit.

Submitted Shipment

2.1. Shipment from Delivery Note

To create a Shipment from a Delivery Note:

  1. Click on Create > Shipment in the Delivery Note.

Submitted Shipment
  1. Fill the form as mentioned in the previous section.

3. Features

3.1. Shipment Parcel

You can specify the length, width, height and, weight of a parcel in the Shipment. If there are multiple parcels with identical dimensions, the count field can be set accordingly.

To automatically fetch frequently used parcel dimensions, a Parcel Template can be created and set in the Parcel Template field. After adding the template, click on the Add template button.

Submitted Shipment

3.2. Shipment Information / Details

The Shipment Information section is an optional section where a user can manually track Shipment information. Here are some of the fields:

  1. Service Provider (optional): A Service Provider can be a third-party service that provides shipping services from various carriers.
  2. Shipment ID: The unique Shipment ID on your Shipping platform.
  3. Shipment Amount: Total cost incurred on Shipment
  4. Carrier: The Carrier that handles your Shipment and delivers it.
  5. Carrier Service (optional): The type/category of service provided by the carrier. E.g. some carriers have categories such as Economy, Express, etc.
  6. AWB Number: An air waybill (AWB) accompanies international air cargo. It usually has a unique AWB Number, that makes it easy to identify and track an air courier.
  7. Incoterm: They are a set of internationally recognized rules which define the responsibilities of sellers and buyers. Know more about it here.

3.3 Automation

You can also automate rate comparison, label generation, tracking, etc. using our Shipping Integration.

  1. Delivery Note
  2. Packing Slip

Shipping Rule

https://docs.frappe.io/erpnext/shipping-rule

Using Shipping Rule, you can define the cost for delivering the product to the customer or the supplier. Its a rule to define shipping charges applied to sales transactions

Most of the companies (mainly retail) have a shipping charge applied based on the invoice total. You can setup Shipping Rule to address the requirement of varying shipping charges based on the Net Total of sales transactions. Use them to offer discounted shipping rates on high-value orders and standard rates on smaller ones.

To set up a Shipping Rule, go to:

or

Selling > Setup > Shipping RuleAccounts > Setup > Shipping Rule

How to create a Shipping Rule

  1. Go to the Shipping Rule list, click on New.
  2. Enter the Shipping Rule label, for example, 'Priority Shipping' or 'Next Day Shipping'.
  3. When shipping charges are determined by a Shipping Rule, you must also provide the Shipping Account, Cost Center, and Shipping Amount. These details are required to populate the "Taxes and Other Charges" table in the transaction.
  4. Under Calculate Based On, you can also change the calculation on which the Shipping Rule will be applied, like net total quantity or net total weight; by default, it is "Fixed".
  5. Save

Shipping Rule

Features

Shipping Rule Conditions

On selecting Net Total or Net Weight, a table will appear where you can set the from and to values for the amount or weight. Enter the Shipping Amount to be calculated for the entered range. Add more conditions as necessary. You can select only one of the three calculation methods in one Shipping Rule.

Shipping Rule Conditions

Referring above, you will notice that shipping charges are reducing as the value increases. This shipping charge will only be applied if the transaction total falls under one of the above ranges.

Valid for Countries

You can restrict the Shipping Rule to certain countries. Add the countries in the table. By default, the Shipping Rule will be applicable globally. If specific countries are mentioned, then Shipping Charges will be applied only if the Customer's country matches the country mentioned in the Shipping Rule.

Country Specific Shipping Rules

Shipping Rule Application

Following is an example of how shipping charges are auto-applied on a Sales Order based on a Shipping Rule.

Shipping Rule in Sales Order

Shop by Category

https://docs.frappe.io/erpnext/shop_by_category

ERPNext offers a Shop by Category () page out of the box, where users can navigate to relevant products based on their needs without having to use filters right away.

/shop-by-category

To set up the categories (in the tabs) for this page, head over to:

E Commerce Settings > Filters and Categories

In the Filters and Categories section, make sure Enable Field Filters (Categories) is enabled. The categories are pulled from the Website Item Fields table. The field filters such as Item Group, Brand, etc. are reused as categories on this page.

Once this is done, you will accordingly see tabs on the Shop by Category page ().

/shop-by-categoryShop by Category

Additionally you can add a slideshow to this page (as seen above) via the Shop By Category section in E Commerce Settings.

Fetching records in categories

Item Groups

Item Groups are handled a little differently due to its tree structure. Item Group records are fetched if the following conditions are all satisfied:

  • The Show in Website field is enabled in the Item Group
  • Item Group is the top most group node (Is Group enabled and parent is 'All Item Groups') or top-most leaf node (Is Group disabled and parent is 'All Item Groups')

Each card links to the respective Item Group page.

Other Categories

The other categories' records are simply fetched irrespective. If you want to hide certain records here too (e.g. in Brand), you can add a custom Show in Website field and it will filter out those records that have this field disabled.

Custom doctypes that are linked to Website Item via a link field can also be included here along with Item Group, Brand, etc.

Shopify Integration

https://docs.frappe.io/erpnext/shopify_integration

The Shopify Connector pulls the orders from Shopify and creates Sales Order against them in ERPNext.

While creating the sales order if Customer or Item is missing in ERPNext the system will create new Customer/Item by pulling respective details from Shopify.

How to Setup Connector?

Shopify Connector is moved out from ERPNext and available through a Frappe App on Frappe Cloud Marketplace

Note to users of old Shopify Connector

If you have not setup Shopify Connector on your ERPNext site you can proceed to next step.

If you are using old Shopify integration that's provided in ERPNext then you will have to disable the connector before proceeding. After installing the app, it will migrate existing data e.g. unique product_id for items to separate doctype. Once you are done configuring new integration, you can confirm the status of migration by going to "Ecommerce Integration Log" doctype.

App Installation

  • If you are hosting your ERPNext site on Frappe Cloud, you can quickly install the app by going to your site Dashboard. The app is available in Frappe Cloud Marketplace
  • If your site is hosted by Frappe, please raise a support ticket to get the app installed on your site.
  • If you are self hosting ERPNext you can install the app using Frappe bench. Refer bench documentation for installing Frappe Apps.
bench get-app ecommerce_integrations --branch main

The repository for app is hosted on GitHub: http://github.com/frappe/ecommerce_integrations/

Create A Custom App in Shopify

Click on Apps in menu bar

Menu Section

Click on Develop apps for your store to create custom app

new app

Create New app

Fill up the details and create app. The each app has its own API key, Password and Shared secret

Allow following permissions to the app.

  • Draft Orders - Read and Write
  • Orders - Read and Write
  • Location - Read
  • Customers - Read
  • Assigned fulfillment orders - Read and Write
  • Products - Read and Write
  • Product listings - Read and Write
  • Inventory - Read and Write

your final admin scopes should look like this:

  1. Install the app on your site

Setting Up Shopify on ERPNext:-

Once you have created a Private App on Shopify, setup App Credentials and other details in Shopify Settings in ERPNext.

To access Shopify Settings, go to: Awesome search bar > Shopify Setting

Fill-up Shopify site URL, Access Token and API Secret from Shopify's Private App.

Setup Customer, Company and Inventory configurations.

Shopify setting page

Setup Sync Configurations. The system pulls Orders from Shopify and creates Sales Order in ERPNext. You can configure ERPNext system to capture payment and fulfilments against orders.

Shopify sync config for orders

Setup Tax Mapper. Prepare tax and shipping charges mapper for each tax and shipping charge you apply in Shopify. You can find name of your taxes from your Shopify Admin page.

Shopify tax mappingFinding Shopify Tax names

After setting up all the configurations, enable the Shopify sync and save the settings. This will register the API's to Shopify and the system will start Order sync between Shopify and ERPNext.

Syncing Old Orders From Shopify

Once you are done with the Shopify configuration and have enabled Shopify Syncing, you also get a provision to sync your old orders from Shopify into ERPNext. This syncing will happen in background and can take few hours depending on number of orders you have.

  1. Enable "Sync Old Shopify Orders"
  2. Enter the From and To dates between which the orders need to be synced
shopify sync old orders

Inventory Sync

You can update your inventory with Shopify for items that are synced from Shopify. Inventory sync is done every hour with a scheduled job. Inventory levels of items that have changed since last sync are pushed to Shopify. Inventory levels of ERPNext warehouses are mapped 1 to 1 with Shopify locations.

  1. To enable inventory sync click on the checkbox, this will show you a table to map ERPNext warehouse with Shopify Location.
  2. Select sync frequency. 30 to 60 minutes is recommended frequency.
  3. Click on "Fetch Shopify Locations" button to populate Shopify locations in the table.
  4. Link each location with ERPNext warehouse.
  5. Save the settings.

Inventory sync with shopify

Note: This connector assumes that ERPNext is main source of information about inventory levels, any changes done to Shopify inventory levels will be overwritten by ERPNext if ERPNext inventory levels change.

Note: Shopify does not support fractional quantity. If fractional quantity is found in ERPNext, the inventory level on Shopify will be set by rounding it down to nearest whole number.

Item Sync

You can enable sync of new ERPNext items to Shopify by checking "Upload new ERPNext items to Shopify".

You can also update Shopify item upon updating ERPNext item.

Following fields are uploaded / updated:

ERPNext Field Shopify Field
Item Name Title
Item Code SKU
Description body Description
Item Group Product Type
Weight per Unit Weight
Weight UOM Weight UOM

By default all items are marked as Draft on Shopify and not published in any store.

Purpose of providing this functionality is to sync items with Shopify. It's not possible to map every fields 1-to-1. Upon creation of item on Shopify using this method, it's linked with ERPNext, this eliminates possibility of duplication. You can modify items on Shopify later to add more details.

Note: This feature is not supported in data import or for variant / template items.

Cancellation of Orders

This connector handles various cancellation scenario in following manner:

  1. If Order on Shopify is cancelled and it doesn't have invoice or Delivery note linked against it then ERPNext Sales Order is cancelled.
  2. If ERPNext Sales Order does have any linked document, then status of order on Shopify is added to the respective document. Cancellation and preparation of appropriate documents has to be done by user based on this information.

Shopping Cart

https://docs.frappe.io/erpnext/shopping-cart

In addition to listing products, ERPNext also allows selling them via the Shopping Cart.

To enable Shopping Cart, go to:

E Commerce Settings > Shopping Cart

You can even build a landing page for your store at a custom route (eg. /store). Learn More.

1. Item Types

Shopping Cart works differently for Items with and without variants.

1.1 Items without variants

Items without variants have their dedicated product page and an Add to Cart button.

Item without Variants

Item without Variants

1.2 Items with variants

Since Item Templates can't be bought directly, there is a Configure button to choose the specific variant and add it to cart.

Item with Variants

Item with Variants

2. Cart Quotation

If checkout is disabled, when your customers add an item to cart, they can click on the Request for Quotation button to get a quote for it. A Quotation is generated in the system.

3. Cart Checkout

You can enable checkout from the Checkout Settings section in E Commerce Settings.

Cart Checkout

Cart Checkout

Show or Hide Modules

https://docs.frappe.io/erpnext/show-hide-modules

v15 onwards, this is no longer supported or required

You can globally Hide or Unhide certain modules by clicking on Show/Hide Cards in your ERPNext Home Page.

For example, if you are in the services business, you want to hide the Manufacturing Module, you can do this using this tool.

Check/uncheck the items to show or hide modules.

Module Settings

In versions older than v12, click on your username, select 'Everyone' and check/uncheck the modules

  1. System Settings
  2. Adding Users
  3. Role and Role Profile
  4. Role Based Permissions
  5. User Permissions

KSA VAT Management and Reporting

https://docs.frappe.io/erpnext/simplified_ksa_vat_management_and_reporting

Generate report for the VAT on Sales and VAT on Purchases

image-20210819234431755

Find the new KSA VAT report and KSA vat settings document in the Accounting Workspace

On creation of the first company for the country Saudi Arab. KSA VAT Setting is created automatically. For any new companies create new settings.

KSA VAT Settings is mapping Item Tax Template and Account to the respective title to be shown in the report

image-20210819233134033

Note: Multiple Item Tax Template can be set for each item.

A good example in the sales cycle would be an item that is treated as a Standard rated Sales and as well as Zero rated domestic Sales. Same case can be applied on the purchase cycle.

image-20210819233839064

Use the Item Tax Templates in the Sales and Purchase Invoice. The data should result in a similar KSA VAT Report

image-20210819235844178

KSA VAT Invoice - Print Format for Sales Invoice

ksa-vat-invoice-a4-page-1ksa-vat-invoice-a4-page-2

Single Payment Again Multiple Invoices

https://docs.frappe.io/erpnext/single-payment-multiple-invoices

If you want to create a single payment entry adjusting against multiple invoices, follow the steps given below.

  1. Make a "New Payment Entry".
  2. Select a Party Type and Party.
  3. After selecting a Party, all the outstanding invoices will be fetched for that Customer/Supplier.
  4. Enter the Payment Amount.
  5. Allocate the amount against invoices/orders as needed.
  6. Save and Submit Payment Entry.

Demo of Bulk Payment Entry

Adjust Payment Entry Against Multiple Sales

SMS Settings

https://docs.frappe.io/erpnext/sms-setting

You can subscribe to an SMS provider to send SMS to mobile numbers.

To integrate SMS in ERPNext, approach an SMS Gateway Provider who provides HTTP API. They will create an account for you and will provide a unique username and password.

To access SMS settings, go to:

Home > Settings > SMS Settings

To configure SMS Settings in ERPNext, find out their HTTP API (a document which describes the method of accessing their SMS interface from 3rd party applications). In this document, you will get a URL which is used to send the SMS using HTTP request. Using this URL, you can configure SMS Settings in ERPNext.

Example SMS Gateway URL:

http://instant.smses.com/web2sms.php?username=&password;=&to;=&sender;=&message;=

SMS Setting 2

Note: For SMS Gateway URL, only include the string before the "?".

Example:

http://instant.smses.com/web2sms.php?username=abcd&password;=abcd&to;=9900XXXXXX&sender; =DEMO&message;=THIS+IS+A+TEST+SMS

The above URL will send SMS from account abcd to mobile number 9900XXXXXX with sender ID as DEMO with a text message as "THIS IS A TEST SMS".

Note that some parameters in the URL are static. You will get static values from your SMS Provider like username, password, etc. These static values should be entered in the Static Parameters table.

SMS Setting

How to configure ERPNext with Voip.ms

The first step is to login to voip.ms account. Then go Main menu, SOAP and REST/JSON API. Enable the API, set a password and whitelist your server ip address.

Then go to DIDs and enable SMS on the number SMS will be sent from.

Set SMS Gateway to https://voip.ms/api/v1/rest.php

Set Message Parameter to message

Receiver Parameter to dst

Create 4 new Static Parameters:

api_username (voip.ms account username

api_password (the API password configured few minutes ago)

method set value to sendSMS

did (the 10 digits DID that will be used to send the sms)

Voip.MS Setting

Then go to SMS Center to test if everything works properly.

  1. Email Account
  2. Notifications

Social Media Settings

https://docs.frappe.io/erpnext/social-media-settings

Social media settings in ERPNext play a crucial role in modern business management.

These settings enable businesses to integrate their ERP system with various social media platforms, such as Twitter, LinkedIn. By connecting ERPNext with social media, businesses can streamline their marketing efforts, enhance customer engagement, and gather valuable insights into consumer behavio

Requirements for South Africa

https://docs.frappe.io/erpnext/south_africa

ERPNext aims to support local regulation for different regions in the world. In most cases, ERPNext is very flexible, so you can easily add custom fields and make custom reports to support the regulation of your region.

This section contains region-specific features for South Africa.

Introduction to Stock Module

https://docs.frappe.io/erpnext/stock

The Stock module in ERPNext is a comprehensive tool designed to manage inventory and streamline supply chain operations. It offers functionalities to handle various aspects of stock management as mentioned below.

  1. Inventory Tracking: Monitor stock levels, track movements, and manage warehouses effectively.
  2. Item Management: Define and categorise products, track item variants, and manage pricing.
  3. Stock Transactions: Record and process transactions, including stock receipts, deliveries, and transfers.
  4. Stock Reconciliation: Perform periodic audits to ensure stock records align with physical inventory.
  5. Reports and Analytics: Generate detailed reports on stock levels, valuations, and trends to support decision-making.

Overall, the Stock module helps businesses maintain optimal inventory levels, reduce carrying costs, and improve operational efficiency.

Video Tutorials

Frappe School Course on Stock Module

Stock Adjustment / COGS with Negative Stock

https://docs.frappe.io/erpnext/stock-adjustment-cogs-with-negative-stock

In this, we will see how negative stock causes stock adjustments. Many users make negative stock entries in the system. For example, they create delivery notes without stock in the system by enabling the 'allow negative stock' in Stock Settings. They do this because they have to dispatch materials to their customers with the delivery receipt. To fix the negative stock, they then make a purchase receipt entry or a material receipt stock entry. Most users make the purchase entry after the delivery note date, which causes the stock adjustment entry. To understand the case take a below example

Suppose there is an item 'Testing Item Stock Adj' for which stock doesn't exist. Now, the user has created the delivery note, but while making the delivery note, the user received an error that the valuation rate is mandatory. So, the user has set the random value as 100 in the valuation rate field for the item 'Testing Item Stock Adj'.

item master

Delivery Note

Since the stock was not exists, system has used the valuation rate as 100 and booked the stock in hand as below

gl-entry-negative-stock

Now, since the stock is in negative, we need to make a purchase entry to adjust it. So, we'll create a purchase receipt entry with a purchase rate of 300.

Now the purchase receipt entry is created, but it is made after the delivery note (check the posting date and posting time of both entries). The delivery note has a valuation rate of 100, and the purchase receipt should have a valuation rate of 300 (based on the purchase cost). Since the stock was negative, the system uses the valuation rate of 100 (based on previous entry which was delivery note) for the purchase receipt entry. If the system used a valuation rate of 300, then the stock balance quantity would be zero, but the stock balance value would be 200, which is incorrect. Therefore, the system used a valuation rate of 100, and the difference of 200 is booked in the stock expense account (Stock Adjustment/COGS) as follows:.

cogs:stock_adjustment

How to Solve the Problem

Either don't use the negative stock feature or make the purchase entry (backdated) before the dispatch entry, so the system will fix the valuation rate of the delivery note and no adjustment entry will be needed for the purchase receipt.

backdated-pr

On submission of the above back-dated purchase entry, the system will create a reposting entry that will fix the valuation rate of the delivery note. After the reposting, the delivery note's valuation rate has changed from 100 to 300, and therefore the 'Stock In Hand' has changed to 300.

stock-in-hand-after-repost

Stock Balance and Stock Account Balance Syncing

https://docs.frappe.io/erpnext/stock-balance-and-stock-account-balance-not-in-sync

Question: When creating a transaction, getting validation message as follows. What is the cause of this error and how to resolve it.

Answer: Since Perpetual inventory is enabled in the your Company master, it requires the syncing of Stock Ledger and Stock Accounts (ledger) balance. The error message indicates that there is a mis-match in the stock and accounts balance due to previous entries
To proceed forward, you can easily sync the stock balance and stock accounts balance by creating a Journal Entry. Click on “Create a Journal Entry Button“ in the validation message, update relevant accounts and submit Journal Entry.

Stock Closing Entry

https://docs.frappe.io/erpnext/stock-closing-entry

The purpose of the stock closing entry is to generate the stock closing balance, which includes the consolidated stock quantity and consolidated stock value for the selected period. This information will be used to generate the stock reports such as Stock Balance and Batch-Wise Balance History in a short span of time.

How it Works

The user is required to create a stock closing entry for the desired period, which can span one month, half a month, or an entire year. Upon submission of the stock closing entry, the system generates the stock closing balance for the selected period, including item, batch, inventory dimensions and warehouse wise consolidated closing stock quantities and stock values.

Stock Closing Entry

Stock reports, such as Stock Balance and Batch-Wise Balance History, use the Stock Closing Balance data to calculate the opening stock, which is significantly faster than calculating the closing stock using the Stock Ledger Entry.

Note: Will be available in v16

Stock Entry

https://docs.frappe.io/erpnext/stock-entry

A Stock Entry lets you record Item movement between Warehouses.

To access the Stock Entry list, go to:

Home > Stock > Stock Transactions > Stock Entry

Stock Entries can be made for the following purposes:

  • Material Issue: If the material is being issued to someone in or outside the company (Outgoing Material). The Items will be deducted from the Warehouse set under Source Warehouse.
  • Material Receipt: If the material is being received (Incoming Material). The Items will be added to the Warehouse set under Target Warehouse.
  • Material Transfer: If the material is being moved from one internal Warehouse to another.
  • Material Transfer for Manufacturing: If raw materials are being transferred for manufacturing. The transfer can happen against a Work Order or a Job Card. To know more, visit the Bill Of Materials page.
  • Material Consumption for Manufacture: There can be multiple consumption stock entries against a manufacturing Work Order. Refer this link for more details
  • Manufacture: If the Material is being received from a Manufacturing/Production Operation.
  • Repack: If the Original item/items are being repacked into new item/items.
  • Send to Subcontractor: If the Material is being issued for a sub-contract activity. This entry is made from a Purchase Order. To know more, visit the subcontracting page.

To know more in detail about the stock entry purpose, visit this page.

  1. Prerequisites

Before creating and using a Stock Entry, it is advised that you create the following first:

  1. How to create a Stock Entry

Stock Entries for Manufacturing purposes are usually created from a Work Order. To create a Stock Entry manually for other purposes, follow these steps:

  1. Go to the Stock Entry list, click on New.
  2. Select the Stock Entry Purpose from the ones listed above.
  3. If you set the Default Source or Target Warehouses, they'll be automatically filled for the rows in the Items table.
  4. Source/Target Warehouses will be available as per the Stock Entry Purpose you selected.
  5. Select Items and enter a quantity.
  6. The basic rate will be fetched and the amount will be calculated automatically.
  7. Save and Submit.

Stock Entry

Usually, "Source Warehouse" and "Target Warehouse" both are set for recording a movement.

2.1 Additional options when creating a Stock Entry

  • Work Order: If this is a Manufacturing entry, the Work Order will be shown in this field.
  • Edit Posting Date and Time: Will allow you to edit the Stock Entry's date and time.
  • Inspection Required: If a Quality Inspection needs to be performed on the Items before submitting the Stock Entry.
  • From BOM: If this is a Manufacturing entry, the associated BOM for the Item being manufactured will be shown.

2.2 Stock Entry Type

You can also create a Stock Entry Type where only the name will be different, for example 'Scrap Entry'. The purpose will be Material Transfer but the name will be different. This is useful if you want certain Users to have access only to specific actions related to stock.

Stock Entry Type
  1. Features

3.1 The Items table

Details about the Item, Rate, Quantity, etc. will be shown here.

Ticking on 'Allow Zero Valuation Rate' will allow submitting the Stock Entry even if the Valuation Rate of the Item is 0. This can be a sample item or due to a mutual understanding with your Supplier.

Different Source and Target Warehouses can be set for different Items.

3.2 Scrap and Process Loss

  • Scrap Item: Scrap items are the by-product and can be treated as products. The scrap items will have the valuation rate and they will be added to the scrap warehouse. Users can set the valuation rate for the scrap item manually in the Basic Rate field.
  • Process Loss: Process Loss has no impact on the stock, this will reduce the number of FG Items. Check the below image, the user has planned to produce 100 FG Items but after the manufacturing process, the quantity has been produced as 80. To produce 80 FG Items, the user has used all raw material quantity. So here 20 quantity has been produced so therefore the system has marked it as Process Loss Qty. The process loss cost of 20 quantities has been added to the 80 quantities of FG Item.

3.3 Additional Costs

If the stock entry is an incoming entry i.e any item is receiving at a target warehouse, you can add related additional costs (like Shipping Charges, Customs Duty, Operating Costs, etc) associated with the process. The additional costs will be considered to calculate the Valuation Rate of the items.

To add additional costs:

  1. Select the Expense Account to which the expense from this Stock Entry will be recorded.
  2. Enter the description and amount of the cost in the Additional Costs table.

Stock Entry Additional Costs

The added Additional Costs will be distributed among the receiving items (where the Target Warehouse mentioned) proportionately based on the Basic Amount of the items. And the distributed additional cost will be added to the basic rate of the item, to calculate Valuation Rate.

Quantity and Rate is shown as follows when you expand the Items table.

Stock Entry Item Valuation Rate

3.4 Accounting Dimensions

You can tag different transactions based on different dimensions. By default, Projects can be considered as a dimension as it is a common practice to track costs of different projects. To know more about Accounting Dimensions, visit this page.

3.5 Printing Settings

Letterhead

You can print your Purchase Receipt on your company's letterhead. Know more here.

Purchase Receipt headings can also be changed when printing the document. You can do this by selecting a Print Heading. To create new Print Headings go to: Home > Settings > Printing > Print Heading. Know more here.

3.6 More Information

  • Is Opening: If this entry is the opening stock entry for the Items.
  • Remarks: Any additional remarks about the Item.
  • Percentage Transferred: The percentage of Items transferred depending on Stock Entry purpose.
  • Total Amount: The total amount of Items transferred.

3.7 Perpetual Inventory

If the perpetual inventory system is enabled, additional costs will be booked in Expense Account mentioned in the Additional Costs table .

Additional Costs General Ledger

Additional Costs General Ledger

3.8 After Submitting

After submitting a Stock Entry, you can go to the stock ledger or the accounting ledger from the dashboard.

Additional Costs General Ledger
  1. Add to Transit

If you want to transfer materials from one warehouse to another and you want to make two entries for that then use "Add to Transit" feature.

To use "Add to Transit" feature, make stock entry with type as "Material Transfer" and enable "Add to Transit" checkbox. Next you need to select the source warehouse from where you want to issue the material and then select the warehouse of type "Transit" in the target warehouse. To make transit warehouse you can goto the Warehouse master and select the warehouse type as "Transit". After that add items in the stock entry which needs to be transfer and submit it.

To make second stock entry at the destination warehouse, users has two options. Either they can open the Original Stock Entry and click on "End Transit" or they can create new stock entry and click on "Get Items From" -> "Transit Stock Entry". System will fetch items from the original stock entry with the source warehouse (Transit warehouse) same as traget warehouse from the original stock entry. User has to set the target warehouse and save.

  1. How to update a Stock Entry

Once a stock entry is submitted, it can be updated by cancelling and amending the entry

  1. Video
  1. Stock Entry Purpose
  2. Stock Reconciliation
  3. Opening Stock Balance Entry For Serialized And Batch Item
  4. Stock Reconciliation
  5. Work Order
  6. Production Plan
  7. Job Card

Stock Entry Purpose

https://docs.frappe.io/erpnext/stock-entry-purpose

Stock Entry is a stock transaction, which can be used for multiple purposes. Let's learn about each Stock Entry Purpose below.

1.Purpose: Material Issue

Material Issue entry create to issue item(s) from a warehouse. On submission of Material Issue, stock of item is deducted from the Source Warehouse.

Material Issue is generally made for the low value consumable items like office stationary, product consumables etc. Also you can create Material Issue to reconcile serialized and batched item's stock.

Material Issue

2.Purpose: Material Receipt

Material Receipt entry is created to inward stock of item(s) in a warehouse. This type of stock entry can be created for updating opening balance of serialized and batched item. Also items purchased without Purchase Order can be inwarded from Material Receipt entry.

For the stock valuation purpose, provided Item Valuation becomes a mandatory field in the Material Receipt entry.

Material Receipt

3.Purpose: Material Transfer

Material Transfer entry is created for the inter-warehouse Material Transfer.

Material Transfer

4.Purpose: Material Transfer for Manufacture

In the manufacturing process, raw-materials are issued from the stores to the production department (generally WIP warehouse). This Material Transfer entry is created from Work Order. Items in this entry are fetched from the BOM of production Item, as selected in Work Order.

Transfer for Manufacture

5.Purpose: Manufacture

Manufacture is created from Work Order. In this entry, both raw-material item as well as production item are fetched from the BOM, selected in the Work Order. For the raw-material items, only Source Warehouse (generally WIP warehouse) is mentioned. For the production item, only target warehouse as mentioned in the Work Order is updated. On submission, stock of raw-material items are deducted from Source Warehouse, which indicates that raw-material items were consumed in the manufacturing process. Production Item is added to the Target Warehouse marking the completion of production cycle.

Manufacture

6.Purpose: Repack

Repack Entry is created when items purchases in bulk is repacked under smaller packs. Check this page to know more about Repack entry.

7.Purpose: Subcontract

Subcontracting transaction involves company transfer raw-material items to the sub-contractors warehouse. This requires adding a warehouse for the sub-contractor as well. Sub-contract entry transfers stock from the companies warehouse to the sub-contractors warehouse. Check this page to know more about Subcontracting.

Subcontract

Stock Inspection

https://docs.frappe.io/erpnext/stock-inspection

Quality inspection in ERPNext stock module involves assessing and ensuring the quality of incoming and outgoing inventory items.

When items are received into stock, quality inspectors can perform inspections based on predefined criteria such as physical condition, specifications, or regulatory standards. Inspection results can be recorded, and items can be accepted, rejected, or placed on hold based on the inspection outcome.

During outgoing transactions such as sales or transfers, quality inspections can be conducted to verify that items meet specified quality standards before being shipped or transferred.

ERPNext facilitates the creation of inspection criteria, inspection plans, and inspection certificates to streamline the quality control process.

Stock Ledger Report

https://docs.frappe.io/erpnext/stock-ledger

A Stock Ledger Report is a detailed record that keeps track of stock movements for a company.

Inward or outward transactions related to Manufacturing, Purchasing, Selling, and Stock Transfers are recorded in the Stock Ledger which then is reflected in the Stock Ledger Report.

It reflects the quantity and value of stock issued, received, or transferred along with the stock item and its warehouse details.

It can be referred when the Perpetual Inventory system is enabled, as this report reflects the history of all your stock transactions. It presents a more granular view of the stock transactions.

Stock Ledger Report Attributes

Incoming Rate: It reflects the actual value of the stock at which it was brought under your inventory. It reflects the same value as entered in the Rate field of the document.

Balance Value: It represents the total value of the remainder stock in the inventory. It is the product of Valuation Rate and Balance Quantity of a stock item.

Valuation Rate: It is calculated based upon the valuation method selected.

Here is how Stock Ledger Report represents a Stock Entry of type Material Receipt.

Stock Ledger Report

It reflects an item Chair of quantity 1000 units with Incoming Rate (Basic Rate) as Rs.3000 received in warehouse Stores - L along with calculating Valuation Rate and Balance Value.

You can click on Voucher # to open the document this transaction was created from.

Stock Ledger entries are generated from the following transactions:

  • Sales Invoice, Purchase Invoice (with Update Stock checked)
  • Delivery Note
  • Purchase Receipt
  • Stock Entry
  • Stock Reconciliation

You can add fields from the previously mentioned Document Types by clicking on Menu > Add Column.

Stock Level Report

https://docs.frappe.io/erpnext/stock-level-report

Stock Level report list stock item's quantity available in a particular warehouse.

There are multiple reports available you can check for item's stock level.

Stock Projected Quantity Report

This report list item wise - warehouse wise stock level of an item considering all the stock transactions. With Actual Quantity of an item, it also provide other details like:

  1. Actual Qty: Quantity available in the warehouse.
  2. Planned Qty: Quantity, for which, Work Order has been raised, but is pending to be manufactured.
  3. Requested Qty: Quantity requested for purchase, but not ordered.
  4. Ordered Qty: Quantity ordered for purchase, but not received.
  5. Reserved Qty: Quantity ordered for sale, but not delivered.
  6. Project Qty: Project Quantity is calculated as

Projected Qty = Actual Qty + Planned Qty + Requested Qty + Ordered Qty - Reserved Qty

The projected inventory is used by the planning system to monitor the reorder point and to determine the reorder quantity. The projected Quantity is used by the planning engine to monitor the safety stock levels. These levels are maintained to serve unexpected demands.

Having a tight control of the projected inventory is crucial to determine shortages and to calculate the right order quantity.

Stock Masters

https://docs.frappe.io/erpnext/stock-masters

In ERPNext, the masters play a crucial role in managing stock-related data, such as items, warehouses, batches, and stock transactions. They provide a structured way to input, store, and retrieve data related to stock items, their attributes, and movements within the system.

Masters in the stock enables businesses to maintain accurate inventory records, track stock movements, and make informed decisions regarding procurement, sales, and stock optimisation. The following are the quick links to some of the important masters in the stock module.

Purpose of Stock Received but not Billed

https://docs.frappe.io/erpnext/stock-received-but-not-billed

When purchased items are received, an accounts posting is done based on the value of the purchased items in the Stock-in-hand / fixed-assets account. When you sell and deliver those items, an expense (cost-of-goods-sold) is booked, equal to the buying cost of the items.

As stock balance increases through Purchase Receipt, Warehouse account is debited and an adjustment account called Stock Received But Not Billed account is credited. At the same time, the negative expense is booked in account head having category as "Valuation" or "Total and Valuation" in taxes and charges table for the amount added for valuation purpose, to avoid double expense booking.

On receiving Bill from the supplier, you will make Purchase Invoice against a Purchase Receipt. Here Stock Received But Not Billed account is debited, hence nullifies the balance in the Stock Received but not Billed Account.

The balance in the Stock Received but not Billed account indicates the value of items for which Purchase Receipt has been made, but billing is pending.

Stock Reconciliation

https://docs.frappe.io/erpnext/stock-reconciliation

Stock Reconciliation is the process of counting and evaluating material/products, periodically at the year-end.

This is done in order to:

  • Keep the actual physical stock count and book stock count in sync
  • Value the stock for the preparation of the accounting statements

The Stock Reconciliation feature in ERPNext is used for:

  • Posting opening stock
  • Reconciling the book and the actual stock

To access the Stock Reconciliation list, go to: > Home > Stock > Tools > Stock Reconciliation

1. Opening Stock

Using stock reconciliation, you can update the number of specific items in a warehouse as of a specific time. You can also add Items in the stock that have Serial Numbers or batch numbers.

  1. Go to the Stock Reconciliation list, click on New.
  2. Select the Purpose as 'Opening Stock'. You can edit the posting Date and Time.
  3. Select Item Code, Warehouse, Quantity, and Valuation Rate. If there is a Serial / Batch No involved, add it.
  4. If you want to auto-generate Serial No / Batch No. then keep those fields blank. For auto-generation of Serial No, you need to set "Serial Number Series" in the Item master. To auto-generate the batch number, enable the "Automatically Create New Batch" checkbox in the item master.
  5. The Difference Account will be set as 'Temporary Opening'.
  6. Save and Submit.

Note: Maintain Stock option should be enabled in Item master for this to work.

2. Stock Reconciliation

Stock Reconciliation is the process of counting and evaluating stock-in-trade, periodically and at year-end, in order to value the total stock for preparing accounting statements. In this process, the actual physical stocks are checked and recorded in the system. The actual stocks and the stock in the system should be in agreement and accurate. If they are not, you can use the Stock Reconciliation tool to reconcile the stock balance and value with actuals.

To reconcile the stock:

  1. Go to the Stock Reconciliation list, click on New
  2. Select the Purpose as 'Stock Reconciliation'. You can edit the posting Date and Time.
  3. Set Item Code, Warehouse.
  4. The current Quantity and Valuation Rate will be fetched, and the quantity will be changed as required.
  5. The expense account in the Difference Account will be set to 'Stock Adjustment' by default.
  6. The Cost Centre default will be 'Main', change if needed.
  7. Save and Submit.

3. Reconciliation Features

3.1 Upload Data Through Spreadsheet

If you have a lot of items, you can upload the details via a spreadsheet.

  1. Download Template

Open a new Stock Reconciliation and click on the Download button to download the template in CSV format.

  1. Enter Data in CSV Template.

The CSV format is case-sensitive. Do not edit the headers that are preset in the template. In the Item Code and Warehouse column, enter the exact Item Code and Warehouse as created in your ERPNext account. For quantity, enter the stock level you wish to set for that item in a specific warehouse.

Stock Reconciliation
  1. Upload the CSV file with the data by clicking on the 'Upload' button.
  2. Review, Save and Submit.
  3. Check the Stock Ledger Report for the updated stock balance.

3.2 Get Stock Balance and Valuation as of Specific Date and Time

You can import the stock balance and valuation as of a specific date and time from a selected Warehouse by clicking on the Items button. You can update the Quantity and Valuation Rate as needed.

3.3 Using a barcode scanner to scan physical inventory

If you have configured barcodes for your items, you can use a barcode scanner to reconcile physical quantities. To do this, follow these steps:

  1. Set default warehouse
  2. Enable "Scan Mode" This will disable fetching existing quantity and let you add quantities by incrementally scanning items.
  3. Click on the "Scan Barcode" field and use your barcode scanner to send input. The reconciliation items table will keep getting updated as you scan items. The following video demonstrates this process.

Stock Reconciliation Scanning

4. Serial and Batch Bundle

In version 15, the serial and batch bundle feature has introduced to make stock transactions against the serial no/batch items. For stock reconciliation, the user gets two options to make a serial and a batch bundle.

  • Use Serial / Batch Fields

The user can use the old serial/batch fields to make a serial and batch bundle automatically. In this case user has to enable the checkbox "
Use Serial No / Batch Fields" in the line item

Screenshot 2024-05-31 at 10.07.33 AM

5. Use Serial & Batch Bundle

The user can use the Serial / Batch bundle to make stock reconciliation for serialised/batched items. Here, the user gets the option to either "Reconcile All Serial Nos / Batches" or "Reconcile Selected Serial Nos / Batches".

Reconcile Selected Serial Nos / Batches: The user needs to disable the "Reconcile All Serial Nos / Batches" checkbox and create a serial and batch bundle for specific serial numbers or batches. By doing this, the system will automatically create the Current Serial / Batch Bundle for the serial numbers or batches that have been selected by the user manually within the Serial and Batch Bundle.

For example, if the user has 10 batches and wants to change the valuation rate of only 2 batches, then the user should disable the "Reconcile All Serial Nos / Batches" checkbox and create the serial and batch bundle for those 2 batches with the new valuation rate.

Reconcile All Serial Nos / Batches

The user needs to enable the checkbox "Reconcile All Serial Nos / Batches" and create a serial and batch bundle.

For example, if the user has 10 batches and wants to reconcile and keep only one batch. Using the stock reconciliation, the user will be able to consume 9 batches automatically and retain one batch. For that, the user has to enable the "Reconcile All Serial Nos / Batches" checkbox in the Stock Reconciliation Item, and then the system will automatically consume 9 batches and add one batch on submission of the stock reconciliation.

Screenshot 2024-05-31 at 10.25.35 AM

Stock Ledger Variance Report

https://docs.frappe.io/erpnext/stock-reposting

Screenshot 2025 12 30 at 12.48.14 PM

The Stock Ledger Variance report in the ERPNext helps identify incorrect Stock Ledger Entries (SLEs) where the Running Available Stock and Stock Balance are inconsistent. These inconsistencies usually occur due to reposting issues, backdated entries, or data mismatches.

This report allows users to easily detect affected entries and correct them by creating reposting entries.

Use this report to:

  • Identify Stock Ledger Entries with incorrect running balances
  • Detect stock quantity mismatches between calculated and stored values
  • Repost affected entries to fix stock inconsistencies

How to Use the Report

  • Open the Stock Ledger Variance report.
  • Apply filters like Quantity (A - B) to find ledgers with incorrect balance qty Value (G - D) to find ledgers with incorrect balance value Valuation (I - K) to find ledgers with incorrect valuation rate

Reposting Affected Entries

To fix the incorrect stock ledger entries:

  • Select the rows that show inconsistencies.
  • Click on Create Reposting Entries.
  • The system will generate reposting entries for the selected records.
  • Once reposting is completed, re-run the report to verify that the issue is resolved.

Notes

  • Reposting may take time depending on the number of affected entries.
  • It is recommended to perform reposting during non-peak hours.
  • Always verify stock balances after reposting.

When to Use This Report

  • After fixing reposting-related issues
  • When negative stock errors appear unexpectedly
  • After importing or creating backdated stock transactions
  • During stock audit or reconciliation

Stock Reposting Settings

https://docs.frappe.io/erpnext/stock-reposting-settings

Screenshot 2024-04-24 at 12.54.08 PM

Limit timeslot for Stock Reposting

If you want to run the reposting in a specific time then you can enable the checkbox "Limit timeslot for Stock Reposting". With this configuration you can avoid deadlock issues which occurs during the reposting.

Limits don't apply on

If you want to run the reposting full day and not on a specific time, especially when you have weekly off then you can use this configuration.

Use Item Based Reposting

This option is helpful when you want to speed up reposting. The system skips reposting for duplicate items and warehouses to improve speed.

Do reposting for each Stock Transaction

The system creates a reposting record for backdated entries. This means that the system only generates a reposting record if a future transaction exists for the same item and warehouse. We have seen cases where system has not created reposting entry for backdated transaction because of concurrency issues. So to solve them added this option which won't check whether the future transaction exists for the same item and warehouse to make reporting record. This is also added for an audit purpose.

Notify Reposting Error to Role

If reposting fails due to any issues, the system sends emails to the system managers. If you don't want to send failure emails to the system managers, you can configure a role, and the system will then send the email to the users assigned to that respective role.

Enable Parallel Reposting

Screenshot 2025 12 10 at 5.54.21 PM

Allows the system to use multiple background workers to repost stock entries in parallel per item. This setting is effective only when Item-Based Reposting is enabled.

No of Parallel Reposting (Per Item)

Defines the number of parallel workers that can execute repost item valuation entries in parallel. Higher values may speed up reposting but can increase system load.

Note for usage

Reposting is a tough computational problem to solve because it involves reposting 1000s may be 10,000s of entries depending on volume of transaction. Please use Reposting Wisely. It is recommended to limit back dated entries to not more than one month. Reposting entries with dates ranging more than one month may lead to failure in reposting for multiple reasons including but not limited to

  1. Reposting Time may be limited to prevent utilisation of resources during working hours, therefore the actual reposting may come up at a later date than when it was created, therefore leading to inconsistencies in the vouchers on the system
  2. Reposting is limited to a timeout of 1500 seconds, which may be exceeded if the volume of reposting is too long

Issue for Legacy Serial Numbers

For example

  • Inward serial number ABC with a rate of 14,000
  • Outward transaction for the same serial number with a valuation rate of 14,000
  • Inward the same serial number ABC again with a rate of 4,000
  • Outward transaction for the same serial number with a valuation rate of 4,000

At this point, the incoming rate stored in the serial number becomes 4,000. If reposting is performed from the second transaction (outward), the valuation rate is calculated incorrectly

  • Inward serial number ABC with a rate of 14,000
  • Outward transaction for the same serial number with a valuation rate of 4,000 (Incorrect because fetched from Serial No document)
  • Inward the same serial number ABC with a rate of 4,000
  • Outward transaction for the same serial number with a valuation rate of 4,000

The valuation rate in the second row should be 14,000, not 4,000. This issue affects legacy serial numbers created before Version 15, when the Serial and Batch Bundle feature was not available.

Solution

Provided an option to fetch the incoming rate either from the last inward transaction during reposting. To enable this users needs to enable the checkbox "Do not fetch incoming rate from Serial No" in the Stock Reposting Settings

Stock Reservation

https://docs.frappe.io/erpnext/stock-reservation

Introduced in Version 15

Stock reservation, also known as inventory reservation, refers to the practice of setting aside a specific quantity of stock or inventory for a particular purpose or customer.

1. Prerequisites

  • Enable Stock Reservation in Stock Settings.
stock-settings

2. Stock Reservation against Sales Order

  • Create a Sales Order.
  • Check the reserve stock for items you want to reserve.
  • Click on Stock Reservation, then select Reserve. Choose the warehouse and quantity, then click on the Reserve Stock button.
  • Stock reservation entries are created against the sales order items.
sales-ordersales-order-itemsales-order-reservestock-reservation-entries

3. Stock Reservation from Pick List

  • Create a Sales Order.
  • Create a Pick List for the Sales Order.
  • In Pick List click on Stock Reservation, then select Reserve, the Stock Reservation Entries will be created against the Pick List.
sales-order-pick-list-reserve

4. Auto Reserve Stock on Purchase

  • Navigate to Stock Settings and enable Auto Reserve Stock for Sales Order on Purchase.
  • Create a Sales Order.
  • Create a Material Request from the Sales Order.
  • Create Purchase Order from Material Request.
  • Complete the process by creating a Purchase Receipt for the Purchase Order. The stock will be automatically reserved upon submission of the Purchase Receipt.

5. Stock Unreservation

There are two ways to unreserve the stock.

Stock Unreservation from Sales Order or Pick List:

  • Open a document and click on Stock Reservation > Unreserve button, the listed Stock Reservation Entries get cancelled.
sales-order-unreserve

Unreserve the stock from the Stock Reservation Entry DocType:

  • 2.1 Open a Stock Reservation Entry and cancel it by clicking the Cancel button.
  • 2.2 Go to the Stock Reservation Entry List, select the entries you wish to cancel, and then click on Actions > Cancel.
stock-reservation-entry-cancelstock-reservation-entries-cancel
  1. Sales Order
  2. Pick List

Stock Reservation for Production Plan

https://docs.frappe.io/erpnext/stock-reservation-for-production-plan

Note: This feature will be available in the ERPNext version 16

Stock reservation in a production plan is important because it ensures that the required raw materials and sub-assemblies are available to start the manufacturing process. It also ensures that the purchased raw materials against the production plan are used exclusively for the respective production plan.

How it Works in ERPNext

The user activity diagram for the production plan reservation is shown below.

The user must enable the checkbox "Enable Stock Reservation" in the stock settings to use this feature. After enabling it, the checkbox "Reserve Stock" will appear in the Production Plan.

If the 'Reserve Stock' checkbox is selected, the system will automatically create a stock reservation entry for the sub-assembly items and raw materials if the stock exists.

If stock does not exist for the sub-assemblies or raw materials, the user must create work orders for the sub-assemblies and raise material requests (purchase) for the raw materials. Once the raw materials are purchased through these material requests, they will be automatically reserved against the respective production plan.

The materials reserved against the production plan will then be used for the work orders linked to that specific production plan.

Stock Reservation for Work Order

https://docs.frappe.io/erpnext/stock-reservation-for-work-order

Note: This feature will be available in the ERPNext version 16

Stock reservation for a work order is essential as it ensures that materials are available, enabling the manufacturing process to begin and produce finished goods.

It also helps to improve inventory management and ensures timely fulfillment of customer orders.

How it Works in ERPNext

The user must enable the checkbox "Enable Stock Reservation" in the stock settings to use this feature. After enabling it, the checkbox "Reserve Stock" will appear in the work order.

If the "Reserve Stock" checkbox is selected, the system will automatically create a stock reservation entry against the source warehouse for the available stock upon submission of the work order.

The reserved stock can only be used for the respective work order and cannot be used in any other transactions.

Unreserve Stock

If the reserved stock needs to be assigned to another work order, unreserve it from the current work order and assign it to the work order that does not have stock reserved.

Reservation for WIP

Once the user transfers the materials from the source warehouse to the WIP warehouse using a stock entry with the type "Material Transfer for Manufacture", the system unreserves the stock from the source warehouse and reserves it against the WIP warehouse.

Finished Goods Reservation

If the sales order is linked to the work order, the system reserves the finished goods against the respective sales order upon completion of the work order.

Stock Settings

https://docs.frappe.io/erpnext/stock-settings

You can set default settings for your stock-related transactions from the Stock Settings page...

Item Naming By

Stock Settings

By default, the Item Name is set as per the Item Code entered. If you want Items to be named by a set Naming Series, choose the 'Naming Series' option.

Defaults

Default Item Group

This will be the default item group allocated to a newly created item. Item groups are useful for classification and setting properties for the whole group. To know more visit the Item Group page.

Default Stock UOM

The default unit of measure for stock is set as numbers (Nos), it can be changed from here.

Default Warehouse

Set the default Warehouse from which the stock transactions are done. This will be fetched into the Default Warehouse in the Item master:

Stock Settings

Sample Retention Warehouse

This is the Warehouse where sample retentions are stored. To know more, visit this page.

Default Valuation method

You can choose between FIFO (first in first out), LIFO (last in first out) or moving average valuation for your items. The default method is FIFO. If you select Moving Average or LIFO, new Items will be valuated on new method. You can change this when creating new Items in the Item form. Once the Item is saved, the Valuation Method cannot be changed. Read more here.

Limit Percent

This is the percentage you are allowed to receive or deliver more against the quantity ordered. For example: If you have ordered 100 units, Supplier sends 120 units and the percentage is set to 10% then you are allowed to receive 110 units. By default, this is set to 0.

Role Allowed to Over Deliver/Receive

Users with this role are allowed to over deliver/receive against orders above the allowance percentage

Show Barcode Field

A field to enter Barcode details for an item. If unticked, the field won't be visible in the Item form.

Convert Item Description to Clean HTML

Usually, descriptions are copy-pasted from a website or Word/PDF file and they contain a lot of embedded styles. This messes up the Print view of your invoices or quotes.

To fix this, you can check "Convert Item Description to Clean HTML" in Stock Settings. This will ensure that when you save the Items, their descriptions will be cleaned up.

If you want to control your description, views, and allow any HTML to be embedded, you can uncheck this property.

Auto insert

Stock Settings

Auto insert Price List rate if missing

Enabling this will insert an Item Price to the Price List of an Item automatically when using the Item in its first transaction. This price is fetched from the 'Rate' set in the first transaction with the Item. The Price List depends on whether you're using a Purchase or Sales transaction.

Note that, the Item Price will be automatically inserted only in the first transaction if not already present.

If this is unticked, the 'Standard Selling Rate' set in the Item when creating the Item will be added as Item Price.

Automatically Set Serial Nos based on FIFO

Serial numbers for stock will be set automatically based on the Items entered based on first in first out. The Serial Numbers will be set automatically in transactions like Purchase/Sales Invoices, Delivery Notes, etc.

Allow Negative Stock

This will allow stock items to be displayed in negative values. Using this option depends on your use case. For example, the stock transaction entries are entered at the weekend or month-end. In this case, negative stock needs to be enabled so that you can continue with your purchase/sales transaction entries.

Instead of enabling negative stock globally you can also enable it for specific items.

Allow Negative Stock has removed for Serial / Batch Items from version 15. So from version 15, users won't be able to make negative stock transactions for serial /batch items even though Allow Negative Stock has enabled in the Stock Settings.

Set Qty in Transactions based on Serial No Input

The quantity of items will be set according to the serial numbers. For example, if the user has added serial nos like A001, A002, and A003 then the system will set the quantity as 3 in the transaction.

Automatic Material Request

Stock Settings

Raise Material Request when the stock reaches re-order level

This option is useful if you want to ensure a constant supply of raw materials/products and avoid shortage. A Material Request will be raised automatically when stock reached the re-order level defined in the Item form.

Notify by Email on the creation of automatic Material Request

An email will be sent to notify the User with the role 'Purchase Manager' when an automatic Material Request is created.

Inter Warehouse Transfer Settings

Delivery Note Material Transfer

Enable customer warehouse for material transfer from Delivery Note and Sales Invoice

This option is useful when material transfer needs to be presented as a Delivery Note. For example, if there are statutory requirements where taxes are to be applied on each transfer of Material. It is easier to manage in a transaction like Delivery Note, than in the Stock Entry

Enable supplier warehouse for material transfer from Purchase Receipt and Purchase Invoice

Similar to above option this option is useful when material transfer needs to be presented as Purchase Receipt.

To know more about inter warehouse material transfer via Delivery Note and Purchase Invoice please refer this article Material Transfer From Delivery Note

Freeze Stock Entries

The User will not be allowed to make stock postings beyond this date.

Stock Settings
  • Stock Frozen Upto: A threshold date till which stocks will be frozen.
  • Freeze Stocks Older Than [Days]: Stocks older than x days will be frozen. This is calculated based on the creation date of the item.
  • Role Allowed to edit frozen stock: The role you choose here will be allowed to edit frozen stock.

Batch identification

Global setting for batches of stocks to be identified by a Naming Series. You can override this in the Item DocType.

Allow to Edit Stock Quantity

Enable "Allow to Edit Stock UOM Qty for Sales Documents / Allow to Edit Stock UOM Qty for Purchase Documents" in the stock settings.

stock_settings_edit_stock_qty

Why to Edit Stock Qty / Qty as Per Stock UOM

If you're using multi-uom and your stock uom is a whole number, then you might face the issue that the Stock UOM should be non-decimal. Users experience this problem when they are unable to set an accurate conversion factor..

Solution

User will set the Stock Quantity and system will calculate the conversion factor

stock_qty_editable

Allow UOM with Conversion Rate Defined in Item

If enabled, the system will allow selecting UOMs in sales and purchase transactions only if the conversion rate is set in the item master.

UOM Restriction

Stock Transactions

https://docs.frappe.io/erpnext/stock-transactions

Stock transactions in ERPNext contains a wide range of activities related to managing inventory movements within an organisation. These transactions include stock transfers between warehouses, stock adjustments to correct inventory discrepancies, stock reconciliation to ensure accurate stock levels, and stock entries for recording stock movements such as purchases, sales, production, and consumption.

These transactions play a crucial role in maintaining accurate stock levels, tracking stock movements, analysing inventory performance, and making informed decisions related to procurement, sales, and production planning within the organisation.

Landed Cost Voucher

https://docs.frappe.io/erpnext/stock-transactions-landed-cost-voucher

Landed Cost is the final total cost associated with a product for it to reach the buyer’s doorstep.

Landed costs include the original cost of the item, complete shipping costs, customs duties, taxes, insurance, currency conversion fees, etc. All of these components might not be applicable in every shipment, but relevant components must be considered as a part of the landed cost.

What is Landed Cost?

To understand landed cost better, let’s take an example based on our daily lives. You need to purchase a new washing machine for your home. Before making an actual purchase, you probably do some research to know the best price. In this process, you often found a better deal from a store which is long away from your home. But you should also consider shipping cost while buying from that store. Total cost including shipping might be more than the price you get in your nearby store. In that case, you will choose to buy from your nearest store, as the landed cost of the item is cheaper in the nearest store.

Similarly in business, identifying landed cost for an Item/product is very crucial, as it helps to decide selling cost of that item and impacts the company’s profitability. Hence all applicable landed cost charges should be included in Item’s valuation rate.

According to the Third-Party Logistics Study, only 45% of the respondents stated that they use Landed Cost extensively. The main reasons of not using Landed Cost were unavailability of necessary data (49%), lack of right tools (48%), insufficient time (31%), and not sure how to apply landed cost (27%).

To access the Landed Cost Voucher list, go to: > Home > Stock > Tools > Landed Cost Voucher

  1. Prerequisites

Before creating and using Landed Cost Voucher, it is advised that you create the following first:

  • A Purchase Receipt or Purchase Invoice with Update Stock enabled. This is your original receipt of goods.
  • A Purchase Invoice for the landed costs (e.g. Freight, Insurance, etc.)

We will then use the Landed Cost Voucher to decrease the costs recorded through the second Purchase Invoice and increase the stock value.

  1. How to create a Landed Cost Voucher
  1. Go to the Landed Cost Voucher list, click on New.
  2. Select Receipt Document Type whether Purchase Invoice or Receipt. You can select multiple documents.
  3. Select the specific Invoice or Receipt. The supplier name and Grand Total will be fetched automatically.
  4. Click on the Get Items from Purchase Receipts button to fetch the item details from the Purchase Invoice/Receipt.
  5. Select whether Distribute Charges Based On should be on quantity or Amount.
  6. Enter the Expense Account and the Amount for Additional Costs in the Taxes and Charges table. The amount will be distributed equally based on the quantity or amount as per your selection.
  7. Save and Submit.

Landed Cost Voucher

In the document, you can select multiple Purchase Receipts/Invoices and fetch all items from those Purchase Receipts. Then you should add applicable charges in “Taxes and Charges” table. You can easily delete an item if the added charges do not apply to that item.

The added charges are proportionately distributed among all the items based their amount or quantity. If you selected based on the amount, the Item with the highest amount will be allocated the highest proportion of the charges. In case of quantity, Item with the highest quantity will be allocated most of the charges and the other Items will be allocated lesser amounts. This is shown in the following screenshot:

Landed Cost Voucher
  1. Related Actions

3.1 Adding Landed Cost in the Purchase Receipt itself

In ERPNext, you can add landed cost-related charges in “Taxes and Charges” table while creating Purchase Receipt (PR). You should add those charges for “Total and Valuation” or “Valuation” in the 'Consider Tax or Charge for' field. Charges which are payable to the same Supplier from whom you are buying the items should be tagged as “Total and Valuation”. Otherwise, if applicable charges are payable to a 3rd party, it should be tagged as “Valuation”. On submission of Purchase Receipt, the system will calculate the landed cost of all items, considering those charges. This landed cost will be considered to calculate the item’s Valuation Rate (based on FIFO / Moving Average method).

But in reality, while making Purchase Receipt we might not know all the charges which are applicable for landed cost. Your transporter can send the invoice after 1 month, but there is no point in waiting for booking Purchase Receipt till then. Companies that import their products/parts, pay a huge amount as Customs Duty. And generally, they get invoices from the Customs Department after a while. In these cases, “Landed Cost Voucher” becomes handy, as it allows you to add those additional charges on a later date, and to update landed cost of purchased items.

3.2 What happens on submission?

  1. Valuation Rate of items is recalculated based on new landed cost.
  2. If you are using “Perpetual Inventory”, the system will post general ledger entries to correct Stock-in-Hand balance. It will debit (increase) corresponding “warehouse account” and credit (decrease) Expense Account mentioned in Taxes and Charges table. If items are already delivered, the Cost-of-Goods-Sold (CoGS) value has been booked as per the old valuation rate. Hence, general ledger entries are reposted for all future outgoing entries of associated items, to correct CoGS value.

3.3 LCV for Stock Entry

From version 16 of ERPNext, users can create a Landed Cost Voucher against a Stock Entry with the purpose set to 'Manufacture'. This feature allows users to include additional costs—such as electricity charges or rent—into the final valuation rate of the manufactured product.

3.4 LCV for Subcontracting Receipt

From version 16 of ERPNext, users can create a Landed Cost Voucher against a Subcontracting Receipt items which has been manufactured by the subcontractor.

This feature allows users to include additional costs—such as freight charges, excise duty into the final valuation rate of the subcontracted product.

3.5 Vendor Invoices

You can link vendor invoices in the Landed Cost Voucher, and the system will ensure that the Landed Cost matches the total vendor invoice amount. Make sure the vendor invoices do not include any stock items.

  1. Delivery Trip
  2. Purchase Receipt

Stock Transfer with GST

https://docs.frappe.io/erpnext/stock-transfer-with-gst

In certain situations, there are statutory requirements where taxes are to be applied on each transfer of Material. It is easier to manage it in a transaction like a Sales Invoice, than in the Stock Entry. Please follow the following steps to transfer material from one branch to another using Sales and Purchase Invoice

Step 1 - Add default Unrealized Profit and loss account and default In-Transit warehouse in the company master

Step 2 - Create Internal Customer and Supplier and allow them to transact with the same company. Also, link appropriate address and GST details with the respective parties

Step 3 - Create Sales Invoice (Delivering the items from source)

3.1 Select the internal customer you created in your previous step

3.2 Check update stock

3.3 Add items to be transferred along with the Source Warehouse and Target Warehouse as the In-Transit warehouse

3.4 Save and Submit

Stock Ledger

Accounting Ledger

Step 4 - Create Purchase Invoice (Receiving Items at destination)

Use the "Create Internal Purchase Invoice" button from the sales invoice to create Purchase Invoice

Select the Accepted Warehouse (warehouse at which stock has been received) and save and submit

Stock Ledger

Accounting Ledger

Note: Application of GST automatically on invoices is subjective to your GST configuration. Make sure you have proper tax templates configurated and appropriate addresses and GST details linked to the internal parties

Stock Value and Account Value Comparison Report

https://docs.frappe.io/erpnext/stock-value-account-value-comparison

This report helps the user to understand the difference value between the stock account and stock balance report. At the end of the financial year, every organization has to match its closing stock balance with the closing stock account. Sometimes they do not match due to some issues. In that case, users can view the "Stock Value and Account Value Comparison" report to understand the incorrect transactions. Then, users can make adjustments entries accordingly.

To view the report, go to:

Home > Stock > Other Reports > Stock and Account Value Comparison

Stock Report

Negative Batch Report

https://docs.frappe.io/erpnext/stock/reports/negative-batch-report

The Negative Batch Report is designed to identify and analyze transactions where batch stock has gone into negative quantity. This report helps users detect inconsistencies caused by backdated entries, incorrect stock movements, or improper batch usage, enabling timely corrections and accurate stock valuation.

Purpose

The main purpose of this report is to:

  • Identify batches with negative stock quantities
  • Track transactions that caused negative stock
  • Help users investigate and resolve stock inconsistencies
  • Improve stock accuracy and valuation
  • Assist in auditing batch-wise inventory movements

Store Landing Page

https://docs.frappe.io/erpnext/store-landing-page

After enabling Shopping Cart for your app you can create a custom landing page for your store using the Web Page Builder.

Custom Store Landing Page

Store Landing Page

1. How to create a Custom Store Landing Page

  1. Follow the steps mentioned here to create a Web Page.
  2. Set a Route for your page (eg. /store).
  3. Select Content Type as Page Builder.
  4. Click on Add Row in the Page Building Blocks Table.
  5. Select a Web Template.

ERPNext comes with a great set of standard web templates that can be used to create your Web Page.

The configuration for the page in the screenshot above looks like this:

Store Page Building Blocks

Store Web Templates
  1. Add Values.

Click on the Edit Values button on the right of each block, and enter the values in the dialog to set the content for each section.

The Web Templates that will be useful for building your store landing page are:

Hero Slider: Up to 5 slides can be created. The image, title, primary action, alignment, theme for each slide is configurable. Hero Slider Configuration

Store Hero Slider

Product Category Cards: Up to 8 product category cards can be configured. Each product categories will link to an Item Group. Ensure that the Show in Website option is ticked in the Item Group form so that the route for the product category is generated.

Product Categories Configuration

Store Product Category Cards
  • Item Card Group: This section can be used to showcase your featured items. Up to 12 cards can be configured. Each card will link to an Item. If featured is checked, the item will take up 2 columns of space.

Item Cards Configuration

Store Item Card Group
  1. Publish your Web Page.

The web page will be published only when the Published option is checked. Once the page is published, click on See on Website on the sidebar or visit the configured route and check out the page!

Publish your Web Page

Store Page Published
  1. Set as your Home Page.

Follow the steps here to set this page as your Website home page.

Setting up Stripe

https://docs.frappe.io/erpnext/stripe-integration

To setup Stripe,

Explore > Integrations > Stripe Settings

Setup Stripe

To enable Stripe payment service, you need to configure parameters like Publishable Key, Secret Key

Razorpay Settings

On enabling service, the system will create Payment Gateway record and Account head in chart of account with account type as Bank.

Stripe COA

Also it will create Payment Gateway Account entry. Payment Gateway Account is configuration hub from this you can set account head from existing COA, default Payment Request email body template.

Payment Gateway Account

After configuring Payment Gateway Account your system is able to accept online payments.

Setup subscriptions plans

If you need to bill a recurring amount instead of a one-time charge, you can use Stripe's subscription system.

Once you have created your billing plans in Stripe, add one or several new "Payment Plan" in Frappe.

Payment Plan

Afterwards, when you create your payment request, click the check field "Is a subscription" and add the system will fetch the corresponding susbscription plans from within the corresponding subscription.

Payment Request

ERPNext will automatically create a new subscription for this customer in Stripe.

####Supporting transaction currencies

 "AED",
 "ALL",
 "ANG",
 "ARS",
 "AUD",
 "AWG",
 "BBD",
 "BDT",
 "BIF",
 "BMD",
 "BND",
 "BOB",
 "BRL",
 "BSD",
 "BWP",
 "BZD",
 "CAD",
 "CHF",
 "CLP",
 "CNY",
 "COP",
 "CRC",
 "CVE",
 "CZK",
 "DJF",
 "DKK",
 "DOP",
 "DZD",
 "EGP",
 "ETB",
 "EUR",
 "FJD",
 "FKP",
 "GBP",
 "GIP",
 "GMD",
 "GNF",
 "GTQ",
 "GYD",
 "HKD",
 "HNL",
 "HRK",
 "HTG",
 "HUF",
 "IDR",
 "ILS",
 "INR",
 "ISK",
 "JMD",
 "JPY",
 "KES",
 "KHR",
 "KMF",
 "KRW",
 "KYD",
 "KZT",
 "LAK",
 "LBP",
 "LKR",
 "LRD",
 "MAD",
 "MDL",
 "MNT",
 "MOP",
 "MRO",
 "MUR",
 "MVR",
 "MWK",
 "MXN",
 "MYR",
 "NAD",
 "NGN",
 "NIO",
 "NOK",
 "NPR",
 "NZD",
 "PAB",
 "PEN",
 "PGK",
 "PHP",
 "PKR",
 "PLN",
 "PYG",
 "QAR",
 "RUB",
 "SAR",
 "SBD",
 "SCR",
 "SEK",
 "SGD",
 "SHP",
 "SLL",
 "SOS",
 "STD",
 "SVC",
 "SZL",
 "THB",
 "TOP",
 "TTD",
 "TWD",
 "TZS",
 "UAH",
 "UGX",
 "USD",
 "UYU",
 "UZS",
 "VND",
 "VUV",
 "WST",
 "XAF",
 "XOF",
 "XPF",
 "YER",
 "ZAR"

Subcontracting

https://docs.frappe.io/erpnext/subcontracting

In subcontracting, you employ an external party to carry out tasks for your organization, especially manufacturing.

Subcontracting is a type of job contract that seeks to outsource certain kinds of work to other companies. It allows work on more than one phase of the project to be done at once, often leading to quicker completion.

Subcontracting is practised by various industries. For example, manufacturers who make several products from complex components subcontract certain components and package them at their facilities.

If your business involves outsourcing certain processes to a third-party Supplier where you supply the raw materials and the third party does the labour/production, you can track this by using the subcontracting feature of ERPNext.

How to Set up Subcontracting

  1. Create a Service Item (Non-stock Item). It represents the service cost of the subcontracted operation.
  2. Create separate Items for the unprocessed and the processed product. For example, if you supply unpainted X to your Supplier and the Supplier returns you X, you can create two Items: “X-unpainted” and “X”.
  3. Create a Warehouse for your Supplier so that you can keep track of Items supplied. (You may supply a month's worth of Items in one go).
  4. For the processed Item, in the Item master, enable “Supply Raw Materials for Purchase”.

Creating a BOM

Make a Bill Of Materials for the processed Item, with the unprocessed Items as sub-items. Let's consider a simple example, where you manufacture a pen. The processed pen will be named under the Bill of Materials(BOM), whereas the nib, plastic, ink, etc. ,will be categorized as sub-items.

This BOM will be without Operations if all of the production work is done by a third party. Let's see with a simple example of a CPU Assembly:

Creating a Subcontracting BOM

While optional, creating a Subcontracting BOM allows you to predefine a relationship between your Service Item and Finished Good Item.

When you create a Subcontracted Purchase Order, if you have created a Subcontracting BOM for your Service Item or Finished Good Item, selecting either one will automatically fill out the other details of the Purchase Order line item. If you create a lot of Subcontracted Purchase Orders for the same Service Item and Finished Good Item combination, you can save some time and effort by creating a Subcontracting BOM for that combination in advance.

Using a Subcontracting BOM, you can:

  1. Select a default BOM for your Finished Good Item.
  2. Select a default UOM for your Service Item.
  3. Specify the conversion factor between your Service Item and Finished Good Item.

In the above image, we have specified that 1 unit of "Painting" will produce 2 units of "Tiles" after the subcontracting process is complete. Upon saving this document, you will see that the conversion factor for this relationship is calculated automatically (0.5 in this case).

Note:

  1. There can only be 1 Subcontracting BOM for any Finished Good Item.
  2. If there are multiple Subcontracting BOMs for a single Service Item, upon making a Subcontracted Purchase Order and selecting that Service Item, a dialog box will appear which will ask you to select the Finished Good Item for that specific Service Item. The list of those Finished Good Items will be fetched from the list of Subcontracting BOMs, where the Service Item is the one you have entered.

Creating a Purchase Order

Make a Subcontract Purchase Order for the Service Item and select the Finished Good Item, the one for which you've created a BOM.

  1. Enable the "Is Subcontracted" since this Purchase Order is for Subcontracting.
  2. Here the Rate field value of the Items table in the Purchase Order will be the service cost you have agreed with the third party or the Supplier.
  3. After filling in the details, Save and Submit the Purchase Order.

Creating a Subcontracting Order

Make a Subcontracting Order for the Purchase Order by clicking on Create > Subcontracting Order. When you “Save”, in the “Raw Materials Supplied”, all your un-processed Items will be updated based on your Bill of Materials. You can also select the Warehouse in which the raw materials would be reserved for subcontracting under Reserve Warehouse.

  1. The costs involved with the subcontracting process should be recorded in the Rate field of the Items table in the Subcontracting Order shown as follows:
  2. In the previous image, we are providing the subcontractor with the following items:
8 Motherboards
8 Processors
16 RAMs
8 Hard Disks
8 Cabinets
The cost for one CPU including Raw Materials and Service Costs is 1,02,994 and the total cost for all CPUs is 8,23,952

3. From a Subcontracting Order, select the raw materials to transfer to the subcontractor:

sco items row qty rate
  1. Once the Subcontracting Order is submitted, you can also view the item's reserved quantity on the item dashboard.

Creating Stock Entry to Transfer Raw Materials

Now that the raw materials are reserved, make a Stock Entry and deliver the raw material Items to your Supplier.

In the Subcontracting Order, click on Transfer > Material to Supplier. Set the Source and Target Warehouses. The Stock Entry will be of type 'Send to Subcontractor' where you transfer from one Warehouse to another. Tick 'From BOM', select the BOM, enter the quantity, and click the Get Items button.

Creating a Subcontracting Receipt to receive the Finished and Scrap items

Receive the Items from your Supplier using a Subcontracting Receipt. You need to enter the Supplier Warehouse from where the raw materials will be taken and finished goods will be received in the Accepted Warehouse. Consider this like a backflush for subcontracting.

Click on Create > Subcontracting Receipt from the Subcontracting Order. Set the Accepted and Supplier Warehouses. Make sure to check the “Consumed Quantity” in the “Raw Materials” table so that the correct stock is maintained at the Supplier’s end. You need to select the Supplier's Warehouse where you'll receive the finished goods.

Scrap items are fetched from the chosen Bill of Materials (BOM) for Finished Goods within the Items table. The Qty is computed using the Qty of the Finished Good Item, while the Rate is determined by either the Valuation Rate or the Scrap Rate specified in the BOM.

Service Expense Account in Subcontracting Receipt

User can set the expense account for the service item in the subcontracting receipt.

If the user sets the expense account in the service item, the same account will be auto-filled in the Service Expense Account field. The user can also manually set the service expense account in the subcontracting receipt. If no service expense account is set, the system will use the Finished Item’s expense account to book the service cost. Once the subcontracting receipt is submitted, the system books the service cost against the service expense account.

Backflush of Raw Material

  • BOM
  • Material Transferred for Subcontract
  • If you set backflush based on BOM, system will consume raw materials even though you have not transferred materials against the Subcontracting Order and have enough stock at supplier's warehouse.
  • If you set backflush based on "Material Transferred for Subcontract" system will consume raw materials based on the materials transferred against the Subcontracting Order. If no stock transferred then no materials will be consume at the time of Subcontracting Receipt.

Creating a Purchase Receipt

Back to Purchase Order, click on There will be no effect on the Stock Ledger and Accounting Ledger since both the Stock and Accounting Ledger are updated when you Submit the Subcontracting Receipt. In case you have "Purchase Taxes and Charges" the Accounting Ledger will update accordingly.

Create > Purchase Receipt.

Supplier Sourced Raw Material

While creating a BOM for subcontracting, there might be a few raw materials like nuts and bolts that the Suppliers will have to procure themselves.

While creating a Stock Entry for "Transfer" from a Subcontracting Order, these items can be excluded one by one, but it is impossible to do so if you have more than 100 items.

If some raw material is sourced by the Supplier directly, then such raw materials have to be included in the BOM.

  • It will have zero value in BOM
  • In the Subcontracting Order, this raw material will not appear in Supplied Items since it is not supplied
  • Also, while creating a "Transfer", such items will be excluded from the Stock Entry

However, the Supplier may choose to include the supplier-provided items in their Sales Order sent to you.

Notes

  • Make sure that the “Rate” of the processed Item is the processing/service cost (excluding the raw material cost).
  • ERPNext will automatically add the raw material rate for your valuation purpose when you receive the finished item in your stock.
  • ERPNext will automatically default the 'Reserve Warehouse' in the Subcontracting Order from the BOM. If not found in the BOM, it would default it from the default Warehouse set in the Item. You can set the default Reserve Warehouse for all the Items in the Subcontracting Order from the 'Reserve Warehouse' field in the Raw Materials Supplied section.

New in V16

Features

Creating multiple Subcontracting Orders from a single Subcontracted Purchase Order

ERPNext now allows users to create multiple Subcontracting Orders from a single Purchase Order.

How to use:

  1. When you click on Create Subcontracting Order from your Purchase Order, by default ERPNext will fill the Finished Good Items and Service Items table based on the Purchase Order.
  2. The user is now allowed to edit the quantity of each Finished Good Item as per their needs.
  3. If you create a partial Subcontracting Order and then try to create a new one against the same PO, ERPNext will automatically calculate the remaining quantity left to subcontract and fill out the new document accordingly.

Note:

  1. Once the PO is fully subcontracted ie. no items in the PO are left to be subcontracted, user will not be allowed to create new Subcontracting Orders from the PO.
  2. The quantity entered by the user cannot exceed the available quantity to subcontract (fetched from the PO).

In both the above cases, an error will be thrown accordingly.

Stock Reservation

In ERPNext v16, you can now reserve the Raw Materials to be sent to the Supplier.

Just above the Raw Materials table, you will now see the checkbox . If you check this option and submit the Subcontracting Order, the stock will be reserved against the Subcontracting Order which will essentially make sure that the committed stock is not used anywhere else by mistake. The reserved stock will be automatically utilised if and when Raw Material is sent to the Supplier by using the Stock Entry made against the Subcontracting Order.

Reserve StockSend to Subcontractor

Note that if the option is enabled in , this option will be checked by default.

Auto Reserve StockStock Settings
  1. Purchase Order
  2. Purchase Receipt
  3. Quality Inspection

Introduction

https://docs.frappe.io/erpnext/subcontracting-in-erpnext

Subcontracting

Subcontracting is a type of job contract that seeks to outsource certain types of work to other companies. It allows work on more than one phase of the project to be done at once, often leading to quicker completion. It is practiced by various industries.

For example, manufacturers who make a number of products from complex components subcontract certain components and package them at their facilities.

If your business involves outsourcing certain processes to a third party Supplier where you supply the raw materials and the third party does the labor/production, you can track this by using the subcontracting feature of ERPNext.

Subcontracting Inward

ERPNext also supports Subcontracting Inward, where your company acts as the subcontractor. In this case, a customer provides materials to you for processing or manufacturing. ERPNext enables you to track customer-supplied materials, manage production activities, and bill for the services performed.

Subcontracting Inward

https://docs.frappe.io/erpnext/subcontracting-inward

In Subcontracting Inward, a customer employs you to carry out tasks for their organization, especially manufacturing.

Not to be confused with the standard Subcontracting module in ERPNext. This is an extension of that module, which allows you to do the exact inverse of it, that is, instead of you outsourcing your manufacturing process to a third party (Supplier), a third party (Customer) outsources their manufacturing process to you.

While this was already possible in ERPNext even before v16, this heavily streamlines the entire process, thereby making it very easy to use.

Features

  1. Receive Raw Materials from Customer without impacting your books
  2. Track Raw Materials that you have received from the customer
  3. Use extra Raw Materials given by the customer on a per transaction basis if needed
  4. Use Raw Materials sourced by you along side the Raw Materials given by the customer and bill them to the customer
  5. Reserve the Raw Materials received by the customer to prevent accidental use of the stock committed against another order
  6. Create additional Work Orders incase of process loss during manufacturing
  7. Optionally, deliver overproduced quantity incase of overproduction
  8. Return Raw Materials to customer if required (for ex. QC failure, sent by mistake etc.)
  9. Optionally, deliver scrap items produced during manufacturing to the customer
  10. Incase of serial or batch Finished Good item, deliver items with the same serial and/or batches that were produced against the order
  11. Receive the Finished Goods from the Customer if required (ex. QC fail)

Prerequisites

  1. Every Customer needs to have their own warehouse (dummy) in the masters. This is done by creating a new Warehouse and setting the newly added Customer Link field.
  2. While optional, we strongly recommend you to create a group warehouse which will hold all the customer warehouses in it as it will make data analysis much easier. Note that a Group Warehouse does not need the Link field set however if your Customer has multiple warehouses, we recommend you to structure the warehouses accordingly.
  3. The Raw Materials provided by the Customer in the Item master. Each Customer Provided Item needs to have the field set in the master. Conversely, Customer Provided Items cannot be purchased so the field has to be unchecked (checked by default in ERPNext).
CustomerAllow Purchase

  1. The non-stock/service item that will be sold or billed to the Customer. The field has to be unchecked (checked by default in ERPNext) for this.
  2. The Finished Good to be produced needs to be marked as a Subcontracted Item
Maintain Stock

  1. A standard ERPNext Bill of Materials or ‘BOM’ for the finished good to be produced.
  2. A Subcontracting BOM which specifies the relationship between the non-stock/service item and the Finished Good to be produced. Note that it is also possible to create a Subcontracted Sales Order even without a Subcontracting BOM provided that the Finished Good to be produced has a default BOM set in it’s master.

How to use

  1. Start by creating a Sales Order and check the “Is Subcontracted” checkbox. The Sales Order will now be subcontracted and the schema/form of the child table will change. Proceed by setting the service item in the field. If you have a Subcontracting BOM for this service item, the Finished Good field will be set automatically. Upon changing the quantity of the Service Item, the quantity of the Finished Good will also change based on the conversion factor in the Subcontracting BOM. If you have multiple Subcontracting BOMs for the same service/non-stock item, a dialog box will popup asking you to select the Finished Good from the Subcontracting BOMs present against that service/non-stock item. Save and submit once done.
Item Code

  1. From the Sales Order, click on . This DocType holds the list of Finished Goods, Raw Materials required, Service Items and Scrap Materials (if produced). Start by selecting the Customer warehouse you created at the start of the process. If only a single Customer warehouse exists against the Customer, the field will be pre-filled with it. Then select a Delivery Warehouse for each of the Finished Goods to be produced. This will be where the Finished Goods produced by you will be delivered. If all the Finished Goods are to be delivered to the same warehouse, use the field to set the delivery warehouse for all the Finished Goods in one go.
Create > Subcontracting Inward OrderSet Delivery Warehouse

  1. If you need to “explode” the BOM, click on the Finished Good (pencil icon towards the right of the row) and check the field and click on save. You will see that the Raw Materials in the “Required Items” table will be updated with the exploded items. You may also additionally alter the quantity of the Finished Goods. This will allow you to create another Subcontracting Inward Order against the same Subcontracted Sales Order until the item is fully subcontracted should you need that.
Include Exploded Items

  1. Save and submit the Subcontracting Inward Order. You can now receive Raw Materials from the Customer which will be used for the manufacturing process by clicking on Receive -> Raw Material from Customer. This will create a Stock Entry and the Raw Materials will be filled automatically upon creation. You may also additionally add extra Customer Provided Items here should you need it. The extra items, if added, will also be visible in the Required Items table of the Subcontracting Inward Order upon submission of the Stock Entry. Note that for additional Customer Provided Items, you will mandatorily need to specify the Finished Good against which you will be using the Raw Material using the field in the child table.
  2. In this Stock Entry, you may enter the basic rate for each item. Note that this is done purely for taxation purposes and will have no accounting impact on the valuation of your stock. You may verify this by clicking on after submission of the Stock Entry. You will see that everything will be 0.
  3. It is also possible to create more Stock Entries to receive additional Customer Provided Items at any time, even after receiving the required quantity of the Raw Materials as per the Finished Good’s BOM.
  4. Go back to the Subcontracting Inward Order and reload the page. You will now see two new buttons at the top right, “Return” and “Create”. By clicking on to Customer, you can return the Raw Material to the customer if needed. By clicking on , a standard Work Order will be created for each of the Finished Good(s) based on the quantity of Raw Materials available for production. Use this Work Order to produce the Finished Good(s) then go back to the Subcontracting Inward Order and reload the page.
Against Finished GoodView> Accounting LedgerReturn > Raw MaterialsCreate > Work Order

Additional Raw Materials used in the Manufacturing Stock Entry against Work Orders will also be added to the Required Items table in the Subcontracting Inward Order.

  1. You will now see the option for “Subcontracting Delivery” under the “Create” button. A new Stock Entry will be created upon clicking it which you can use to deliver the Finished Good(s) to the Customer.

Notes

  1. By default, ERPNext will not add the generated Scrap Item(s) to this Stock Entry. If you need to deliver the Scrap Item(s) generated as well, enable the in the Single DocType.
  2. ERPNext by default will only you to deliver the agreed upon quantity if Finished Good(s) as specified in the Subcontracted Sales Order. If you have produced more than the required quantity and want to deliver the overproduced quantity as well, enable the in the Single DocType.
Deliver Scrap ItemsSelling SettingsAllow Delivery of Overproduced QtySelling Settings

  1. Go back to the Subcontracting Inward Order and reload the page. You will now see the option “Subcontracting Return” under the “Return” button. On clicking it, a new Stock Entry will be created which will allow you to receive the Finished Good(s) that you have produced and delivered to the Customer should you need it.
  2. Since the Finished Goods have been produced and delivered, it is time to bill the Customer. Go to the Sales Order created in the first step, from here you can deliver the service/non-stock item by creating a Delivery Note and bill it as well as all the Raw Materials you have used in the process. The Raw Materials procured by you (not provided by the Customer) will already be present in the child table when you create the Sales Invoice against the Subcontracted Sales Order.

Note You can deliver and bill the service/non-stock items even without creating a single Subcontracting Inward Order.

Important Notes

  1. Stock Reservation Entries will be created and used extensively by default in this process even if its disabled in .
  2. If the Raw Material received from the Customer goes unused, it cannot be directly used in another Subcontracting Inward Order. We recommend you to return the unused Raw Material to the Customer and receive it again using another Subcontracting Inward Order where it is to be reused. You do not need to move the Raw Material physically for this and it will be a pure dummy transaction.
  3. For any Subcontracting Inward transaction where multiple batches are involved for an item, the Serial and Batch Bundle feature is to be used. Duplicating of child tables is not recommended or even permitted in various transaction types throughout.
  4. It is mandatory for the Finished Good BOM to have atleast 1 Customer Provided Item.
  5. Do not cancel any Stock Reservation Entries related to the Subcontracting Inward process, doing so will most definitely cause unintended consequences.
  6. Using Alternative Items in Work Orders created against Subcontracting Inward Orders is currently not supported and the checkbox is hidden for the same.
  7. While you can use Inventory Dimension in this process, it is not officially supported as of yet.
  8. Continuous Raw Material Consumption and Disassembly Order are also not supported as of yet.
  9. To accurately reflect the value of the finished goods, a batched item is recommended. For example: if you have purchased stock of the finished good in the past and its sitting in the same warehouse as your manufactured batch, FIFO will consider the value of the purchased good in the Stock Entry instead of the batch you manufactured against the Subcontracting Inward Order. A batched item with enabled will ensure that this does not happen.
Stock SettingsDeliver to CustomerBatch-wise Valuation

Reports

https://docs.frappe.io/erpnext/subcontracting/reports

ERPNext provides dedicated reports to help monitor materials sent to subcontractors, track pending receipts, and review the overall status of subcontracting orders. These reports improve visibility, prevent material loss, and ensure accurate production and costing control.

Subcontracted Raw Materials to be Transferred

This report shows the raw materials that need to be sent to subcontractors against open subcontracting Purchase Orders. It helps identify pending material transfers so that suppliers receive the required inputs on time and production is not delayed.

Subcontracted raw materials to be transferred report

Subcontracted Item to be Received

This report lists subcontracted finished goods that are yet to be received from suppliers. It provides visibility into pending receipts and helps teams follow up on delayed deliveries and plan inventory accordingly.

Subcontracted Item to be received

Subcontract Order Summary

This report provides an overall view of subcontracting Purchase Orders, including material transfer status and receipt progress. It is useful for monitoring order completion and tracking the end-to-end subcontracting cycle.

Subscription

https://docs.frappe.io/erpnext/subscription

If you offer a service that requires renewal in a certain time period or you pay some monthly expenses like rent (yearly, monthly, quarterly, etc.), you can use the Subscription feature in ERPNext to track them. The Subscription master captures all the details required for the auto-creation of Sales or Purchase Invoices.

Let's consider a use-case of ERPNext subscription itself. Our hosting plans are available on a yearly basis. Each Customer's account has a subscription expiry date, after which customers must renew their subscription with us.

To manage the client's subscription expiry and auto-generation of Sales Invoice for the renewal, we use the Subscription feature.

To access the Subscription list, go to:

Home > Accounting > Subscription Management > Subscription

  1. Prerequisites

Before creating and using a Subscription, it is advisable to create the following first:

Subscription Plan

How to set a Subscription

  1. Go to the Subscription list and click on New.
  2. Select Party Type as 'Customer' or 'Supplier' and select the party.
  3. Set the Start Date from when the subscription will be active.
  4. Optionally you can also enter the subscription end date if you know it before hand.
  5. Days Until Due is the number of days within which Customer has to pay a generated Sales Invoice.
  6. Select the Subscription Plans.
  7. Save.
Subscription

Based on the subscription start and end date, actual dates for invoices will be calculated.

  1. Features

3.1 Trial Period

If you're offering a trial period for the subscription, a Trial Period Start Date and a Trial Period End Date can be set. Invoices will not be generated during the trial period and the Subscription status will show 'Trialling'.

Subscription Trial

3.2 Cancel Auto Renewal

On enabling the 'Cancel At End Of Period' the Subscription will be canceled at the end of its period. For example, if it is a yearly subscription, the system will stop generating invoices after one year of subscription.

3.3 Taxes

You can apply Taxes to a Subscription by using a Sales Taxes and Charges Template. Visit the Sales Taxes and Charges Template page to know more.

3.4 Applying discounts

You can apply additional discounts on the Subscription based on Grand Total (pre tax) or Net Total (post tax). A discount percentage can also be set. For example, a discount of 2% on 12,000 would be 240 in discount. Visit the Applying Discount page for more details.

Subscription Discount

3.5 Automatically create invoices

Based on the Subscription Plans interval, invoices will be created automatically. "Generate Invoice At Beginning Of Period" needs to be enabled if you want to generate invoices as soon as the subscription is active. If "Generate New Invoices Past Due Date" is enabled then new invoices will keep on generating even though current invoice is unpaid or past due date. If "Generate Invoice Early" is enabled, an invoice will be generated before the end of the period by the number of days entered in "Generate Invoice Days Early."

The generated invoices will be submitted automatically by default. If 'Submit Invoice Automatically' is disabled, the invoice will be saved as a draft.

Subscription Invoices

3.6 Follow Calendar Months

If 'Follow Calendar Months' is enabled then proper calendar months will be followed even if the Subscription Start Date is in the middle of the month. For Eg: Suppose billing interval is 'Month' and billing interval count is 3 in subscription plan and Subscription Start Date is '15-04-2020' then if 'Follow Calendar Months' is checked then first invoice will be generated for '15-04-2020' to '30-06-2020' rather than '15-04-2020' to '14-07-2020'

3.7 Canceling a Subscription

If the Customer decides to cancel a Subscription, it can be canceled in the system using the Cancel Subscription. The system will stop generating invoices when a Subscription is canceled.

Subscription Cancel

3.8 Updating a Subscription

Clicking on the Fetch Subscription Updates button will update the Subscription with the latest generated invoices.

  1. Difference Between Subscription and Auto-Repeat
Auto Repeat Subscription
Is applicable on transactions Is applicable on Items
Multiple transactions like Sales Order, Purchase Order, Invoices, Journal Entry, etc. are auto created Only Sales Invoices and Purchase Invoices are auto-created
Has only a few controls Has many control options to define trials, billing due date, and creating Subscription Plans
  1. Sales Invoice
  2. Purchase Invoice
  3. Item
  4. Customer
  5. Subscription Plan

Subscription Management

https://docs.frappe.io/erpnext/subscription-management

Subscription management in ERPNext streamlines the handling of recurring revenue streams by enabling businesses to effortlessly create, manage, and monitor subscription plans.

This comprehensive solution automates processes from signup to renewal, ensuring accurate billing and payment tracking. With integrated accounting modules, ERPNext simplifies revenue recognition and offers insightful reporting for optimizing subscription offerings.

Subscription Plan

https://docs.frappe.io/erpnext/subscription-plan

A Subscription Plan stores information about the Item being subscribed, its price, and billing interval.

To access the Subscription Plan list, go to:

Home > Accounting > Subscription Management > Subscription Plan

  1. How to create a Subscription Plan

Before you can set a Subscription, you need a Subscription Plan.

  1. Go to the Subscription Plan list and click on New.
  2. Select the item that will be subscribed.
  3. Select a Price Determination whether Fixed or based on a Price List.
  4. Set a Billing Interval whether Daily, Weekly, Monthly, or Yearly.
  5. Set a Billing Interval Count. If you select Year as your interval and count as 5, the billing will be done for every 5 years.
  6. Save.
Subscription Plan

You can also set up additional payment details and link a Payment Gateway.

A Subscription Plan is linked to an Item, for which a Sales Invoice is created.

Subscription Settings

https://docs.frappe.io/erpnext/subscription-settings

The Subscription Settings page allows configuring settings for your ERPNext subscriptions.

To access the Subscription list, go to:

Home > Accounting > Subscription Management > Subscription Settings

Grace Period: Number of days after invoice date has elapsed before canceling subscription or marking subscription as unpaid.

Cancel Invoice After Grace Period: Instead of displaying 'Unpaid', the Subscription will be canceled in ERPNext if the Customer does not pay.

Subscription

Supplier

https://docs.frappe.io/erpnext/supplier

Suppliers are companies or individuals who provide you with products or services.

To access the Supplier list, go to: > Home > Buying > Supplier > Supplier

  1. How to create a Supplier
  1. Go to the Supplier list and click on New.
  2. Enter a name for the supplier.
  3. Select the supplier group whether Pharmaceutical, Hardware etc.
  4. Save.
Supplier Master

The options to Warn RFQs, POs, Prevent RFQs, POs will be available once you create a Supplier Scorecard and transactions are made.

  1. Features

Fields in future transactions will be auto-populated if the 'Default' fields like Default Bank Account, Default Payment Terms Template etc., are set in Supplier.

2.1 Tax details

  • Country: If the supplier is from another country, you can change it here.
  • Tax ID: Tax identification number of the supplier.
  • Tax Category: This is linked to Tax Rule. If a Tax Category is set here, when you select this supplier, the respective Purchase Tax and Charges template will be applied. This template is linked to the Tax Rule and the Tax Rule is linked with a Tax Category. Tax Category can be used to group suppliers to whom same tax will be applied. For example: Government, commercial, etc,.
  • Print Language: The language in which the document will be printed.
  • Tax Withholding Category: For India, TDS category for the Supplier. On setting a category here, it will be fetched into the Purchase Invoice. For more information, visit the Tax Withholding Category page.
  • Disabled: Disables the Supplier and they won't be shown in the Supplier List.
  • Is Transporter: If the supplier is selling your transport services, tick this box. 'GST Transporter ID' field will be visible if this field is ticked.
  • Internal Supplier: If the supplier is from a sister or parent/child company, tick this field and select the company which they represent.

For India:

  • GST Category: Select a GST Category of the supplier.
  • PAN: For India, PAN (Permanent Account Number) card details of the Supplier.

2.2 Allow creation of Purchase Invoice without Purchase Order and Purchase Receipt

If the "Purchase Order Required" or "Purchase Receipt Required" option is configured as "Yes" in Buying Settings, it can be overridden for a particular supplier by enabling the "Allow Purchase Invoice Creation Without Purchase Order" or "Allow Purchase Invoice Creation Without Purchase Receipt" in the Supplier Master.

Supplier Master

2.3 Currency and Price List

Billing Currency: Your supplier's currency can be different from your company currency. If you choose JPY for a supplier, then the currency will be filled as JPY and the exchange rate shown for future purchase transactions.

Supplier Currency

Each Supplier can have a default Price List so that every time you buy a new item from this supplier for different prices, the price list associated with the supplier would be updated as well. Under the price list comes item price, you can see the prices in Buying > Items and Pricing > Item Price.

If you select this particular supplier, then the associated Price List will be fetched in Purchase transactions.

2.4 Payment Terms and Block Supplier

  • Default Payment Terms Template: If a Payment Terms template is set here, it'll be automatically selected for future purchase transactions.
  • Block Supplier: You can block invoices, payments or both from a supplier till specific date. Choose 'Hold Type', if you do not select a hold type, ERPNext will set it to "All". When a supplier is blocked, their status will be shown as 'On Hold'.

The hold types are as follows:

+ Invoices: ERPNext will not allow Purchase Invoices or Purchase Orders to be created for the supplier
+ Payments: ERPNext will not allow Payment Entries to be created for the Supplier
+ All: ERPNext will apply both hold types aboveIf you do not set a release date, ERPNext will hold the Supplier **indefinitely**.

2.5 Default Payable Accounts

Add the default account from which invoices against this supplier will be paid. Add additional rows for more companies, you can select only one account per company.

You can integrate a supplier with an account. For all Suppliers, "Creditor" account is set as the default payable Account. When Purchase Invoice is created, payable towards the supplier is booked against "Creditors" account.

If you want to customize payable account for the Supplier, you should first add a payable Account in the Chart of Account, and then select that Payable Account in the Supplier master.

Supplier Master

If you don't want to customize payable account, and proceed with default payable account "Creditor", then do not update any value in the Default Supplier Account's table.

Tip: Default Payable Account is set in the Company master. If you want to set another account as Account as default for payable instead of Creditors Account, go to Company master, and set that account as "Default Payable Account".

Depending on your plan, you can add multiple companies in your ERPNext instance. One Supplier can be used across multiple companies. In this case, you should define Company-wise Payable Account for the Supplier in the "Default Payable Accounts" table, i.e, add multiple rows.

2.6 More Information

You can add the supplier's website and any additional details about your supplier in this section. If you freeze a supplier with the 'Is Frozen' option, accounting entries for the supplier will be frozen. In this case the only user whose entries will surpass the 'freeze' is the role assigned in 'Role Allowed to Set Frozen Accounts & Edit Frozen Entries' in Accounting > Settings > Accounts Settings. This is useful when the supplier's name or bank details are being amended.

2.7 Address and Contacts

Contacts and Addresses in ERPNext are stored separately so that you can create multiple Contacts and Addresses for one Supplier. Once Supplier is saved, you will find the option to create Contact and Address for that Supplier.

Supplier Master

Tip: When you select a Supplier in any transaction, Contact for which "Is Primary" field id checked, it will auto-fetch with the Supplier details.

2.8 After saving

Once all the necessary details are filled, save the document. On saving, options to create the following will be seen in the Dashboard:

  • Request for Quotation: An RFQ against this supplier.
  • Supplier Quotation: Any quotations that the supplier has sent you and you have submitted into the system.
  • Purchase Order: Purchase Orders you've made against this supplier.
  • Purchase Receipt: Purchase receipts given by this supplier that you've saved in the system.
  • Purchase Invoice: Purchase Invoices you've made against this supplier.
  • Payment Entry: Payment Entries for the Purchase Invoices against this supplier.
  • Pricing Rule: Any Pricing Rules linked with this supplier. See section 2.2 Currency and Price List to know how it works.

Supplier Save

By clicking on the View button, you can view the Accounting Ledger or Accounts Payable directly for this supplier.

There's a button to 'Send GST Update Reminder' to the supplier. You need to have a default email account setup first.

  1. Video
  1. Supplier Quotation
  2. Supplier Scorecard
  3. Maintaining Supplier's Item Code In the Item Master

Supplier Essentials

https://docs.frappe.io/erpnext/supplier-essentials

In ERPNext, supplier doctypes refer to the types of documents or records associated with managing suppliers within the system. By utilizing supplier doctypes effectively, businesses can streamline their supplier management processes, maintain accurate records, and ensure timely and efficient procurement operations.

Supplier Group

https://docs.frappe.io/erpnext/supplier-group

Supplier Group is an aggregation of suppliers that are similar in some way.

A supplier may be distinguished from a contractor or subcontractor, who commonly adds specialized input to deliverables. A supplier is also known as a vendor. There are different types of suppliers based on the goods and products they supply.

ERPNext allows you to create your own categories of suppliers. These categories are known as Supplier Groups. For example, if your suppliers are mainly pharmaceutical companies and FMCG distributors, you can create a new Supplier Groups for them and name the groups accordingly.

To access Supplier Group, go to:

Home Buying > Supplier > Supplier Group

1. Prerequisites

Before creating and using a Supplier Group, it is advised that you create the following first:

2. How to create a Supplier Group

  1. Go to the Supplier Group list, click on New.
  2. Type a name for your new Supplier Category.
  3. You can set a Parent Supplier Group for this Supplier Group.
  4. Ticking the Is Group checkbox will make it a Parent Supplier Group.
  5. You can also assign a default Payment Terms Template to the Supplier Group. Useful in a case where all your hardware suppliers take half payment on sales order and half post shipment.
  6. Save.

?

Supplier Group

You can classify your suppliers from a range of choices available in ERPNext. Choose from a set of given options like Distributor, Electrical, Hardware, Local, Pharmaceutical, Raw Material, Services etc. Classifying your supplier into different types facilitates accounting and payments.

3. Supplier Group Tree

You can also construct Supplier Group in the form of a tree hierarchy, similar to Chart of Accounts.

To view the Tree structure, click on Tree from the sidebar. To go back to the list view, simply select: Menu > View List.

Supplier Group

With the new User Permissions in place, you can now apply hierarchy based permissions. That is, if a User is permitted to view parent node of Supplier Group, he/she automatically qualifies to view the child nodes of that parent node.

For example, in the above image, let's say that user permission is applied for a User to view 'Distributor' document. Then the user also gets permitted to view its child nodes 'Book Distributor', 'Electronic Distributor', etc.

  1. Supplier

Supplier Quotation

https://docs.frappe.io/erpnext/supplier-quotation

A Supplier Quotation is document by a potential supplier specifying the cost of goods or services they'll provide within a specified period.

A Supplier Quotation may also contain terms of sale, terms of payment, and warranties. Acceptance of quotation by the buyer can be considered as an agreement binding on both parties.

Buying Flow

To access Supplier Quotation, go to:

Home > Buying > Purchasing > Supplier Quotation

1. Prerequisites

Before creating and using a Supplier Quotation, it is advised that you create the following first:

2. How to create a Supplier Quotation

2.1 Supplier Quotation from Material Request

You can make a supplier quotation from a Material Request:

Supplier Quotation from Material Receipt

Or:

A Supplier Quotation can be created from a Supplier master.

Or:

The supplier can submit you a quotation himself via ERPNext. To know more about this, see section visit the Request for Quotation page.

2.2 Creating a Supplier Quotation manually

  1. You can also make a Supplier Quotation directly from:

Buying > Purchasing > Supplier Quotation > New.

  1. Select the Supplier who sent you the quotation.
  2. The Address and Contact will be fetched if you've saved it in the supplier master.
  3. Enter the Item code, select the quantity. Rate will be fetched if you've set the Standard Buying rate for the item in Item Price.
Supplier Quotation

If you have multiple Suppliers who supply you with the same Item, you usually send out a Request for Quotation to various Suppliers. In many cases, especially if you have centralized buying, you may want to record all the quotes so that:

  • You can easily compare prices in the future
  • Audit whether all Suppliers were given the opportunity to quote.

Supplier Quotations are not necessary for most small businesses. Always evaluate the cost of collecting information to the value it really provides! As a recommendation, you can do this only for high value items.

3. Features

3.1 Taxes and Charges

If your Supplier is going to charge you additional taxes or charge like a shipping or insurance charge, you can add it here. This will help you accurately track your costs. Also, if some of these charges add to the value of the product you will have to mention them in the Taxes table. You can also use templates for your taxes. For more information on setting up your taxes see the Purchase Taxes and Charges Template.

3.2 More

There are fields for Tax Category, Shipping Rule, Purchase Taxes and Charges Template, Discount, Terms and Conditions, Quotation Number, Printing Settings. You can fill these fields for your record. Visit the Quotation page to know more about these sections. Note that the details like Shipping Rule, taxes, Discount, Terms and Conditions, Quotation Number, etc., are from your supplier and can be recorded for accurate tracking.

Note:

  • Tax Category will be fetched from supplier master if set
  • Print settings is for making changes to the supplier quotation print
  • The Terms and Conditions here are your supplier's
  • The Supplier Quotation can be linked to a Material Request using the 'Link to material requests' button

3.3 After Submitting

The following records can be created after submitting a Supplier Quotation:

  • Purchase Order - A Purchase Order if you agree with the supplier's quotation.
  • Quotation - A quotation to your customer.
  • Auto Repeat - Auto Repeat the supplier quotation at specified intervals.
  1. Supplier
  2. Supplier Group
  3. Purchase Order
  4. Request for Quotation

Supplier Scorecard

https://docs.frappe.io/erpnext/supplier-scorecard

A Supplier Scorecard is an evaluation tool used to assess the performance of suppliers.

Supplier scorecards can be used to keep track of item quality, delivery, and responsiveness of suppliers across long periods of time. This data is typically used to help in purchasing decisions. A Supplier Scorecard is manually created for each supplier.

To access Supplier Scorecard, go to:

Home > Buying > Supplier Scorecard > Supplier Scorecard

1. Prerequisites

Before creating and using a Supplier Scorecard, it is advised that you create the following first:

1. How to create Supplier Scorecard

  1. Go to the Supplier Scorecard list, click on New.
  2. Select a Supplier to score.
  3. Select the evaluating period whether weekly, monthly, or yearly.
  4. Setup the scoring function (details in next section).
  5. A supplier scorecard is created for each supplier individually. Only one supplier scorecard can be created for each supplier.
Purchase Order

2. Features

2.1 Scoring Setup

The supplier scorecard consists of a set evaluation periods, during which the performance of a supplier is evaluated. This period can be weekly, monthly or yearly. The current score is calculated from the score of each evaluation period based on the weighting function. The default formula is linearly weighed over the previous 12 scoring periods. This formula is customizable.

Purchase Order

Supplier Standings

The supplier standing is used to quickly sort suppliers based on their performance. These are customizable for each supplier.

The scorecard standing of a supplier can also be used to restrict suppliers from being included in Request for Quotations or being issued Purchase Orders. The following screen can be seen on expanding a row in the 'Scoring Standings' table, click on the downward facing arrow.

Purchase Order

2.2 Criteria Setup

A supplier can be evaluated on several individual evaluation criteria, including (but not limited to) quotation response time, delivered item quality, and delivery timeliness. These criteria are weighed to determine the final period score.

To create a new Criteria, go to Buying > Supplier Scorecard > Supplier Scorecard Criteria:

Purchase Order

Note: Criteria weights for a scorecard should add up to 100.

2.3 Supplier Scorecard Variables

The method for calculating each criteria is determined through the Criteria Formula field, which can use a number of pre-established variables. This can be seen in the preceding screenshot.

The value of each of these variables is calculated over the scoring period for each supplier. Examples of such variables include:

  • The total number of items received from the supplier
  • The total number of accepted items from the supplier
  • The total number of rejected items from the supplier
  • The total number of deliveries from the supplier
  • The total amount (in dollars) received from a supplier

Supplier Scorecard variable

Variables are pre-set, additional variables can be added through server-side customizations. Tick the Custom checkbox if the variable you're creating is for a custom field.

The criteria formula should be customized to evaluate the suppliers in each criteria in a way that best fits the company requirements.

2.4 Evaluation Formulas

The evaluation formula uses the pre-established or custom variables to evaluate an aspect of supplier performance over the scoring period. Formulas can use the following mathematical functions:

  • addition: +
  • subtraction: -
  • multiplication: *
  • division: /
  • min: min(x,y)
  • max: max(x,y)
  • if/else: (x) if (formula) else (y)
  • less than: <
  • greater than: >
  • variables: {variable_name}

It is crucial that the formula be solvable for all variable values. This is most often an issue if the value resolves to 0. For example:

{total_accepted_items} / {total_received_items}

This example would resolve to 0 / 0 in periods where there are no received items, and therefore should have a check to protect in this case:

({total_accepted_items} / {total_received_items})
if {total_received_items} > 0
else 1.

2.5 Evaluating the Supplier

An evaluation is generated for each Supplier Scorecard Period by clicking the "Generate Missing Scorecard Periods" button. The supplier's current score can be seen, as well as a visual graphic showing the performance of the supplier over time. Any actions against the supplier are also noted here, including warnings when creating RFQs and POs or preventing these features for this supplier altogether.

  1. Supplier
  2. Supplier Quotation

Support Issues

https://docs.frappe.io/erpnext/support-issues

Managing support issues in ERPNext is a structured process which is aimed at addressing user concerns.

While raising a support issue, it is essential to document and categorise based on its severity and impact on business processes. Assigning the appropriate priority level helps in allocating resources efficiently.

Support Settings

https://docs.frappe.io/erpnext/support-settings

All the global settings for support related documents can be found in Support Settings.

To access Support Settings, go to:

Home > Support > Settings > Support Settings

Support Settings
  1. Service Level Agreements

1.1 Track Service Level Agreement

Enable this feature to start using and tracking Service Level Agreement in Issues.

1.2 Allow Resetting Service Level Agreement

It enables the support team to reset the SLA timers under specific conditions. This can be particularly useful in scenarios where the initial SLA timers need to be adjusted due to changes in the ticket status or additional information being provided by the customer.

  1. Issues

2.1 Close Issue After Days

Any "Replied" or "Resolved" issue will be closed after the number of days defined in this field. However, if the Customer replies to a closed Issue, the Issue will Open again.

Support Reports

https://docs.frappe.io/erpnext/support_reports

The various reports in the Support module help understand data on how quickly support staff responded to customer issues, the issue types, issue priorities, timelines, and more.

1. First Response Time for Issues

This report provides a date-wise summary of Average First Response Time for Issues reported during the selected time frame. It will display the date and the "Average First Response Time" taken to respond to all the issues created on the respective date.

To access the First Response Time for Issues report, go to:

Home > Support > Reports > First Response Time for Issues

First Response Time for Issues

2. Issue Summary

This report provides a detailed summary of issues reported based on the filters. You can view the summary based on the following parameters:

  1. Customer
  2. Assigned To
  3. Issue Type
  4. Issue Priority

For example, if we select the report based on Customer, it will show a list of all the Customers along with the following details for every customer based on the filters applied:

  1. Number of Open, Replied, Resolved, and Closed issues.
  2. Total Number of Issues raised by that customer.
  3. Number of Issues for which the SLA has been fulfilled, failed, and ongoing.
  4. Average support metrics like Avg First Response Time, Avg Response Time, Avg Resolution Time, Avg User Resolution Time, Avg Hold Time.

The stacked chart shows the number of issues classified by status for each customer. Report Summary shows the total number of Open, Replied, Resolved, and Closed issues in the entire report.

To access the Issue Summary report, go to:

Home > Support > Reports > Issue Summary

Issue Summary

3. Issue Analytics

This report provides a count of issues according to weekly, monthly, quarterly, and yearly time series based on the following parameters:

  1. Customer
  2. Assigned To
  3. Issue Type
  4. Issue Priority

To access the Issue Analytics report, go to:

Home > Support > Reports > Issue Analytics

Issue Analytics

System Settings

https://docs.frappe.io/erpnext/system-settings

System Setting contains settings for system-wide configuration of the account.

You can localize ERPNext to use particular timezone, date, number or currency format, and also set global session expiry via System Settings.

To open System Settings, go to:

Home > Settings > System Settings

1. Sections in System Settings

1.1 General

  • Country: You can set the default country here, this will be fetched when creating new addresses. If your company has multiple branches in different countries, choose the head office location.
  • Time Zone: Timezone is configured during site creation and cannot be changed afterward, as it is a system-level setting. However, users can set their preferred timezone individually in their user profile
  • Language: Sets the global language for the ERPNext account. Then language will be changed in all the menus, transactions, masters, etc.
  • Disable Document Sharing: Disables share access for all users across the system (except Administrator) to make sure access is only given via permissions. Users will only be able to view who the document is shared with and not share the document itself. Additionally, assigning a document to a user will be blocked if the assignee does have access to the document.
  • Enable Onboarding: It facilitates the onboarding process for new users. This feature typically provides a series of guided steps and helpful prompts to introduce new users to the ERPNext system, helping them to understand and utilize its features effectively.

Screenshot 2024-05-27 at 10.39.34 AM

1.2 Date and Number Format

  • Date Format: Format in which dates will be displayed. For e.g., dd.mm.yyyy or mm/dd/yyyy. This depends on how dates are formatted in your region.
  • Time Format: Format in which time will be displayed. You can choose to show () or hide seconds by setting the option as () .
  • Number Format: Format in which numbers will be formatted. For e.g., 1,000 or 1000.00.
  • Number Format from Currency: Specifies that numbers will be displayed according to the Currency Number Format instead of the default format.
  • Float Precision: The number of zeros displayed after the decimal point for quantities etc. The range is 2-9. Default is 3.
  • Currency Precision: Number of zeros displayed after the decimal point for currency values. If left blank, it will be based on the Number Format.
  • First Day of the Week: This can be used to configure the day for start of the week. This affects dynamic filters for week used in list and report views, date seletion layout and calendar view.
  • Rounding Method: Specifies rounding method to be used everywhere. The default rounding method is Banker's Rounding which rounds 0.5 to nearest even number. "Commercial Rounding" which rounds 0.5 to next number away from zero, e.g. 1.5 becomes 2.0 and -1.5 becomes -2.0 when rounded.
HH:mm:ssHH:mm

Screenshot 2024-05-27 at 10.41.54 AM

1.3 Permissions

  • Apply Strict User Permissions: When this checkbox is ticked and User Permission is defined for a DocType for a User, then all the documents where the value of the link is blank, will not be shown to that User.

For example: If you set User Permissions for Territory and set the value as India. If the checkbox is unticked, all transactions (sales orders, quotations) with India and blank will be shown to the users. If the Apply Strict User Permissions checkbox is ticked, documents, where Territory is blank, will not be shown to the users.

Screenshot 2025 12 10 161147

1.4 Session

  • Session Expiry: Number of idle hours after which you'll be logged out of a session. This helps in better security. For example, if there is no activity for 6 hours, your account will be logged out.
  • Document Share Key Expiry (in Days): Number of days after which "document web link" sent via email will be expired.
  • Allow only one session per user: If you want to use a single set of credentials for multiple users, tick this checkbox. The number of simultaneous sessions can be changed under User master. Mobile phone sessions are not counted here.
  • Disable Username/Password Login: Make sure to configure a Social Login Key before disabling to prevent lockout.

Screenshot 2024-05-27 at 11.01.30 AM

1.5 Login Methods

  • Allow Login using Mobile Number: By checking the 'Allow Login using Mobile Number' checkbox, you can log in to ERPNext using a valid mobile number set in your User account.
  • Allow Login using User Name: Allow user login via their username set in the User master.
  • Login with email link: Allow users to log in without a password, using a login link sent to their email.
  • Login with email link expiry (in minutes): Indicates the duration in minutes for which login via email link will be active.

Screenshot 2024-05-27 at 11.04.17 AM

1.6 Brute Force Security

  • Allow Consecutive Login Attempts: Consecutive logins after which you'll be locked out of the account for a specific period. This helps if an intruder tries to log in to your account.
  • Allow Login After Fail: Seconds after which a login attempt will be allowed after consecutive unsuccessful attempts.

Screenshot 2024-05-27 at 11.07.02 AM

1.7 Two Factor Authentication

On ticking 'Enable Two Factor Auth', the following two options will be seen.

  • Bypass Two Factor Auth for users who log in from restricted IP Address: Users who log in from restricted IP addresses will not be asked for Two Factor Authentication. You can restrict IPs from User master under the Restrict IP field.
  • Bypass restricted IP Address check If Two Factor Auth Enabled: If checked, all users can log in with Two Factor Authentication regardless if their IP is restricted or not.
  • Two Factor Authentication method: Select the authentication method to be used - OTP App, SMS, or email.
  • Expiry time of QR Code Image Page: Expiry time for QRCode image if "OTP App" is selected in the method.
  • OTP Issuer Name: It refers to the entity responsible for providing or issuing the OTPs used for authentication within the ERPNext system.

Screenshot 2024-05-27 at 11.08.39 AM

1.8 Password

  • Logout All Sessions on Password Reset: Once this is checked, all active sessions will be closed as soon as the password is changed.
  • Force User to Reset Password: Number of days after which a password reset is mandatory. 0 means no limit.
  • Enable Password Policy: Enables a password strength checker so that users have to use strong passwords for their login.
  • Minimum Password Score: Score for the password strength checker
  • Reset Password Link Expiry Duration: This configuration is used to set the duration after which the newly created reset rassword link gets expired. The default expiry for reset password link is 20 minutes. Setting it to "0 Seconds" disables the "Reset Password Link Expiry" functionality.
  • Password Reset Link Generation Limit: Using this configuration the limit for number of password reset requests per hour can be set. The default limit is 3. Setting it to 0 will allow unlimited password reset link generation requests.
  • 2 is medium
  • 3 is strong
  • 4 is very strongThe complexity is based on the number of characters, capitalization, special characters, etc.

Screenshot 2024-05-27 at 11.10.51 AM

1.9 Email

  • Email Footer Address: Organization name, address, and other details can be added here. This will be set as default in all outgoing mails.
  • Disable Standard Email Footer: If ticked, the standard email footer will be disabled for outgoing emails.
  • Hide footer in auto-email reports: If ticked, footers will be hidden in Auto Email reports.
  • Include Web View Link in Email: When you turn on Attach Document Print for a new email, the system attaches a PDF or HTML version of your document to the email. If you also enable Include Web View Link in Email in the System Settings, a link will be added to the email, allowing the recipient to view the document online as a webpage.
  • Welcome Email Template: Predefined template for welcome email can be set from the list of available templates.
  • Reset Password Template: Predefined template for the password reset activity can be set from the list of available templates.
  • Email Retry Limit: It controls how many times the system will attempt to resend an email if the initial sending attempt fails. This is particularly useful in cases where there might be temporary network issues or server problems that prevent the email from being sent successfully on the first try.

Screenshot 2024-05-27 at 11.14.14 AM

1.10 File

  • Max File Size (MB): This option lets you configure the maximum size for any uploaded file file. If not configured, the default maximum size is 25MB.
  • Allow Guests to Upload Files: When enabled this will allow guests to upload files to your application, You can enable this if you wish to collect files from user without having them to log in, for example in job applications web form.
  • Force Web Capture Mode for Uploads: When uploading files, force the use of the web-based image capture. If this is unchecked, the default behavior is to use the mobile native camera when use from a mobile is detected.
  • Remove EXIF tags from uploaded images: Metadata stored in image files in the EXIF file format can be exploited to get sensitive user information. This option lets users remove that data from the images before uploading.
  • Allowed File Extensions: Provide a list of allowed file extensions for file uploads. Each line should contain one allowed file type. If unset, all file extensions are allowed.

Screenshot 2024-05-27 at 11.21.12 AM

1.11 Updates

  • Disable System Update Notfication: This option disables all version update notfications triggered by the application.
  • Disable Change Log Notification:

Screenshot 2024-05-27 at 11.25.02 AM

1.12 Backups

  • Number of Backups: In ERPNext you can backup the database as well as your files. Database backups are created automatically while file backups need to be downloaded explicitly.

This field shows the number of backups after which older ones will be deleted. By default, 3 backups are saved over 24 hours. New backups are automatically created every few hours and the newest backup will overwrite the oldest one. For a backup of files, click on the Download Files Backup button in the Download Backups form.

  • Encrypt Backups: When this option is enabled, ERPNext will encrypt the backup files before storing them. Encryption ensures that even if the backup files are accessed by unauthorized parties, the data within those files remains unreadable without the appropriate decryption key.

Screenshot 2024-05-27 at 11.25.31 AM

1.13 Advanced

  • Max auto email report per user: It controls the maximum number of automatic email reports a single user can schedule. This setting helps administrators manage and limit the load on the system by preventing individual users from scheduling an excessive number of automated reports, which could impact overall performance.
  • Run Jobs only Daily if Inactive For (Days): This will run scheduled jobs only once a day for inactive sites. Default 4 days if set to 0.
  • Show Full Error and Allow Reporting of Issues to the Developer: This will display the whole error on the screen and allow reporting issues. If you have technical knowledge in this area, you can get a better idea of the error by reading the whole message.
  • Allow Sending Usage Data for Improving Applications: If enabled, this sends usage data to the engineering team who can improve the application by understanding how the software is being used and identifying common issues.

Screenshot 2024-05-27 at 11.31.36 AM
  1. Company Setup
  2. Global Defaults
  3. Show or Hide Modules

Table MultiSelect Field

https://docs.frappe.io/erpnext/table-multiselect-field

The Table MultiSelect field is very similar to Link Field. The key difference is that Table MultiSelect field allows you to select multiple values.

Let us consider an example to understand the same. Let's say you want to assign a ToDo to multiple users, as shown below:

Screenshot 2024-06-25 at 4.58.41 PM

You can add a Table MultiSelect Field by using the following steps:

Step 1: Create a child DocType.

Create a new DocType, enable 'Is Child Table' and 'Editable Grid' check-boxes and add a field with 'Link' type as shown below.

Set the link field as mandatory. Ensure that the field within the child table has "In List View" ticked.

Screenshot 2024-06-25 at 4.55.49 PM

Step 2: Add a field with type 'Table MultiSelect'.

Create a field with type 'Table MultiSelect' and add the DocType created in first step in 'options'.

Screenshot 2024-06-25 at 4.57.08 PM

You can remove any selected value by clicking on the cross sign next to selected value or by placing the cursor next to the value and pressing Backspace.

This field allows one value to be selected only once.

Note: Table MultiSelect fields cannot be added in child DocTypes.

Tasks

https://docs.frappe.io/erpnext/tasks

In project management, a task is an actionable unit or activity which needs to be completed.

To access Tasks, go to,

Home > Projects > Task

How to Create a Task

  1. Go to the Task List and click on New.
  2. Add the subject of the task.
  3. Save.

Alternatively, a task can also be created from a Project in the following way:

  1. Go to the Project for which you want to create a new task.
  2. Go to Task under the Project section on the Dashboard. The plus icon '+' here would direct you to the task creation page.
  3. Add the subject of the task.
  4. Save.

Additional Options while creating a Task

The following additional details can be added when editing a new task:

  • Status: You can add the status of the Project or change the same whenever needed, e.g., from 'Open' to 'Working', 'Overdue','Pending Review','Completed', or 'Cancelled'
  • Project: In case a task is added independently, you may choose to link the task to a particular Project. If the task is created from a Project, the details of the Project will get automatically added.
  • Priority: You can choose to define the priority of the task, viz., Low, Medium, High or Urgent.
  • Issue: If the task is an actionable that arises out of an Issue, that issue can be tagged here with the Task.
  • Weight: If a particular task carries some weightage out of a project, or otherwise, the weightage can be specified here. This weightage gets calculated in the Percentage Task Completion Method by Task Weight.
  • Type: If your task can be defined under a particular Task Type, say, User Training or User Demo, you can enter the Task Type here. It can be used to filter the Tasks based on Task Types.
  • Color: Each task can be recognized by a different color. This helps in identifying a task while creating Gantt Charts.
  • Is Group: This box can be checked to indicate that a task is a parent task, and can be further divided into multiple sub-tasks.
  • Is Template: This box can be checked to indicate that this task is a template task, and is meant to be used in a Project Template.
  • Parent Task: If a particular task is a part of a group task, the parent task can be linked to the task from this field.

Task Configurations

Timeline and Details

  • Expected Start Date: You can enter the date on which you expect the Task to be started.
  • Expected End Date: You can enter the date on which you expect this Task to be finished.
  • Expected Time: You can enter the number of hours which you expect are going to be spent on this task.
  • Progress: You can enter the Progress Percentage of a Task.
  • Begin: If the task is a template task, this field can be used to specify the day on which this task should begin after the project is commenced.
  • Duration: If the task is a template task, this field can be used to assign a specific number of days to this task.
  • Is Milestone: This box can be checked in the cases where a particular task is a Milestone in a Project.
  • Description: You can add a description of the task here.

Note: Based on the values of Begin and Duration field, the Expected Start Date and Expected End Date gets calculated for Project Tasks created using Project Template. This calculation skips holidays based on the holiday list of your company.

Dependencies and Actual Time Tracking

  • Dependent Tasks: Dependent tasks indicate that a particular task is dependent on another task, and the former cannot be completed before the completion of the latter.

Task dependencies can be viewed in the Gantt Charts in the following way.

  • Actual Start Date: The actual date and time on which the Task is started get recorded basis the Timesheets.
  • Actual End Date: The actual date and time on which the task was finished get recorded here via the Timesheets.

Task costing and Billing

  • Total Costing Amount: The Total Costing Amount gets captured here via the Timesheets submitted by the user while working on this task.
  • Total Billing Amount: The Total Amount with which the Customer is to be billed via this task gets recorded here form the Timesheets.
  • Total Expense Claim: The Total Amount of Expense claimed by an Employee for the completion of this Task gets recorded and reflected here.

More Info

  • Department: You can enter the Owner Department for the task. Irrespective of the Owner department of the Project, each task can be carried out by a different department.
  • Company: You can change the Company for which this Task is being carried out. This can be used in cases:
  • One company executes Tasks for its Parent, Subsidiary, or Sister Company
  • Projects span across multiple legal entities

  1. Project
  2. Timesheet

Tax Category

https://docs.frappe.io/erpnext/tax-category

A Tax Category allows applying one or more Tax Rules to transactions based on various criteria.

If you want to apply different kinds of taxes based on Tax Categories, create Tax Categories from:

Home > Accounting > Taxes > Tax Category

1. Prerequisites

Before creating and using a Tax Category, it is advised to create the following first:

  1. Tax Rule

2. How does a Tax Category work

Creating a Tax Category is simple, go to the Tax Category list, click on New and enter a name.

  • A Tax category can be linked to one or more Tax Rules.
  • This Tax Category can be assigned to a Customer, so when that Customer is selected, the Tax Category will be fetched. This also applies in case of a Supplier.
  • This will fetch the Sales Tax Template linked to the Tax Rule. Hence, the rows in the Tax table will be automatically filled.
  • Tax Category can be used to group Customers to whom same tax will be applied. For example, Government, NGO, commercial, etc.

Tax Category in Sales Invoice

Tip: One Tax Category can be assigned to multiple Tax Rules. So you can create different combinations to apply taxes automatically to transactions.

3. Assigning Tax Category

Tax Category is automatically determined in a transaction by either the Party Address or Party Master (Customer/Supplier). You can assign Tax Category based on:

  1. Customer
  2. Supplier
  3. Address Billing or Shipping. You can select whether Billing Address or Shipping Address gets preference by changing the 'Determine Address Tax Category From' option in Accounts Settings. Tax Category is determined from Party Address first. If the Address is not assigned any Tax Category, then the Party's Tax Category is used.
  4. Item
  5. You can also manually select the Tax Category in a transaction.
Tax Cat Address

4. What effect does the Tax Category have in a transaction?

  • Specific Item Tax Templates for that Tax Category are automatically set for items.
  • You can create Tax Rules to automatically set a specific Sales / Purchase Taxes and Charges Template based on different Tax Categories in transactions.
  1. Tax Rule
  2. Customer
  3. Supplier
  4. Address

Tax Inclusive Accounting

https://docs.frappe.io/erpnext/tax-inclusive-accounting

Use Case: Tax-inclusive pricing incorporates the sales tax paid by your customer into the item’s total price.

For example, If an item costs $100 with a tax rate of 10%, the customer still pays a flat $100, of which $9.10 is collected as tax. To configure this, following the following steps:

In the Sales Taxes and Charges section, go to the table view of the tax in question and expand the row.

Check the "Is this Tax included in Basic Rate?" checkbox.

The system back calculates the tax accordingly.

Tax on another tax amount

https://docs.frappe.io/erpnext/tax-on-another-tax-amount

Use Case: Need to calculate tax on the previous tax amount and not on the item amount.
For example, we have 5 items and Service Charge is calculated on the Net Total of the 5 items. Additionally, we need to calculate 5% VAT on the Service Charge of the Items and not on the Net Total of the Invoice. In this case, you need to follow the following steps:

  1. In Sales Invoice, under the Sales Taxes and Charges section you need to set the tax calculation. In row 1, select the Type as "On Net Total" and Account Head as needed. Enter the Rate if not set already.The amount for this particular account head is calculated under the Amount column.
  2. Next, you need to calculate tax on the previous row's amount (which is the tax amount). To do this, select the Type as "On Previous Row Amount". Set the Account Head and Rate as needed. Expand the row and set the Reference Row # as shown below.

The Sales Taxes and Charges section set looks as follows:

Tax Rule

https://docs.frappe.io/erpnext/tax-rule

A Tax Rule automatically applies taxes to transactions based on preset rules.

You can define which Tax Template must be applied on a Sales / Purchase transaction using Tax Rule. This is decided by various factors like Customer, Customer Group, Supplier, Supplier Group, Item, Item Group or a combination of these.

To access the Tax Rule list, go to:

Home > Accounting > Taxes > Tax Rule

1. Prerequisites

Before creating and using a Tax Rule, it is advised to create the following first:

  1. Sales Taxes and Charges Template

Or

  1. Purchase Taxes and Charges Template

2. How to create a Tax Rule

  1. Go to the Tax Rule list and click on New.
  2. Under Tax Type select whether the tax will be applied at Sales or Purchase.
  3. Select the Tax Template to be applied.
  4. Save.
Tax Rule

You can list Items online using the Website module. Selecting 'Use for Shopping Cart' will use this Tax Rule for Shopping Cart transactions also. To know more, visit the Shopping Cart page.

Note: It is advised to not use the Sales/Purchase Template selected here in Item Tax Template, it may cause interference. If you want to use same tax rates for Tax Rule and Item Tax Template, use a different name for the Sales/Purchase Tax Templates.

3. Features

3.1 Auto applying Tax Rule based on Customer/Supplier

Select a Customer/Supplier if tax is to be applied for a specific party. Leave it as All Customer Groups/All Supplier Groups if this Tax Rule is applicable to all Customers/Suppliers.

On selecting a Customer/Supplier their Billing and Shipping addresses will be fetched if saved in the Customer/Supplier master.

3.2 Auto applying Tax Rule based on Item / Item Group

On setting an Item or Item group in the Tax Rule, this Tax Rule will automatically be applied to new transactions that have the selected Item/Item Group.

3.3 Setting a Tax Category

Setting a Tax Category allows applying multiple Tax Rules to a transaction based on different factors. To know more, visit the Tax Category page.

3.4 Validity

Set a Start and End Date if the tax is to be applied only for a specified period. Leaving both dates blank will result in the Tax Rule to have no time limits.

3.5 Priority

Setting a priority number here will decide on which order a Tax Rule will be applied in case multiple Tax Rules have similar criteria. '1' is the highest priority, '2' has lesser priority and so on.

4. How does Tax Rule Work?

Let us configure Tax Rule so that system automatically applies specific tax rates when a specific condition matches. For example, if the city in the billing address of customer is 'Malibu' then a 6.25% of state tax, 1% of county tax and 2.25% of district tax should be applied.

Create a Sales Taxes and Charges Template as shown below.

City Specific To Zipcode

Create a Tax Rule as shown below.

Tax Rule

Once you select a customer and a billing address of that customer with city as 'Malibu', system automatically applies the appropriate taxes.

Tax Rule in Sales Invoice
  1. Pricing Rule
  2. Item Tax Template
  3. Tax Category
  4. Customer
  5. Supplier

Tax Withholding Category

https://docs.frappe.io/erpnext/tax-withholding-category

Tax Withholding Category is Tax Deducted at Source.

According to this, a person responsible for making payments is required to deduct tax at source at prescribed rates. Instead of receiving tax on your income from you at a later date, the govt wants the payers to deduct tax beforehand and deposit it with the government.

To access the Tax Withholding Category list, go to:

Home > Accounting > Taxes > Tax Withholding Category

  1. Prerequisites

Before creating and using a Tax Withholding Category, it is advised to create the following first:

Supplier

Customer

How to create a Tax Withholding Category

In ERPNext, Tax Withholding Categories for most cases are available by default, however, you can create more if needed.

  1. Go to the Tax Withholding Category list and click on New.
  2. Enter a unique name, eg: Section 194C Individual.
  3. Enter a Category Name (Dividends, Professional Fees, etc,.).
  4. Enter a Tax Withholding Rate against a Fiscal Year.
  5. You can set the threshold for a single invoice or sum of all invoices.
  6. Select an account against your Company to which tax will be credited.
  7. Add more companies and accounts as needed.
  8. Save.

Tax withholding Category

Under accounting details, the TDS account is added for each Company in the system.

2.1 Assigning Tax Withholding to Supplier

After saving, it can be assigned to a Supplier:

Tax withholding Category in Supplier

2.2 How does the threshold work?

Consider a Supplier on whom a Tax Withholding Category is applied.

For example, let's say a rate of 5% will be applicable on invoice where Single threshold is 20,000 and the Cumulative threshold is 30,000. If an invoice is created with a grand total of 20,000 then the single threshold will be triggered and a 5% tax would be charged.

But if the invoice amount totaled up to be 15,000 then no tax will be charged as it didn't cross the threshold. If again another invoice is created against the same supplier with a total of 15,000 then although it didn't cross the Single threshold, charges will be deducted since the sum of the last invoice and this invoice adds up to be 30,000 which is equal to the specified Cumulative threshold.

  1. Using Tax Withholding

3.1 Use in Purchase Invoice

In the following example, we have selected 'TDS - 194C - Individual' which has a single threshold of 30,000, cumulative threshold of 1,00,000 and rate of 1%.

  1. If the Supplier has the tax withholding field set, then upon selecting that Supplier, a checkbox will become visible in the Purchase Invoice to select whether to apply tax or not.

Tax Withholding Category in Purchase Invoice
  1. Let's create an invoice for 90,000. Saving the invoice automatically calculates tax and appends it in the taxes table.

2. To see the effect of Cumulative threshold, let's create an invoice with of amount 10,000 and submit it.

Tax Withholding Category in Purchase Invoice

Tax Withholding Category Cumulative Threshhold

Although the invoice amount didn't cross the Single threshold (30,000), we see that tax has been charged. This is because the previous and the current invoice adds up to be 1,10,000 which exceeds the Cumulative threshold. Hence, tax based on the rate provided in the Tax Withholding Category is applied accordingly.

Note: On submitting the invoice, three GL Entries are created:

  1. First for debit from the expense head
  2. Second for credit in Creditors account
  3. Third for credit in the account selected in Tax Withholding Category.

3.2 Deducting Tax at source on Advances

3.2.1 Deduction Advance TDS against Purchase Order

  1. Set up Tax Withholding Category against supplier and make a Purchase Order against the supplier. One point to remember here is not to check "Apply Tax Withholding" check in the PO as the PO has to generated for the full amount
  2. Create Payment Entry against that Purchase Order, In the Taxes and Charges section enable "Apply Tax Withholding" and enter other details and then save and submit the entry.

Tax Withholding Payment Entry
  1. Create a Purchase Invoice against this order and enable "Set Advances and Allocate(FIFO)" so that payment linked to the corresponsing order is automatically applied. No Tax will be withheld in the Purchase Invoice if the Tax paid on advance in more than or equal to the tax amount in Invoice. Tax Will be withheld only for the excess amount if applicable.

3.2.2 Deducting TDS against advances paid (Using Payment Entry)

  1. Select "Payment Type" as "Pay"
  2. Select "Party Type" as "Supplier" and the appropriate supplier
  3. Enter paid amount, paid amount should be the amount before TDS deduction
  4. Under the Taxes and Charges section check "Apply Tax Withholding Amount" and select Tax Withholding Category
  5. Click on Save. TDS will be auto applied
  6. Submit the entry
  7. Same will also be visible in TDS payable monthly report

3.3 Setting up TCS - Section 20C(1H) for eligible customers

In the following example, we have create a Tax Withholding Category for TCS - Section 20C(1H) and set it up against an eligble customer.

  1. We will first create a Tax Withholding Category named TCS - Section 20C(1H) and we set cumulative threshold to 50 Lakhs as per the scheme.

Tax Withholding Category For TCS
  1. If a Customer is expected to crosses the sales threshold of 50 Lakh in current Fiscal Year, then we can set the Tax Withholding Category of the customer to TCS - Section 20C(1H) for automatically calculation TCS on sale of goods against the customer's invoices.

2. Let's create an invoice for 50 Lakhs against the eligible customer. Saving the invoice automatically calculates tax and appends it in the taxes table.

TCS in Customer

TCS Calculation in Sales Invoice

Since the invoice cross the Cumulative threshold (50 Lakhs), we see that tax has been charged. Hence, tax based on the rate provided in the Tax Withholding Category is applied accordingly. Note that, as per the scheme, the TCS is calculated on the amount exceeding the threshold i.e 0.075 % of 10 Lakhs.

3.4 Advanced options in Tax Withholding Category

Advance TDS Options
  1. Consider Entire Party Ledger Amount: In many situations threshold has to be calculated on the entire party ledger amount instead of the sum of the net total of specific invoices. On enabling this check cumulative threshold will be checked against the sum of the grand total of all the invoices against a particular Supplier/Customer.
  2. Only Deduct Tax On Excess Amount: On enabling this tax will be deducted only on the amount exceeding the threshold and not the entire amount. For example, if the cumulative threshold is 50000 and if the cumulative amount goes till 52000 the tax will be applied only on 2000 and not the entire 52000.
  3. Round Off Tax Amount: Enabling this check will round off the calculated tax amount to the nearest integer value (Normal Rounding Method)
  1. Tax Rule
  2. Supplier
  3. Customer

Taxes

https://docs.frappe.io/erpnext/taxes

The tax section in ERPNext's accounting module is an important component for managing taxes effectively within the system.

It provides a comprehensive set of tools to handle various tax-related tasks, including defining tax rates, creating tax rules, and generating tax reports. Users can set up multiple tax templates based on their business requirements. These templates allow for flexibility in configuring tax rates for different items or transactions.

ERPNext also supports automatic tax calculations based on predefined rules, simplifying the tax calculation process and ensuring accuracy in financial transactions. Additionally, the tax section integrates seamlessly with other modules like sales, purchases, and accounting, ensuring that tax applications are accurately reflected across the system.

Overall, ERPNext's tax section streamlines tax management, reduces errors, and enhances compliance with tax regulations, making it an essential feature for businesses of all sizes.

These help articles will help you configure the system for different scenarios.

Taxjar Integration

https://docs.frappe.io/erpnext/taxjar_integration

TaxJar integration allows ERPNext users to auto-calculate taxes based on the addresses of customers, companies and delivery locations.

How to Setup TaxJar?

TaxJar Account and API Tokens:

You will need the API tokens from your account to setup Taxjar.

  1. Create a Taxjar account first as per your requirements.
  2. Login to your account dashboard and click on the Account button and click on TaxJar API in the dropdown list of options.
  3. You will now see your API tokens, these tokens would be needed to configure your ERPNext TaxJar integration.

Adding Nexus and states in TaxJar:

What is Nexus?

You don't need to register to collect sales taxes from customers in every state. You'll only collect sales taxes from customers who live in the states where you have nexus!

"Nexus" is a specific type of connection to a state that's significant enough for you to be required to comply with that state's sales tax laws.

How do I know where I have Nexus?

You'll always have nexus in your home state where you are located.

For more details, please read up on the official TaxJar page about Nexus without fail!

Adding states:

Please follow detailed instructions given on the official TaxJar page here regarding adding/removing states to your dashboard, please follow their instructions from top to bottom as it will help you set up everything perfectly.

Setting up TaxJar on ERPNext:

From the Desktop click on the 'TaskJar' icon. This will redirect you to the TaxJar Workspace.

Frappe Desktop with TaxJar desktop icon

Click on 'TaxJar Settings'. This is where you configure your TaxJar integration in ERPNext.

TaxJar Workspace

Fill

TaxJar Settings Form View

Sandbox Mode:

TaxJar provides a sandbox environment for automated testing and development. After generating a sandbox API token, point your API client to the sandbox environment: https://api.sandbox.taxjar.com]. Note sandbox transactions will not reflect in your TaxJar dashboard. To troubleshoot during development use the TaxJar API Log.

Logging:

  • When Enable TaxJar Logging is checked in TaxJar Settings, TaxJar requests/responses/skips/errors are written to TaxJar API Log and file logs.
  • When Enable TaxJar Logging is unchecked, tax logic still runs, but no new TaxJar log entries are written.

TaxJar API Log List View

Payload and responsed a stored in the Log,

TaxJar API Log Form View

Setting up tokens and account heads:

  1. Enable Tax Calculation, Create TaxJar Transaction:
  2. You need to enable these options for auto tax calculations and these transactions would appear on your TaxJar account transactions page where you can track them and analyse the tax breakdowns.
  3. Once you've made some transactions, they would automatically appear on your TaxJar Transactions page:
  4. You can check out all the transactions made and the detailed tax breakdowns.
  5. Copy the API tokens from your TaxJar account as directed above and paste it in the Live API Key and Sandbox API key field.
  6. You will have to set two account heads for Taxes and Shipping, select the accounts as required and once everything has been configured, click on save and you are good to go!

Setting correct addresses

For the integration to work seamlessly please make sure you have created correct addresses for your company, customers, suppliers, etc.

Note:

  1. While creating an address, make sure in the State/Province field you enter the correct state. TaxJar requires the 2 letter format for the states for ex. New York is considered as NY, but it need not be mandatorily entered that way, the system converts it to the 2-letter state code automatically. Address Form View
  2. You may check the Preferred Billing Address and Preferred Shipping Address checkboxes to auto-fill those fields in different invoices and avoid the hassle.
  3. Ensure that you have correctly filled the City/Town, State/Province, Country, Postal Code fields.
  4. You might want to disable the taxes if any, that are set by default.

TaxJar in Action!

In this instance we have a company that is based out in New York and we are issuing a Sales Invoice to a customer based within the same state.

As you see, the taxes and charges based on the state and pincode gets applied automatically on saving.

TDS Setup for India

https://docs.frappe.io/erpnext/tds-setup-india

To setup TDS in ERPNext follow below steps:

  • First you have to define Tax withholding categories, by default 28 categories are already pre-defined as per Indian statutory compliances. But if you want to add new category then you can create the same by clicking on "New"(button at right top corner)

  • As per category you have to define Tax withholding rate along with "Single Transaction Threshold" & "Cumulative Transaction Threshold" for Financial/Fiscal year.

  • In same screen you will find another section of "Account Detail" to set company-wise TDS Payable account.

  • Once you are done with Tax withholding setup go to Supplier master and assign Tax withholding category.

  • Now when you create a Purchase invoice against that supplier make sure "Apply Tax withholding Amount" is checked then only system will auto fetch TDS Payable amount in "Taxes & Charges" table based on Threshold you have defined.

Standard report is also available to check monthly payable, just search for "TDS payable monthly" report for the same.

Terms And Conditions

https://docs.frappe.io/erpnext/terms-and-conditions

Terms and conditions contain the terms and conditions of a service/product offered by a seller to a buyer.

Each Quotation/Sales Order must ideally contain a set of terms of your contract. Terms and conditions are usually included to define terms of service, conditions for using any service or to even limit responsibilities of the seller in case any harm is caused to the buyer due to using the provided goods or services. It is usually a good idea to make template(s) of your Terms and Conditions so that you have a standard set of terms.

To access Terms and Conditions template go to:

Home > Selling > Terms and Conditions Template

1. How to create Terms and Conditions Template

  1. Go to the Terms and Conditions Template list, click on New.
  2. Add the Terms and Conditions.

Terms and Conditions

1.1. Select in Transaction

In transactions, you will find a section of Terms and Conditions where you will be able to search and fetch the required Terms and Condition master.

Terms and Conditions, Select in document

1.2 Terms and Conditions when printing

Once the Terms and Conditions are set in a Sales/Purchase transaction, it will appear when printing:

Terms and Conditions in print

1.3 What should Terms and Conditions contain?

Here are some common topics that Terms and Conditions should contain:

  • Validity of the offer.
  • Payment Terms (In Advance, On Credit, part advance, etc).
  • What is extra (or payable by the Customer).
  • Safety/usage warning.
  • Warranty if any.
  • Return Policy.
  • Terms of shipping, if applicable.
  • Ways of addressing disputes, indemnity, liability, etc.
  • Address and Contact of your Company.

Terms and conditions are the general and special arrangements, provisions, requirements, rules, specifications, and standards that a company follows. These specifications are an integral part of an agreement or contract that the company gets into with its customers, suppliers or partners.

  1. Address Template
  2. Cheque Print Template

Territory

https://docs.frappe.io/erpnext/territory

A Territory is a geographical region you do business in.

In ERPNext, a Territory is used to classify Customers, Addresses, in accounting report, and to allocated sales targets.

To access the Territory list, go to:

Home > Selling > Settings > Territory

How to create a Territory

  1. Go to the Territory list, click on New.
  2. Tick 'Group Node' if there'll be sub-territories under this Territory. For example, France is a group Territory and Paris is a sub-territory.
  3. Save. Territory List

You can add multiple sub-territories under a parent territory. On saving, a territory can be selected in transactions and reports.

Features

Assigning a Territory manager

You can assign a Territory Manager who looks after the Sales of of this region. This isa

Setting Sales Targets

Here you can set specific sales targets based on the following fields:

  • Item Group
  • Fiscal Year
  • Target Qty
  • Target Amount
  • Target Distribution

To know more about setting sales targets, visit the Sales Person Target Allocation page

  1. Customer
  2. Address

The Project Champion

https://docs.frappe.io/erpnext/the-champion

Implementing ERPNext in any organisation requires clear identification of pain points, meticulous planning and active involvement of all parties associated with the project. It involves the integration of various business processes, data migration, training, and organisational change management.

Since there are so many moving parts in parallel, having a single point of contact for driving the activities plays a huge role. It has been fund that effectiveness of the Project Champion is the key distinguishing factor between Success and Failure.

These are some of the key benefits of having a Project Champion assigned for each project.

  1. Leadership: Project Champion acts as a single point of contact at customer's end and provides strong leadership by closely adhering to the vision, goals, and objectives for the project.
  2. Stakeholder Buy-In: Project Champion acts as a liaison between the project team and key stakeholders. He/She works to create more awareness about the project and acquires buy-in from the potential users and stakeholders.
  3. Resource Allocation: Project Champion ensures that the required resources (man power, funding etc) is allotted as per the requirement to ensure seamless continuation of the project.
  4. Problem-Solving: Project Champion provides solutions whenever any challenges are faced. They are expected to address burning issues, resolve interpersonal conflicts and make informed decisions to keep the project on track.
  5. Change Management: ERP implementation involves reasonable changes in the processes and the way teams operate. Project Champion helps employees adapt to the new system, ensuring a seamless transition.
  6. Risk Management: ERP implementations can be complex and risky as it directly affects business continuity of the user. A project champion identifies potential risks and derives strategies to mitigate them, minimising the likelihood of project delays or failures.
  7. Communication: Project Champion keeps track of the project and shares updates with the concerned stakeholders.
  8. Accountability: Project Champion builds the team at their end and ensures that everyone is aware of the role they have to play in the implementation process. They keep track of commitments, deadlines and milestones very closely and call out any potential risks.
  9. Continuous Improvement: At times, ERP implementation can be an iterative process. So, a Project Champion continues to lead the project involving customisations, localisations and enhancements.

Time Based Payout

https://docs.frappe.io/erpnext/time-based-payout

Time-based payout in ERPNext projects refers to the process of calculating and disbursing payments to employees or contractors based on the time they have spent working on specific projects or tasks.

This feature is particularly useful in industries where billing is tied to hourly rates or milestone achievements. ERPNext facilitates time-based payout by accurately tracking the time logged by individuals against project tasks or milestones. It allows organizations to set hourly rates or payment terms for different roles or projects, ensuring fair compensation for work done.

Time Tracking

https://docs.frappe.io/erpnext/time-tracking

Project time tracking in ERPNext plays a pivotal role in ensuring accurate project management and resource utilisation.

By allowing employees to log time against specific tasks or projects, ERPNext provides a clear visibility to time spent on various activities. This feature helps in monitoring project progress, identifying bottlenecks, and optimizing resource allocation.Time tracking in the project management modules allows project managers to make informed decisions based on real-time data, ultimately contributing to more efficient project execution and successful outcomes.

Timesheet

https://docs.frappe.io/erpnext/timesheets

A Timesheet is the record of the number of hours spent by an employee on completion of each task.

The Timesheet can also be used to calculate the billable towards an employee, to calculate their salaries, or to track an employee's contribution towards a Project or a Task.

In ERPNext, a Timesheet can have an account of a particular employee working on multiple Tasks or Projects in a tabular format.

To access Timesheet, go to,

Home > Projects > Time Tracking > Timesheet

How to create a Timesheet

  • Go to Timesheet list and Click on New.
  • Enter the Company name and the Employee Code.
  • Add the following details to the field 'Time Sheets'.
  • Click on 'Add Row' to add more such Time Sheets.
  • Save.
  • After saving the Timesheet, according to the details entered in the different Time Sheets, the Start Date, End Date and the Total Working Hours will get updated automatically. Click Submit.
  • Activity Type: Add the type of activity for which the Time Sheet has been created.
  • From Time: Enter the date and time at which the work was started.
  • Hrs: Enter the number of hours for which this Time Sheet has been created. One Timesheet can be used to track the work hours on multiple days as well.
  • Project: If this Time Sheet needs to be tagged to a particular Project, you can add the name of the Project here.
  • Bill: This box needs to be checked if this particular Time Sheet is a billable.

Alternatively, a Timesheet can also be created from a Task in the following way:

  1. Go to the Task for which you want to create a new Timesheet.
  2. Go to 'Timesheet' under the Activity section on the Dashboard. The plus icon '+' here would re-direct you to the Timesheet creation page.
  3. Follow the steps to create a Time Sheet.

Timer in Timesheet

A Timer can be used to record the actual time taken by an employee to finish a particular activity in a Timesheet.

Steps to start a Timer:

  • In a Timesheet On clicking Start Timer a dialog box pops up and you are required to enter the following details:
  • Activity Type: The Activity for which you are recording the Time.
  • Project: The Project for which you are creating the Timesheet.
  • Task: The Task for which you are recording the time in the Timesheet.
  • Expected Hrs: Enter the number of hours that you expect the Task to finish in.

  • Once you have completed the Task, click on Complete. A new entry will be created in the Timesheet, and the time will get recorded as a Time Sheet in the Time Sheets Table in the Timesheet.
  • If the time exceeds the 'Expected Hrs', an alert box appears.

Additional Options while creating the Timesheet

The Time Sheet when expanded, allows you to enter the following details to it:

  • Expected Hours: Enter the tentative time required to complete the Tasks on the Time Sheets.
  • To Time: Enter the date and time at which the work was completed.
  • Completed: This box needs to be checked if the Task has been completed while submitting the Timesheet.
  • Task: If this Time Sheet needs to be tagged to a particular Task, you can do it here.
  • Billing Hours: This number of hours for which the customer needs to be billed for this Timesheet.
  • Billing Rate: The rate at which the customer needs to be billed for this work.
  • Costing Rate: This is the actual cost of work done. It is fetched from the activity cost (per employee) or from activity type and can be edited.
  • Billing Amount: The billing amount gets auto-calculated based on the billable number of hours and the billing Rate.
  • Costing Amount: The costing amount gets auto-calculated based on the number of hours and the costing rate.

Timesheet Configurations

Billing Details

  • Total Billable Hours: Based on the Timesheet, the Total Billable Hours will be auto-fetched here.
  • Total Billable Amount: Based on the Timesheet, the Total Billable Amount will be auto-fetched here.
  • Total Billed Hours: Once the Timesheet has been submitted, you will get an option to create a Sales Invoice from the Timesheet. The number of hours for which the Customer shall be billed will be fetched over here, and once the Sales Invoice is submitted, the Total Billed Hours will be fetched.
  • Total Billed Amount: In a similar fashion as how the Total Billed Hours are fetched, the Total Billed Amount will also be fetched.
  • Total Costing Amount: Based on the Timesheet, the Total Costing Amount, as specified by the Employee gets tagged here.
  • % Amount Billed: Once the Timesheet is submitted, and a Sales Invoice is created from the Timesheet, the percentage of the Amount out of the Total Billable Amount which has been amounted for the Total Billed Amount gets calculated and is reflected here.

After Saving the Time Sheet

Once a Timesheet is saved and submitted, the details like Billing Rate and Costing rate get locked, and cannot be changed. The following DocTypes can be created after submitting a Timesheet.

  • Sales Invoice
  • Salary Slip

Track Items Using Barcode

https://docs.frappe.io/erpnext/track-items-using-barcode

A barcode is a value decoded into vertical spaced lines. Barcode scanners are the input medium, like Keyboard. When it scans a barcode, the data appears in the computer screens at the point of a cursor.

Item Master

To set the barcode of a particular item, you will have to open the Item record. You can also enter barcode while creating a new item.

Material Transfer

Once barcode field is updated in item master, items can be fetched using barcode. This feature will be available in Delivery Note, Sales Invoice, Purchase Receipt, and Stock Reconciliation transactions only.

Material Transfer

UOM specific barcode

You can also specify different barcode for different type of packaging of same item like unit and box. Select the UOM in Item Barcode table to get it auto selected when scanning items.

uom specific barcode

Using mobile phone / smartphone to scan and add items

Log in to your ERPNext account, go to the Item master and you'll be able to scan barcodes and add Items right from your smartphone!

Item Barcode using Smartphone

Track Purchases In Accounts

https://docs.frappe.io/erpnext/track-purchases-in-accounts

ERPNext version 16 feature

As per the industry standards, following formula is used for driving Cost of Goods Sold:

COGS = Opening + Purchases - Closing

Users can easily find the stock opening and closing balances by referring to the stock balance report, but determining the purchases is more difficult. The account Stock Received but Not Billed can help, but it doesn’t work if the user is using Purchase Invoices with ‘Update Stock’.

To address this in the ERPNext, we have Purchase Expense Account and Purchase Expense Contra Account fields in the Company and Item Defaults masters. So now, when the user books the purchase receipt and purchase invoice expense account and its contra will get debited and credited with the same amount, which means the final impact is zero, but the user will be able to see the purchase amount in P&L and Trial Balance reports.

Company Master Configuration

Users can configure the default purchase expense and default purchase expense contra account in the company master

Track Semi-Finished Goods

https://docs.frappe.io/erpnext/track-semi-finished-goods

Note: This feature will be available in the ERPNext version 16

Semi-finished goods are materials that result from the completion of one operation and are used as raw materials to make final products or other semi-finished goods.

In ERPNext, if you want to track semi-finished goods, you need to create an item for each semi-finished good and also have an active Bill of Materials for each one.

So we thought, why can't we have a provision to define the finished/semi-finished goods against the operation as well as raw materials? With this, once we complete the operation, the semi-finished goods will be produced and the raw materials will be consumed. Similarly, after the completion of the last operation, the finished goods will be produced and all semi-finished goods will be consumed.

The user has to create a Bill of Materials for each finished/semi-finished good and assign it to operations of the final Bill of Materials, or they can manually select the raw materials required to produce the finished/semi-finished goods.

BOM (with Operations)

  • If you want to track "Semi Finished Goods", you need to enable "Track Operations" and "Track Semi Finished Goods" while making the BOM.
  • While creating a BOM, the user will have the option to define the operation, operation time, workstation, and workstation type.
  • The user will also have the option to set default warehouses, such as the source warehouse, work in progress warehouse, and finished goods warehouse.
  • If the user has set 'skip material transfer' they can consume materials from the source warehouse or work-in-progress warehouse.
  • If users perform specific operations through subcontracting, they will have options to define subcontracted operations. Users will also have the option to create a subcontracted purchase order against the subcontracted job cards.

Work Order

work-order-with-semi-fg

In the work order, users can see the finished/semi-finished good as well raw materials against each operations. On submission of the work order system will create the job cards automatically and users have to complete the job cards manually. User can complete the job cards using job card view or from workstation dashboard. Below are different ways to complete the job cards

  1. If the 'Skip Material Transfer to WIP' checkbox is enabled and the 'Backflush Materials From WIP Warehouse' checkbox is enabled, then users must consume raw materials from the 'WIP Warehouse'. Users need to click the 'Start Job' button to begin the job and the 'Complete Job' button to stop the job. After that, users must submit the job card to create a stock entry to consume materials from the 'WIP Warehouse' and add finished/semi-finished goods to the 'Target Warehouse'.
  2. If the 'Skip Material Transfer to WIP' checkbox is enabled and the 'Backflush Materials From WIP Warehouse' checkbox is disabled, then users must consume raw materials from the 'Source Warehouse'. Users need to click the 'Start Job' button to begin the job and the 'Complete Job' button to stop the job. After that, users must submit the job card to create a stock entry to consume materials from the 'Source Warehouse' and add finished/semi-finished goods to the 'Target Warehouse'.
  3. If the 'Skip Material Transfer to WIP' is disabled, then users must have to transfer raw materials from the 'Source Warehouse' to 'Wip Warehouse'. After that, users need to click the 'Start Job' button to begin the job and the 'Complete Job' button to stop the job. After that, users must submit the job card to create a stock entry to consume materials from the 'WIP Warehouse' and add finished/semi-finished goods to the 'Target Warehouse'.

Job Card

Users have to complete the Job Card, and once all Job Cards are completed, the system will complete the Work Order. From the Job Card, users must transfer materials from the Store to the Work In Progress warehouse, if the Skip Material Transfer option is disabled on the respective job card. After that, users need to create a Manufacture Stock Entry against the Job Card for the semi-finished or finished goods.

While making the Manufacture Stock Entry, the system will prompt the user to confirm whether they want to submit the entry. If the user selects "Yes," the system will create the Stock Entry in a Submitted state; otherwise, it will be created in a Draft state.

Workstation Dashboard

Using the workstation dashboard, users can start, pause, resume, and complete job cards. Also, users can transfer raw materials from the source warehouse to the WIP warehouse against the job cards from the workstation dashboard. If "Skip Material Transfer" has enabled then no need to transfer raw materials. Also users don't get the subcontracted operations in the workstation dashboard.

workstation-dashboard-png

Transfer Materials

For the 'Brake Making' operation, the user has not enabled 'Skip Material Transfer', so they must transfer raw materials from the 'Stores' to the 'Work In Progress' warehouse. For the 'Chain Making' operation, the user has enabled 'Skip Material Transfer,' so they do not need to transfer raw materials.

transfer-materials

Start Job

To start the job card, click on the 'Start' button from the menu. On start system auto fetch the employee of the logged in user and set it in the modal.

Pause Job

To pause the job card, click on the 'Pause' button from the menu.

Resume Job

To resume the job card, click on the 'Resume' button from the menu.

Complete Job with Auto Stock Entry

On click of 'Complete' button, system asks you to enter the quantity and system creates the auto stock entry with type as 'Manufacture'. This stock entry, consume the raw materials and add finished/semi-finished goods.

Start and Complete Jobs Using QR code

If you have QR codes for the job cards, you can use them to start and complete the job cards by scanning the QR codes in the 'Start Job'/'Complete Job' QR code fields.

start-complete-job-suing-qrcode

Translations

https://docs.frappe.io/erpnext/translations

ERPNext is available in various languages most of which has been contributed by ERPNext community.

The widely supported translations include French, Spanish, German, Turkish, Bosnian.

  1. How to contribute translations?
  1. Open Translations Tool from the awesome bar
  2. Select the language of your choice
  3. Click any source message from left sidebar for which you want to add translation.
  4. In the Translated Text field enter your suggested translation and click on Suggest.
  5. You can click on another source text from left sidebar and add another translation.
  6. Once you are done with all the translations you can click on Contribute Translations button.
  7. You can view the status of your contribution by clicking on the source text under Contributed Translations section.

Translation Tool
  1. Status of the Contributed Translation

After you submit your translation, it will be queued for verification. A member of the Frappe team/community will validate the contributed translation and set the status as Verified if the translation is correct. If the contributed translation is incorrect, the member of the Frappe team/community will reject that contributed translation.

Every week the translation server will create a Pull Request containing all the verified translations that were contributed.

  1. Become a Verifier for Translations

If you want to verify the translations contributed by other members of the community, sign-up on translate.erpnext.com. Verifiers can verify or reject the contributions.

Tree Master Renaming

https://docs.frappe.io/erpnext/tree-master-renaming

There are various documents in ERPNext which are maintained in a tree structure.

Read about managing tree structures to learn more.

Following are the steps to be followed for renaming the ID of a master which is maintained in a tree structure. Let's rename an Account for the instance.

Step 1: Go to the Tree View of the Document

Step 2: Go to the node of the Document which you wish to rename

When you click on that node, you will have an option to 'Rename' the document.

Tree Master Renaming
  • Step 3: Rename Account

When you click on rename, a box will pop-up wherein you will be allowed to rename the document.

Tree Master Renaming

Twitter Settings

https://docs.frappe.io/erpnext/twitter-settings

Note: This integration doesn't work anymore due to Twitter's API changes. This has been removed from ERPNext starting from v15.

Twitter related settings like OAuth can be configured here. ERPNext needs access to the API through which the post is shared and achieved using OAuth 2.0 Authentication Protocol.

  1. How to set up Twitter App

You must have Twitter App for your company. ERPNext interacts with this App for sharing Tweet.

1.1 Create Twitter Developer App

Create App by link and check that the App has Read and write Access permission.

https://developer.twitter.com/Twitter App Permission

1.2. Configure Callback URL

  1. Select your App and go to App Details.
  2. Then go to Edit and click Edit Details.
  3. Add your website URL in Callback URLs like:
  4. Click Save to make changes.
https://{yoursite}/api/method/erpnext.crm.doctype.twitter_settings.twitter_settings.callback

Twitter App Callback URL
  1. How to set up Twitter Settings

To access Twitter Settings, go to:

Home > CRM > Settings > Twitter Settings

Twitter Settings

2.1 API Key and API Key Secret

You get API Key and API Key Secret from your Twitter Developer account go to:

> My Apps > > Keys and tokens

https://developer.twitter.com/{Your App}

Twitter Keys Tokens

Once you save the doc by filling API Key and API Key Secret it will redirect to Twitter's sign-in page by providing valid Twitter credentials and clicking Authorize app, the member approves your application's request to access their member data and interact with Twitter.

Twitter Authorize App

Types in Tax Template

https://docs.frappe.io/erpnext/types-in-tax-template

In the Sales Taxes and Purchase Taxes master, you will find a column called Type. Following a brief on a meaning of each Type and how you can use it.

Calculate Tax Based On

Actual: This allows you to enter expense amount directly. For example, Rs. 500 incurred for Shipping.

On Net Total: If you want to apply any tax or charges on Net Total, select this option. For example, 18% GST applied to all the item in the Sales Order.

On Previous Row Amount: This option helps you want to calculate tax amount calculated based on another tax amount.

Example: Education Cess is calculated based on the amount of GST tax.

On Previous Row Total: For each Tax row, a cumulative tax is calculated in the Total column. For the first row, total tax is calculated as Net Total + Tax amount at first row. If you want to apply a tax on the Total Amount of another tax row, then use this option.

If you select Type as Previous Row Amount or Previous Row Total, then you must also specify a Row No. whose Amount or Total should be considered for the calculation.

On Item Quantity: This option can be used for fixed/item specific taxes.

UAE VAT 201 Report in ERPNext

https://docs.frappe.io/erpnext/uae-vat-201-report

To generate UAE VAT 201 Report in ERPNext go to:

Accounting > Value-Added Tax (VAT UAE) > UAE VAT 201 or simply search for UAE VAT 201 in the awesomebar.

UAE VAT 201 Report

To print the report, go to Menu > Print as shown in the screenshot below.

UAE VAT 201 Report Download

Note: To make sure the calculations in the report are correct, check the following:

Correct Emirate is selected in Company Address and Sales Invoice. The Sales Invoice Emirate field is auto filled using the selected Company Address but is editable.

Zero Rated or Exempted Items have "Is Zero Rated" or "Is Exempt" checkbox checked in the item master.

All VAT accounts are selected in UAE VAT Settings.

UAE VAT Account Settings

VAT/EXCISE Tax Implementation for UAE/KSA

https://docs.frappe.io/erpnext/uae-vat-setup

1. Setting up Tax Registration No for customer, supplier and company

Set Tax Registration Number in the field, Tax ID for the Customer, Supplier, and Company.

For Customer

TRN in Customer

For Company

TRN in Company

2. Setting up TAX Code for Products

Setup tax code in the item master, system will fetch same code in the sales/purchase invoice on selection of an item.

Tax Code in Item

3. Default Tax Templates

ERPNext provides you default tax template for vat(5%, zero, exempted) and excise(50%, 100%). You can create your own tax template.

Default Tax Template

3. Making VAT Ready Invoices

If you have setup the TRN of your Customers and Suppliers, and your tax template, you are ready to go for making VAT Ready Invoices!

For Sales Invoice,

  1. Select the correct Customer and Item and the address where the transaction will happen.
  2. Check if the TRN of your Company and Supplier have been correctly set.
  3. Check if the TAX Code has been set in the Item
  4. Select the template that you have created based on the type of transaction
  5. Save and Submit the Invoice

VAT Invoice

4. Print Tax Invoice

ERPNext provides two default print format

Simplified Tax Invoice

Simplified Tax Invoice

Detailed Tax Invoice

Detailed Tax Invoice

5. Set-up VAT Accounts

Select the accounts that will be used for creating VAT invoices here.

UAE VAT Account Settings

Unicommerce Integration

https://docs.frappe.io/erpnext/unicommerce_integration

Unicommerce is aggregator for many e-commerce platforms that allows you to sell items through many supported marketplaces and process order via unified interface called Uniware. Learn more about Unicommerce at https://unicommerce.com/

ERPNext Integration with Unicommerce

ERPNext offers a full 2-way integration with Unicommerce using Uniware's REST APIs. This integration is provided using Frappe App officially supported by Frappe team. Broadly this integration covers:

  1. Item catalogue syncing with Unicommerce (2-way)
  2. Inventory Syncing (1-way from ERPNext to Unicommerce)
  3. New Sales Order syncing
  4. Sales Invoice syncing OR Sales Invoice generation (Any one option should be used)

App Installation

  • If you are hosting your ERPNext site on Frappe Cloud, you can quickly install the app by going to your site Dashboard. The app is available in Frappe Cloud Marketplace
  • If your site is hosted by Frappe, please raise a support ticket to get the app installed on your site.
  • If you are self hosting ERPNext you can install the app using Frappe bench. Refer bench documentation for installing Frappe Apps.
bench get-app ecommerce_integrations --branch main

Authentication and basic setup

unicommerce auth setup
  1. Once app is installed go to "Unicommerce Settings" page.
  2. Click on "Enable Unicommerce" checkbox.
  3. Enter your Unicommerce site, username and password.
  4. Client ID is added by default, however if you've configured a separate client ID, you need to update it here. If you're unsure about your client ID, please get in touch with Unicommerce support team.
  5. Click "Save" this will initiate process of authenticating with Unicommerce and setting up custom fields for integration.
  6. Once this setup is finished you'll see access/refresh tokens in "Authentication Details" section. This implies that authentication was successful and you can now start working on further setup.

If authentication fails:

  1. Please recheck entered details.
  2. Your server might be getting blocklisted by firewall. Get in touch with Unicommerce support team to get your server's IP whitelisted.

Item Sync

This integration checks for newly created items and uploads them to Unicommerce on hourly basis. To enable this feature you need to setup following:

  1. Go to "Unicommerce Settings" and enable "Upload new items to Unicommerce".
  2. Set a Default Item Group. This is only used as fallback in case item group is missing.
  3. While creating a new item check "Sync with Unicommerce" checkbox, to upload that item to Unicommerce.
  4. This checkbox can also be enabled on existing items.

Unicommerce SKU code is immutable, hence you should not change Item Code after creation.

In order to correctly sync item group with product categories you need to map all item groups to their respective product categories on Unicommerce.

To map and item group to product category:

  1. First find product category code on Unicommerce.
  2. Open related Item Group on ERPNext and update Unicommerce product category code there.

Unicommerce product categoryERPNext item group

Item sync field mapping is as follows:

ERPNext field Unicommerce Field Comments
Item Code SKU Unicommerce SKU restrictions apply
Item Name Item Name
Description Description
Weight per unit Weight Only if set in Grams.
Shelf life in days Shelf life
HSN Code HSN Code
Image Image
Unicommerce item length Length
Unicommerce item width Width
Unicommerce item height Height
Disabled Enabled (opposite is mapped)
EAN barcode EAN
UPC Barcode UPC-A
Item group Product category

Inventory Sync

Once Item sync is setup Inventory Sync can be enabled. The integration checks for changes in ERPNext inventory and pushes them to Unicommerce on configured interval. ERPNext inventory levels are considered source of truth by the integration and Unicommerce inventory levels are overwritten by ERPNext's inventory values.

  1. Go to "Unicommerce Settings" and scroll down to "Inventory Sync" section.
  2. Check "Enable inventory Sync"
  3. Configure the sync frequency. Recommended frequency is 15 to 60 minutes.
  4. In Warehouse mapping table add all the facility codes you have in Unicommerce and map them with ERPNext warehouse.
  5. Check "Enabled" checkbox for all facilities you want to enable.
  6. Save the settings.

Note: All inventory is pushed to "DEFAULT" shelf. Unicommerce Shelves are not supported by this integration, make sure you only have one shelf on Unicommerce called "DEFAULT" to ensure correctness of inventory sync.

Note: Unicommerce, like other e-commerce intengrations does not support fractional inventory.

Sales Order Processing - Workflow

Following is workflow for processing orders on ERPNext. You can alternatively also process orders on Unicommerce and only sync finished order.

Unicommerce workflow

Sales Order Sync - Channel(s) Setup

Unicommerce Integration supports receiving and processing from multiple channel. To allow this, setup for Sales Order sync also has to be done in multiple stages.

Defaults for Sales Order Sync

default sales order sync
  1. Go to "Unicommerce Settings".
  2. Scroll to "Sales Order Sync" setting section.
  3. Setup order sync frequency. 30 to 60 minutes is recommended frequency.
  4. Setup default customer group and naming series for documents.

Channel specific Sales Order sync configurations

channel specific sales order sync

To allow for flexible configuration for each channel you need to create "Unicommerce Channel" document for each channel you want to enable for Sales Order sync.

  1. Go to "Unicommerce Channel" from searchbar or from Unicommerce settings page.
  2. Click "Add Unicommerce Channel"
  3. Fill in required details like channel ID, default warehouse, company, accounts and naming series.
  4. If Shipping for this channel is handled by marketplace then click "Shipping Handled by marketplace" or uncheck it.
  5. After fully configuring the channel click on "Enabled" checkbox.

New Sales Order created in Unicommerce will now start syncing with ERPNext. During this process if new item is encountered then it's created in ERPNext using information from Unicommerce. Relevant information about Unicommerce order is mapped to ERPNext fields, additional information can be found in "Unicommerce Details" section on Sales ORder.

Sales Invoice Sync

Sales Invoice syncing can be handled in one of two ways. Please select the appropriate option as per your needs.

If you want to process orders and invoices on Unicommerce and only sync fully processed orders in ERPNext then enable "Only Sync Completed Orders" in Unicommerce settings.

2. Processing invoice on ERPNext

If you want to process orders from ERPNext only then you need to generate invoice from ERPNext's Sales Order.

In order to generate invoice, go to synced Unicommerce Sales Order, click on "Unicommerce > generate invoice". This will create a Sales Invoice and deduc the stock too.

generate invoice button

Shipment Manifest

If you're processing orders on ERPNext using method #2 described above then you need to create and submit a shipping manifest to let Unicommerce know you've shipped the orders.

Pre-requisites is to setup following doctypes, you can find code on Unicommerce manifest creation page:

  1. Create Unicommerce Shipping Provider
  2. Create Unicommerce Shipping Method

Unicommerce shipment manifest

Process of creating manifest:

  1. Once you're ready to dispatch the packages to shipping provider, you should create "Unicommerce Shipment Manifest" document. Go to search bar > "Unicommerce Shipping Manifest" > + Add
  2. Select Channel ID, Shipping Method, and Shipping provider code.
  3. Now you can either use "Get Package" button to fetch open orders based on selected filters or use "Scan AWB Code" field to scan AWB of packages. Both will auto populate remaining details after saving.
  4. Once you're sure that all details look correct, save and submit the document.
  5. Upon submitting the manifest, same manifest is created and closed on Unicommerce and shipments are marked as "Dispatched". Unicommerce Manifest PDF is also fetched and attached to ERPNext manifest document.

Status Updates

Unicommerce details section

Status of Unicommerce is periodically updated in ERPNext, you can see the current status in the "Unicommerce details" section.

Order Cancellations

When order gets cancelled on Unicommerce, the integration syncs this action and cancels the order on ERPNext as well. Partially cancelled orders are also synced and cancelled items are removed from the ERPNext Sales Order. Both full and partial cancellations are synced on hourly basis and right before generating invoices.

Order returns

When return is created on Unicommerce, the integration syncs this action and creates a Draft Credit Note in ERPNext.

Both return cases are handled by integration:

  • RTO (return to origin) When shipment is returned to origin, shipment status changes and a Credit Note (with Update Stock) is created is created in ERPNext. Credit Note will be full return.
  • CIR (Customer Initiated Return) When a customer returns shipment, it is reflected on Unicommerce's Sales Order section. Full or Partial Credit note is created depending upon the nature of customer initated return.

You can view all returns by going to "Sales Invoice" and filtering by "Is Return" set to Yes. Return tracking code is also captured on Credit Note.

While creating returns, the return warehouse is picked based on configured Return Warehouse in Unicommerce settings. If it's not set, original warehouse will be used.

Unicommerce return warehouse

Requirements for United Arab Emirates

https://docs.frappe.io/erpnext/united_arab_emirates

ERPNext aims to support local regulation for different regions in the world. In most cases, ERPNext is very flexible, so you can easily add custom fields and make custom reports to support the regulation of your region.

This section contains region-specific features for the United Arab Emirates.

UnReconcile

https://docs.frappe.io/erpnext/unreconciliation

Reconciled Vouchers can be unreconciled without the need for cancellation. Sales/Purchase Invoices, Payment Entries and Journals will have 'UnReconcile' option available under 'Actions' drop down.

Screenshot 2023-11-09 at 4.00.32 PM

Screenshot 2023-11-09 at 4.00.39 PM

Screenshot 2023-11-09 at 4.00.50 PM

Unit of Measure (UoM)

https://docs.frappe.io/erpnext/uom

A UoM is a unit using which an Item is measured.

By default, there are many UoMs created in ERPNext. However, more can be added depending on your business use case.
In the UoM there is an option 'Must be Whole Number'. If this is checked, you cannot use fraction numbers in this UoM. To know more about fractions and UoMs, check out this page.

The UoM list by itself only stores the name. The actual conversion rates are stored in a document called 'UoM Conversion Factor'. If you add new UoMs and plan to use it in transactions where it'll be converted to other UoMs, it is advised that you add it to this list.

For example, here 1 Kg is approximately 2.2 Pounds and the exact conversion factor is stored:

Generate GSTR-1 JSON File

https://docs.frappe.io/erpnext/update-gstr-1-data-in-gst-offline-tool

Follow below steps to generate JSON file using ERPNext.
**Setup GST Parameters:**Go to Accounts > Goods and Services Tax (GST India) > GST Settings and update GST parameters.
**Report GSTR-1:**Go to Accounts > Goods and Services Tax (GST India) > GSTR-1. Also, you can search in awesome bar.
**Select Return period and Type of Business:**Update filters as per return period and type of Business ( invoice Type) to get the required data.
**Download GSTR-1 Data:**Go to Menu and export and download GSTR-1 Data.
**GST Return Offline Tool:**Open GST Offline Tool. (Download Offline Tool from GST Portal)Press New button and update GST return type, GSTIN Fiscal Year and Tax Period in Offline Tool .
Select Section and Import GSTR-1 CSV in Offline Tool.
Generate and Download JSON file.
Upload JSON file on GST Portal.

Delivery from Sales Invoice

https://docs.frappe.io/erpnext/update-stock-option-in-sales-invoice

If you have items delivery and invoicing happening at the same time, you can create delivery from with Sales Invoice itself. Sales Invoice has field called Update Stock, just before Item table. If this field is checked, on submission of Sales Invoice, stock of Item will be deducted from selected Warehouse.

Update Stock via Sales Invoice

On checking Update Stock, Sales Invoice Item will show relevant fields like Warehouse, Serial No., Batch No., Item valuation etc.

On submission of Sales Invoice, with general ledger posting, stock ledger posting will happen as well.

Update Subscription Payment Method

https://docs.frappe.io/erpnext/update-subscription-payment-method

On erpnext.com, you can subscribe for a monthly plan either by using Paypal or using your credit card. Once subscribed, the amount is deducted monthly from your card.
If, for any reason you need to change the Credit Card you are paying from, you will first need to cancel the existing subscription. After the current site expires, you can re-subscribe again with a new card.
To cancel the current subscription, click on Settings > Manage Subscription.

After this on the checkout screen, scroll down and cancel the subscription.

When the current subscription expires, you can start the subscription again with a new card. Your account expiry date can be checked via the Manage Subscription option seen earlier:

User Permission based on Hierarchy

https://docs.frappe.io/erpnext/user-permission-based-on-hierarchy

Question:

How to configure User Permissions, so that an Employee can view his Expense Claims, and also of ones who report to him/her?

Answer:

In the Employee master, for each Employee, you can define who does he/she reports to. Based on the Reports To defined, the Employee hierarchy is built as well.

Employee Hierarchy

Also, one a User is linked with the Employee, it creates a User Permission as follows. As per this User Permission, Employee will be allowed to review his/her own document created in the HR module + the document which are created for Employees reporting to hm/her.

As per this configuration, when an Expense Claim is being created by the User reporting to Kenneth, it will also be accessible to Kenneth as well.

Can you please ensure that seniors Employee ID is updated as Reports To in the Employee's who report to him/er? After that, manager should be able to view the Expense Claims and other documents (like Leave Application, Appraisal etc.) made for his/her sub-ordinates.

User Permissions

https://docs.frappe.io/erpnext/user-permissions

User permissions is a way of restricting user access to particular documents.

Role based permissions allow setting complete (by default) access to a document type (doctype) like Sales Invoice, Orders, Quotation, etc. This means that when you assign a Sales User role to a user, they can access all the Sales Orders and Quotations.

User Permissions can be used to restrict access to select documents based on the link fields in the document. For example, consider that you do business with multiple territories and you want to restrict access of certain Sales Users to Quotations/Sales Order belonging to a particular territory. This can be done via User Permissions. The restrictions can be set on Customer, Supplier, Customer Group, Supplier Group, etc.

Setting User Permissions are particularly useful when you want to restrict based on:

  1. Allowing user to access data belonging to one Company
  2. Allowing user to access data related to a specific Customer or Territory

To access User Permissions, go to: > Home > User and Permissions > User Permissions

  1. How to create User Permissions
  1. Go to the User Permissions list, click on New.
  2. Select the user for which the rule has to be applied.
  3. Select the type of document to be allowed (for example "Company").
  4. Under For Value, select the specific item that you want to allow (the name of the "Company).
  5. If you check 'Is Default', the value selected in 'For Value' will be used by default for any future transactions by this user. That is if company 'Unico Plastics Inc.' is selected as 'For Value', this Company will be set as default for all future transactions by this user.

Creating a new user permission

Note: Only a single user permission can be set as default for a particular document type for a specific user.

  1. More User Permission actions

2.1 Advanced Control

In Advanced Control, you can have better command over where the User Permission is applied.

2.1.1. Applicable For

You can optionally apply user permissions only for specific document type by setting the Document Type after unchecking the Apply To All Document Types checkbox. Setting Applicable For option will make the current user permission applicable only under the selected Document Type master.

Applicable For

In the above User Permission, the user will be able to access only Sales Orders of the selected company.

Note: If Applicable For is not set, User Permission will apply across all related Document Types.

2.1.2. Hide Descendants

The value of Allow could be a DocType with a Tree View, which will have records with a parent-child or ancestor-descendant relationship.

Let's assume For Value, 'Unico Plastics Inc.', has a child company 'Unico Toys'. When a User Permission is created for 'Unico Plastics Inc.', permissions for its descendants are granted as well.

Hide Descendants is visible only on selecting a Tree View DocType. By enabling this checkbox, permissions for descendants of For Value will not be granted.

Hide Descendant Permissions

A user that can view records of 'Unico Plastics Inc.' will not be able to view those of 'Unico Toys'.

2.2 Ignoring User Permissions on Certain Fields

Another way of allowing documents to be seen by everyone that have been restricted by User Permissions is to tick "Ignore User Permissions" on a particular field by going to Customize Form.

For example, you don't want Assets to be restricted for any user, then select Asset in form type. Under the fields table, expand the Company field and tick on "Ignore User Permissions".

Ignore User Permissions on specific properties

2.3 Strict Permissions

When user permissions are defined, for a particular role - the role permissions are only applied when the user permission are defined. When there are no user permissions for a particular user, there could be two interpretations:

  1. Show everything (nothing is restricted)
  2. Show nothing (nothing is permitted)

You can choose how to interpret this the way you want by checking "Apply strict permissions" on the System Settings page.

To know more, go to the System Settings page.

2.4 Checking How User Permissions are Applied

Finally, once you have created your air-tight permission model, and you want to check how it applies to various users. You can see it via the Permitted Documents for User report. Using this report, you can select the User and document type and view which documents a particular user can access.

Ticking on the Show Permissions checkbox will show the read/write/submit and other access levels.

Permitted Documents for User report

Note: If you cannot access Sales Order or any other document type in this list, make sure you've set the roles correctly.

For example, the user, Bruce is restricted to Company 'Unico Plastics Inc.'

User restricted to Company
  1. Adding Users
  2. Role and Role Profile
  3. Role Based Permissions
  4. Role Permission For Page And Report

Payment Ledger

https://docs.frappe.io/erpnext/user/manual/en/payment_ledger

A Separate Ledger that only records transactions on Receivable and Payable accounts. Account type should be set to or for transactions to be recorded in Payment Ledger.

ReceivablePayable

Ex:

A Sales Invoice of ₹1000 and a Payment Entry against that invoice will look like below.

Screenshot 2022 05 18 at 11.13.28 AM

Usage

Reports

Accounts Receivable, Account Receivable Summary, Account Payable and Account Payable Summary uses Payment Ledger as its source.

Tools

Payment Reconciliation and its extension Semi-Auto Payment Reconciliation tools uses Payment Ledger to calculate outstanding Invoices. Reconciliation process only updates Payment Ledger.

Using Custom API Rows in Financial Report Template

https://docs.frappe.io/erpnext/using-custom-api-rows-in-financial-report-template

A row with Data Source set to "Custom API" gets its values from a server-side Python function instead of account filters or a formula.

This works in templates used by "Balance Sheet", "Profit and Loss Statement", "Cash Flow", and "Custom Financial Statement".

When To Use It

Use a row when a report line depends on custom business logic, budget data, external aggregates, or calculations that are not available through standard account filters.

Custom API

If you need to combine that result with other report lines, add a later row with Data Source set to "Calculated Amount".

How To Set It Up

  1. Open your Financial Report Template.
  2. Add a row in the Report Line Items table.
  3. Set Data Source to "Custom API".
  4. In Formula or Account Filter, enter a dotted Python path such as .
  5. Optional: set Line Reference if later formula rows should reuse this result.
  6. Optional: use Reverse Sign, Hide If Zero, Hidden Line (Internal Use Only), Include in Charts, and Value Type the same way you would on other rows.
my_app.financial_report_api.get_budget_variance

How ERPNext Calls Your Function

ERPNext calls the target function on the server and passes:

  • : the current report filters, as a dict-like object
  • : the generated period list for the report
  • : the current Financial Report Row document
filtersperiodsrow

Each item in includes values such as:

periods
from_dateto_datekeylabel

Your function can accept all three arguments, or only the ones it needs.

Example

from frappe.utils import flt

def get_budget_variance(filters=None, periods=None, row=None):
    filters = filters or {}
    periods = periods or []

    values = []

    for period in periods:
        # Replace this placeholder logic with your own query or calculation.
        variance = 0.0
        values.append(flt(variance))

    return values

Return Requirements

  • Return a list of numeric values.
  • Return exactly one value for each period in .
  • Return values in the same order as .
periodsperiods

If the row has a Line Reference, later formula rows can use that code, for example .

API001 + SALES001

Important Notes

  • The path must be in the format .
  • The target should be a module-level Python function in an installed app.
  • is not required for this feature unless you also want to call the same function from .
  • Server Scripts are not currently supported for rows.
  • rows are processed before account-based and formula-based rows, so they should not depend on other template line results.
  • If the function raises an error, ERPNext writes an error log entry and fills the row with zeros instead.
app.module.method@frappe.whitelist()/api/methodCustom APICustom API

Troubleshooting

  • If you see a validation error about the API path, check that the path is written as .
  • If you see "Method not found", confirm that the function exists in that module and the app is installed on the site.
  • If the row shows zeros, review Error Log for a entry.
  • If a formula row cannot use the API result, make sure the source row has a Line Reference and that the formula uses the same code exactly.
app.module.methodCustom API Error

Purchase Return

https://docs.frappe.io/erpnext/v12/user/manual/en/stock/purchase-return

A purchased Item being returned is known as a Purchase Return.

With the Purchase Return feature, you can return products to the Supplier. This may be on account of a number of reasons like defects in goods, quality not matching, the buyer not needing the stock, etc.

1. Prerequisites

Before creating and using a Purchase Return, it is advised that you create the following first:

Or

Purchase Receipt

2. How to create a Purchase Return

  1. First open the original Purchase Receipt, against which supplier delivered the Items.

Original Purchase Receipt
  1. Click on 'Create > Return', it will open a new Purchase Receipt with 'Is Return' checked. Items, Rate, and taxes will negative numbers.

Return Against Purchase Receipt
  1. On submission of Return Purchase Return, the system will decrease item quantity from the mentioned Warehouse. To maintain correct stock valuation, stock balance will also go up according to the original purchase rate of the returned items.

Return Stock Ledger
  1. In the Accounting Ledger, the Stock In Hand account will be credited and the Stock Received but Not Billed account will be debited.

Return Stock Ledger

If Perpetual Inventory enabled, the system will also post accounting entry against warehouse account to sync warehouse account balance with stock balance as per Stock Ledger.

3. Impact on Stock Return via Purchase Receipt

On Creating a Purchase Return against a Purchase Receipt:

The Returned Quantity in the original Purchase Receipt along with any Purchase Order linked to it, is updated.

The original Purchase Receipt's status is changed to Return Issued if 100% returned:

Return Issued
  1. Sales Return
  2. Perpetual Inventory

Integration Categories

https://docs.frappe.io/erpnext/v14/user/manual/en/erpnext_integration

ERPNext provides a wide range of integration capabilities that allow businesses to seamlessly connect with various third-party applications and services to enhance operational efficiency and data flow.

These integrations span across e-commerce platforms, payment gateways, shipping providers, Google services, e-commerce providers, etc. By integrating ERPNext with these systems, businesses can streamline their processes, reduce manual data entry, improve data accuracy, and gain deeper insights into their operations, which will eventually help in making informed business decisions.

To integrate ERPNext with other applications that aren't listed here, you can use Frappe's REST API. Visit this link to learn more about it:

Frappe Rest API

Authentication Integrations

Backup Integrations

Bank Integrations

E-commerce Integrations

Shipping Integrations

Payment Integrations

Telephony Integrations

Google Integrations

Raw material valuation

https://docs.frappe.io/erpnext/valuation-based-on-field-in-bom

Question: What are for various options in in the Bill Of Materials (BOM)?

Valuation Based On

Answer: There are 3 available options in the Valuation Based On field:

Nested BOM

Valuation Rate: Item valuation rate is defined based on it's purchase or manufacture value.

For Purchase Item, it is defined based on charges entered in the Purchase Receipt. If you don't have any Purchase Receipt made for an item or a Stock Reconciliation, then there won't be any Valuation Rate for that item.

Price List Rate: This option allows to pull item rates from Price List.

Last Purchase Rate: It will be the last Purchase (Order) Rate of an item.

VAT Audit Report

https://docs.frappe.io/erpnext/vat_audit_report

Introduced in version 13

VAT Audit Report shows the amount details of each item from the Purchase and Sales invoices for specified time period.

South Africa VAT Account Settings

You need to add the VAT Accounts in the South Africa VAT Settings for which you want to generate the report.

South Africa VAT Account Settings

Note:

Check the following to make sure the calculations in the report are correct,

Zero Rated items have "Is Zero Rated" checkbox checked in the item master.

All VAT accounts are selected in South Africa VAT Settings.

Currently, this report only maps invoice data.

Warehouse

https://docs.frappe.io/erpnext/warehouse

A warehouse is a commercial building for storage of goods. Warehouses are used by manufacturers, importers, exporters, wholesalers, transport businesses, customs, etc.

They are usually large plain buildings in industrial areas of cities, towns, and villages. They mostly have loading docks to load and unload goods from trucks.

The terminology of 'Warehouse' in ERPNext is a bit broader though and maybe can be regarded as "storage locations". You can create a sub-Warehouse which could be a shelf inside your actual location.

This can become quite a detailed Tree like the following:

Warehouse > Room > Row > Shelf > Bin

To access the Warehouse list, go to:

Home > Stock > Settings > Warehouse

1. How to create a Warehouse

  1. Go to the Warehouse list, click on New.
  2. Enter a name for the Warehouse.
  3. Set/check the Parent Warehouse. If you tick on 'Is Group', you can create sub-Warehouses under this group Warehouse.
  4. Save.

Warehouses are saved with their respective Company’s abbreviations. This facilitates identifying which Warehouse belongs to which company at a glance.

1.1 Additional options when creating a Warehouse

Account: Set a default account here for all transactions with this Warehouse. Setting this account will show transactions from this Warehouse in the Accounting Ledger. Warehouse Type: You can create a Warehouse Type to classify Warehouses. For example, Supplier Warehouses, Stock Warehouses, WIP Warehouses, Rooms, etc. can be tagged. This classification is useful when generating reports or in certain stock transactions.

Address and contact

You can add Billing, Shipping, and other types of addresses for the Warehouse. You can also add a contact, this could be the Warehouse Manager for example.

Warehouse

1.2 After Saving

After saving a Warehouse, you'll see the following options:

  • Stock Balance: This will open the Stock Balance report to display the quantity, valuation, balance, etc.
  • General Ledger: This will open the General Ledger to display the accounting transactions.
  • Non-Group to Group: If the Warehouse is a Non-Group Warehouse, i.e. cannot contain other Warehouses under it, this button will make this a Group Warehouse.

2. Features

2.1 Tree View

You can also switch to 'Tree' View which will show all the group and child Warehouses.

Warehouse

2.2 Warehouse Account

In ERPNext, if you enable Perpetual Inventory, every Warehouse must belong to a specific company to maintain company-wise stock balance. To do so, each Warehouse should be linked with an Account in the Chart of Accounts (the same name as the Warehouse itself). This account captures the monetary equivalent of the goods or materials stored in that specific warehouse.

If you have a more detailed Warehouse Tree, most likely it's a good idea to link the sub-locations (room, row, shelf, etc.) to the account of the actual Warehouse (the root Warehouse of that Tree) as most scenarios do not require to account for value of stock items per Shelf or Bin. For example, if you have Warehouse A, and the room, rows are B, C, etc., then link B and C to the account of A.

Tip: ERPNext maintains stock balance for every distinct combination of Item and Warehouse. Thus you can get the stock balance for any specific Item in a particular Warehouse on any particular date.

  1. Stock Entry Purpose
  2. Stock Level Report

Warranty

https://docs.frappe.io/erpnext/warranty

By effectively managing warranty claims and serial numbers within ERPNext's Support module, users can streamline customer support processes, ensure accurate tracking of warranty-related information, and enhance overall customer satisfaction by providing timely and effective resolutions to warranty claims.

Warranty Claim

https://docs.frappe.io/erpnext/warranty-claim

A Warranty Claim is when a Customer claims free repairs within the Warranty Period of the item/service you're providing.

If you are selling Items under warranty or if you have sold and extended service contract like the Annual Maintenance Contract (AMC), your Customer may contact you about an issue or a break-down of the product and provide you the Serial No of this Item.

To access the Warranty Claim list, go to:

Home > Support > Warranty > Warranty Claim

  1. Prerequisites

Before creating and using Warranty Claim, it is advised that you create the following first:

  1. How to Create Warranty Claim
  1. Go to the Warranty Claim list, click on New.
  2. Select a Customer.
  3. Select the Serial Number of the Item on which Warranty Claim is to be recorded. The system will then automatically fetch the Serial No’s details and indicate whether this is under warranty or AMC.
  4. Enter a description of the Issue. User can upload and image and create a table.
  5. Save.
Warranty Claim

2.1 Additional Options when Creating a Warranty Claim

Status: While creating a Warranty Claim, the status will be set as "Open". User can change the status to:

  • Work In Progress: Fix/repairs are being done on the Item.
  • Closed: The repairs have been done and the Warranty Claim is now closed.
  • Cancelled: The Warranty Claim was invalid, and the claim was closed.

Issue Date: While creating the Warranty Claim, the current date will be captured. This field is editable.

3 Features

3.1 Item and Warranty Details:

Once a Serial Number is selected, the following details about the Item will be fetched:

  • Item Code
  • Item Name
  • Item Description

The details about Warranty/AMC will be fetched according to the Serial Number.

  • Warranty / AMC Status: The possible options are "Under Warranty", "Out of Warranty", "Under AMC", or "Out of AMC". The status can be changed to Out of Warranty/AMC if the Item has been tampered with or Warranty is void depending on your terms of service.
  • Warranty Expiry Date
  • AMC Expiry date

Warranty Serial

3.2 Resolution

  • Resolution Date: When the warranty or AMC is Closed, current date and time will be fetched in resolution Date field automatically. This field is also editable.
  • Resolved By: Set the Email ID of the User who has resolved the Warranty Claim. The email ID is linked with User created in the system.
  • Resolved Details: This is a text field. User can enter details about the Warranty or AMC claim. A User can also upload the image, enter or create a table.

Warranty Resolution

3.3 Customer Details

The following details of the Customer will be fetched:

  • Customer Name
  • Contact Person
  • Territory
  • Customer Group
  • Customer Address

Service Address: User can enter the Service Address if it is different from Customer Address.

Warranty Customer

3.4 More Information

  • Company: The Warranty or AMC is created from the company will be selected automatically.
  • Raised By: User can enter the Name of the person who has raised the Warranty or AMC in case the Customer is an organization.
  • From Company: User can enter the name of the company from which the warranty or AMC has been created.

If a Customer visit is required to address the issue, you can create a new Maintenance Visit record from this.

  1. Related Topics
  1. Issue
  2. Maintenance Visit

Web Forms

https://docs.frappe.io/erpnext/web-form

Stakeholders who are not part of your organization may need to interact with your ERPNext instance. You can authorize customers, suppliers, job applicants, students, and guardians to access certain information or even create certain transactions. For example, you can let anyone create an account on your website (created with ERPNext) and apply for a job. You can let your customers see the details of the complaints they have registered. These can be done using Web Forms.

There are two types of in-built interfaces available in ERPNext. The > Desk View and the Web View. Desk is for users who regularly interact > with ERPNext instance, like employees of your organization.

Web View is for users who need to interact with an ERPNext instance occasionally. > Web forms are similar to the forms you generally fill in various websites on the > internet. Webforms are part of the Web View interface in ERPNext.

To create a new Web Form go to:

Home > Website > Web Site > Web Form

New Web Form

New Web Form

Select the DocType based on which you want to build your Web Form. The Route will be set based on the Title of your Web Form. You can also add an Introduction text to show a friendly message above your form.

Add fields to your Web Form. These are the fields from the DocType you have selected. You can change the Label for these fields. Try to keep number of fields to be minimum as long forms are cumbersome to fill.

Web Form Fields

Web Form Fields

Click on See on Website in the sidebar to view your Web form. Web Form

Web Form

Here is an explanation of each of the checkboxes on the right.

Published: Web Form will be accessible only if this is enabled.

Login Required: User can fill the Web Form only if they are logged in. When Login Required is checked,

Route to Success Link: Go to Success Link after the form is submitted.

Allow Edit: If this is unchecked the form becomes read-only once it is saved.

Allow Multiple: Allow user to create more than one record.

Show as Grid: Show records in a table format.

Allow Delete: Allow user to delete the records that he/she has created.

Allow Comments: Allow user to add comments on the created form.

Allow Print: Allow user to print the document in the selected Print Format.

Allow Incomplete Forms: Allow user to submit form with partial data.

Features

2.1 Sidebar

You can also show contextual links in a sidebar on your Web Form. Set it up in Sidebar Settings.

Web Form Sidebar

Web Form Sidebar

Web Form with Sidebar

Web Form with Sidebar

2.2 Creating Web Forms with Child Table

You can add child tables to your web forms, just like regular forms.

Web form Grid

2.3 Payment Gateway Integration

You can now add a Payment Gateway to the web form, so that you can ask users to pay against a web form. A good example for this is a conference ticket.

Web form payment

2.4 Portal User

We have also introduced roles for Website users. Before version 11, if you assigned any 'Role' to a user he would get access to 'Desk View'. From version 11 you can assign a 'Role' but still disallow access to 'Desk View' by unchecking 'Desk Access' in Role.

Disallow Desk Access

In Portal Settings, you can set a role against each menu item so that only users with that role will be allowed to see that item.

portal settings

2.5 Custom Script

You can write custom scripts for your Web Form for things like validating your inputs, auto-filling values, showing a success message, or any arbitrary action.

To learn how to write custom scripts for your Web Forms, read Custom Scripts documentation.

2.6 Custom CSS

You can customize the look and feel of your Web Form by writing your own Custom CSS. Inspect the elements on the page to see what classes are available for styling. Learn more about CSS here.

2.7 Actions

You can add the text in 'Success Message' field and this text will be shown to user once he successfully submits the web form . And the user is redirected to the URL given at 'Success URL' when clicked on 'Continue' button. This is only applicable to webforms accessible without the user login(webforms with 'Login Required' checkbox unchecked).

Success Message

2.8 Result

When a website user submits the form, the data will be stored in the document/doctype for which web form is created.

2.9 Customizing

For customizing web forms, see the Frappe Web Forms Documentation

Web Page

https://docs.frappe.io/erpnext/web-page

Static Content like your Home Page, About Us, Contact Us, Terms pages can be created using the Web Page.

To access Web Page go to:

Home > Website > Web Site > Web Page

  1. How to create a Web Page
  1. Go to the Web Page list and click on New.
  2. Enter a Title and add content in Main Section. The route will auto generated but you can change it.
  3. Click on Save.
  4. The web page will be published only when Published is ticked.

New Web Page

New Web Page

View your Web Page by clicking on See on Website in the side bar.

Web Page

Web Page

1.1 Tips on making a good Web Page

Title

The first thing to set is the title of your page. The title has the maximum weight for search engines so choose a title that reflects the keywords that you are targeting for your audience. The route (URL) will be auto-generated from the title but you can change it.

Content

You can write your content in Rich Text, Markdown or HTML. If you want to make simple content pages, Rich Text and Markdown are great options.

Learn markdown in a few minutes at Mastering Markdown.

Images

For Rich Text Content, you can directly embed images using the editor. For Markdown and HTML, you must attach the images to the document first. Now get the URL of your image by right-clicking on your attachment and copying the address.

Image Link

Now, add them to your Markdown or HTML using the appropriate syntax.

<!-- markdown -->
![Alt Text](/path/to/image-url.png)

<!-- html -->
<img alt="Alt Text" src="/path/to/image-url.png">
  1. Features

2.1 Slideshow

You can also add a Slideshow to your Web Page. Refer how to create a Slideshow at Homepage Slideshow

2.2 Scheduled Publishing

You can schedule your Web Pages for publishing if you set Start Date and End Date for your Web Page. They will be set as published within the date ranges and will be unpublished outside the range automatically.

Unpublished pages will throw an when they are visited.

Error 404

2.3 Javascript and CSS

You can add a JS script to your Web Page in the Script section. Make sure to write your script inside the callback.

frappe.ready
frappe.ready(() => {
    // your script here
});

You can add CSS styling to your Web Page in the Style section. Inspect the elements to see what classes are available for styling. If you are using HTML Content, you can use your own classes and style them here.

2.4 Sidebar

You can add a Website Sidebar with custom links on your Web Page. In the Sidebar and Comments section enable Show Sidebar. Select an existing Website Sidebar or create a new one.

Web Page Sidebar

Web Page Sidebar

Add links and their route in the Sidebar Items table. Website Sidebar

Website Sidebar

Web Page with Sidebar

Web Page with Sidebar

2.5 Comments

You can enable comments on your Web Page where people can leave a comment with their Name and Email. Enable comments from the Sidebar and Comments section.

Web Page Comments

Web Page Comments

2.6 Header

You can add a custom HTML for the header section of the page. This will override the title of the Web Page.

Web Page Header

Web Page Header

Web Page with Custom Header

Web Page with Custom Header

2.7 Breadcrumbs

You can add a list of breadcrumbs on your Web Page. These will be shown on top before the header.

Web Page Breadcrumbs

Web Page Breadcrumbs

Web Page with Breadcrumbs

Web Page with Breadcrumbs

2.8 Meta Tags

You can also add Meta Tags to your Web Page. You must add the property key and its value in the Meta Tag Table and it will auto-generate HTML tags on your Web Page.

meta

Web Page Meta Tags

Web Page Meta Tags

Web Page Builder

https://docs.frappe.io/erpnext/web-page-builder

Introduced in Version 13

Page Builder lets you quickly create web pages from pre-configured web templates.

1. How to create a page using Page Builder

  1. Follow the steps to create a Web Page.
  2. Enable full width by ticking the "Full Width" checkbox.
  3. Select Content Type as Page Builder.
  4. Click on Add Row in the Page Building Blocks Table.
  5. Select a Web Template.
  6. Click on the Edit Values button.
  7. Enter values in the dialog and click on Submit.
  8. Click on Save.
  9. The web page will be published only when Published is ticked.

New Web Page with Page Builder

New Web Page with Page Builder

Page Builder Edit Values Dialog

Page Builder Edit Values Dialog

View your Web Page by clicking on See on Website in the sidebar.

Web Page with Page Builder

Web Page

1.1 Add Sections

You can add more sections to your page by adding more rows in the Page Building Blocks table. The framework comes with a great set of Web Templates for you to create all sorts of pages.

Web Page with another section

More Sections

Web Page with another section - Preview

More Sections - Preview

1.2 Section Options

If you click to expand a row in the Page Building Blocks table, you have the following additional options:

  • Add Container: If checked, the web template will be rendered in a centered constrained box.
  • Add Space on Top: If checked, it will add a decent amount of space above the section.
  • Add Space on Bottom: If checked, it will add a decent amount of space below the section.
  • Add Gray Background: If checked, it will add a gray background to the section.
  • Hide Block: If checked, it will hide the section block.
  • CSS Class: Add any CSS class and style it in the CSS field in the Style section.

Section Options

Section Options

Website Setup

https://docs.frappe.io/erpnext/website

Setting up a website in ERPNext involves a seamless process to establish an online presence for your businesses. There is a user-friendly Website module that allows users to create, customize, and manage their websites with ease.

Users can start by selecting a theme from a range of pre-designed templates or create a custom design using ERPNext's built-in tools. The Website module provides intuitive drag-and-drop functionality for adding and arranging elements such as text, images, videos, forms, and interactive components.

Website Banner Resizing

https://docs.frappe.io/erpnext/website-banner

Each ERPNext account website automatically generated from it. On a website, logo is set based on logo image selected in the Setup Wizard. You can change or edit property for your company's logo from the Website Settings.

Explore > Website > Website Settings

For the exact steps on how to upload a Website Banner and resize it, please refer to the help given below.

Website Banner image

Website Components

https://docs.frappe.io/erpnext/website-components

ERPNext offers a diverse set of website components that cater to various needs, including webpage elements like web forms, sidebars, and slideshows.

Web forms in ERPNext allow businesses to gather customer data efficiently through customisable forms embedded directly on web pages. Sidebars provide a convenient space on web pages to display navigational links, social media feeds, or promotional content, improving user experience and engagement. Slideshows are dynamic components that showcase images or promotions in a visually appealing manner, grabbing visitors' attention and conveying key messages effectively.

By leveraging these website components in ERPNext, businesses can create interactive, user-friendly web experiences that drive engagement and support their digital marketing strategies.

Website Home Page

https://docs.frappe.io/erpnext/website-home-page

It is very much possible in ERPNext to setup certain standard page as default website Home Page. Following are steps to setup default website home page.

Step 1: Create a Web Page

To create a web page go to: and then click on the button in the upper right.

Website > Web Site > Web PageNew
  • Fill in the page title
  • Give the page a route (keep it lower case)
  • Add content to the section. If you want, you can use markdown to create a more complex page.
  • Tick (Check) the check box
  • Click the button.
Main ContentPublishedSave

Step 2: Open Website Settings Page

To Open website settings page go to:

Website > Setup > Website Settings

Step 3: Set Home page

Enter the same value you entered for the field in the previous section to the field. ERPNext will set this route to be the same as /index for your page.

routeHome Page

Website Setting Home

Step 4: Save Website Settings Form.

After setting up Home Page Press button from website settings page and refresh the system from Help menu. Like this you can set any standard page as your default website home page. When some one visited to your website, he/she will see home page as default landing page on your website.

Save

Website Route Meta

https://docs.frappe.io/erpnext/website-route-meta

Arbitrary meta tags can be added in your web pages using Website Route Meta.

Meta Tags are invisible tags that provide data about your page to search engines and website visitors. When used correctly, these tags may help boost your SEO and rankings on popular search engines. These tags will be placed in the `` section of your page. ERPNext allows you add arbitrary meta tags in your web pages to improve the SEO of your pages.

To access Website Route Meta go to:

Home > Website > Web Site > Website Route Meta

1. How to add meta tags to a web page

  1. Go to the Website Route Meta list and click on New.
  2. Enter the route. Make sure the route doesn't start with a slash (). A Web Page for this route should exist.
  3. Add key value pairs for each meta tag. For e.g., to add keywords to your web page, enter "keywords" as the Key and add comma separated keywords in the Value column.
  4. Click on Save.
/

New Website Route Meta

New Website Route Meta

Now if you check the page source of your web page, the meta tags will look something like this:


Note: Meta Tags are not only limited to Web Page, but they can be added to any route that has a website page in ERPNext.

For e.g., You can add meta tags to your blog posts if you know the route which you can get from the Blog Post form.

Website Settings

https://docs.frappe.io/erpnext/website-settings

Website related settings like landing page and website wide theme can be configured here.

To access Website Settings, go to:

Home > Website > Setup > Website Settings

1. Landing Page

Configure the default landing page of your website by setting the Home Page field to the route of that page. You can put any route here including standard routes like , , , , , and .

homeaboutcontactloginall-productsblog

You can also set a Web Page as the landing page.

If you want to use the ERPNext Homepage, you must set it as .

home

Website Settings - Landing Page

Website Settings - Landing Page

You can also set the Title Prefix here. It will be appended to the browser title on every page. You can put your company name here.

2. Website Theme

Create a personalized theme for your Website and set it here. Learn more about configuring Website Theme here.

3. Brand

You can set the brand logo for your website in this section. Upload the Brand Image first and then click on "Set Banner from Image" button. It will generate a Banner HTML with your uploaded logo.

Website Settings - Banner Image

Website Settings - Banner Image

3.2 Favicon

You can also set the favicon of your website in this section. It appears on the left side of the browser tab.

Website Settings - Favicon

Website Settings - Favicon

View your website by clicking on View Website in the action bar on top right.

Website with Brand and Favicon

Website with Brand and Favicon

4. Top Bar

You can customize the menu items in the navbar of your website from the Top Bar section.

Website Setting - Top Bar

Website Setting - Top Bar

Website Navbar Items

Website Navbar Items

5. Banner

You can add a persistent banner to your website which will be shown above the navbar on all web pages. You can write any valid Bootstrap 4 markup here.

Website Settings - Banner

Website Settings - Banner

Website Banner

Website Banner

You can add address information and categorized links to your footer in the Footer section.

Website Settings - Footer Address

Website Settings - Footer Address

Website Settings - Footer Links

Website Settings - Footer Links

Website Footer

Website Footer

Configuring "Powered by" Section

You can configure Powered by section by editing "Footer Powered By"

7. Google Integrations

7.1 Google Indexing

How to set up automated Google Indexing

In order to allow ERPNext to request Google crawlers to index a web page, you need to authorize ERPNext to send a request whenever the user requests the data. Google Drive Integration is set up with the following steps:

Create OAuth 2.0 Credentials via Google Settings

Enable indexing in the Website Settings

Now click on Authorize API Indexing Access to authorize ERPNext to send a publish request.

Once Authorized, an indexing request is automatically sent on creation/update/trash of any new blog post or web pages created via the user.

Google Integrations

Google Integrations

7.2 Google Analytics

You can enable Google Analytics on your website. Just get your Google Analytics ID from your Google Console and set it here.

By default, Google Analytics will collect the full IP address of your website visitors. By checking "Google Analytics Anonymize IP", ERPNext will instruct Google Analytics to anonymize the IP address before it is sent to Google servers. You can find out more about the effect of this setting in Google's documentation.

8. HTML Header

You can use this section to set meta tags across all of your web pages. A common use case is to add Google site verification tags.

Website Settings - Header

Website Settings - Header

9. Robots

You can define rules in this section. This information is used by web crawlers to decide which pages to index and which to skip.

robots.txt

Website Settings - Robots

Website Settings - Robots

Learn more about at Moz - Robots.txt

robots.txt

10. Redirects

You can define a mapping of route redirects here. The mappings in the following screenshot makes sure that if a user visits , they will be redirected to .

https://apple.erpnext.com/iphonehttps://apple.erpnext.com/products/iphone

ERPNext will raise a response for these routes.

301 Permanent Redirect

Website Settings - Routes Redirects

Website Settings - Routes Redirects

If you are migrating your existing website to ERPNext based website, you can map your old routes to new ones here and these redirects will be picked up by Google and will help you maintain your SEO rankings.

11. Chat

You can enable website visitor chat on your website in the Chat section. The chat widget will be shown between From time and To time. You can also set Chat Operators (Users) who will get notified when a visitor sends a message.

Chat is an experimental feature.

Website Theme

https://docs.frappe.io/erpnext/website-theme

ERPNext provides advanced theming capabilities to customize the look and feel of your website and make it match your brand.

Home > Website > Setup > Website Theme

1. How to create a Website Theme

  1. Go to the Website Theme list and click on New.
  2. Enter a Theme Name.
  3. Customize your theme.
  4. Click on Save.

Note: Make sure you set the Website Theme in Website Settings for the theme to be applied.

Select Website Theme in Website Settings

2. Features

2.1 Theme Configuration

The section "Theme Configuration" is there for bootstrapping a basic theme. Here you can choose your color scheme, font and button styles.

2.2 Stylesheet

If you know SCSS and Bootstrap 4 theming, you can manually write custom SCSS.

In the "Custom Overrides" field you can overwrite the variables defined by any app's theme file. The content of this field will be included before importing any other SCSS. For example, the variable is set to by default. Just redefine it to to make all spaces twice as big.

$spacer1rem$spacer: 2rem;

In the "Custom SCSS" field you can add your own styles. This will be included after importing the app's themes. You can also override any specific style. For example, if you don't like our buttons, just include the following:

.btn-primary {
 background-color: $teal;
 color: $orange;
}

2.3 Included Theme Files

If you take a look at the default theme generated by the configure dialog, it imports and . These are the default theme files for and app. If you have any other apps installed, they might also provide their own file.

frappe/public/scss/websiteerpnext/public/scss/websitefrappeerpnextwebsite.scss

The section "Included Theme Files" lists all installed apps. Each app can bring it's own theme file (). A theme might be complete, providing styles for the entire website, or just an add-on. For example, it might style only the elements it introduces. By checking the boxes you can choose which theme should be included in your website.

[app]/public/scss/website.scss

Included Theme Files

2.4 Custom JS

You can also write custom JavaScript that will run when your theme is applied. Use it add/remove classes from elements, or any script that helps you change how your elements look.

Website Item

https://docs.frappe.io/erpnext/website_item

The Website information about an Item has been moved to a new DocType called Website Item. Publishing an Item is as simple as a button click. Once an Item has a Website Item created against it, it is successfully published.

The Prerequisites here are Items.

Publishing an Item

The Publish in Website button is visible on every unpublished item under Actions. This button will create a Website Item and thus publish the Item on the website.

Publish Item

If you visit , you will see the newly created Website Item listed here.

your-site-name/all-products

To view the Website Item page on the website click on the See on Website link on the top left just above the item image in the Website Item document.

Updating the Website Item

Website Item Page

Website Item Page

Once a Website Item has been created, you can update information in it that will be displayed on the website. Here are the fields:

General

  1. Website Item Name: The title of the Website Item on the website is picked from this field.
  2. Route: This is auto-generated and just mentions the route your Item’s full page view will be available at.
  3. Published: If you want to hide or take down your published Item, you can uncheck this checkbox.

Display Images

  1. Website Image: It is automatically populated with the Image from the Item master. You can change it as well.
  2. Slideshow: If you add a Slideshow, that will be shown in the Website Item’s page. If a slideshow is absent, it will default to showing the website image (if present).
  3. Image Description: It is an alternative text in case the image fails to appear.

Stock Information

  1. Website Warehouse: Select the Warehouse that will hold the stock for this Website Item. The Website Item’s availability will be shown depending on the balance stock in this selected Warehouse.
  2. On Backorder: If enabled then it will be indicated that the Website Item is available on backorder and not usually pre-stocked. Available on Backorder will be visible instead of Out of Stock or In Stock.

Note: If the Website Warehouse isn't set and 'Maintain Stock' for an Item is ticked, the product page will list the Item as 'Not in Stock'.

Display Information

  1. Short Website Description: This is a text field where you can mention a short summary like description, for the List View. You can also add some HTML here that will show up in the List View. e.g
  2. Website Description: This is a rich text editor field, where you can format your website item description to make it attractive and informative. The Item Description is used as a fallback if a Website Description is not mentioned.
  3. Website Specifications: You can mention the Website Item's specifications such as weight, manufacturer, dimensions, material, etc. You can also add common specifications in the Item Group that this Website Item belongs to and copy it here by clicking on Copy From Item Group. This information will be visible on the Product Details section in the Website Item’s page.
This item is <b>100%</b> pure!

Display Additional Information

The Product Details section can be viewed in a tabbed section along with other information too. For this:

  • In the Display Additional Information section, and enable Add Section with Tabs.
  • You can now add tabs in the Tabs table by adding a label and content for it. The content field is an HTML editor where you can add advanced HTML, to beautify your tab, or a simple paragraph.
  • This tabbed section will set Product Details as the first tab which will contain the Website Specifications stated above (if present).
  • This will be followed by tabs from the Tabs table

Website Item Product Details

You can show Recommended Items against Website Items to knudge users to pay attention to a closely related item. This can be enabled by going to E Commerce Settings > Add-ons > Enable Recommendations.

You can then add Recommended Items against a Website Item in the Recommended Items section, and add the items to recommend. These will show up in the Website Item Page.

Recommended Items

Offers

Coupon Codes can be added at checkout , but customers must know about these codes. For this, Offers can be added to the Website Item for display.

  • Go to the Offers section in the Website Item.
  • Add a short offer title that is one/two words, in the Offer Title.
  • Add a slightly longer subtitle, a sentence in the Offer Subtitle.
  • Add lengthy details about the offer in the Offer Description. Save.

Website Item Offers

Search and SEO

  1. Ranking: Assign a rank to the Website Item to have control over it's position in the Product Listing. Website Items with higher ranking will be shown higher.
  2. Set Meta Tags: Meta tags help with SEO. See Web Page to know how to add them.
  3. Website Item Groups: In this table you can select existing or create new Item Groups to classify items on your website. The Website Item will be visible under Item Group Pages of the Item Groups mentioned in this table.

Advanced Display Content

You can add an additional styled section using Bootstrap 4 markup for the Website Item page.

Website Item Advacned Display

Adding Price Details

Prices can be added against Website Items via Item Price. Before adding an Item Price, go to E Commerce Settings and make sure Company, Price List , Default Customer Group are set.

Now you can go ahead and create an Item Price for the Website Item, and select the Price List as the one in the E Commerce Settings.

You can also add a Pricing Rule with a Discount Percentage or Discount Amount on the existing item price, to show striked prices.

Website Item Page Striked Price

What if Emails are not being received by the Recipients?

https://docs.frappe.io/erpnext/what-if-emails-are-not-being-received-by-the-recipients

When an Email is sent, you assume that the Email will be received by the Recipient, but if you receive a feedback that they haven't received the Email, following are the steps to troubleshoot:

Sending an Email to an Email address that is misspelled or does not exist results in that Email not being delivered. While it seems obvious, it is easily overlooked and happens often.

The second thing you can do to check is to send an Email to yourself, this can be done via creating a New Communication.

Go to Communication List > Click on New.

  1. If the above method fails, kindly configure your Email Account again.

Go to Email Account > Open the Email to check > if as per you everything is correct, click on Save. It will throw an error if there is any issue with the Configuration and you can rectify it accordingly.

  1. Check Email Queues for the unsent messages or errors if any.

If the state is Error(as in the screenshot below), you can find the error cause by opening that email and scroll down to Error field to know the error.

NOTE: The error can differ from what can be seen in the above screenshot.

Why should businesses use an ERP?

https://docs.frappe.io/erpnext/why-ERP

If you are already convinced you need an all-in-one enterprise solutions system for your organization, you can skip this page.

Today, small and medium-sized businesses (SMEs) also face some of the problems that large enterprises do. One of them being planning and managing their resources. SMEs face similar complexities but have limited resources to deal with them.

Small businesses (like their bigger counterparts) have to:

  1. Do accounts to track their sales/purchases.
  2. Do their taxes.
  3. Pay their employees.
  4. Manage deliveries within promised timelines.
  5. Deliver quality goods and services.
  6. Communicate with customers, answer their queries.

Large enterprises invest millions of dollars in highly sophisticated systems like SAP. SAP and similar systems are able to handle requirements from these large enterprises to bring their multi-country, multi-company, multi-currency, global businesses into a single platform. This has helped them achieve consolidation of data/records in the fundamental processes such as accounting, taxation, payroll, reporting, and supply chain to name a few.

In contrast to large enterprises, SMEs have been left out of the 1st wave of digital revolution (1995-2015). The main reason for being left out is because they don't have the financial resources to license, hire programmers and customize such software to match their needs. Systems like SAP have been a no-go for most SMEs. Such systems need a minimum CAPEX or OPEX layout of $100k (Yes, One Hundred Thousand Dollars) and upwards. Even with cloud offerings (Software as a Service, SAAS) from such vendors, there is no easy Do It Yourself (DIY) people can feel confident about.

So even today, small businesses continue to struggle to keep things organized. They often use a mix of applications and tools such as spreadsheets, accounting software, web-based CRMs to manage their day to day record keeping. As a consequence, they have to access different systems to understand customers' master data, sales, cash flows, or profitability. The information exists in different silos. It becomes hard to combine the data in order to get useful insights or alerts. This leads to SMEs being reactive instead of being proactive in their day to day operations. With such a constrained way of working, there's limited scope for growth.

ERPNext addresses some fundamental problems SMEs struggle with when managing their resources:

  1. Affordability: It is a Free and Open Source Software, freely available to download and install.
  2. Completeness: All necessary modules are available. View full list.
  3. Customization: It is easy to add fields, or add more features.
  4. Efficiency: Computing requirements are relatively low (cheaper to host and manage).
  5. Wholesomeness: A single system and database that allows multiple users to record transactions or extract data simultaneously.

Is ERPNext only for SMEs?

ERPNext is a powerful and versatile ERP system that is well-suited for SMBs and large enterprises and is equally competitive as any of the market leaders of ERP world. It is highly scalable, flexible, secure, lightening-fast, high-performance, cost-effective, and compliant. It also offers a wide range of features and benefits that can help large enterprises to improve their operations and achieve their goals.

Here are brief highlights on how ERPNext can benefit large enterprises:

  • ERPNext can help large enterprises to improve their financial performance. ERPNext provides real-time insights into financial data, which can be used to make better decisions about budgeting, forecasting, and investing.
  • ERPNext can help large enterprises to streamline their operations. ERPNext can automate tasks and processes, which can free up employees to focus on more strategic work.
  • ERPNext can help large enterprises to automate their supply chain. ERPNext can improve efficiency and reduce costs by automating the flow of information of goods and materials.
  • ERPNext can help large enterprises to make better decisions. ERPNext provides real-time data and insights, which can be used to identify trends, make predictions, and optimize operations.

If you are a large enterprise looking for an ERP system that can help you to improve your operations and achieve your goals, ERPNext is a good option to consider. Here are some of the strengths of ERPNext that make it a good solution for large enterprises:

  • Scalability: ERPNext is a cloud-based ERP system, which means that it can scale to meet the needs of even the largest enterprises. It can be easily deployed and managed on a large number of users and devices.
  • Flexibility: ERPNext is a highly flexible ERP system that can be customized to meet the specific needs of any business. It has a wide range of modules that can be used to manage different aspects of a business, such as accounting, manufacturing, sales, and HR.
  • Security: ERPNext is a secure ERP system that uses industry-standard security features to protect data. It has a robust authentication system that prevents unauthorized access to data.
  • Performance: ERPNext is a high-performance ERP system that can handle large volumes of data and transactions. It is designed to be efficient and reliable, even under heavy load.
  • Support: ERPNext has a strong community of users and developers who provide support. There are also a number of third-party partners who offer professional services for ERPNext.Check out a variety of User Stories to know more.

Wishlist

https://docs.frappe.io/erpnext/wishlist

ERPNext gives users the provision to enable the Wishlist feature on their web store. To enable this go to:

E Commerce Settings > Add-ons > Enable Wishlist

Users can add Website Items to their wishlist via the wishlist icons on:

The Product Listing

Wishlist from Card

The Website Item Page

Wishlist from Website Item Page

The link to the Wishlist page is available on the navbar as seen above. Users can remove items from the Wishlist or move the items to Cart.

Wishlist Page

Wishlist Page

This feature requires users to be logged in. Guest users will be redirected based on the Guest Display Settings section in E Commerce Settings.

Withdrawing Salary from Owner's Equity Account

https://docs.frappe.io/erpnext/withdrawing-salary-from-owners-equity-account

Question

After meeting with my accountant here in the US, I was informed that with my company being a sole member, I should not pay myself a salary that would hit the direct expenses account but instead should take a "draw" that hits the balance sheet and not the expenses. Can you please advise how I should set this up in ERP Next please?

Answer

  1. Create an account for Owner's Equity under Liabilities if you already do not have. This account will be your investment in the business and the accumulated profits (or losses). It will have a "Credit" type balance.
  2. In an Version 5, Equity will be a new head (not under Liabilities). (In either case Assets = Owner's Equity + Liabilities, so your balance sheet will be okay Learn more about owner's equity account).
  3. Create an account for Owner's Draws under Owner's Equity.
  4. Note that the balance of Owner's Draws will always be negative since you are reducing money from your total equity / profits.

Example

Example journal entry (using Journal Voucher in ERPNext) for a withdrawal of $1000 would be:

  1. Credit Cash $1000
  2. Debit Owner's Draws $1000

WooCommerce Integration

https://docs.frappe.io/erpnext/woocommerce_integration

Deprecated in Version 15

Using WooCommerce Integration, the system creates Sales Orders in ERPNext for the orders created on WooCommerce using the WooCommerce webhook.

While creating a Sales Order from WooCommerce, if the Customer or Item is missing in ERPNext, the system will create new Customer/Item by using the respective details from WooCommerce order data. It also creates Address linked to the Customer using the shipping details from the order data.

  1. How to set up WooCommerce?

1.1 Generate API Key and API Secret

  1. From your WooCommerce site's sidebar, click on Settings.
  2. Click on the "Advanced" tab then click on the REST API link.

3. Click on "Add key" button. Provide the necessary details and click on "Generate API key" button.

Woocommerce API

Woocommerce API Key

1.2 Woocommerce Settings

  1. On your ERPNext site, go to: Home > Integrations > Settings > Woocommerce Settings.
  2. Paste the API key and secret generated in the previous step into the "API consumer key" and "API consumer secret" fields.
  3. In the "Woocommerce Server URL" paste the url of your WooCommerce site.
  4. Make sure "Enable Sync" is checked.
  5. Select the "Tax Account" and "Freight and Forwarding Account" in the Account Details Section.
  6. Select the "Creation User" in Defaults section. This user will be used to create Customers, Items and Sales Orders. Ensure that the user has the relevant permissions.
  7. Select the "Company" that will be used to create the Sales Orders.
  8. Click Save.
  9. After saving the Woocommerce Settings, "Secret" and "Endpoint" are generated automatically.

Woocommerce Settings

1.3 Woocommerce Webhook Settings

  1. Now from your woocommerce site's sidebar, go to Settings.
  2. Click on the "Advanced" tab then click on the Webhooks link and then click on "Add webhook" button.
  3. Give the webhook a name of your choice.
  4. Click on Status dropdown and select "Active".
  5. Select Topic as "Order created".
  6. Copy the "Endpoint" from "Woocommerce Settings" doctype in your ERPNext site and paste it in "Delivery URL" field.
  7. Copy "Secret" from "Woocommerce Settings" doctype in your ERPNext site and paste it in "Secret" field.
  8. Keep API VERSION as it is and click on Save Webhook. Now it is successfully set up.

Woocommerce Webhook

A GIF below to show the entire process:

Woocommerce Set Up

Note: In the above screenshot and GIF, in place of delivery url on woocommerce website, you need to paste the url you will obtain after saving the "Woocommerce Settings" in the "Endpoint" field in your ERPNext instance. Here other URL was pasted as localhost was being used.

1.4 Woocommerce order creation and syncing

  1. From your Woocommerce website, register yourself as a user on the Account page.
  2. Now Click on Addresses option and provide the required details.
  3. Click on "Shop" option and now available products can be seen.
  4. Add the desired products into the cart and click on View Cart.
  5. From the cart, once you have added the desired products, you can click on "Proceed to Checkout".
  6. All billing details and Order details can be seen now. Once you are ok with it, click on Place Order button.
  7. "Order Received" message can been seen indicating that the order has been placed successfully.
  8. Now on your ERPNext instance, check the following Document Types: Customer, Address, Item, Sales Order. They will be fetched and created from the webhook data.
  9. In case the orders are not synced, you can check the error in Home > Settings > Core > Error Log.

Woocommerce Set Up
  1. Features

2.1 Defaults

In the Woocommerce Settings DocType:

  • Warehouse: This Warehouse will be used to create Sales Orders. The default Warehouse is "Stores".
  • Delivery After (Days): This is the default offset (days) for the Delivery Date in Sales Orders. The default offset is 7 days from the order placement date.
  • Sales Order Series: You can set a separate series for Sales Orders created via woocommerce. The default series is "SO-WOO-".
  • UOM: This is the default UOM used for Items and Sales Orders. The default UOM is "Nos".

Woocommerce Defaults
  1. Related Topics
  1. Sales Order
  2. Item
  3. Customer
  4. Address

Work Order

https://docs.frappe.io/erpnext/work-order

A Work Order is a document given to the manufacturing shop floor by the Production Planner as a signal to manufacture a certain quantity of a certain Item.

Work Order

The Work Order also helps generate the material requirements (Stock Entry) for the Item to be produced from its Bill of Materials.

The Work Order can be generated from the Production Plan based on Sales Orders.

To access the Work Order list, go to:

Home > Manufacturing > Production > Work Order

  1. Prerequisites

Before creating and using a Work Order, it is advised that you create the following first:

  1. How to Create a Work Order

Go to the Work Order list, click on New.

Select the Item to be manufactured.

The default BOM for that item will be fetched by the system. You can also change the BOM.

Enter the quantity to manufacture. Raw material Items will be fetched only when this is set.

If the selected BOM has Operations mentioned in it, the system will fetch all Operations from BOM, these values can be changed. Refer section 3.2 to know more.

Set the Planned Start Date (an Estimated Date at which you want the Production to begin).

Work Order

Use Multi-Level BOM: This is enabled by default. If you want to plan materials for sub-assemblies of the Item you're manufacturing leave this enabled. If you plan and manufacture the sub-assemblies separately, you can disable this checkbox. To know more, visit this page.

Select Warehouses:

  1. Source Warehouses: Select this Warehouse in the Item row. The warehouse where you store your raw materials. Each required item can have a separate source warehouse. Group warehouse also can be selected as source warehouse. On submission of the Work Order, the raw materials will be reserved in these warehouses for production usage.
  2. Work-in-Progress Warehouse: The warehouse where your Items will be transferred when you begin production. Group Warehouse can also be selected as a Work in Progress warehouse.
  3. Target Warehouse: The warehouse where you store finished Items before they are shipped.
  4. Scrap Warehouse: If the BOM results in Scrap material, the Scrap Warehouse needs to be selected.

Required Items: All the required items (raw materials) will be fetched from BOM and populated in this table. Here you can also change the Source Warehouse for any item. And during the production, you can track transferred raw materials from this table.

Note: You can save a Work Order without selecting the Warehouses, but Warehouses are mandatory for submitting a Work Order.

A Work Order can also be directly created from a Sales Order.

2.1 Additional Options when Creating a Work Order

  • Sales Order: If you create a Work Order from a Sales Order, it will be fetched here. You can also link an existing Sales Order which has the Item to be manufactured to this Work Order.
  • Project: Link the Work Order to a Project to track progress in cases like engineer to order.
  • Allow Alternative Item: Sometimes when manufacturing a finished good, specific materials may not be available. For example, using plastic beads instead of plastic crystals. The finished good itself could be different. Ticking this checkbox will allow you the select an Alternative Item. To know more, visit this page.
  • Skip Material Transfer to WIP Warehouse: Usually, a Stock Entry is created when the raw materials are transferred to a Work In Progress Warehouse. In this case, the raw material is considered to be consumed hence the Stock Entry is skipped. The next option will be shown if you tick this checkbox.
  • Backflush Raw Materials From Work-in-Progress Warehouse: Ticking this checkbox will automatically create a Stock Entry with the type 'Manufacture'. This means that the raw materials were consumed from the Source Warehouse, used to manufacture finished goods and another Stock Entry was created for your Target Warehouse.
Options when creating WO
  1. Features

3.1 Time

The Planned Start Date and Expected Delivery Date can be set here. The default for Planned Start Date is the current date and time at the time of creating the Work Order.

3.2 Required Items table

The Source Warehouse can be changed for the raw material items used here. The default Warehouse can be set at the Item level in the Item master or globally in Stock Settings.

  • Required Quantity: This will be calculated automatically based on the Bill Of Materials.
  • Transferred Quantity: Once the Work Order starts and Job Cards are run, items are transferred from the Source Warehouse to Work In Progress Warehouse. This field shows the quantity in the WIP Warehouse. Note that if you tick on 'Skip Material Transfer to WIP Warehouse', this column will not be updated.
  • Consumed Quantity: When the Item from the WIP Warehouse is consumed and the finished product is manufactured, this field will be updated.
  • Allow Alternative Item: If a particular Item (raw material or sub-assembly) is not available, ticking this checkbox will allow you to select an alternative item defined in the Item Alternative list.
  • Skip Material Transfer: If you don't want to transfer the specific raw material to the work in progress warehouse then you need to enable this checkbox.

Once uncheck this checkbox for an Item, you can still select it in the BOM and Work Order, but no Stock Entries will be created against it.

Once the Work Order is saved the following two fields will also show the availability in the respective Warehouses in the Required Items table:

  • Available Qty at Source Warehouse
  • Available Qty at WIP Warehouse

WO material Qty

3.2 Operations table

Materials can be transferred against a Work Order or a Job Card. This is usually fetched from the Bill Of Materials, but you can change it in the Work Order also.

The following will be fetched from the BOM:

  • In the Operations table: The Workstations where the Operations will be performed
  • In the Items table: The Operations which will be performed on the Items
PO OpeartionsPO reassigning Operations

These values can also be changed.

Once the Work Order is saved the following fields will be shown:

  • Completed Qty: The number of Items on which this Operation was performed.
  • Status: Whether the Operation is Pending, Work In Progress, or Completed. The status here is updated when the Job Cards are updated.
  • Operation Time: This is fetched from the BOM, but can be changed.
  • Planned Operating Cost: This is calculated based on the Operating Time, Hourly Rate, Quantity being manufactured, etc.

The Actual Operation Time, Actual Operating Cost, Actual Start Time, and Actual End Time are updated when Job Cards are updated.

3.3 Operation Cost

In this section, the following are shown:

  • Planned Operating Cost: This is fetched as per the BOM and the Operations defined in it.
  • Actual Operating Cost: This is fetched from the Job Cards based on the Operations run on the Items.
  • Additional Operating Cost: Any additional expenses you may have incurred when manufacturing the Item can be added here.
  • Total Operating Cost: This is calculated as Actual Operating Cost + Additional Operating Cost.

These values are calculated as per the Job Cards.

Work Order Operation Costs

3.4 More Information

Here the Item Description and Stock UOM is shown for the Item being manufactured.

When a Work Order is created from a Material Request, it'll be shown here.

3.5 Transferring Materials for Manufacturing

  • Once you have submitted your Work Order, you need to Transfer the Raw Materials to initiate the Manufacturing Process.
  • This will create a Stock Entry with all the Items required to complete this Work Order to be added to the WIP Warehouse. This will add the sub-assembly Items as is or explode them to show the raw materials depending on whether you ticked 'Use Multi-Level BOM' or not.
  • Click on 'Start'. Once you click on Start, Job Cards will be created for the Operations involved.

Transfer Materials
  • Mention the quantity of materials to be transferred in this run.

Material Transfer Qty
  • You'll be taken to a Stock Entry for 'Material Transfer for Manufacture'. Submit it.
  • Material Transferred for Manufacturing will be updated in the Work Order based on the Stock Entry.

Stock Entry for PO
  • Note: User can only transfer items which has "Include Item In Manufacturing" enabled in the item master

3.6 Material Transfer through Stock Entry

Use cases for this option are:

  • If a material transfer is done in bulk and/or is not required to be tracked against a particular Work Order.
  • If the responsibility for Material Transfer and Production Entry lies with two separate Users.

If this is the case, you can tick the 'Skip Material Transfer' checkbox, which will allow you to make the Stock Entry of type 'Manufacture' directly by clicking on the ‘Finish’ button.

3.7 Creating Job Cards

  • Progress in the Work Order can be tracked using Job Cards
  • Drafts of Job Cards are created based on when a Work Order is Submitted.
  • To create more Job Cards against a Work Order click on the plus sign next to Job Card on the Work Order dashboard.

To know more about Job Cards, visit this page.

3.8 Updating Finished Goods

  • Once you are done with the Work Order you need to update the Finished Goods.
  • This will create a Stock Entry that will deduct all the items and sub-assemblies from the WIP Warehouse and add them to the Finished Goods Warehouse.
  • Click on 'Finish'.

Update Finished Goods
  • Mention the quantity of materials to be transferred.

Tip: You can also partially complete a Work Order by updating the Finished Goods stock creating a Stock Entry.

3.9 Capacity Planning in Work Order

  • When a Work Order is submitted, based on the Planned Start Date and the availability of the Workstations, the system schedules all operations for the Work Order (if Work Order has Operations specified).
  • Drafts of Time Logs are also created based on the scheduled operations.

On Submitting the Work Order, the system will reserve a slot for each of the Work Order Operations serially after the planned start date based on the Workstation availability. The Workstation availability depends on the Workstation timings, holiday list, and if some other Work Order Operation is scheduled in that slot.

You can mention the number of days for the system to try scheduling the operations in the Manufacturing Settings. This is set to 30 Days by default. If the operation requires time exceeding the available slot, the system will ask you to break the operations. Once the scheduling is done the system will create Time Logs and save them. You can Modify them and submit them later.

4.0 Stopping a Work Order

When you stop a Work Order its status is changed to Stopped indicating that all production process against that Work Order has stopped. But before stopping the work order user has to make sure that the raw materials which were transferred to the Work In Progress warehouse have been returned or not. In case, if the user has tried to stop the work order without returning the raw materials then the system will throw the error and not allow the user to stop the work order.

To stop a Work Order, click on the 'Stop' button.

PO - stop

You can also re-open the stopped Work Order.

Reopen Work Order

4.1 Return Non Consumed Materials to the Stores from WIP Warehouse

If you have transferred extra materials to the Work In Progress warehouse and after completion of the work order you want to return it to the Store warehouse. Then you have to goto the Work Order and click on Return Components. After that system creates the return stock entry with type as Material Transfer for Manufacture.

Return Components

You can also checks the returned components against the work order using Work Order Consumed Materials report

Return Components Qty

4.2 Transfer Addtional Materials

The Transfer Materials button is not showing because all required materials have already been transferred from Store to WIP warehouse against the work order, but the user wants to transfer additional materials since some are damaged.

Configuration

To fixed the issue, user has to set the percentage for 'Transfer Extra Raw Materials to WIP (%)' in Manufacturing Settings.

Once the user sets the 'Transfer Extra Raw Materials to WIP (%)' in Manufacturing Settings, they can transfer additional materials from the store to WIP against the work order.

  1. Related Topics
  1. Job Card
  2. Pick List

Work Order Consumed Materials

https://docs.frappe.io/erpnext/work-order-consumed-materials

To access the Work Order Consumed Materials, go to:

Home > Manufacturing > Reports > Work Order Consumed Materials

Task

This report shows the information about the raw materials which has been transfer to work in progress warhouse as well consumed in manufacturing process.

Work Order Summary

https://docs.frappe.io/erpnext/work-order-summary

To access the Work Order Summary, go to:

Home > Manufacturing > Reports > Work Order Summary

Task

This report will give information about the Work Order. Using this report user will understand the number of produced quantity against each Work Order as well the status of the Work Order.

Using this report user can check the status of the Work Orders which are linked to the Sales Order. Also using this report users can check the Work Orders based on the status like Not Started, In Process, Completed, and Stopped.

Workflow

https://docs.frappe.io/erpnext/workflow

A typical 'Workflow' in ERPNext involves various stages to manage different aspects of business operations. It starts with creating a document and taking it through series of steps. Users can track the status of each document and collaborate with team members by assigning tasks and tracking their progress.

ERPNext streamlines processes by automating repetitive tasks that need multi phase attention by different people. ERPNext offers a comprehensive workflow to enhance productivity and efficiency across various departments within an organisation.

Workflow Actions

https://docs.frappe.io/erpnext/workflow-actions

Introduced in Version 11

'Workflow Actions' is a single place where you can track and manage all pending actions you have to take on Workflows.

Workflow Actions will send email notifications only if the 'Send Email Alert' checkbox is ticked in the Workflow that you've created.

To access Workflow Actions, go to:

Home > Settings > Workflow Actions

If a User is eligible to take action on some workflows, emails will be sent to the user with the relevant document as attachment. From there the user can or the Workflow.

ApproveReject

Workflow Action Email

Also the users will see entries in their Workflow Action list:

Screenshot 2024-06-03 at 10.47.43 AM

Note:

  • You can set email template for Workflow Actions on each state. The template might consist of a message for users to proceed with the next Workflow Actions.
  • Workflow Actions will not be created for a transition to optional states.
  1. Workflows
  2. Assignment Rule

Workflow State

https://docs.frappe.io/erpnext/workflow-state

A 'Workflow State' is a specific status that a document (such as a sales order, purchase order, or leave application) can be in during its lifecycle.

Workflow states are crucial for managing multi stage approval processes, ensuring proper checks and balances, and maintaining the flow of operations.

Different Workflow States may be achieved before or after applying different Workflow Actions on them. If you want to create a Workflow where there are multiple approvals from manager, senior manager, general manager, etc, you can set the states for it from Workflow States.

Screenshot 2024-05-27 at 10.12.28 AM

The system represents different states in different colours based on the Style tagged to each stage.

  • Success - Green
  • Danger - Red
  • Inverse - Black
  • Primary - Dark Blue
  • Info - Light Blue
  • Warning - Orange
  1. Workflows
  2. Workflow Actions
  3. Assignment Rule

Workflow Transition Tasks

https://docs.frappe.io/erpnext/workflow-transition-tasks

Note: To be added in version 16

Introduction

Workflow Transition Tasks are actions that can be run during state transitions in workflows. Each Workflow Transition can link to a set of transition tasks.

Link to Workflow Transition Tasks

A Typical set of transition tasks

Each Workflow Transition Task can have tasks of the following types:

  1. App-Defined Actions (specified by each Frappe app through hooks.py)
  2. Server Scripts
  3. Webhooks

A server script transition task

On top of this, each transition task can be either:

  1. Synchronous: This is the default mode of transition tasks. All of the transition tasks run one-by-one when the state transition is initiated. Even if one of them fails, the transition is reversed.
  2. Asynchronous: This mode can be enabled using the 'Asynchronous' checkbox. Each asynchronous transition task runs after the state transition is completed, meaning it has zero influence over state completion, and is run in a separate background job of its own.

App-Defined Actions

Each Frappe app defines them using the 'workflow_methods' hook.

Any dotted path method defined through the workflow_methods hook has to accept as the parameter, which is the document on which the transition is being applied.

doc: Document

An example of an app-defined task is:

# hooks.py
workflow_methods = [{"name": "Create a customer", "method":
					 "myapp.shop.doctype.kirana.create_customer"}]

# myapp/shop/doctype/kirana.py
def create_customer(doc):
    customer = frappe.new_doc("Customer")
    customer.customer_name = "Customer " + doc.name
    customer.customer_type = "Individual"

    customer.save()

These will be available in the 'Tasks' drop-down if any of the apps has provided them.

app-defined tasks

If you are an end user, you can not create app-defined actions on your own and will have to use server scripts as mentioned below.

Server Scripts

These also take the parameter and can be set using the 'Workflow Task' Script Type.

doc: Documentserver script tasks

And then these have to be linked to in the transition task:

A server script transition task

Webhooks

These can be created by setting the 'Doc Event' field of the webhook to 'workflow_transition':

workflow_transition webhook

And then these have to be linked to in the transition task:

link to webhook

Workflows

https://docs.frappe.io/erpnext/workflows

With workflows you can rewrite how a particular process/workflow is approved in ERPNext.

You can set multiple levels of approval for an ERPNext Workflow. To allow multiple people to submit multiple requests, for approvals by multiple users, ERPNext requires you to fill the Workflow conditions. ERPNext tracks the multiple permissions before submission.

Consider a scenario, where multiple levels of approval are required for a quotation. A sales person (user with 'Sales User' role) will create a quotation. Then it is either approved or rejected by a sales lead (user with 'Sales Manager' role). If approved by sales lead, it is further approved or rejected by regional manager (user with 'Regional Manager' role).

To make a Workflow and transition rules go to:

Home > Settings > Workflow

Once a Workflow is created, you can take actions on it via Workflow Actions.

  1. Prerequisites

Before creating a Workflow, it is advised to create these first:

  1. How to Create a Workflow
  1. Go to the Workflow list, click on New.
  2. Enter a name for the Workflow and select the DocType on which to be applied.
  3. Enter the different states of the Workflow. Enter Doc Status for them, select which field to update from the Update Field column, enter what the value will be updated to under Update Value.

The Workflow States can have different colors according to the state. Eg: Green for success. Document statuses: Saved = 0, Submitted = 1, Cancelled = 2.

4. Enter the Transition Rules.

Workflow

Workflow Transition Rules

2.2 Things to note when creating a Workflow

  • Creating a Workflow in ERPNext essentially overrides the regular Save and Submit workflow. Thus the document will function based on your Workflow and not based on the pre-set code workflow. Hence there might be no Submit button/option if you have not specified it in the Workflow you create.

If you don't apply a Workflow to a document, and that document is submittable, then it has the default workflow with states: Draft - Submitted - Cancelled. If you are applying a Workflow to a submittable document, then those default states should be handled by the user.

  • A document cannot be canceled unless it is submitted.
  • If you wish to give the option to cancel, you will have to write a workflow transition step that says from submitted you can cancel.
  • If fields under Update Field column are not updated, a new custom field will be created with the name you set in the 'Workflow State Field' field.

2.3 Other options for a Workflow

Is Active: On ticking this, all other Workflows for the selected DocType become inactive.

Don't Override Status: This Workflow's status will not override the status of the document (Quotation) in the list view.

Send Email Alerts: Emails will be sent to the user with next possible workflow actions.

Features

3.1 Enable/Disable Optional Workflow State

Introduced in Version 12

In States, optional Workflow state means that the state may not be a part of final approval.

E.g. states like Canceled or Rejected can be optional.

Optional State

Note: Workflow Actions are not created for optional states.

3.2 Conditions

You can also add a condition for the Transition to be applicable. For example, in this case, if sales executive creates a quotation with grand total of $100,000 or more, a particular role must approve. For this to happen in the particular transition, you can set a property for Condition:

doc.grand_total <= 100000

Here, is the field name of the field 'Grand Total' of Quotation. To see the field name of a field go to Menu > Customize.

grand_total

This can be extended to any property of the document.

Introduced in Version 13

In Version 13, you can use date/time, session, getvalue and getlist functions in your condition expressions.

Allowed functions:

  • frappe.db.get_value
  • frappe.db.get_list
  • frappe.session
  • frappe.utils.now_datetime
  • frappe.utils.get_datetime
  • frappe.utils.addtodate
  • frappe.utils.now

Examples:

doc.creation > frappe.utils.add_to_date(frappe.utils.now_datetime(), days=-5, as_string=True, as_datetime=True)
  1. Example of a Quotation Approval Process

When a quotation is saved by sales user, the status of the document changes to "Draft" and when clicked on submit the status changes to 'Approval Pending By Sales Manager':

Workflow State in Transaction

When the Sales Manager logs in, he can either Approve or Reject. If approved the status of the document changes to "Approval Pending By Regional Manager".

Workflow Action Options

When the Regional Manager opens the quotation, he can finally "Approve" or "Reject" it.

Workflow Action Options
  1. Video
  1. Workflow Actions
  2. Assignment Rule

Customizing Workspace

https://docs.frappe.io/erpnext/workspace

When you log in, you're presented with the Desk. It features a persistent sidebar sorted into categories. Each sidebar item links to a page called Workspace.

A Workspace represents a module (for example CRM in ERPNext). A Workspace includes the following:

  • A dashboard section for that particular module.
  • A shortcut section for frequently used masters, transactions or pages.
  • A masters section where all the reports and masters are grouped and listed.

Standard Workspace

Every module in ERPNext has its own Standard Workspace which is generated with appropriate shortcuts and links.

Any customization to be made to the Standard Workspace can be done with Customize Workspace option in the top right corner of the Workspace.

Note: These customizations will be user-specific and will only be visible to that user.

Custom Workspace

You can also create your own Workspaces by simply creating a new Workspace document.

  1. Go to the Workspace list and click on New.
  2. Name: The text you enter here will be shown in the sidebar.
  3. Module: Select the module which the Workspace will represent.
  4. Is Standard: If checked, this Workspace will be shown in the sidebar. Otherwise it will be treated as a customized version of a Standard Workspace.
  5. Extends Another Page: If checked, this Workspace will be treated as a customized version of another Workspace.
  6. Is Default: If checked, this Workspace will be the default Workspace displayed to all users for a particular module.
  7. Dashboard: Add a Dashboard to display it on the top of the Workspace.
  8. Shortcuts: Add Shortcuts to a specific page, reports or list which will be displayed below the dashboard.
  9. Link Cards: You can add cards that will display a list that links to a specific page, report, or list.

Workstation

https://docs.frappe.io/erpnext/workstation

A Workstation stores information regarding the place where the workstation operations are carried out.

Data regarding the operation cost, rent, electricity can be stored here.

An Operation takes place at a Workstation. The Operation is the work performed and the Workstation is the place/machine where it is performed. For example, melting is an Operation that can be done at 10 different Workstations.

An Operation can take place at multiple Workstations.

How to create a Workstation

  1. Go to the Workstation list, click on New.
  2. Enter a name for the Workstation.
  3. Under Operating Costs, enter operating component with the cost:
  4. Electricity
  5. Rent
  6. Consumables
  7. Wages
  8. Save.

Optionally, you can enter a description for the Workstation.

Operating Components

Using this table you can divide the different cost components and set it to the Operation.

Workstation Operating Component

User can also define the expense account per component company wise in the Workstation Operating Component.

A Holiday List can be added to exclude counting these days for the Workstation.

The hours when the Workstation will be Operational can be added. On adding a Holiday list, the days listed as holidays won't be counted as working for the Workstation.

Under Working Hours table, you can add start and end times for a Workstation. For example, a Workstation may be active from 9 am to 1 pm, then 2 pm to 5 pm. You can also specify the working hours based on shifts. While scheduling a Work Order, the system will check for the availability of the Workstation based on the working hours specified.

You can enable overtime for a Workstation in Manufacturing Settings.

After saving the Workstation, the following actions can be performed against it:

Features

Production Capacity

Production Capacity is the total number of jobs can be executed at the same time in the respective workstation.

  1. Bill Of Materials
  2. Operation
  3. Routing
  4. Work Order
  5. Job Card

Workstation Type

https://docs.frappe.io/erpnext/workstation_type

If users have the same types of multiple Workstations (Machines) and users want to auto-assign jobs to the available workstation based on workstation type then this feature is the good option for them. A Workstation Type document will allow you to set the same operating cost to multiple operations by just setting the Workstation Type in the Operations table in BOM or Routing.

After adding Workstation Type, users has to assign the Workstation Type to the respective Workstation and set the Workstation Type to the respective Operation in the BOM.

After setting up Workstation Type when user make the Work Order with Operations system will create Job Cards against the Operation and set the available Workstation based on the Workstation Type set in the BOM.

Zenoti Integration

https://docs.frappe.io/erpnext/zenoti_integration

Introduced in version 13.

Zenoti Integration pulls the purchase orders and sales invoices from Zenoti and creates Purchase Order and Sales Invoice against them in ERPNext.

While creating these records if Customer, Supplier or Item is missing in ERPNext the system will create new Customer, Supplier or Item by pulling respective details from Zenoti.

How to Setup?

Zenoti Integration is available through Ecommerce Integrations on Frappe Cloud Marketplace.

App Installation

  • If you are hosting your ERPNext site on Frappe Cloud, you can quickly install the app by going to your site Dashboard. The app is available in Frappe Cloud Marketplace.
  • If your site is hosted by Frappe, please raise a support ticket to get the app installed on your site.
  • If you are self hosting ERPNext you can install the app using Frappe bench. Refer bench documentation for installing Frappe Apps.
bench get-app ecommerce_integrations --branch main

The repository for app is hosted on GitHub: http://github.com/frappe/ecommerce_integrations/.

Prerequisite

  1. For each center in Zenoti there should be a cost center and a warehouse created in ERPNext which will be used in Cost Center and Warehouse Mapping table in Zenoti Settings in ERPNext.
  2. Items*(alteast those having stock impact)* have to be created. Data import can be used for this.
  3. Opening stock entries have to be created using Stock Reconciliation in ERPNext.
  4. Item Tax Templates have to be created from Tax Groups in Zenoti with proper accounts and tax rates.
  5. Create an account to book liability for the sales of gift or prepaid cards and tips, this is to be set as Liability Income Account to book Gift & Prepaid cards in Zenoti Settings.
  6. Set appropriate accounts in the mode of payments. Also add "Card", "Custom" and "Points" as Mode of Payment.
  7. "Enable Perpetual Inventory" should be unchecked in Company Master.

Important details for setting up Zenoti on ERPNext

To access Zenoti Settings, go to: Awesome search bar > Zenoti Settings.

Zenoti setting page
  1. Last Sync: Date and time of when the invoices were synced last.
  2. API Key: API Key from Zenoti. If you do not have an API Key, you can easily generate one by going to Admin > Setup > API section.
  3. Sync Interval: Duration in hours between each syncing. Following options are avaliable (1, 3, 6, 12, 24)
  4. Default Purchase Warehouse: Warehouse to be set for all the Purchase Orders. Usually this is the main center in Zenoti so put the one you created for main center.
  5. Default Buying Price List: This is required in ERPNext to maintain price of the Items. You can create a new or or use the existing one Standard Buying provided by ERPNext.
  6. Default Selling Price List: This is required in ERPNext to maintain price of the Items. You can create a new or or use the existing one Standard Selling provided by ERPNext.
  7. Liability Income Account to book Tips, Gift & Prepaid cards: Add here the account you created to book Tips and sales of Gift & Prepaid cards.
  8. Default Customer Group: If on creation of new customer while syncing sales invoice a specific customer group is to be assigned to them then add that here. If nothing is added then the default All Customer Group will be set for those new customer.
  9. Default Supplier Group: If on creation of new supplier while syncing purchase order a specific supplier group is to be assigned to them then add that here. If nothing is added then the default All Supplier Group will be set for those new supplier.
  10. Cost Center and Warehouse Mapping: In this table map all the Centers of Zenoti to their corresponding Cost Centers and Warehouses in ERPNext.

What will be synced or will have to be created manually

Item

Items will have to be created manually into ERPNext from Zenoti one time at the start. Then it will be created on a demand basis when syncing sales /purchase orders.

Item Tax Template

Item Tax Template will be created manually based on Tax Groups on zenoti.

Customer

Customer and Customer Group will be created on demand basis while syncing sales invoices. If there are no customer groups in Zenoti, “Default Customer Group” mentioned in Zenoti Settings will be used. If not mentioned in Zenoti Settings “All Customer Groups” will be used.

Supplier

Supplier and Supplier Group will be created on demand basis while syncing purchase orders. If there are no supplier groups in Zenoti, “Default Supplier Group” mentioned in Zenoti Settings will be used. If not mentioned in Zenoti Settings “All Supplier Groups” will be used.

Warehouse

Warehouses will have to be created in ERPNext manually and mapped with Centres of Zenoti via Cost Center and Warehouse Mapping table in Zenoti Settings.

Cost Center

Cost Centers will have to be created in ERPNext manually and mapped with Centres of Zenoti via Cost Center and Warehouse Mapping table in Zenoti Settings.

Employees

Employees will have to be created manually into ERPNext from Zenoti one time at the start. Then it can be created on a demand basis when syncing sales/purchase records. For Employees fields "Date of Birth", "Date of Joining" are mandatory. Hence when creating employee from sales/purchase records "Date of Joining" will be set as the day the employee is created and "Date of Birth" as 25 years before "Date of Joining". These can be changed later on.

Purchase Order

Purchase Order will be created in Zenoti and sync into the ERPNext at the end of the day. Supplier and Item will be created on demand basis if new.

Note: Purchase Invoice from the Purchase Order have to be created manually.

Debit Note

Debit Note will be created automatically and remain in Draft mode based for Return Purchase Order in Zenoti.

Sales Invoice

Invoice will be created automatically via API on the given interval set in Zenoti Settings. Customer and Item will be created on demand basis if new.

Credit Note

Credit Note will be created automatically based on Return Invoice in Zenoti and will only contain products and not services.

Gift/Prepaid Card Sales

Each Gift/Prepaid card will be treated as Items. Gift/Prepaid Cards will be treated as mode of payment for future invoices where the payment was done using these in Zenoti.

Stock Reconciliation

At the end of the day, stock will be synced via Stock Reconciliation.