Back to Blog
Corporate Solutions

Warehouse Management System (WMS): A Setup Guide

What is a warehouse management system (WMS) and how is it different from inventory software? Bin locations, receiving, put-away, picking, cycle counts, lot and expiry tracking, and the build-or-buy decision.

Depo Yönetim SistemiWMSStok TakipLojistikKurumsal Yazılım

A warehouse management system (WMS) is software that records not only how many units of each product you hold, but exactly which aisle, shelf and bin they sit in and which lot they belong to, scanning every movement from receiving to shipping. Inventory software answers "what do I have"; a warehouse management system answers "where is it, and which unit should leave first". If you run a single warehouse with a few hundred items, inventory software is enough. As items, bins and daily order lines grow, picking errors and time spent searching for stock become the real signal that you need a WMS.

Warehouse management system vs. inventory software

Both use the same product card, but they answer different questions. In inventory software the record belongs to the product: product A, 340 units. In a warehouse management system the record belongs to the intersection of product and location: product A, 120 units in bin B-03-02 and 220 units in bin C-11-04, each with a different lot and expiry date. The difference looks small, yet every process changes because of it. The decision we covered in inventory software or custom software manages the total quantity; a WMS manages how that quantity is physically spread across the building and in what order it moves.

Inventory software tells you how many; a warehouse management system tells you where, and which one should ship first. Without location records, even a correct count is not enough to find the product.

The core record: a location hierarchy

The first step of a WMS rollout is not software but addressing the warehouse. Every bin needs a readable code and a barcode label. A common structure is zone, aisle, rack, level and bin. An address is more than a name; it carries attributes such as capacity, allowed product types and picking priority. If cold rooms, hazardous goods areas or quarantine bins are not defined as separate location types, the system will start suggesting the wrong place to store things.

  • Zones: receiving, main storage, fast-pick, shipping staging, returns and quarantine are separate zones.
  • Address format: a fixed, readable code such as aisle-rack-level-bin; the label goes on the bin, not on the rack frame.
  • Location attributes: maximum weight or volume, whether mixed products are allowed, and whether it is a pick face or reserve stock.
  • Handling units: if a pallet or carton carries its own barcode, one scan can move everything inside it.

From receiving to shipping: WMS process steps

At every step a warehouse management system checks two things: is the scanned product right, and is the scanned location right. At receiving, the delivered quantity is compared with the purchase order and short or over deliveries are flagged on the spot. At put-away the system suggests a suitable bin and the task cannot be closed until the operator scans it. At picking, order lines are sorted by walking sequence through the warehouse; the operator scans the bin and the product, and a wrong product stops the task immediately. At shipping, the packed carton is matched to the order and linked to a shipping label, which is where shipping carrier integration comes in.

The picking method depends on the warehouse. In order picking, each operator picks one order from start to finish; it is simple, but on busy days the same aisle gets walked again and again. In wave or batch picking, lines from several orders are picked together and sorted afterwards. In zone picking, each operator owns an area. Which one is right depends on the average number of lines per order and the layout, and measuring that from your existing order data before rollout beats guessing.

Lots, expiry dates and the FEFO rule

For dated goods such as food, cosmetics, pharmaceuticals or chemicals, pick order cannot be random. FIFO ships the oldest receipt first; FEFO ships the earliest expiry first, and for dated products FEFO is usually the right rule. This cannot be left to the operator’s attention; the system must choose the lot and bin itself when it builds the pick list. The example below suggests locations for one order line in FEFO order and skips bins that cannot be sold from.

type StockSlot = {
  location: string;
  lot: string;
  expiry: Date;
  qty: number;
  status: 'available' | 'quarantine' | 'damaged';
};

type PickLine = { location: string; lot: string; qty: number };

export function suggestPicks(slots: StockSlot[], needed: number, today: Date): PickLine[] {
  const usable = slots
    .filter((s) => s.status === 'available' && s.qty > 0 && s.expiry > today)
    .sort((a, b) => a.expiry.getTime() - b.expiry.getTime());

  const picks: PickLine[] = [];
  let remaining = needed;
  for (const slot of usable) {
    if (remaining === 0) break;
    const take = Math.min(slot.qty, remaining);
    picks.push({ location: slot.location, lot: slot.lot, qty: take });
    remaining -= take;
  }
  if (remaining > 0) throw new Error(`Insufficient stock: ${remaining} units short`);
  return picks;
}

Two details matter here. Stock in a quarantine or damaged bin is never suggested for picking, even though it appears in the count; otherwise the stock figure is right and the shipment is wrong. When there is not enough stock, the function throws instead of producing a partial pick list, because the decision to ship short belongs to the order owner, not to the software. Lot records also show, within minutes, which customers received a batch if it is ever recalled.

Counting: cycle counts instead of one big annual count

Shutting the warehouse for an annual stocktake is expensive and surfaces discrepancies months too late. With a WMS you cycle count without closing: a set of bins is counted every day, and fast-moving or high-value items are counted more often. A count difference should not be written straight into stock; it is confirmed with a second count first, then posted as an adjustment with a reason code. Without reason codes you cannot tell whether a repeated difference in the same bin comes from wrong put-away, damage or shrinkage.

Integration: a WMS never works alone

A warehouse management system does not create orders; they arrive from the ERP, the online store, a marketplace integration or a B2B dealer ordering system. The direction of data flow must therefore be written down from day one: product cards and orders flow from the ERP to the WMS, shipped quantities and count adjustments flow back. In manufacturing businesses, raw material issues and finished goods receipts must match the production tracking system. If the same stock is adjusted separately in two systems, within a few weeks nobody knows which one is right; every field needs a single owner.

Off-the-shelf WMS or custom software?

For a standard distribution warehouse, an off-the-shelf WMS usually goes live faster. Custom software makes sense when the process is non-standard (product-specific packing, customer-specific labels, kitting), when the warehouse must talk to your ERP or marketplaces in a way the package does not support, or when transfers and shared stock visibility across several warehouses are critical. If at least two of these apply to you, a custom solution is worth evaluating. Ask a fourth question as well: can location, lot and movement history be exported? If not, changing systems later means re-addressing the whole warehouse. For the general framework, see our article on custom software vs. off-the-shelf solutions.

Mistakes that break WMS projects

  • Installing software before addressing the warehouse: an unlabelled bin exists in the system but not on the floor.
  • Starting with paper lists instead of handheld scanners: no scan means no validation, so the error rate stays the same.
  • Importing opening stock without a count: operators will not trust a system that starts with wrong data.
  • Not testing in-warehouse connectivity: metal racking blocks Wi-Fi, and scanners drop out in the middle of an aisle.
  • Routing every exception to a manager for approval: picks waiting for approval push operators to work around the system.

Conclusion

A warehouse management system manages where stock is and the order it moves in, not just how much there is. Its success depends less on screens than on addressing the warehouse, validating every step with a scan and defining data ownership with the ERP from the start. If you would like to work out whether your warehouse needs a package or a system built around your processes, take a look at our corporate solutions page or request a quote directly.

Let's Build Your Project

Get a free consultation for your website, mobile app, or corporate software project.

Get a Free QuoteExplore our Corporate Solutions service