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.
If you supply shops as well as farmers, one of two things is happening right now.
Neither is a software problem you can discount your way out of. The rate has to know who is buying.
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:
Wholesale is a fourth tab beside Cash, Credit and Partial. Which tab you are on decides which list of customers you can pick from:
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.
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:
| What happened | Two accounts | AgroPOS, 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.
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.
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.
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:
“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.
| Operation | Time |
|---|---|
| Product search by name or active ingredient | 3 ms |
| Barcode scan | under 1 ms |
| Customer search | 5 ms |
| Open a past invoice with its lines | under 1 ms |
| Save a sale of five lines | 24 ms |
| One customer’s whole khata | under 1 ms |
| Day book totals for a day | 36 ms |
| Month profit and loss | 16 ms |
| Recovery list, everyone who owes | 10 ms |
| Stock report, every product with batches | 32 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.
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.
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.
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.
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.
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.
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.
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.