Non-inventory product

non inventory items in ERPAG

1. Introduction

A non-inventory product is a type of product that is procured, sold, consumed in production but we do not keep inventories for it. its current quantity does not matter to us.

Usually, these are low-value goods whose accurate monitoring would not significantly affect business results.

The most common examples are nuts and bolts, packaging, cardboard boxes, oils, lubricants, etc.

2. Setup

These items are open as a special item type in the Products and services list.

create non inventory item

The setting, in particular, does not deviate from the setting of the regular product.

set up non inventory item

3. Non-inventory product behavior

The behavior of this type is exactly the same as the classic product. You can receive, pack, load material, transfer, etc.

receive non inventory item

receive non inventory item

Options that cannot be done are tied directly to stock tracking.

Some of them are:

  •  Stock Adjustment
  •  Stocktaking
  •  Fulfillment (backorder)
  •  Stock/inventory card
  •  Serial / Lot number
  •  Output item (work order)
  •  On hand, Reserved, Below minimum, Committed, Awaiting quantity
When checking the quantity status for a Sales order (or work order), for non-inventory items it's assumed that the required quantity is available.

For example. if we only have non-inventory items in the Sales order, then the status will be "available quantity", ie ready for packaging.

sales order non inventory item

4. Bill of Materials and Kitting

The non-inventory item may be part of the Kit item or Bill of materials.

Setup in KIT:

non inventory item in kit

Sales Order Behavior:

non inventory item in sales order

Bill of materials look:

non inventory item in bill of materials

5. Cost / revenue - internal ERPAG accounting

If you are using internal ERPAG accounting we need to explain how costs are formed.

Since the non-inventory product has no inventory tracking, therefore it doesn't have a stock card. Cost of goods sold (COGS) cannot be formed by either the Weighted Average or the FIFO method ( at the sales point.

In the case of non-inventory products, COGS is filled at the time of purchase, while in sales we only have revenue.

Procurement - Purchase order:

receive non inventory item

And the related journal voucher:

purchase order journal voucher

Sales - Sales order

selling non inventory item

And the related journal voucher:

sales order journal voucher

As we have mentioned, items of this type are usually of low value, so the business result will not be affected. If all that is acquired during the year is also sold (or spent) there will be no deviation.

6. Integration with QuickBooks Online (QBO)

quickbooks online non inventory items

And for this kind of item integration with QuickBooks Online (QBO) is fully supported.

An appropriate account must be specified in ERPAG.

erpag quickbooks accounts

More information about integration can be found at the following link:

7. Integration with XERO

XERO as accounting software also supports non-inventory products.

xero non inventory products

In Xero, it's enough to disable "I track item".

In ERPAG you need to set up adequate accounts.

set up xero accounts in erpag

More information on XERO integration can be found on our blog:

2019. ERPAG Inc

Customizable ERP MRP myth or reality

I am implementing a new ERP / MRP!!!
Last time we tried some questions popped-up:
  • Is there a system that can follow my business model? 
  • How many software do I need to integrate in order to cover all my business procedures?
  • Why is it so hard for a development team to update a simple change 
  • Why training people is so expensive?
  • Why do I need a consultant?
Is there a way or concept that would remove roadblocks in the path of implementation?

Quick tease: 
Yes there is - and the key is in a  most forbidden word in the ERP/MRP world:  CUSTOMIZATION
We will answer all these questions and more, so please stay "tuned"


Have you ever tried to implement an ERP/MRP software in your company? If you haven't then you don't know what the real pain is. To shorten the long story - there are few decisions that really make a difference during the implementation process:

  1. FIRST: Market fit-
    • One really needs to do deep analysis in order to   buy a solution that is not oversized and that will really bring new value into the company
  2. SECOND: A perfect Deployment Time
    • There are many abandoned implementations due to the wrongly selected time. Skip the high season, new product launch cycle, etc. 
  3. THIRD: Right people
    • A high percent of unsuccessful implementations are the result of internal inertia generated from the company and employees itself.
  4. WILL, or absence of it
    • this one is critical-chances of success implementation without the strong support and strong will of business owners make the process almost impossible. 
    • We like to say that a change or introduction of a new ERP in a company is a probably highest priority of an owner
How does it look like to start implementing

Usually, every presentation of ERP/MRP software goes with something like, ..please tell us more about your business, standard workflows, and possible deal-breakers, etc.
Then it continues to the point where you will get a  practical demonstration of core features..and you will probably hit the roadblocks during the presentation/demo. 
Ideally, there could be found a workaround or dev-ops could develop a missing feature or enable fine tunning of a system. Sadly this is not a real-life practice.WHY?

  1. On one side we have Development cost and it is continually growing. 
  2. On another side, we have software complexity. Even if the development team goes with adding a feature or new options, they will always have in mind maintenance cost, which is more and more complex (read expensive) as you add new features. So software companies will do new features if it goes hand in hand with their dev plans and schedules.
  3. Large space for loose project planning during the lack of experience from the client-side or just a bad communication between two sides.
A success story in this process is more likely to be found int fairytale, then in the "Real examples of"  or "HOW TO"  library section. 

Where are we now?

The current solution for this problem in almost every software development company, including ours, is more a rule of a thumb then recommendation. And it goes something like this:

You will lose money time and will if  you try to customize software, so please just:
ADAPT YOUR BUSINESS PROCEDURES  to the new software solution.

So currently the safest option for the decision-makers in the ERP/MRP implementation is to stick to the "TRADITION" - find the best-fitted product in the market and try not to CUSTOMIZE.

But that leaves some questions unanswered:

  • How to respond to a dynamic market-(certainly I cannot change the software each year, right?)
  • How to deal with business procedures that evolve to roadblocks - ( you just cannot foresee every detail in your manufacturing, wholesale or dropshipping business)
  • Upscale? Introduce new business procedures?

Future - Vision

To provide answers to these questions we need to do a paradigm shift. We need to tackle old approaches and create new ones.

Here in ERPAG, we have chosen to try to develop from the ground up a platform that will enable users to design their own processes and workflows and customize the software to follow their business needs.

We have coined the phrase that describes our future vision:

We don't know what your business will be like in the future, 
but we are sure that you can run it in ERPAG

In this simple thought, we've expressed our complete current and future development philosophy.
As we move forward to the world of automatization powered by AI, Cloud concept and the Internet of things, we believe that integrating these core concepts will be the ultimate goal of software development.

Also, in times to come, we see programming, not as a special workforce skill, but more likely a necessity. With early penetration of programing to preschool toys and elementary education -programming will become more and more like math and literacy of the 21st century.

And then we have data collection. With 5G mobile networks and IoT, the software will need to communicate with non-human data collectors more than ever. We will need to collect these streams of data and use them with a single purpose - to optimize demand and supply to the market and boost profit margins as a direct benefit.

Having all that in mind, we are already building our product ERPAG 5.0 on top of our platform.
To achieve our vision we have already started embedding new philosophy approaches.

Let us introduce you with our "weapons of choice" in order to fight the old ERP approaches:

First, in 2019 we have implemented the first level of custom fields. Custom fields as a UI/UX concept will enable data collection based on business-specific needs.No matter if you are from food, defense or agriculture industry - ERPAG will enable you to capture specific inputs and to propagate them from entity creation to accounting and invoice printing.

The second concept is custom script programming.
We are currently implementing Blockly as a scripting language into all ERPAG forms. We expect that in the next 2 years we will have a complete solution in the custom form design with custom-built logic.
Paring custom field with visual programming (VP) that is currently learned in elementary schools, will bring the possibility to fine-tune specific business procedures. Imagine that you can enter your business procedure and be able to calculate specific waste depending on the toolset, or to calculate sales provision based on specific sales terms. With simple script-programing not only that this is doable but you will also have fun while doing it.

The last piece of the puzzle is INTEGRATION. Our development team is working on the core engine that will simplify and streamline integration between ERPAG and other software/devices.
With the standardization of data exchange formats, data exchange becomes easier to manage.
We see more and more devices and vertically specialized software solutions to offer APIs right out of the box.
Harvesting data exchange and integration cut down the enormous costs even for big businesses that are commonly known as ETL processes (Extract Load Transform).
With simplified integration and rapidly increasing data transfer speeds (faster broadband, 5G networks), we expect that ERPAG will read data in real-time from vehicles, machines, field workforce, and specialized cloud services.

Joining these three concepts in one platform that is bottom-up customizable will enable a complete wrapping of software solutions around your business. It will also boost the community that will naturally evolve all specific business procedures that can be re-used as shared knowledge. We can already see business procedure that was designed by some users of our platform e.g read data from a drone, can be re-used by someone else from a totally different company with a totally different business model.
We see the future in customization or bespoke software, and we are giving our best to bring it to you.

used resources:
<a href="">Business vector created by freepik -</a>


The snippets

erpag snippets

1. Introduction

The most common questions our users ask themselves when they open any document list in ERPAG are:
  • What should I do now?
  • Where the business stopped?
  • To which documents I should pay extra attention to?
  • Which documents should I pack?
  • Which documents should I ship?
  • Which sales orders I should invoice?
  • Who should I contact today?
  • Etc.
It's hard to give a universal answer. The sole answer depends on the specifics of each business and the roles the operator has. In order to reach the wanted answer, the operator had to go through a few manual steps each time. Those steps mainly include filtering and searching data based on the specific criteria. The data list was there, the operator just had to find what interests him. That can be time-consuming if it's done day-in-day-out.

Some developers would say: How can we know which data you need? Which data you consider important, while others you find trivial?

However, ERPAG developers have a different approach. We analyzed the user's behavior, conducted surveys, and found the point agreement of operators' needs. What everyone needed was from ERPAG to pull out the core of each list, eg. key point indicators (KPI). The view should be instant and clear with simple action if there is a need for more information.

A good example comes from one of our users which said: "When I go to CRM, in the Quotation list, I want to see who do I need to contact today, who should I contact in the next few days, and who did I miss to contact." Until now, operators had to filter the Quotation list to today's date, and then to filter out the status to be 'in process', and so on for every information each day.

The solution we came up with and implemented is called THE SNIPPETS.

2. Snippet types

snippets type

If there are snippets for any list, they will appear above the table. There are two types of snippets: filter and sum.
  • Filter type
filter snippet

On the right slide, we have a funnel icon (filter), while on the right side we have a total number of documents from the list (document number is in the document lists, the item number is in the product and services list, etc.) that meet the condition.

If there is no data that meets the given condition, the snippet is transparent with gray text.

empty data snippet

On this snippet, you can click on, and the list will be filtered out by the given snippet condition. When a snippet is "turned on", it's background is black, while the text is white.

turned on snippet

This is how the list from our example will look when we "turn on" the filter snippet:

quotation filter snippet

Ie. in our list we will just see the document(s) where the follow-up date is today.

Snippets support multiple filters, so you can turn on multiple filters at once.

We will create an example in which we will turn on 2 snippets on the sales order list.

sales order missed deadline snippet

By clicking on the "Deadline missed", we will update the list and snippets with it.

sales orders ready for packing

The next click is on "Ready for packing", and we will see all the documents we could pack, but we missed the deadline.

sales orders snippets
  • SUM type
The primary function of this snippet is to show the summed up value. On the left side, we have the SUM symbol (Greek symbol Sigma) and value.

sum type snippet

In most cases, there is no option to filter it by clicking on it.

This value (like the number value in the filter type) is dynamic, so if you turn on the filter snippets, the value will automatically be summed up according to the new parameters.

The value will also be summed up if we filter it directly from the list.

filtering from the list

filtering from the list

In this example, we filtered the "Retail" warehouse, and our filter and sum snippets automatically updated.

3. Setup

As we mentioned, each business model has specific needs and each operator has specific roles, so we enabled the operators to select which snippets they want to track.

enabling snippets

If there are snippets on the list, they are set up through the MORE > SNIPPETS option.
  • On/Off
If "checked", the snippet will show. If you don't want to have any snippets on your list, just turn them all off.

manage snippets

It is best to adjust the snippets according to the resolution of your screen, in order to prevent scrolling around. The maximum number of snippets is 8.
  • Color
snippet color

The developers usually assign the color according to the traffic light principle (Red-Yellow-Green), but we decided that the operators should have the ability to select the background color of the snippets, according to their liking. For example, someone might want the "Deadline today" to be red-colored, in order to draw more attention.
  • Position - left/right
Sums and values are usually displayed aligned to the right side, because numbers are usually aligned to the right for easier reading. With this option, we enabled the operators to select whether they want the snippet to be aligned from left to right, or vice versa.
  • Sequence order
The sequence order is adjusted via drag and drop technique by mouse, or by clicking on the arrows.

snippet order

Note that with the right alignment, the order is reversed.

2019. ERPAG Inc.

How to calculate commission on sales?

sales commission

1. Introduction

The practical need of every business is to measure sales and to further motivate and/or reward successful ones. The most common way for a company is to calculate commission for its salesmen or lobbyists.

For simplicity, the most common form is flat rate commission (eg, on each sales order 5% of its value is charged). It is simple but it leaves many questions, and some of which are:
  • Is this applicable to all types of businesses?
  • How is the customer return calculated?
  • Should all commercialists have the same commission?
  • If the margin is different, should the same percentage always be calculated?
  • What if more people are participating in sales?
  • If the buyer is granted a discount, does the commission need to be reduced?
  • A higher sales order amount to account for a higher percentage?
  • The calculation should be done only when the goods are delivered?
  • Etc …
Since the simple way cannot meet the needs, there are different types of commission calculation (straight, tiered, gross, placement fees, gates, share of margin, etc.). The more time passes, the more complex the calculations become.

For us as software developers to implementing all these methods is a big challenge. Not only because of their complexity but that the methods are evolving. Depending on the market conditions, companies change their calculations. Each change takes time as well as new hours of development, which requires additional costs, especially for SMBs.
  • What is the solution?
The solution is to enable each company to independently set up the calculation.
  • Why?
No one can understand and set up a calculation other than the company itself.
  • How? When a visitor has no programming experience or access to the programmer's code?
ERPAG has integrated Google Blocky ( ), a visual programming language ( VPL ) that allows users more unprecedented customization.

erpag blockly

In this text, we will do an example of commission calculation.

2. Custom fields

Custom fields are a very useful option in customization (for more details check out this link:

Due to data integrity, enrollment is limited to custom fields only. So we will open up new fields to store the results.

Opening a new custom filed is done by activating the "add new" option in the "custom fields" panel when entering a sales order (new or edit mode of an existing one).

sales order custom fields

In our example we will create a custom field, that is a type: List.

custom field type list

Where we will enter a list of our sales representatives:

custom field sales representatives

And we will create an additional "commission" field, that has an "Amount" type (numeric). "Read-only" status can be turned on in order to forbid the operators to change the values.

custom field amount type

Note: Opened Custom fields can be dragged-and-dropped to any position in the document. In our example, we will place it in the "document header" section.

custom fields repostitioning

3. Creating the Blockly Script

This option is located in Administration > Integrations > Blockly Scripts

erpag blockly scripts

Upon activating the "Create" button, we will choose "Sales Order".

create blockly script

When entering a document, the Blockly toolbar also has ERPAG variables (highlighted in red) in addition to the standard options (highlighted in green).

blockly toolbar

Programming is done like stacking with the mouse (drag & drop technique). You can find more information on Google for Education ( ).

4. Creating the script

It is necessary that for the sales specialist "Nikola Tesla" we calculate the commission of 5% and added 2% on amounts over $1000 when the invoice is generated from the sales order.

Since the script will be executed at every recording of any sales order, we have to set the condition that the calculation is valid only for “Nikola Tesla".

erpag blockly

What we recommend is that when comparing text data you should always include "UPPER CASE", because operators do not care if data is case sensitive or not.

What we put inside the "IF" block will be executed if the data from the custom field called "sales specialist" equals "NIKOLA TESLA".

erpag blockly script

In the example from the picture custom field named "Commission" will have 5% of the sales order value.

In order to only be accounted for when the invoice is generated, we need to add another condition.

erpag blockly script

And we still have to do an extra 2% if the invoices are over $1000.

erpag blockly script

And in such a simple way, we did a complex calculation without having to hire professional developers.

5. Activating the script

To prevent unfinished scripts from running, each script is paused when it is saved.

erpag blockly script

All blocks are colored in gray when the script is paused. Script activation is via the “Run” option.

The active script has the status "Running", it can be stopped by activating the "Pause" option.

erpag blockly script start pause

6. Results in Sales Order

To see the results we will create a Sales Order, where we will mark the corresponding "sales specialist".

sales order in erpag

Before the invoice, the commission value will be 0 and it will not be displayed (custom fields that are empty or value is 0 are not being displayed).

invoice sales order

When we "invoice" the sales order, the value of the "commission" custom field will be populated.

sales order commission

7. Manipulations with Scripts

This script is done for one sales specialist, for others, you can insert in the same script or form a new one. ERPAG has no specific limit on how many scripts you can have per document type.

When in edit mode you can use copy/paste options to copy.

copy paste blockly script

We will activate "copy" in "Nikola's commission" and we will paste it into a new Script and refine it a bit.

erpag blockly script

On the script list, we can see which ones are currently active.

erpag blockly script list

If we have more than one script for the same document, the priority for executing will be its number.

8. Conclusion

Forming the scripts may seem unclear at first glance, especially to someone who has not had prior experience. The biggest benefit you get is the ability to customize the system on your own.

Visual programming languages ​​(such as Google Blockly) are already a part of the elementary school's educational program today. Therefore mastering this tool will not pose as a big challenge.

2019. ERPAG Inc.