The unit belongs to the item
Most billing software asks you to pick a unit while making the bill, which works for a shop selling one kind of thing and fails for everyone else. Here the unit lives on the item, set once when you create it. TMT 12mm is a kilogram item, OPC cement is a bag item, aggregate is CFT, tiles are boxes. Picking the item on a bill brings its unit with it, so a single invoice carrying steel in kilos, cement in bags and gitti in CFT needs no decisions and no mental arithmetic from whoever is holding the counter.
Buying in one unit, selling in another
Steel arrives by the ton and leaves by the kilo. Wire comes on a coil and goes out by the metre. Tiles come in boxes and are quoted by the square foot. The conversion is held against the item, so a purchase entered in tons raises stock in kilos and a sale in square feet reduces stock by the right number of boxes. That single behaviour is why generic inventory software does not survive in a material shop — it forces everything into an abstract "quantity" and the figures stop meaning anything within a month.
Rates that move with the market
In steel the rate changes before the shop opens, so the rate on the item is edited each morning and every bill from then on uses it. Where a rate is agreed with a particular party, it is held against that party instead, and where something is negotiated on the day the line can be overridden — with the override recorded so unrecorded discounting does not quietly eat the margin. What this prevents is the most expensive small mistake in the trade: a staff member billing at yesterday's number because that is the one they remember.
Mixed GST on one invoice
A contractor buying for a single slab takes cement at 28%, steel at 18% and sand at 5% in one load. Because the GST rate sits on the item alongside its unit and HSN code, each line takes its own and CGST and SGST are worked out per line. Software that asks for a GST rate for the whole bill cannot do this correctly, and the shops that use it end up either splitting one sale across three invoices or accepting a figure that is wrong.