Software AI Business Management System Custom ERP Software Custom CRM Software Manufacturing ERP Software Jewellery Software Diamond Software Replace Excel & Tally Yukti AI CRM (product) Automation & AI AI Automation Agency in Surat WhatsApp Automation WhatsApp AI Chatbot AI Agents Voice AI Agents Workflow & n8n Automation GeM Tender Automation AI Consulting Web & Apps Web & Mobile Apps Shopify Store Development Industries Diamond & Jewellery Manufacturing Textile & Apparel Retail & E-commerce Logistics & Transport Travel & Tourism Real Estate Healthcare & Pharma All industries Company Work / Case Studies About Blog AI Automation Cost Free SEO Audit Contact
Case study · Fastener wholesale ERP + CRM · Ankleshwar

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.

Executive summary

Quick facts

ClientLaxmi Fastener, Ankleshwar, Gujarat
IndustryIndustrial fastener wholesale & distribution — MS, GI, HDG, stainless and high-tensile bolts, nuts, washers, studs, anchors, screws, chemical anchors
Business typeTrading and distribution with job work — buys by weight, sells by weight and by piece, sends material out for zinc plating
Core challengeEvery 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
SolutionCustom fastener trading ERP + CRM — 57 screens across nine modules, built on the company's own price list
Unit engineKG ↔ PCS ↔ BOX / PKT / SET / MTR / BAG, driven by weight-per-100-pieces taken from the client's KGS-NOS sheets
CRM & SalesEnquiries, customer 360 with ledger and WhatsApp timeline, drag-and-drop pipeline, follow-ups, WhatsApp workspace with a message parser and suggested replies
Sales documentsQuotations with per-line stock and price source, sales orders, running challans with signature and month-end consolidation, GST invoices, dispatch register, E-Way bills
InventoryStock 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 & AccountsSuppliers, purchase orders and RFQ, goods received with QC, supplier bills and payments; receivables, payables, party ledger, aging, financial overview
Stock ruleAvailable = Physical − Reserved − Under Processing − Under Zinc − Damaged
Catalogue129 products generated from the company's PRICE LIST 2026 and KGS-NOS CALCULATION workbooks, each carrying its price-list reference
StackReact + Vite + TypeScript, Zustand with Immer, shadcn/ui; a pure business-logic engine designed to move to Supabase Postgres
StatusComplete, 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
The business

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.

Why this matters for the software

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 this is for

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.

The challenge

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.
Before → after

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
Before vs after, step by step

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.

TaskBefore (manual)After (in the system)
Answer a price enquiryRead the WhatsApp message, find each size in the rate list, convert pieces to kilos, apply the customer's rate, total it, type a replyPaste 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 quotationRetype the lines into a document or ExcelCreate 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 quotationRely on memoryA follow-up is created automatically two days after the quotation is sent
Confirm an orderTell the godown in a WhatsApp groupConvert the quotation to a sales order; stock is reserved and a packing task appears in the packing queue
Take an order from staff shorthandPost it in the order group and hope someone sees itType 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 godownPost a slip in the stock groupPost a godown slip; the godown taps Done (stock moves) or Return (with a reason)
Pack and dispatchVerbal or chat updatesMark packed, then dispatch from the dispatch queue; physical stock reduces and a dispatch update is prepared for the customer
Bill a direct orderRe-enter everything in the billing softwareCreate the GST invoice from the order; CGST + SGST or IGST is chosen from the customer's state
Bill a running challanTotal a month of challan entries by handSelect the month's challans and consolidate them into one invoice; invoiced challans are locked
Send material for zincNote it in a register; stock still looks availableSend to zinc; the quantity moves to “under zinc” and cannot be sold
Receive plated materialAdd it back at the old rateEnter received weight; loss and landed cost are calculated and the plated variant's stock goes up
Reorder stockNotice when a size runs outLow-stock and critical alerts at each item's reorder and minimum level; raise a PO from the alert
Collect paymentCheck the ledger, write a reminderReceivables and aging show who is overdue; a templated reminder with the outstanding amount is prepared
The decision

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 needsTally / generic ERPThe system we built
Quote in pieces, stock in kilos, bill in eitherOne unit per item, or clumsy alternate unitsPer-product weight table; any unit at any point
Read a customer's WhatsApp shorthandNot a conceptMessage parser → matched products, stock, customer rate
Staff stock & order slips in the same shorthandDone in WhatsApp groupsGodown IN/OUT and Quick Order, in-app and auditable
Open monthly challan, billed onceManual totalling; nothing prevents double-billingRunning challan, live totals, consolidate, then locked
Zinc job work with weight lossNot coveredSend → receive → landed cost → plated variant stock
Know what is promised versus presentSingle stock figurePhysical, reserved, under processing, under zinc, damaged
Customer-specific ratesPrice lists, loosely appliedRate per customer per product, shown as the price source
Set pricing (nut + bolt + washer)ManualN+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 core mechanic

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):

StepValueSource
ItemM10 × 50 MS hex boltPRICE LIST 2026 › BOLT (10M) › 10MX 50
Pieces per 50 KG1,308 nosPRICE LIST 2026 (nos per 50 KG column)
Weight per 100 pieces3.82 KGDerived once, stored on the product
RatePer KG, separate MS and GI ratesPrice list
Effective piece rateKG rate × 3.82 ÷ 100Calculated 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.

Automation workflows

What runs without anyone chasing it

WhatsApp enquiry → invoice

Customer message arrives
Parser matches products, pulls stock & that customer's rate
Suggested price reply drafted
Quotation → accepted → order
Stock reserved, packing task created
Dispatch → physical stock reduces
GST invoice → receivables

Staff shorthand → tracked work — replacing the two WhatsApp groups

Staff types a slip or order in the usual shorthand
Trade parser reads sizes, units, rates and the party
Godown sees it with a badge & notification
Done moves stock, or Return records a reason

Zinc job work → true cost

Send 100 KG to the plating vendor
Stock moves to “under zinc”, available drops
Receive 98.5 KG, loss 1.5 KG recorded
Landed cost = material + processing + transport
Plated variant stock added, vendor bill raised

Running challan → one monthly invoice

Material issued against an open challan
Stock leaves immediately, running total grows
Customer signs on delivery
Month-end statement → one GST invoice
Challan locked against double billing

Stock falls → purchase

Available crosses the reorder level
Low-stock notification, critical at minimum
Purchase order raised, incoming quantity rises
Goods received → weighted average cost updated
Supplier bill created automatically
Solution architecture

One thread, enquiry to payment

Enquiry
WhatsApp workspace, parser, inbox tied to the customer record
Quotation
Price list, customer rate or manual — per line, in KG or PCS
Order & reservation
Available drops, physical unchanged; insufficient stock blocked
Packing & dispatch
Packing queue, dispatch queue, physical stock reduces on dispatch
Challan or invoice
Direct GST invoice, or a running challan consolidated monthly
Money
Receivables, FIFO payment allocation, party ledger, aging

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.

What we built

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.

Feature by feature

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.

FeatureWhat it doesBusiness benefit
DashboardKPIs, today's work, charts, alerts, packing, WhatsApp feed, follow-ups, activityThe owner sees what needs attention today on one screen
InquiriesEvery enquiry recorded against a customer, created automatically from a WhatsApp messageNo enquiry is lost in a chat scroll
Customer 360Ledger, WhatsApp timeline and agreed customer rates on one pageAnyone can answer a customer without asking the owner
Sales pipelineDrag-and-drop board where moving a card performs the real stepThe board is always true, because it is the process itself
Follow-upsCreated automatically when a quotation is sentQuotations stop going quiet
WhatsApp workspaceMessage parser, intent detection, suggested replies, create quotation from chatFaster replies to price enquiries
Quotation builderPer-line stock and price source, KG or PCS, live conversionAccurate quotes without calculator work
Stock guardBlocks overselling; offers purchase, backorder or cancelNo promises on material that is already committed
Sales ordersReserve stock and create packing tasksThe godown knows exactly what to pack next
Quick OrderStaff shorthand turned into a sales orderWhatsApp speed, with tracking
Running challansOpen monthly challan, KG/PCS toggle, customer signature, consolidation, lockOne clean GST bill a month; no double billing
GST invoicesCGST + SGST within Gujarat, IGST outside; cost snapshot stored per invoiceCorrect tax split and real margin per bill
Dispatch register & E-Way billsDispatch records and E-Way bill validation (generation simulated)Dispatch paperwork in the same flow as the invoice
Stock overview & valuationPhysical, reserved, under processing, under zinc, damaged and availableA stock number you can sell against
Product master129 products from PRICE LIST 2026 with price-list referencesThe team works from the list it already knows
Product 360Conversion, stock states, movement ledger, multi-supplier comparisonBetter buying decisions per size
Stock movementsEvery change logged with quantities, balance, rate, party, reference and userAny number can be traced to its cause
Low stockAlerts at reorder level, critical at minimum stockFewer stock-outs on fast sizes
Zinc / coating processingSend, receive, loss, landed cost, plated variant stock, vendor billPlated items carry their true cost
Godown IN/OUTSlips with Done / ReturnReplaces the stock WhatsApp group with an auditable trail
Adjustments & auditStock adjustments with permission controlCorrections are visible, not silent
Fastener calculatorSet pricing (N+B, N+B+W, N+B+2W), stud cutting tables, thread pitchThe workbook method, available on any screen
PurchaseSuppliers, POs, RFQ, goods received with QC, supplier bills and paymentsBuying cost stays current through weighted average cost
AccountsReceivables, payables, FIFO payment allocation, party ledger, aging, financial overviewWho owes what, and for how long
OperationsPacking queue, dispatch queue, team tasks, activityThe floor and the office see the same queue
ReportsSales, purchase, stock (dead stock), outstanding, profitability, business summaryDecisions based on the business's own data
Roles & permissions7 roles, 19 permissions, including cost visibility and below-minimum pricingStaff see what they need; margins stay private
Search & notificationsCtrl K command palette (search by size), notification centre, quick actionsFind “M10 x 50” in a second
Mobile layoutResponsive down to 390 px with a bottom navUsable in the godown on a phone
Sales

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.

Challan to invoice · job work

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

  1. Open the customer's running challan (each regular customer has one open challan for the month).
  2. 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.
  3. Stock leaves immediately as a “Challan Out” movement, and the running totals on the challan grow.
  4. Record the customer's signature against the delivery.
  5. 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.
  6. 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

  1. 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.
  2. The quantity moves to “under zinc”. Available stock drops, so nobody sells material that is at the vendor.
  3. 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).
  4. A landed cost is calculated from material value plus processing, transport and any other charges.
  5. 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.

The AI & automation layer

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/2 meaning three-and-a-half inches, bag / nos / nog / kg / set units, rates written as 20kg-77 or -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.
The honest framing

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.

Role-based experience

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.

Role-by-role benefits

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.

RoleWhat gets easier
OwnerOne dashboard instead of asking around; profitability using real cost snapshots; control over below-minimum pricing and cost visibility
SalesPriced 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
DispatchA dispatch queue of packed orders; dispatch records and E-Way bill details next to the invoice
PurchaseLow-stock alerts, multi-supplier rate comparison per product, goods received with QC, and zinc job work with landed cost
AccountsInvoices created from orders and challans rather than retyped; FIFO payment allocation; aging and party ledgers; templated payment reminders
Implementation process

How it was built

STEP 1

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.

STEP 2

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.

STEP 3

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.

STEP 4

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.

STEP 5

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.

STEP 6

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.

Results

What was delivered

Stated factually. This is a complete, verified prototype on realistic data — not a claim about revenue.

57 screens
Across CRM, sales, inventory, purchase, accounts, operations, reports and settings
129 products
Generated from the company's own PRICE LIST 2026 and KGS-NOS workbooks
Two units, one truth
Any screen accepts KG or PCS; stock, valuation and ledgers stay consistent
Groups replaced
Godown IN/OUT and Quick Order take over both WhatsApp coordination groups
Challan billed once
Month-end consolidation with a lock against double invoicing
Real landed cost
Zinc job work values plated stock at material plus processing and transport
Current status — stated plainly

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.

Under the hood

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.

The roadmap

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:

PhaseWhat happensTally's role
1Backend, logins, multi-user; export to TallyStays for the CA and GST returns
2Accounting core — vouchers, chart of accounts, trial balance, cash and bank book, credit and debit notesStill the book of record
3GST returns data, e-invoice with IRN and QR, live E-Way Bill APIReduced to verification
4Parallel run with the CA for a full cycle, then stopRetired

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.

For other traders & distributors

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.

FAQ

Questions fastener & hardware traders ask

A fastener wholesaler buys by weight and sells by both weight and piece, so the single most important requirement is a stock system where every item carries its own KG-to-PCS conversion and either unit can be used at any point: quotation, order, challan, invoice or stock entry. On top of that it needs WhatsApp enquiry handling, quotations priced from the company's own rate list, running challans that are billed once at month end, job-work tracking for zinc plating and galvanising, GST invoicing with E-Way bills, and a stock model that separates physical stock from what is reserved, out for processing or damaged. Yukti AI built this as a working prototype for Laxmi Fastener in Ankleshwar.
Every product stores the weight of 100 pieces, derived from the company's own price list, which gives the number of pieces per 50 KG for each size. For example an M10 x 50 MS hex bolt runs 1,308 pieces to 50 KG, which is 3.82 KG per 100 pieces, so the piece rate is simply the KG rate multiplied by 3.82 and divided by 100. Because the conversion sits on the product, a salesman can quote 500 pieces, the godown can issue the equivalent 19.1 KG and the invoice can show either, and stock, valuation and the ledger all stay consistent.
Customers send fastener enquiries in shorthand, such as "10mm x 50mm bolt 500 pcs / M10 nut 500 pcs / 10mm washer 1000 pcs / price please". A rule-based parser turns that into matched products with current stock, that customer's own rate and a total, and drafts a reply from templates. A second parser handles the internal trade shorthand staff used to post in WhatsApp groups, such as "Ms bolt 12x50 20kg-77 … Ready karavo / ABC STEEL", including Gujlish instructions, half-inch sizes written as 31/2, and bag, nos, set or KG units. Neither parser calls an external AI model.
Regular industrial customers take material several times a month against one open challan rather than a bill per delivery. In the system each customer has a running challan; every issue adds a line with its own quantity in KG or PCS and the running total grows, the customer signs on delivery, and at month end a consolidated statement is converted into one GST invoice. The challan is then marked invoiced so it cannot be billed twice, and attempting it shows a clear warning.
Material sent to a plating vendor leaves available stock but stays on the books as under zinc, so it is never accidentally sold. When it returns the received weight is entered, for example 100 KG sent and 98.5 KG received, a 1.5 KG loss, and the system calculates a landed cost from the material value plus processing, transport and other charges, adds the finished quantity to the plated variant of the product, records the loss and raises the vendor bill. The plated item therefore carries its true cost rather than the raw rate.
Available stock is calculated as physical stock minus reserved, minus under processing, minus under zinc, minus damaged. Converting an order reserves stock immediately, so available drops while physical stays the same until the goods actually leave on dispatch. If a quotation or order exceeds available stock the system blocks it and offers three choices: raise a purchase order, take it as a backorder, or cancel. Every movement is written to a traceable log with the quantity as entered, the converted quantity, the change to physical and available stock, the running balance, the rate, the party, the reference and the user.
The most useful automation in this business is reading, not chatting. What is built today is rule-based: parsing a customer's shorthand enquiry into priced lines, detecting what a message is about, drafting the reply from templates, scheduling follow-ups and raising stock alerts. Possible extensions that are not built yet include flagging price-list rates that look wrong against similar sizes, suggesting reorders from actual consumption rather than a fixed reorder level, flagging slow-moving stock, watching zinc loss by vendor, and answering plain-language questions such as which customers are overdue.
Not immediately, and deliberately so. The recommended plan is staged: phase one adds the backend and a Tally export while Tally stays for the CA and GST returns; phase two builds the accounting core of vouchers, chart of accounts, trial balance and cash and bank book; phase three adds GST return data, e-invoicing with IRN and QR, and the live E-Way Bill API; phase four runs in parallel with the CA for a full cycle before Tally is retired. The gaps at each stage are listed openly rather than glossed over.
Yes. The pattern of dual weight and piece units, rate lists per customer, WhatsApp order intake, running challans, job work with landed cost, GST invoicing and a strict stock model fits fastener and hardware wholesalers, steel and pipe traders, bearing and tool distributors, electrical and plumbing wholesalers, chemical and packaging distributors, and any business that buys by weight and sells by count. Yukti AI builds these across Surat, Ankleshwar, Gujarat and India, starting with a free workflow audit.
It is a complete clickable prototype. All 57 screens are built and were checked at desktop and mobile widths, and the business logic for stock reservation, dispatch, zinc landed cost, running-challan billing and ledgers is real. It runs on realistic sample data stored in the browser, with the product catalogue taken from the client's real price list. It does not yet have a production database, user logins, or live WhatsApp, GST e-invoice and E-Way Bill connections; those are the next phase.
Yes. Each product carries its standard rate from the price list and a minimum selling rate, and individual customers can have their own agreed rate per product. On every quotation line the system shows which price source was used: standard, customer or manual. Overriding the price needs permission, and only the Owner role can sell below the minimum rate.
Invoices are created from sales orders or from consolidated running challans rather than retyped. The tax split is chosen from the customer's state: CGST and SGST when the customer is in Gujarat, the same state as the company, and IGST otherwise. Each invoice also stores a cost snapshot so profitability reports use the real cost at the time of sale. GST e-invoicing with IRN and QR is planned for a later phase and is not built yet.
Yes. Quick Order and the Godown IN/OUT page accept the same shorthand the team used in its two WhatsApp groups, typed directly into the app. Size headers carry down to the lines below, units such as bag, nos, kg and set are understood, rates written as 20kg-77 or -80 rs per kgs are read, and the last plain line is taken as the party name. A Quick Order becomes a sales order with stock reserved and a packing task; a godown slip waits until the godown taps Done or Return.
No, not in the current build. The WhatsApp parser, intent detection and suggested replies are rule-based code and templates, and no external AI service is called. That keeps the prototype predictable and free to run. An AI model could be added later for things the rules cannot do well, such as reading unusual messages or writing a daily summary for the owner, but that is a possible extension, not something built today.
Seven roles are defined: Owner, Admin, Sales, Purchase, Accounts, Warehouse and Dispatch, controlled by 19 permissions. For example, only roles with cost access see purchase costs and margins, price overrides need their own permission, and only the Owner can sell below the minimum rate. In the prototype a role switcher previews each role; real per-user logins come with the backend phase.
Case study at a glance

Summary

Knowledge 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.

Still converting kilos to pieces
on a calculator?

Tell us how you quote, issue and bill today. We'll show you what one system — enquiry to payment — would replace.

Free audit · No commitment required · Surat, Gujarat