{"id":58,"date":"2025-10-19T20:05:00","date_gmt":"2025-10-19T17:05:00","guid":{"rendered":"https:\/\/fsaeed.blog\/?p=58"},"modified":"2026-10-31T00:18:51","modified_gmt":"2026-10-30T21:18:51","slug":"erpnext-for-small-businesses","status":"publish","type":"post","link":"https:\/\/fsaeed.blog\/index.php\/2025\/10\/19\/erpnext-for-small-businesses\/","title":{"rendered":"ERPNext for Small Businesses: What I Learned Setting It Up"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hello, tech enthusiasts! \ud83d\udc4b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Many small businesses run on a mix of tools. Sales are in a spreadsheet, invoices in Word, and the accountant has another file. At month-end, someone spends two days making the numbers match.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An <strong>ERP<\/strong> can fix this. ERP means &#8220;Enterprise Resource Planning&#8221;. That is a big name for a simple idea: one system where sales, invoices, stock and accounting all live together. When you make an invoice, the accounting entry is created at the same time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>ERPNext<\/strong> is a free, open source ERP. Open source means the code is public and there is no licence fee. Today I share the setup steps and my honest lessons.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What you need<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A clear list of what your business sells (products, services, or both)<\/li>\n\n\n<li>Your opening balances from your accountant (cash, bank, money owed to you, money you owe)<\/li>\n\n\n<li>A few hours of quiet time for the setup<\/li>\n\n\n<li>Either a hosting account or your own small Linux server<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1: Choose cloud or self-hosting<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">You have two main choices.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Cloud (hosted):<\/strong> The company behind ERPNext offers paid hosting called Frappe Cloud (<a href=\"https:\/\/frappe.io\">https:\/\/frappe.io<\/a>). Other providers also host it. They handle updates, security and backups. You pay a monthly fee.<\/li>\n\n\n<li><strong>Self-host:<\/strong> You install it on your own server. The software is free, but you are now the IT team.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">My honest advice: if nobody on your team knows Linux, start with hosting. You can move later.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2: Run the setup wizard<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The first time you log in, a wizard asks some questions. It asks for your country, currency, company name, and the start of your financial year. Take care here. The <strong>country<\/strong> decides the default tax templates and the chart of accounts. The <strong>financial year start<\/strong> is hard to change later.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3: Check the chart of accounts<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>chart of accounts<\/strong> is the list of all your &#8220;money boxes&#8221;: Cash, Bank, Sales, Rent, Salaries, and so on. Every amount in the system goes into one of these boxes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ERPNext creates a standard chart for you. Before you enter anything, review it with your accountant. Add one account for each real bank account, and disable what you will never use.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ERPNext adds a short company code to each account name, like &#8220;Cash &#8211; EC&#8221;. This is normal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4: Add items and customers<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">An <strong>item<\/strong> is anything you sell or buy. Go to <strong>Stock \u2192 Item<\/strong> (or search &#8220;Item&#8221; in the top bar) and create one.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For a physical product, keep <strong>Maintain Stock<\/strong> ticked.<\/li>\n\n\n<li>For a service, like &#8220;Consulting Hour&#8221;, untick it.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Then add <strong>customers<\/strong> in <strong>Selling \u2192 Customer<\/strong>. To add many at once, use the <strong>Data Import<\/strong> tool with an Excel template.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5: Make your first sales invoice<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to <strong>Accounting \u2192 Sales Invoice \u2192 New<\/strong>. Pick the customer, add an item and a quantity, and save. The invoice is now a <strong>draft<\/strong>. A draft changes nothing in your accounts yet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When it looks right, click <strong>Submit<\/strong>. Now the system writes the accounting entry for you: money owed by the customer goes up, and sales go up. After submit, you cannot edit the invoice. To fix a mistake, you <strong>cancel<\/strong> it and make an <strong>amendment<\/strong>. This keeps a clean history.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6: Set up users and roles<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Do not share one admin login. Create a user for each person in <strong>Users<\/strong>. Then give them <strong>roles<\/strong>. A role is a set of permissions, like a key ring with only some keys.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A sales person gets &#8220;Sales User&#8221;.<\/li>\n\n\n<li>The accountant gets &#8220;Accounts User&#8221; or &#8220;Accounts Manager&#8221;.<\/li>\n\n\n<li>Only one or two people get &#8220;System Manager&#8221;.<\/li>\n\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Turn on two-factor login in <strong>System Settings<\/strong> for extra safety.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7: Make sure backups work<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hosted plans usually include daily backups. If you self-host, you can make a backup with one command on the server:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Run inside your bench folder; replace the site name with yours\nbench --site erp.example.com backup --with-files<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The <code>--with-files<\/code> part also saves uploaded files, like PDF receipts. Copy backups to another place, and test a restore once on a test site.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lessons learned<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Start small.<\/strong> Begin with accounting and invoices. Add stock, HR or projects later.<\/li>\n\n\n<li><strong>Clean your data first.<\/strong> Messy lists become messy reports.<\/li>\n\n\n<li><strong>Use a test site.<\/strong> Try new settings there before you change the real one.<\/li>\n\n\n<li><strong>Updates need care.<\/strong> Read the notes, back up first, and update outside work hours.<\/li>\n\n\n<li><strong>Expect a learning curve.<\/strong> Some screens have many fields. Give your team simple written steps.<\/li>\n\n\n<li><strong>Ask the community.<\/strong> The official forum has answers to most beginner questions.<\/li>\n\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Common problems<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>&#8220;Account not found&#8221; or the wrong company account<\/strong> \u2192 Check that the account belongs to the same company as the invoice.<\/li>\n\n\n<li><strong>Cannot edit a submitted document<\/strong> \u2192 This is by design. Cancel it, then amend.<\/li>\n\n\n<li><strong>Tax not added to invoices<\/strong> \u2192 Set a default sales tax template for the company.<\/li>\n\n\n<li><strong>Users see too much or too little<\/strong> \u2192 Review their roles, then check <strong>Role Permissions Manager<\/strong>.<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Wrap-up<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">ERPNext is not magic, but it is a strong, free tool. Set it up slowly and carefully, and month-end can take hours instead of days.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next idea: connect your other tools to ERPNext with its REST API, so invoices or payments can be created automatically.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>An honest, simple guide to setting up ERPNext for a small business, with the lessons I wish I knew on day one.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[49,52,48,51,50],"class_list":["post-58","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-accounting","tag-erp","tag-erpnext","tag-open-source","tag-small-business"],"_links":{"self":[{"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/posts\/58","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/comments?post=58"}],"version-history":[{"count":1,"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/posts\/58\/revisions"}],"predecessor-version":[{"id":75,"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/posts\/58\/revisions\/75"}],"wp:attachment":[{"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/media?parent=58"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/categories?post=58"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fsaeed.blog\/index.php\/wp-json\/wp\/v2\/tags?post=58"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}