AgroPOSby Innobrains
Wholesale & distribution

POS software for high-volume agriculture dealers and wholesalers

A large fertilizer dealership selling by the tonne, a pesticide dealer supplying the shops around him, or a zarai markaz counter with a peak-season queue — all of it runs on one till, or on two or three tills at once with the Multi-Counter edition. Retail to farmers and wholesale to shops, two rate cards, hundreds of bills a day, a catalogue in the thousands, and the whole thing offline on the shop PC.

The problem with running trade and retail off one price list

If you supply shops as well as farmers, one of two things is happening right now.

  • You keep one price and discount by hand. Every shop bill needs someone to remember the right rate and type it in. It works while you are at the counter, and it stops working the day your son or your munshi bills a shop at the farmer rate — or a farmer at the trade rate, which costs you the margin on the whole bill.
  • You keep the trade prices in a separate book. Then the software's stock and khata are right but its profit figures are not, because the rate on the bill was never the rate in the system.

Neither is a software problem you can discount your way out of. The rate has to know who is buying.

A wholesale rate that belongs to the product

Each product in AgroPOS carries three prices, not one: the cash price a farmer pays, the credit price a farmer pays on udhaar, and a wholesale price for shops.

A customer marked as a Shop is billed the wholesale rate. A farmer is billed cash or credit as before. The rate follows the buyer, so nobody has to remember it and nobody can mistype it.

Two details that matter in practice:

  • A shop pays the trade rate on udhaar too. A trade price is about who is buying, not how they settle. Charging a shop retail because they happened to pay cash is the bug this exists to prevent.
  • A product with no wholesale rate falls back to your normal price. You do not have to fill in a trade rate for all 400 products before you can bill your first shop.

Shops and farmers stay separate at the till

Wholesale is a fourth tab beside Cash, Credit and Partial. Which tab you are on decides which list of customers you can pick from:

  • Wholesale lists only your shop customers.
  • Cash, Credit and Partial list only farmers.

That is deliberate, and it is the part that actually stops mistakes. A shop cannot be billed at retail and a farmer cannot be billed at trade, because neither appears in the other's list. If the counter switches tabs with a buyer already selected, the buyer is let go rather than carried across onto the wrong rate card.

Money works the same as a partial sale: enter what the shop actually handed over, and the rest goes to their khata. A shop taking goods on udhaar is recorded, chased and settled exactly like any other credit customer — the udhaar khata and recovery do not care that the customer is a business.

When the same party buys from you and sells to you

This is the case that breaks most software. You sell surplus stock back to a distributor. You buy a pallet off the shop down the road when a season catches you short. Kept as a customer account and a supplier account, that is two balances for one person — and a reconciliation you redo in your head every time they walk in.

AgroPOS lets you declare a customer and a supplier to be the same business. From then on they share one netted khata:

One party, both directions
What happenedTwo accountsAgroPOS, linked
You sold them Rs. 50,000 Customer account: Rs. 50,000 owed to you Rs. 150,000 you owe — one figure
You bought Rs. 200,000 from them Supplier account: Rs. 200,000 you owe
What the dashboard shows Rs. 50,000 in recovery and Rs. 200,000 in payables — the same relationship counted twice Rs. 150,000 in payables. Nothing in recovery, because on net they owe you nothing
Settling up You work out the difference yourself, every time Already netted. Pay the difference and the khata is clear

Their statement shows both sides — what you sold, what you bought from them, and the net — so the balance can be explained rather than just believed. Sale returns, purchase returns, payments and recovery all land on the same account, each in the right direction.

The bill goes to the business, not the person

A shop customer gets its own trading name, and that is what prints — on the 80 mm thermal receipt and on the A4 invoice alike. "Al-Falah Pesticides" is who the bill is for; the man at your counter may be the owner, his brother or his servant, and that is recorded separately in the Received by note on credit bills.

It is the first thing asked when a balance is disputed months later, and on trade accounts it is asked more often than on farmer accounts, because more people are authorised to collect.

Off until you need it

Most agri-input dealers sell only to farmers, and for them a customer type, a second rate box and a fourth till tab are three things to read past forever. So both features ship switched off.

Turn wholesale on in Settings › Who You Sell To, and two-way trading in Settings › Buying and Selling. Turn them off again and nothing is deleted — a linked party keeps its netted khata, and a shop customer keeps every bill and balance. What goes away is the ability to make new ones.

Everything else the shop needs, unchanged

Wholesale sits on top of the same software, not beside it. The same batch and expiry tracking, the same Agriculture Department registers, the same offline operation:

  • Batch and expiry tracking — earliest-expiring stock sells first, expired batches are blocked at the till, whoever is buying.
  • Udhaar khata and recovery — one ledger mechanism for farmers and shops both.
  • Agriculture Department registers — the seven records on your own letterhead.
  • Profit and loss costed at the rate each batch was actually bought at, so a trade sale's thinner margin shows up honestly rather than being averaged away.

How AgroPOS performs with 100,000 invoices

“Fast” is not a number, so here is the measurement. The figures below come from a benchmark that builds a dataset larger than a real dealership and times the operations a counter actually performs. It runs against the same SQLite engine the shop PC uses, and it ships with the source so it can be re-run rather than taken on trust.

Dataset: 10,000 products · 25,000 customers · 100,000 invoices · 500,000 sale lines · 44 MB database.

Measured on an ordinary Windows PC
OperationTime
Product search by name or active ingredient3 ms
Barcode scanunder 1 ms
Customer search5 ms
Open a past invoice with its linesunder 1 ms
Save a sale of five lines24 ms
One customer’s whole khataunder 1 ms
Day book totals for a day36 ms
Month profit and loss16 ms
Recovery list, everyone who owes10 ms
Stock report, every product with batches32 ms

What that means at the counter: the search box answers as the cashier types, and the bill is saved before the finger leaves the key. It stays that way because the database is on the shop PC — there is no network between the till and the data, so a queue in peak season is limited by how fast a person can type, not by a connection.

Two things matter more than the raw speed for a large dealership. A catalogue in the thousands is searched by brand, company or technical name, so a counter that knows the active ingredient does not have to remember which brands contain it. And stock is held per batch, so hundreds of lots with different expiry dates and different purchase rates stay separate — which is what keeps the profit figure honest when the same product was bought at four prices in one season.

Questions dealers ask about wholesale

Can I charge shops a different rate from farmers?

Yes. Each product carries a separate wholesale rate alongside its cash and credit prices. A customer marked as a Shop is billed the wholesale rate; a farmer is billed your normal cash or credit price. Neither can be billed off the other rate card, because the till lists the two kinds of customer separately.

Does a shop get the wholesale rate on credit as well as cash?

Yes. A trade price is about who is buying, not how they settle, so a shop pays the same rate whether they hand over cash or take udhaar. What they actually paid is entered at the till and the rest goes to their khata.

What if I sell to a shop AND buy from them?

Link the two records and AgroPOS keeps one netted khata. Sell them Rs. 50,000 and buy Rs. 200,000 from them and the account reads Rs. 150,000 you owe — one figure, shown once in payables and not at all in recovery. Their statement shows what you sold, what you bought, and the net.

Will this clutter the software if I only sell to farmers?

No. Wholesale and two-way trading are both switched off until you turn them on in Settings. With them off there is no customer type, no second rate box and no extra till tab — the software is exactly as it is for a retail-only shop.

Does it print a different bill for a shop?

The bill is addressed to the business rather than the person who came to collect it. You give the shop its own trading name, and that is what prints on both the 80 mm thermal receipt and the A4 invoice. The person who actually took the goods is recorded separately on credit bills.

Do I need a separate licence for wholesale?

No. Wholesale is part of AgroPOS at the same one-time price of Rs. 30,000 for a single counter — there is no wholesale module to buy. A busy dealership billing from two or three tills at once can take the Multi-Counter edition instead, at Rs. 50,000 for two counters or Rs. 70,000 for three, and wholesale is included there too.

Try it on your own rates

The only real test is your own price list. Install the trial, put a wholesale rate on five products, mark one customer as a shop, and bill them both ways — retail to a farmer and trade to the shop — then look at what the profit statement says about each.

Ask about wholesale on WhatsApp Pricing & 14-day free trial

Rs. 30,000 one-time for a single counter, or Rs. 50,000–70,000 for two or three counters billing together. Wholesale is included in both — there is no separate wholesale module.

From the blog

All articles