Bought by the kilo, sold by the piece — an ERP for a fastener wholesaler
How Yukti AI built Laxmi Fastener a trading ERP and CRM where every bolt, nut and washer carries its own KG–to–PCS conversion: WhatsApp enquiries parsed into priced lines, quotations built from the company's own 2026 rate list, running challans billed once a month, zinc job work costed properly, and a stock model that will not let you sell what is already reserved.
Laxmi Fastener supplies industrial fasteners — MS, GI, stainless and high-tensile bolts, nuts, washers, studs, anchors and screws — to industrial customers from Ankleshwar, Gujarat. The business buys in weight and sells in both weight and pieces, runs open monthly challans for regular customers, sends material out for zinc plating, and took much of its order flow as WhatsApp shorthand, from customers and inside two staff groups. Yukti AI built one system covering the whole cycle: CRM with a WhatsApp workspace and message parser, quotations and orders priced from the real PRICE LIST 2026, running challans with month-end consolidation, packing and dispatch queues, zinc and coating job work with landed cost, GST invoices and E-Way bills, purchase and supplier bills, receivables and payables, and reports including product-level profitability.
Contents
- Quick facts
- The business
- Who this fastener ERP software is for
- The challenge
- Before vs after
- Before vs after, step by step
- Why not Tally or a generic ERP
- KG to PCS conversion
- Automation workflows
- Solution architecture
- The modules
- Every feature and its business benefit
- How it helps sell more
- Challan to invoice and job work, in detail
- AI and automation
- Roles and role-by-role benefits
- How it was built
- What was delivered and current status
- Technology and roadmap
- FAQ
Quick facts
| Client | Laxmi Fastener, Ankleshwar, Gujarat |
|---|---|
| Industry | Industrial fastener wholesale & distribution — MS, GI, HDG, stainless and high-tensile bolts, nuts, washers, studs, anchors, screws, chemical anchors |
| Business type | Trading and distribution with job work — buys by weight, sells by weight and by piece, sends material out for zinc plating |
| Core challenge | Every item has two units; orders arrive as WhatsApp shorthand; two WhatsApp groups used for stock and order coordination; running challans reconciled by hand at month end; zinc job work costed by guesswork; Tally used for books but nothing for operations |
| Solution | Custom fastener trading ERP + CRM — 57 screens across nine modules, built on the company's own price list |
| Unit engine | KG ↔ PCS ↔ BOX / PKT / SET / MTR / BAG, driven by weight-per-100-pieces taken from the client's KGS-NOS sheets |
| CRM & Sales | Enquiries, customer 360 with ledger and WhatsApp timeline, drag-and-drop pipeline, follow-ups, WhatsApp workspace with a message parser and suggested replies |
| Sales documents | Quotations with per-line stock and price source, sales orders, running challans with signature and month-end consolidation, GST invoices, dispatch register, E-Way bills |
| Inventory | Stock overview and valuation, product master from PRICE LIST 2026, product 360 with multi-supplier comparison, stock movements, low stock, zinc/coating processing, adjustments and audit, fastener calculator, godown IN/OUT |
| Purchase & Accounts | Suppliers, purchase orders and RFQ, goods received with QC, supplier bills and payments; receivables, payables, party ledger, aging, financial overview |
| Stock rule | Available = Physical − Reserved − Under Processing − Under Zinc − Damaged |
| Catalogue | 129 products generated from the company's PRICE LIST 2026 and KGS-NOS CALCULATION workbooks, each carrying its price-list reference |
| Stack | React + Vite + TypeScript, Zustand with Immer, shadcn/ui; a pure business-logic engine designed to move to Supabase Postgres |
| Status | Complete, clickable prototype — all 57 routes built and verified at desktop and mobile widths, real business logic on realistic sample data, ready for the backend phase. E-Way bill generation is simulated, not connected to the NIC portal |
A fastener is two products at once — a weight and a count
Laxmi Fastener sells the small parts that hold industrial India together. A customer needs four hundred M10 bolts for a structure, or twenty kilos of washers, or a hundred metres of threaded rod cut to size. The same M10 × 50 bolt is bought from the manufacturer in fifty-kilo bags, stored in bags, and sold to one customer as “500 pieces” and to the next as “20 kg”.
That one fact breaks most off-the-shelf software. A generic inventory system has a unit field — you choose kilograms or pieces and live with it. A fastener business cannot choose. The purchase invoice is in kilos, the customer's purchase order is in pieces, the godown counts bags, the price list is quoted per kilo but a small order is billed per piece, and the stock ledger has to reconcile all of it without drift.
On top of that sits a second layer of complexity: finish. The same bolt exists as mild steel, zinc plated, galvanised and hot-dip galvanised, and the business creates some of those itself by sending raw material out to a plating vendor and getting back slightly less than it sent.
A fastener ERP's core job is to make the unit conversion invisible — let every person use the unit natural to their job, and keep one true stock figure underneath. Everything else in the system is built on that.
Who is this fastener ERP software for?
This system was designed for one specific kind of business: an industrial fastener wholesaler that buys material by weight, sells it by weight and by count, keeps a long price list of sizes and finishes, and does a good part of its selling over WhatsApp. If you run a nut bolt trading business, a hardware and fastener wholesale counter, or an industrial fastener inventory that spans hundreds of sizes, the problems on this page will sound familiar.
It is a good fit if most of these are true for you:
- Your purchase bills are in kilos but your customers order in pieces, and someone converts KG to PCS on a calculator every day.
- Your rate list is per KG, with different rates for MS, GI and other finishes, plus set rates for nut, bolt and washer combinations.
- Regular customers take material many times a month on an open challan, and you raise one GST bill at month end.
- You send material out for zinc plating or other job work and get back a little less weight than you sent.
- Enquiries and internal orders arrive as WhatsApp shorthand, and your staff coordinate in WhatsApp groups.
- You use Tally (or similar) for books, but nothing runs the enquiry, stock, packing and dispatch side of the business.
The same design also suits wholesale distribution ERP needs in nearby trades: steel and pipe traders, bearing and tool distributors, and electrical or plumbing wholesalers. Laxmi Fastener is in Ankleshwar; Yukti AI is in Surat and builds these systems for traders across Gujarat and the rest of India.
What Laxmi Fastener was doing by hand
These points are our description of the manual work the system was built to replace, drawn from the client's own price-list workbooks and the staff WhatsApp group messages we were shown. They are not quotes from the owner.
- Every quotation needs a calculation first. The customer asks for 500 pieces, the rate list is per kilo, so someone works out the weight, then the rate, then the total — per line, on every enquiry.
- Orders arrive on WhatsApp in shorthand. Messages like Ms bolt 12x50 20kg-77 … Ready karavo had to be read, understood, checked against stock and re-typed into a bill.
- The team runs two WhatsApp groups to coordinate. One group for godown stock in and out, another for orders. Nothing was tracked, nothing was searchable, and a slip missed in a busy group meant material that never moved.
- Running challans are reconciled at month end. Regular customers take material a dozen times a month against one open challan; totalling it and turning it into one invoice was a manual job, with nothing stopping a challan from being billed twice.
- We don't know what plated stock actually costs. Send 100 kg for zinc, get 98.5 kg back, pay a processing rate and transport — but the finished item was still valued at the raw rate.
- Stock is what the godown says it is. No separation between material physically present, material already promised to an order, and material sitting at the plating vendor.
- Tally has the books, but nothing has the business. Accounts existed; enquiries, quotations, orders, dispatch, challans and stock did not.
How an order runs now
Before
- KG–to–PCS worked out by hand on every quote
- WhatsApp shorthand read and re-typed into a bill
- Stock and order slips posted in two WhatsApp groups
- Running challans totalled manually at month end
- Plated stock valued at the raw material rate
- One stock number, with no idea what was already promised
After
- Every product carries its own weight-per-100-pieces
- The parser turns a WhatsApp message into priced lines
- Godown IN/OUT and Quick Order replace both groups, tracked
- Challan totals build live; one click makes the monthly invoice
- Zinc receipts compute a real landed cost, loss recorded
- Physical, reserved, under-zinc and available are separate numbers
How does a typical day change, task by task?
The short lists above give the headline. The table below walks through the actual jobs in a fastener trading day and what each one looks like in the system. The “before” column is a general description of the manual way of working, not a measurement, and no time savings are claimed.
| Task | Before (manual) | After (in the system) |
|---|---|---|
| Answer a price enquiry | Read the WhatsApp message, find each size in the rate list, convert pieces to kilos, apply the customer's rate, total it, type a reply | Paste or receive the message; the parser matches each line to a product, shows available stock and that customer's rate, totals it and drafts the reply |
| Make a quotation | Retype the lines into a document or Excel | Create the quotation from the parsed enquiry; each line shows its price source (standard, customer or manual) and can be in KG or PCS |
| Chase the quotation | Rely on memory | A follow-up is created automatically two days after the quotation is sent |
| Confirm an order | Tell the godown in a WhatsApp group | Convert the quotation to a sales order; stock is reserved and a packing task appears in the packing queue |
| Take an order from staff shorthand | Post it in the order group and hope someone sees it | Type the same shorthand into Quick Order; it becomes a sales order, with “ready karavo” marking it high priority |
| Move stock in or out of the godown | Post a slip in the stock group | Post a godown slip; the godown taps Done (stock moves) or Return (with a reason) |
| Pack and dispatch | Verbal or chat updates | Mark packed, then dispatch from the dispatch queue; physical stock reduces and a dispatch update is prepared for the customer |
| Bill a direct order | Re-enter everything in the billing software | Create the GST invoice from the order; CGST + SGST or IGST is chosen from the customer's state |
| Bill a running challan | Total a month of challan entries by hand | Select the month's challans and consolidate them into one invoice; invoiced challans are locked |
| Send material for zinc | Note it in a register; stock still looks available | Send to zinc; the quantity moves to “under zinc” and cannot be sold |
| Receive plated material | Add it back at the old rate | Enter received weight; loss and landed cost are calculated and the plated variant's stock goes up |
| Reorder stock | Notice when a size runs out | Low-stock and critical alerts at each item's reorder and minimum level; raise a PO from the alert |
| Collect payment | Check the ledger, write a reminder | Receivables and aging show who is overdue; a templated reminder with the outstanding amount is prepared |
Why not Tally, or a generic distribution ERP?
Laxmi Fastener already used Tally and wants to retire it eventually, but not in one jump. The question was what runs the business day to day. A generic distribution ERP handles stock and invoices, but not the things that make a fastener business specific:
| What a fastener wholesaler needs | Tally / generic ERP | The system we built |
|---|---|---|
| Quote in pieces, stock in kilos, bill in either | One unit per item, or clumsy alternate units | Per-product weight table; any unit at any point |
| Read a customer's WhatsApp shorthand | Not a concept | Message parser → matched products, stock, customer rate |
| Staff stock & order slips in the same shorthand | Done in WhatsApp groups | Godown IN/OUT and Quick Order, in-app and auditable |
| Open monthly challan, billed once | Manual totalling; nothing prevents double-billing | Running challan, live totals, consolidate, then locked |
| Zinc job work with weight loss | Not covered | Send → receive → landed cost → plated variant stock |
| Know what is promised versus present | Single stock figure | Physical, reserved, under processing, under zinc, damaged |
| Customer-specific rates | Price lists, loosely applied | Rate per customer per product, shown as the price source |
| Set pricing (nut + bolt + washer) | Manual | N+B, N+B+W, N+B+2W set rates from the price list |
The recommended path keeps Tally for the CA and GST returns in phase one, and moves accounting into the system in later phases only once the operational side is running.
The unit engine, in one example
This is the calculation that sits under every screen in the system, taken from the client's own workbooks (the rates themselves are the client's commercial data and are not shown here):
| Step | Value | Source |
|---|---|---|
| Item | M10 × 50 MS hex bolt | PRICE LIST 2026 › BOLT (10M) › 10MX 50 |
| Pieces per 50 KG | 1,308 nos | PRICE LIST 2026 (nos per 50 KG column) |
| Weight per 100 pieces | 3.82 KG | Derived once, stored on the product |
| Rate | Per KG, separate MS and GI rates | Price list |
| Effective piece rate | KG rate × 3.82 ÷ 100 | Calculated live, never typed |
So a salesman quotes 500 pieces, the godown issues 19.1 KG, the customer's purchase order says 500 nos, the invoice can print either, and the stock ledger records both the quantity as entered and the converted quantity. Nobody does the arithmetic, and nothing drifts. The same table drives the fastener calculator, which reproduces the method in the client's KGS-NOS CALCULATION workbook for set pricing — nut plus bolt, nut plus bolt plus washer, nut plus bolt plus two washers — plus stud cutting tables and thread pitch.
Why the KG to PCS conversion matters beyond quoting
Because the weight of 100 pieces is stored on the product, the conversion is used everywhere, not just in quotations. Stock is kept in one base unit (pieces for almost every item), and any document can be entered in PCS, KG, BOX, PKT, SET, MTR or BAG where that unit makes sense for the item. A bag is weight-based and defaults to 50 KG, matching the price list's “nos per 50 KG”; that default is an assumption still to be confirmed with the owner, and it can be set per product.
For the business this means three things. Valuation is right, because the stock figure behind the KG number and the PCS number is the same. Challans and invoices can bill a KG-rated item by weight and a piece-rated item by count on the same document. And the godown can count in bags while the office thinks in pieces, without anyone reconciling the two at the end of the month.
What runs without anyone chasing it
WhatsApp enquiry → invoice
Staff shorthand → tracked work — replacing the two WhatsApp groups
Zinc job work → true cost
Running challan → one monthly invoice
Stock falls → purchase
One thread, enquiry to payment
Running alongside: purchase (suppliers, orders, goods received with QC, bills, payments), processing (zinc and coating job work), godown (in/out slips) and reports. Every one of them writes to the same stock movement log.
The modules
Dashboard — the command centre
KPIs, today's work, charts, alerts, the packing queue, the WhatsApp feed, follow-ups due and a live activity stream on one screen. Benefit: the owner opens one page and knows what needs attention today instead of asking four people.
CRM — enquiries, customers, pipeline, WhatsApp
Enquiries and a customer 360 view that carries the ledger, the WhatsApp timeline and that customer's own agreed rates. A sales pipeline as a drag-and-drop board where moving a card actually performs the step — drop a deal into the next column and the system creates the order, reserves the stock, queues the packing or raises the invoice. Follow-ups are created automatically when a quotation is sent. Benefit: the enquiry, the conversation, the price history and the money owed are one record, not four.
The WhatsApp workspace and message parser
Incoming customer messages are read by a parser that matches fastener descriptions to catalogue products, pulls live stock and the correct rate for that customer, and totals it. A suggested reply is drafted for the salesman to send or edit, and a quotation can be created from the same screen. Benefit: the slowest, most repetitive part of a trading day — reading an enquiry and working out a price — becomes a review-and-send step. The parser is rule-based (pattern matching against the product master, with a confidence score per line); it does not call an external AI model.
Quotations, orders and the stock guard
A quotation builder where every line shows its stock position and its price source — standard rate, this customer's rate, or a manual override — and can be entered in KG or PCS with live conversion. If a line exceeds available stock the system stops and offers three choices: raise a purchase order, accept it as a backorder, or cancel. Accepted quotations convert into sales orders and reserve stock. Benefit: nobody promises material that is already committed to somebody else.
Running challans
For regular industrial customers who collect material many times a month, each has an open challan. Adding material takes stock out immediately and grows the running total, the customer signs on delivery, and at month end a consolidated statement becomes one GST invoice. A challan that has been invoiced is locked, and trying again gives a clear warning. Benefit: month-end totalling becomes one consolidation step, and the system refuses to bill the same challan twice.
Inventory — stock states, product 360, movements
Stock overview with valuation, a product master presented as the price list the team already knows, and a product 360 page showing the KG↔PCS conversion, every stock state, the full movement ledger and a side-by-side comparison of what each supplier charges for that item. Every change writes a movement recording the quantity as entered, the converted quantity, the change to physical and available stock, the resulting balance, the rate, the party, the reference and the user. Benefit: any number on any screen can be traced back to the transaction that caused it.
Zinc and coating processing
Send raw material to a plating vendor at an agreed rate per kilo; it leaves available stock but stays on the books as under processing. On receipt the actual returned weight is entered, the loss is recorded, and a landed cost is computed from material value plus processing, transport and other charges — then the finished quantity is added to the plated variant of that product at that cost and the vendor bill is raised. Benefit: plated stock is valued at what it really cost, so margins on plated items are honest.
Godown IN/OUT and Quick Order
The two WhatsApp groups the team used for coordination are now screens. Any staff member posts a godown slip or types an order in exactly the shorthand they already use; the godown taps Done to move stock or Return with a reason; an order becomes a sales order with stock reserved and a packing task, with a “ready karavo” instruction raising its priority. Benefit: the same speed as a WhatsApp message, but tracked, searchable and connected to stock.
Purchase and suppliers
Suppliers, purchase orders and RFQs, goods received with a QC step, supplier bills and payments. Receiving goods updates the weighted average cost and creates the bill. Benefit: buying cost stays current, so profitability reports mean something.
Accounts and receivables
Receivables and payables, payment recording with FIFO allocation against invoices and bills, party ledgers, outstanding and aging, and a management financial overview. Benefit: who owes what, and for how long, without exporting anything.
Operations and reports
Packing queue, dispatch queue, team tasks and an activity log; reports for sales, purchase, stock including dead stock, outstanding, profitability and a business summary. Benefit: the floor and the office see the same queue.
Settings and access
Company profile, users and team, roles and permissions, WhatsApp, invoice, tax and GST, and notification settings. Seven roles are defined (Owner, Admin, Sales, Purchase, Accounts, Warehouse, Dispatch), and a role switcher lets the owner preview what each role can see; real per-user logins arrive with the backend phase. Benefit: a warehouse user sees the packing queue, not the ledger, and only the Owner can sell below the minimum rate.
Across all of it: a command palette on Ctrl K that searches products by size (typing “M10 x 50” finds the item), a notification centre, quick-add actions, and a responsive layout with a mobile bottom bar so the godown can use it on a phone.
Every feature, and what it does for the business
Here is the full feature list of this fastener ERP software in one place, each with the concrete benefit it is meant to bring. Everything in this table is built and working in the prototype on sample data; the right-hand column is the purpose of the feature, not a measured result.
| Feature | What it does | Business benefit |
|---|---|---|
| Dashboard | KPIs, today's work, charts, alerts, packing, WhatsApp feed, follow-ups, activity | The owner sees what needs attention today on one screen |
| Inquiries | Every enquiry recorded against a customer, created automatically from a WhatsApp message | No enquiry is lost in a chat scroll |
| Customer 360 | Ledger, WhatsApp timeline and agreed customer rates on one page | Anyone can answer a customer without asking the owner |
| Sales pipeline | Drag-and-drop board where moving a card performs the real step | The board is always true, because it is the process itself |
| Follow-ups | Created automatically when a quotation is sent | Quotations stop going quiet |
| WhatsApp workspace | Message parser, intent detection, suggested replies, create quotation from chat | Faster replies to price enquiries |
| Quotation builder | Per-line stock and price source, KG or PCS, live conversion | Accurate quotes without calculator work |
| Stock guard | Blocks overselling; offers purchase, backorder or cancel | No promises on material that is already committed |
| Sales orders | Reserve stock and create packing tasks | The godown knows exactly what to pack next |
| Quick Order | Staff shorthand turned into a sales order | WhatsApp speed, with tracking |
| Running challans | Open monthly challan, KG/PCS toggle, customer signature, consolidation, lock | One clean GST bill a month; no double billing |
| GST invoices | CGST + SGST within Gujarat, IGST outside; cost snapshot stored per invoice | Correct tax split and real margin per bill |
| Dispatch register & E-Way bills | Dispatch records and E-Way bill validation (generation simulated) | Dispatch paperwork in the same flow as the invoice |
| Stock overview & valuation | Physical, reserved, under processing, under zinc, damaged and available | A stock number you can sell against |
| Product master | 129 products from PRICE LIST 2026 with price-list references | The team works from the list it already knows |
| Product 360 | Conversion, stock states, movement ledger, multi-supplier comparison | Better buying decisions per size |
| Stock movements | Every change logged with quantities, balance, rate, party, reference and user | Any number can be traced to its cause |
| Low stock | Alerts at reorder level, critical at minimum stock | Fewer stock-outs on fast sizes |
| Zinc / coating processing | Send, receive, loss, landed cost, plated variant stock, vendor bill | Plated items carry their true cost |
| Godown IN/OUT | Slips with Done / Return | Replaces the stock WhatsApp group with an auditable trail |
| Adjustments & audit | Stock adjustments with permission control | Corrections are visible, not silent |
| Fastener calculator | Set pricing (N+B, N+B+W, N+B+2W), stud cutting tables, thread pitch | The workbook method, available on any screen |
| Purchase | Suppliers, POs, RFQ, goods received with QC, supplier bills and payments | Buying cost stays current through weighted average cost |
| Accounts | Receivables, payables, FIFO payment allocation, party ledger, aging, financial overview | Who owes what, and for how long |
| Operations | Packing queue, dispatch queue, team tasks, activity | The floor and the office see the same queue |
| Reports | Sales, purchase, stock (dead stock), outstanding, profitability, business summary | Decisions based on the business's own data |
| Roles & permissions | 7 roles, 19 permissions, including cost visibility and below-minimum pricing | Staff see what they need; margins stay private |
| Search & notifications | Ctrl K command palette (search by size), notification centre, quick actions | Find “M10 x 50” in a second |
| Mobile layout | Responsive down to 390 px with a bottom nav | Usable in the godown on a phone |
How does the system help a fastener trader sell more?
Software does not create demand. What it can do is remove the delays and slips that lose orders a trader already had a chance at. In a fastener business most of those happen between the customer's WhatsApp message and the priced reply, and between the quotation and the follow-up. This is how the system addresses each one. No sales figures are claimed; the system has not yet run on live data.
From WhatsApp enquiry to priced quote, faster
A customer sends “10mm x 50mm bolt 500 pcs, M10 nut 500 pcs, 10mm washer 1000 pcs, price please”. In the WhatsApp workspace the parser reads each line, matches it to a product, shows available stock and that customer's own rate, and totals it. The salesman checks the draft reply and sends it, then creates a quotation from the same screen. The step that used to need a rate list, a calculator and retyping becomes a review. For a trader, a fast and correct first price is often what decides who gets the order.
The right price for every customer
Every quotation line shows where its price came from: the standard price-list rate, a rate agreed with that customer, or a manual override. A minimum selling rate sits behind every product, and only the Owner role can go below it. Regular customers get their agreed rate every time without anyone looking it up, and margins are protected on the deals where a salesman is tempted to cut too deep.
Quotations that do not go quiet
Sending a quotation automatically creates a follow-up two days later and moves the deal to “Quotation Sent” on the pipeline. The follow-ups page lists what is due, so open quotes get chased on a schedule instead of from memory.
Repeat business from regular customers
Industrial customers who buy every week are the core of a fastener wholesale business. The running challan makes it easy for them to keep taking material through the month and receive one consolidated GST bill, and the customer 360 page shows their history, rates, ledger and WhatsApp timeline together. There is no one-click “repeat last order” button in the current build; that would be a small addition on the order history already stored.
Never promising what you cannot ship
Because orders reserve stock and the stock guard blocks overselling, a salesman sees the real available quantity before quoting. When stock is short, the choice to raise a purchase order or take a backorder is right there, so the order can be saved rather than lost.
How do challan consolidation and zinc job work run, step by step?
These are the two workflows that most generic GST billing software handles worst for a fastener trader, so here they are in full.
Running challan to one GST invoice
- Open the customer's running challan (each regular customer has one open challan for the month).
- Add material: pick the product, enter the quantity and toggle KG or PCS. The conversion shows live, and the entry is added to the challan.
- Stock leaves immediately as a “Challan Out” movement, and the running totals on the challan grow.
- Record the customer's signature against the delivery.
- At month end, generate the monthly statement and convert it to an invoice. Lines are grouped by product, rate and unit, so the same item at the same rate becomes one invoice line.
- The challan is marked Invoiced. Trying to invoice it again stops with a clear message naming the invoice it was already billed on. Challans from different customers cannot be mixed on one invoice.
Zinc plating job work with landed cost
- Choose the raw item (for example an MS bolt) and the quantity, and send it to the plating vendor at the agreed processing rate per KG.
- The quantity moves to “under zinc”. Available stock drops, so nobody sells material that is at the vendor.
- When material comes back, enter the received weight. The system records the loss (for example 100 KG sent, 98.5 KG received, 1.5 KG loss).
- A landed cost is calculated from material value plus processing, transport and any other charges.
- The received quantity is added to the plated variant of that product at the landed cost, the raw item's physical stock reduces, and the vendor's bill is created.
The result is job work software built into the stock system rather than kept in a separate register. Plated stock is valued at what it really cost, and the loss on every batch is on record for each vendor.
Where AI actually earns its place in a fastener business
In a trading business the valuable AI is not a chatbot on the website. It is the software reading the things a person currently has to read, and noticing the things a person currently has to remember. Some of this is already built into Laxmi Fastener's system as rule-based automation; the rest is a set of possible extensions that are not built yet and would sit on top of the same data.
Built and working in the prototype (rule-based, no external AI model)
- Enquiry parsing — a customer's free-text WhatsApp message becomes matched products, live stock, the right rate and a total. It also detects the intent of a message: price enquiry, stock check, order status, payment, quotation confirmation or greeting.
- Suggested replies — the price response is drafted from the parsed lines using reply templates, so the salesman edits rather than composes.
- Templated WhatsApp messages — order confirmation, dispatch update (vehicle, transporter, packages, weight) and payment reminders with the outstanding amount and days overdue. In the prototype these are recorded on the customer's WhatsApp timeline; live sending needs the WhatsApp Business API connection planned for the backend phase.
- Trade shorthand understanding — the internal parser reads the team's own notation: headers that carry down to size lines,
31/2meaning three-and-a-half inches, bag / nos / nog / kg / set units, rates written as20kg-77or-80 rs per kgs, Gujlish instructions like ready karavo, and the party name on the last line. - Automatic follow-ups — sending a quotation schedules the chase, so quotes stop going quiet.
- Stock guards and alerts — insufficient-stock blocking with a choice of actions, low-stock and critical-stock notifications tied to each item's reorder level.
Possible extensions — not built yet
None of the items below exist in the current build. They are what an AI layer could add later on the records the system already keeps.
- Daily owner briefing — a plain-language summary each morning: what dispatched, what is overdue, which customer has crossed their usual balance, what went below reorder level, which quotations are ageing.
- Price-list anomaly detection — a rate that looks wrong against comparable sizes gets flagged rather than silently used. There is a real reason to want this: during the build, one M12 rate in the client's own sheet looked out of line with the next size up. It was kept exactly as in the Excel and listed as an item to confirm with the owner, not quietly “corrected”.
- Demand-based reordering — reorder levels are a fixed number someone guessed once. An AI layer reads actual consumption per size, seasonality and open orders, and proposes what to buy and when — especially useful across hundreds of sizes where nobody can watch every one.
- Dead-stock and slow-mover detection — fastener businesses accumulate odd sizes. Surfacing capital that has not moved in months, with a suggested action, turns shelf space back into cash.
- Zinc loss monitoring — expected versus actual returned weight per vendor over time. A vendor whose loss percentage creeps up is a cost leak that nobody would otherwise notice.
- Margin watch — every invoice stores a cost snapshot, so the system can flag lines sold below the minimum selling rate, or a customer whose blended margin has quietly fallen.
- Smarter receivables chasing — the templated reminder already exists; an AI layer could decide who to remind, when and in what tone, based on each party's payment history.
- Plain-language questions — “how much M10 × 50 is committed to open orders”, “which customers bought HT bolts last quarter but not this one”, “what is my stock value in stainless”, answered from the live data instead of an export.
AI does not sell more fasteners. It removes the reading, the arithmetic and the remembering — so that the people who know the trade spend their day on customers and buying decisions, not on converting kilos to pieces and totalling challans.
What each person gets
Owner
The dashboard, profitability, receivables and payables, stock valuation, and every report — the only role allowed to sell below the minimum rate, and able to preview any role's view.
Sales
The WhatsApp workspace, enquiries, the pipeline, the quotation builder with live stock and customer rates, and follow-ups.
Warehouse (godown)
Godown slips, the packing queue, stock counts, material issue and zinc job work — on a phone, with a bottom nav.
Dispatch
The dispatch queue, vehicles and E-Way bills.
Purchase
Suppliers, purchase orders, goods received with QC, zinc job work, purchase costs and the multi-supplier price comparison.
Accounts
Invoices, receivables, payables, payment allocation, party ledgers and aging.
Any staff member
Godown IN/OUT slips and Quick Order — the two things everyone used WhatsApp groups for, with no extra permission gate.
What changes for each person in the business?
The roles above describe what each person can open. This table describes what the system is designed to take off their plate.
| Role | What gets easier |
|---|---|
| Owner | One dashboard instead of asking around; profitability using real cost snapshots; control over below-minimum pricing and cost visibility |
| Sales | Priced replies drafted from WhatsApp messages; customer rates applied automatically; follow-ups scheduled; live available stock while quoting |
| Warehouse (godown) | A clear packing queue; godown slips with Done / Return instead of a busy group chat; counting in bags, kilos or pieces without conversions |
| Dispatch | A dispatch queue of packed orders; dispatch records and E-Way bill details next to the invoice |
| Purchase | Low-stock alerts, multi-supplier rate comparison per product, goods received with QC, and zinc job work with landed cost |
| Accounts | Invoices created from orders and challans rather than retyped; FIFO payment allocation; aging and party ledgers; templated payment reminders |
How it was built
Start from their own files
The PRICE LIST 2026 and KGS-NOS CALCULATION workbooks were read and converted into a product catalogue — sizes, pieces per 50 KG, MS and GI rates, per-piece rates, set rates, stud tables and thread pitch — with every product keeping a reference back to its row in the price list.
Build the unit engine first
KG ↔ PCS ↔ BOX / PKT / SET / MTR / BAG conversion, and the stock rule separating physical, reserved, under processing, under zinc and damaged. Everything else was built on top of this.
The sales cycle end to end
WhatsApp parsing, quotations, orders with reservation, packing, dispatch, GST invoicing and receivables — then the running challan and its month-end consolidation.
Purchase, processing and accounts
Suppliers and goods received with weighted-average costing, zinc job work with landed cost, and the payment, ledger and aging views.
Replace the WhatsApp groups
After seeing the team's actual group messages, Godown IN/OUT and Quick Order were added — same shorthand, same speed, but tracked inside the system.
Verify every screen
All 57 routes checked at desktop and mobile widths for console errors and layout overflow, a clean type-check and production build, and the three demo workflows plus the edge cases tested end to end.
What was delivered
Stated factually. This is a complete, verified prototype on realistic data — not a claim about revenue.
This is a fully clickable prototype with real business logic running on realistic sample data held in the browser. It does not yet have a production database, logins, or live WhatsApp, GST e-invoice and E-Way Bill connections — those are the next phase. The architecture was built for that move: the domain types map one-to-one to database tables, and all business logic sits in a pure engine behind a single entry point, ready to become server functions.
Technology
- React 19 + Vite + TypeScript, Tailwind CSS 4 — the application, responsive from a 1440 px desk monitor down to a 390 px phone for godown use.
- Zustand with Immer — the in-memory database and state store, persisted and versioned.
- shadcn/ui — the component layer and design system, with Recharts for charts, dnd-kit for the drag-and-drop pipeline and a Ctrl K command palette.
- A pure business engine — CRM, sales, challan, purchase, processing, inventory, accounts and operations logic written as pure mutations behind a single API entry point, so it can be lifted into Postgres functions without touching the screens.
- Derived read models — receivables, ledgers, KPIs, valuation, profitability and search are computed selectors rather than stored numbers, so nothing can go stale.
The planned backend is Supabase Postgres, with the WhatsApp Business API, the NIC E-Way Bill API and GST e-invoicing plugged into the points already stubbed for them. Laxmi Fastener owns all product, customer and transaction data.
Moving off Tally, in phases
The client uses Tally and wants to retire it. Doing that in one jump is how ERP projects fail, so the plan is staged and the gaps are stated openly:
| Phase | What happens | Tally's role |
|---|---|---|
| 1 | Backend, logins, multi-user; export to Tally | Stays for the CA and GST returns |
| 2 | Accounting core — vouchers, chart of accounts, trial balance, cash and bank book, credit and debit notes | Still the book of record |
| 3 | GST returns data, e-invoice with IRN and QR, live E-Way Bill API | Reduced to verification |
| 4 | Parallel run with the CA for a full cycle, then stop | Retired |
Not yet built, and openly listed rather than glossed over: double-entry vouchers, statutory P&L and balance sheet, bank reconciliation, GSTR-1/3B and 2B reconciliation, TDS and TCS, cheque printing, payroll and the CA export.
If you buy by weight and sell by count, this is buildable for you
The pattern — dual units, customer rate lists, WhatsApp order intake, running challans, job work with landed cost, strict stock states and GST billing — fits:
- Fastener, hardware and tool wholesalers
- Steel, pipe, wire and sheet traders
- Bearing, fittings and spares distributors
- Electrical, plumbing and sanitaryware wholesalers
- Chemical, packaging and consumable distributors with job work or repacking
- Any business running open monthly challans for industrial customers
Start with a free workflow audit. See Custom ERP Software, Manufacturing ERP Software, Replace Excel & Tally or AI Business Management System.
Questions fastener & hardware traders ask
Explore more
Custom ERP Software
Stock, sales, purchase and money on one record — built around how your trading business actually works.
Replace Excel & Tally
Move off spreadsheets and accounting-only software onto one system, in stages that do not break the books.
Case study: Backdrop
An inventory and order system for a distribution business — catalogue, stock and dispatch in one place.
Case study: The Box Factory
An AI quotation engine for a made-to-order manufacturer — brief to bill of materials.
Manufacturing ERP Software
Production, material, job work and reporting for Indian manufacturers and processors.
All case studies
Every Yukti AI build — jewellery, manufacturing, trading and services.
Summary
Yukti AI built a custom fastener wholesale ERP and CRM for Laxmi Fastener, an industrial fastener distributor in Ankleshwar, Gujarat supplying MS, GI, HDG, stainless and high-tensile bolts, nuts, washers, studs, anchors and screws. Because a fastener is bought by weight and sold by both weight and piece, the system is built on a unit engine where every product stores its weight per 100 pieces, taken from the client's own KGS-NOS calculation sheets, so any screen accepts KG or PCS while stock, valuation and ledgers stay consistent. The 57-screen system covers CRM with a WhatsApp workspace whose parser turns a customer's shorthand enquiry into matched products with live stock and that customer's rate; quotations and sales orders priced from the company's real PRICE LIST 2026 with a stock guard that blocks overselling and offers purchase, backorder or cancel; running challans for regular industrial customers, consolidated into one GST invoice at month end and then locked against double billing; packing and dispatch queues; zinc and coating job work that moves stock to an under-processing state and computes a landed cost from material plus processing and transport on receipt; godown IN/OUT slips and Quick Order that replaced the team's two WhatsApp coordination groups using the same trade shorthand; purchase with weighted-average costing; receivables, payables, ledgers and aging; and reports including dead stock and profitability. Stock is governed by the rule Available = Physical minus Reserved minus Under Processing minus Under Zinc minus Damaged, with every change written to a traceable movement log. Built on React, Vite, TypeScript, Zustand and shadcn/ui as a complete clickable prototype on sample data, with rule-based (not LLM) message parsing and a pure business engine designed to move to Supabase Postgres, with WhatsApp Business API, GST e-invoicing and the NIC E-Way Bill API as the next phase. Yukti AI builds comparable trading and distribution ERPs across Surat, Ankleshwar, Gujarat and India.