
May 24, 2026
Purchase Sales Module Explained
purchase sales module ERP: practical 2026 guide with features, INR pricing, roadmap, tech stack, mistakes, FAQs, and Indian SME tips today safely for SMBs.
Read articlePublished Updated
Design an ERP product master and price list with SKU, barcode, HSN, units, GST, price tiers, effective dates, imports, approvals, and audit trails.

A product master is the controlled source of identity and commercial defaults for every item a business buys, stores, sells, invoices, imports, or reports. When product names, units, HSN codes, tax rates, barcodes, and prices are maintained independently in spreadsheets and user memory, duplicate records and reporting mismatches become inevitable.
This guide explains how Indian traders, wholesalers, retailers, distributors, suppliers, and small manufacturers can design a practical product master and price list system. It covers identifiers, units, GST fields, variants, customer price lists, effective dates, imports, approvals, audit history, multi-company copying, and rollout acceptance.
By Tushar C. (Founder, VASUYASHII). Editorial review covers master-data governance, billing and inventory consistency, price controls, imports, auditability, multi-company boundaries, and ERP-lite implementation scope.
A reliable product master needs a stable product ID, buyer-friendly name, SKU or code, barcode where used, category, HSN or SAC, unit, GST rate, purchase and sale reference prices, stock settings, status, and audit history. The exact fields vary by business.
A price list should not overwrite transaction history. Store the customer or channel context, currency, unit, amount, tax basis, effective start and end date, priority, minimum quantity if relevant, approval, and version. At invoice time, the system should resolve the applicable price and preserve the selected value on the transaction.
Typical failures include:
These issues affect purchasing, stock, billing, returns, margins, tax reports, ecommerce catalogs, and analytics. Cleaning the master is therefore an operating project, not a cosmetic database task.
Separate technical identity from the labels people see.
| Field | Purpose | Rule |
|---|---|---|
| Internal ID | Permanent database identity | Never reused |
| SKU or product code | Business-facing stable identifier | Unique within agreed scope |
| Barcode | Scanning identifier | Unique for sellable item or variant |
| Product name | Human-readable label | Naming standard and no tax keyword stuffing |
| Supplier code | Vendor reference | Can vary by supplier |
| Alias | Search or legacy match | Does not create another product |
Do not use a name as the database key. Names change for clarity; the underlying product identity and transaction relationships must remain stable.
Different businesses need different record shapes:
Do not enable every type by default. Each adds validation, movement, return, and reporting rules. A hardware shop may need piece, box, metre, and brand variants; a garment shop needs colour-size combinations; a stationery supplier may need pack quantities; a service business may need SAC without stock.
For apparel-specific modelling, use the garment inventory guide.
Keep unknown values empty rather than entering zero or arbitrary text that later appears valid.
The system can store tax configuration, but the business must verify the correct classification and rate with its adviser. Restrict who can change these values.
When a rate changes, use an effective-date process rather than editing historical invoices. Future transactions should use the applicable configuration; posted transactions should retain the original HSN, rate, taxable value, and tax amounts used at that time.
Test intra-state and inter-state billing, inclusive and exclusive pricing where supported, exempt or zero-rated scenarios relevant to the business, returns, discounts, freight, and rounding. Product-master correctness is necessary but invoice calculation still needs separate acceptance.
Choose one base unit for stock. Alternate units convert to it using controlled rules.
Example:
The system may allow purchase in cartons and sale in boxes or pieces while storing movement in the base unit. Conversion changes are dangerous after transactions exist. If a supplier changes pack size, create an effective rule or new sellable configuration rather than rewriting history blindly.
Define rounding for divisible units such as metre, kilogram, or litre. Do not allow fractional pieces unless the product can genuinely be split.
Decide whether the business uses manufacturer barcodes, internal labels, or both. Validate uniqueness before save and import.
Controls include:
Barcode is a lookup method, not product identity itself. Preserve internal IDs even when labels change. Review the barcode inventory guide before buying devices.
A single sale_price field is insufficient when rates vary. A practical price-list record can include:
Examples include retail, dealer, wholesale, institutional, online, branch-specific, and contract prices. Use only the dimensions the business can maintain.
Write the precedence before development. One example is:
If two valid records have the same priority, the system should flag a conflict rather than silently choose whichever row loads first.
At quotation or invoice time, record the source price list, original amount, applied discount or override, final unit rate, tax basis, and approval where required. Later price-list edits must not change the posted transaction.
Quantity-based prices might be:
Define whether quantity is per line, product family, order, month, or agreement. A buy-X-get-Y scheme is not always the same as a lower unit rate; it may affect stock, invoice presentation, tax, returns, and margin differently.
Keep scheme logic separate when the business needs eligibility, benefit items, dates, customer groups, stacking, and reversal. See the distributor billing guide for transaction-level controls.
A bulk update should use a preview and approval flow:
Do not overwrite a complete price list from an unchecked spreadsheet. A missing row may unintentionally remove a valid price. Decide whether an import is append, update, replace, or deactivate and show the impact before commit.
Prepare an import contract with required columns, formats, allowed values, and matching rules. Match existing records by stable ID, approved SKU, or barcode, not fuzzy name alone.
The import should report:
Run a dry preview before actual import and keep the source file and result. For a large migration, reconcile record counts, sample transactions, inventory totals, and price output.
Products with transaction history should normally become inactive, not disappear. Inactive products remain visible in old invoices and reports but cannot be selected for new transactions unless reactivated.
Use permanent deletion only for authorised duplicate or test data under strict conditions. If two duplicate products both have transactions, merging requires a controlled migration and audit record; changing the label of one does not combine stock history.
One user may manage several firms. Each company can have different GST details, numbering, prices, stock, customers, purchases, and invoices. Product masters may be copied for convenience, but transactions and balances must remain company-specific.
A Copy Masters feature should define:
Backend company-scoped permission checks are mandatory. Hiding another company in the dropdown is not enough.
Record who changed protected fields, when, old value, new value, and reason. High-risk fields include SKU, barcode, unit conversion, GST, purchase cost, sale price, active state, and company scope.
Useful controls:
Review price and tax changes by user and period. Repeated overrides may indicate a missing price rule or training issue.
The master itself needs operational reports:
Do not use a single "data quality score" without showing the underlying exceptions and owner.
Product master and price list system cost depends on:
A clean configurable master can be implemented faster than a custom rule engine. Most delays come from unresolved business definitions and poor source data rather than screen coding.
Define product types, identifiers, naming, categories, units, tax fields, prices, protected changes, and ownership.
Clean and import one representative category. Test create, update, barcode, price resolution, invoice selection, return, and reporting.
Dry-run remaining products, resolve duplicates, import approved data, capture opening stock through controlled records, and reconcile.
Add customer tiers, effective dates, approvals, catalog sync, or automation after base product identity is stable.
VASUYASHII Business Suite is positioned as GST billing, inventory and business management ERP-lite for Indian SMEs. Its product direction includes company-scoped products with SKU or barcode, HSN/SAC, units, GST, purchase and sale prices, stock visibility, imports and exports, invoices, purchases, returns, payments, reports, multi-company support, and Copy Masters for products, clients, and vendors.
Complex price engines, manufacturing BOM, full accounting, marketplace sync, advanced batch costing, and statutory integrations should not be assumed without separate confirmation.
For a scope review, contact VASUYASHII with sample product and price sheets, unit conversions, customer groups, effective-date rules, companies, and current duplicate problems. Use software development services for verified custom requirements.
Not necessarily. SKU is the business's product identifier; barcode is a scannable identifier. They may match, but both need defined uniqueness and lifecycle rules.
Use a parent style with separately stocked variants when colour and size affect identification, stock, barcode, price, or sale. The exact model depends on the merchandise.
Yes. Store distinct lists or rules by customer, group, channel, territory, unit, quantity, or date. Define precedence and preserve the applied price on each transaction.
Use a verified effective-date process for future transactions. Posted invoices should retain the original tax inputs. The business remains responsible for correct classification and statutory treatment.
Yes, with a preview, duplicate rules, field selection, permissions, and audit trail. Stock, invoices, purchases, payments, and balances should remain company-specific unless a separate migration is explicitly approved.
First identify the canonical product and all related stock and transactions. Use a controlled migration with reconciliation and audit history. Do not simply delete one record or rename both.
Treat product and price data as governed business records. Stable identity, explicit units, effective prices, controlled imports, and auditability are the foundation for trustworthy billing, stock, catalog, and reports.
Related Articles

May 24, 2026
purchase sales module ERP: practical 2026 guide with features, INR pricing, roadmap, tech stack, mistakes, FAQs, and Indian SME tips today safely for SMBs.
Read article
June 9, 2026
Build a wholesaler website with searchable catalogs, MOQ and price rules, dealer qualification, repeat-order flow, WhatsApp, and lead tracking.
Read articleMay 26, 2026
manufacturing production tracking system: practical 2026 guide with features, INR pricing, roadmap, tech stack, mistakes, FAQs, and Indian SMB tips today.
Read article
May 24, 2026
Plan vendor software across supplier masters, purchase orders, receipts, bills, returns, payments, outstanding dues, approvals and reports.
Read article