24 min read

Selling by Unit (kg, metre, litre)

Sell a product by weight, length or volume: pick the selling unit, set the price per unit, minimum quantity and step, and see how customers buy decimal quantities in your store.

Selling by unit lets a product be priced per kilogram, metre, litre or any other unit you have switched on, and lets customers buy a decimal quantity such as 2.5 kg. You set it on the product itself, in a card called Selling unit. A product left on Piece (pcs) behaves exactly as before.

Availability: switched on per environment

Selling by unit is part of this release's published feature set, and it is controlled by a switch that BillionBiz turns on environment by environment (the admin panel and the storefront share the same switch). It is on for the UAT test environment; the live-store switch is still off in the current admin build, so live stores only get it when that switch is turned on at promotion. While it is off, the Selling unit card does not appear on Add product or Edit product, and customers always see the normal price and whole-number quantities. If you set a unit but customers do not see it, see Troubleshooting below.

What you get

  • A Selling unit card on product Add and Edit, in both the new and the classic admin.
  • The price you already enter becomes the price per unit.
  • A Minimum quantity and a Step (for example 0.5 kg) that the storefront quantity control follows.
  • Stock held in the same unit, with decimals, and shown with its unit in the product list.
  • A storefront that shows the price as "₹X / kg", accepts decimal quantities, and shows the unit in the cart and on orders.

Before you start

The unit you sell by must be switched on for your store. Go to Settings → Units and turn on the unit (for example kilogram) or create your own. See Units & Measurement Pricing. Switched-off units are not offered in the Sold by list.

Vendors and staff. Vendor Admin, Vendor Staff and Staff users can open product Add and Edit and use the Selling unit card: the Sold by list loads for them like for a store admin. They can only choose from units the store has already switched on. Creating, renaming, switching on or off, and deleting units stays with store admins in Settings → Units, so a vendor who needs a unit that is not in the list should ask the store admin to add it.

Set up a product that sells by unit

The Selling unit card is in the same place on every screen where you add or edit a product:

  • New admin: Products → Add product or Products → Edit.
  • Classic admin: Inventory → Add Product or Inventory → Edit Product.

The card sits above Pricing & stock (in the new admin) and above the pricing and stock fields in the classic dialogs.

Choose Sold by

Open the Sold by list and pick the unit. The default is Piece (pcs), which means the product is sold the usual way. While it is on Piece, the card only says "Sold by the piece. Pick another unit to sell by weight, length or volume."

Read the price note

Once you pick another unit, the card says "The price below is now the price per" that unit, and "Customers can buy decimal quantities." The price field you already use is now your price for one unit, for example the price of 1 kg.

Enter the price

Enter your price in the normal price field. It is the price per unit.

Set Minimum quantity and Step

Two fields appear, labelled with the unit, for example Minimum quantity (kg) and Step (kg). Minimum quantity is the least a customer can buy (for example 0.5). Step is how much the quantity moves with each press of plus or minus (for example 0.5). Each must be a number above 0 with up to 3 decimals, otherwise the field turns red and shows "Enter a number above 0 with up to 3 decimals." You may leave either blank, in which case the server default is used.

Enter stock in the unit

Stock is counted in the same unit and accepts up to 3 decimals. For a product left on Piece (pcs), stock must be a whole number: typing a fraction shows "Whole numbers only — this product is sold in pieces" under the field, and saving is blocked with "Enter stock as a whole number." until you fix it. The field is labelled Stock in kg (with your unit) in both the new admin and the classic dialogs. An invalid value shows "Enter stock in kg with up to 3 decimals."

Save

Save the product as usual. If the server rejects the unit settings, the reasons are listed in a red box inside the Selling unit card.

Go back to selling by the piece

Set Sold by back to Piece (pcs) and save. The unit, minimum quantity and step are cleared from the product, and the storefront returns to the normal price and whole-number quantities. Saving a product you did not touch the Selling unit card on leaves its unit settings as they were.

Not the same as Unit measure

The Unit measure section described in Adding & Editing Products is a separate, older set of fields. Selling unit is what changes how the product is priced and bought.

See units in the product list

Where the product list shows stock, a product sold by unit shows its unit after the number, for example "12.5 kg". Piece products show the bare number as before. The list is Inventory in the classic admin and Products in the new admin.

You can also open the list filtered to one unit with the View products shortcut on Settings → Units (see Units & Measurement Pricing). The filter matches products sold in that unit. There is no unit dropdown on the list itself.

See the price per unit in the admin

A product sold by unit also shows its price with the unit, for example "₹120.00 / kg". Piece products show the plain price with no suffix. It appears in these places:

  • Classic admin: the Price column of Inventory, and the Price line on the product's detail page.
  • New admin: the Price column of Products in list view, and under the product name on each card in grid view.
  • Product editor (both admins): inside the Price field of the Pricing & stock card, shown after the number as "/ kg". It follows the unit chosen under Sold by, so it changes as soon as you pick a different unit, before you save.

Why doesn't my product show / kg in the product list?

The suffix only appears for a product whose selling unit is something other than Piece (pcs), and only when measured selling is turned on for your store. A product left on pieces shows the plain price.

Bill measured items while the counter is offline

Screen: open /pos on the approved counter, sign in with your cashier PIN and add the measured item. Before an outage, the owner must prepare and activate a checked catalogue at /settings/pos/offline, using Prepare offline copy and Use this copy; see offline preparation. Measured selling and the item's selling unit must be enabled in that saved copy, and the device must still have valid offline access. A catalogue downloaded without activated access is insufficient.

  1. Choose the weighed or length-based item, including its size or type if needed. On Add by weight, enter Weight (kg) for kilograms or Quantity (m) for metres. The unit follows the item's setup. Keep within the minimum, step, maximum and stock restrictions shown.
  2. Wait for Line amount. The sheet says Using the last saved measurement price. The server checks it when this bill is sent. Select Add followed by the quantity only after the price has been calculated. To change a line, use Change weight, then Change to followed by the new quantity. Back to bill leaves the sheet.
  3. Use an allowed offline tender, such as Cash, and retain the temporary receipt and waiting bill. Offline counter billing explains the tender and spending limits and how to check the sent result after reconnecting.

The bill uses the price and measurement settings from its prepared copy. For example, a saved ₹120/kg price gives ₹60 for 0.5 kg before other bill adjustments. If the owner changes the price while this counter is offline, the prepared price is retained for that offline sale; replay checks that saved calculation rather than silently repricing it at the newer rate. A sent bill still needs the server's acceptance and final receipt.

Why does the counter ask me to connect before billing this weighed item? Connect to refresh this item’s saved measurement settings. Your bill is kept. means the saved item settings, units or offline authority cannot safely produce this measurement. Add stays disabled without a valid price. Keep the bill, reconnect, and have the owner check and activate a refreshed offline copy before trying again. If replacement activation asks for reconciliation, follow that message on the preparation screen; clearing browser storage can lose waiting bills. This flow covers quantity-based kg/m sales, not every other measurement mode.

What customers see

Product cards and listings

Measured products show a per-unit price label such as "₹40 / kg" on the card. This includes the product grids on your store's home page (for example Best selling, New arrivals, Trending now, Featured collection and Flash sale sections), not just the shop and collection listings. A whole-rupee rate drops its decimals ("₹120 / kg"); a fractional rate keeps them ("₹12.50 / kg"). Products sold in pieces never show it and keep the normal price. If the product has a minimum quantity, the card's button adds that minimum quantity to the cart in one tap. If it has none, the button reads Choose quantity and opens the product page instead.

Product page

The price is followed by the unit, for example "₹120 / kg". That per-unit price is the measured rate saved when you set Sold by and the price on the product, or, once the customer has picked a variant or quantity with its own rate, the rate the server quotes for that exact choice. It is the same rate the cart uses, so the product page, quick view, sticky buy bar and cart agree. It is not the plain catalogue price. A catalogue-only compare-at (strike-through) price and the SALE badge are not shown on a measured product. When your price is set per a larger or smaller amount, the label includes that amount, for example "/ 500 g". Pieces products show no label. The quantity control accepts decimals: it starts at the minimum quantity, moves by the step, and shows the unit next to the number. The total for the chosen quantity comes from the server, not from the browser, so it always matches what you will charge. On a phone, the sticky buy bar at the bottom of the product page also carries a compact quantity stepper (minus, the quantity with its unit such as "2.5 kg", plus) beside the add-to-cart button, so the customer can change the amount without scrolling back up. It moves by the same step and stays within the same minimum and maximum. It only appears for products sold by unit.

The Add to cart and Buy now buttons carry the quoted total for the chosen quantity, on desktop as well as on a phone: the label is followed by a dash and the amount, for example "Add to cart — ₹320.00". The amount is the same server quote as the total above the button, so it changes when the customer changes the quantity or variant, and it reads Pending until the quote for that selection arrives. The sticky bar that slides in at the top of the page on desktop once the main buttons scroll out of view does the same for its Add to cart and Buy now buttons. A product page set to hide the price keeps plain button labels with no amount, and pieces products keep the plain labels everywhere.

Cart

Each measured line carries a rate caption under the item, for example "2.5 kg × ₹40 / kg" (the quantity with its unit, times your rate per unit). The caption uses the rate the server priced the line at, including its denominator, so a rate quoted per half kilo reads "₹32 / 0.5 kg" and is not relabelled as a per-kilo rate. The cart subtotal, the checkout summary and the free-shipping check all add up the same priced line amounts the rows show. Pieces lines show no caption. Changing the quantity asks the server to price the line again. Adding the same measured product again, with the same unit and the same options, adds to the line that is already in the cart instead of creating a second one: 2.5 kg plus 2.5 kg becomes one line of 5 kg. The new total is checked again against the product's minimum, maximum, step and stock, and the add is refused if it does not fit. If the customer enters the amount in a different unit (for example 3000 g instead of kg), that makes a separate line. The cart badge and the "(N items)" count in the summary count a measured line as 1 item, not as 2.5.

The same measured treatment shows in the cart drawer and on the cart page, whichever cart design the store uses (the cart layouts, the style skins and the Dawn Cart (2026) design). Under each measured line the customer sees the quoted rate, "2.5 kg × ₹64 / kg", not the catalogue "each" price saved before the product was switched to a unit. The amount shown on the line is the server-quoted total for that quantity. The + and − buttons step by the product's step and stay within its minimum, maximum and available stock, so a kilo product can move 0.5 kg at a time and the quantity reads with its unit and decimals (for example 1.5, not 2). The + button is disabled at the maximum or at the stock limit. If the amount shown is Pending, the server has not returned a price for that quantity yet: the line total, and anything added up from it, appears once the quote arrives, and the storefront never shows a made-up total in the meantime.

A saved line can stop matching the product's quantity rules after you change them, for example you raise the Minimum quantity above the quantity already in a customer's cart, or change the Step so the saved amount is off the step. That line is not repriced silently. It shows a Quantity rules changed. Remove this line and add it again. notice, its amount reads Pending and is struck through, it adds nothing to the subtotal, its + and − buttons are inactive, and checkout is blocked until the customer removes the line and adds the product again at a quantity that fits. See When a measured item needs a new quantity.

Checkout

Nothing extra happens when prices have not moved. If the price changed since the item was added, the customer sees a Price updated box reading "Price updated — ₹40 → ₹45" with two buttons: Back to cart and Continue to pay. Payment only goes ahead at the new price after they choose Continue to pay. Carts that contain only normal pieces never trigger this box.

Order confirmation and order history

The order confirmation page shows each line with its quantity and unit, for example "Qty: 2.5 kg" or "Basmati rice × 2.5 kg" depending on the store's order confirmation design; pieces lines show the bare number. Its Subtotal is the sum of the items, with shipping and discount shown as separate lines. The customer's order detail page (open an order from the customer's order history) shows the quantity with its unit beside each measured item, for example "Qty: 2.5 kg". Pieces lines show the bare number as before.

Reorder

On the order detail page, Reorder (all items) and the per-item reorder button add measured lines back to the cart with the same measured amount and unit as the original order, for example 2.5 kg again, not 2.5 pieces. The cart then prices the line at your current rate, and the usual minimum, maximum, step and stock checks apply. Pieces lines are re-added by their quantity as before. A measured line is re-added with its variant, so if the same variant of that item is already in the cart with the same unit, the amounts merge into one line (2.5 kg already in the cart plus a 2.5 kg reorder becomes 5 kg), subject to the same limit checks.

The unit written next to quantities on the storefront is the unit's short code, for example kg.

Other places the unit shows

A measured product carries its unit into every other place a customer meets it. For a product on Piece (pcs), none of these change.

Quick view, search and recently viewed

The quick view window, the search overlay suggestions, the search results grid and the recently viewed carousel all write the price with its unit, for example "₹40 / kg", the same label as the product cards.

Related products on the product page

The related products and recently viewed cards at the bottom of a product page show the per-unit price ("₹120 / kg") instead of the bare price. This applies to every product page template.

Desktop product page

In the sticky buy bar on desktop, the number between the minus and plus buttons carries the unit, for example "2.5 kg", the same as on the phone bar. The bar's Add to cart and Buy now buttons also show the quoted amount, for example "Buy now — ₹320.00", or Pending until the quote arrives.

Checkout order summary

Each measured line in the order summary reads "Qty: 5 kg" rather than "Qty: 5".

On a phone

The WhatsApp chat button and the floating cart button sit at the bottom right. On the cart page the storefront adds blank scroll space under the page when either button is showing, so a full cart can be scrolled until the Order Total is clear of the buttons. A cookie or consent banner fixed at the bottom of the screen no longer covers the sticky add-to-cart bar: the bar moves up by the banner's height and drops back when the banner is dismissed.

Selling a measured product at the counter

A product with a selling unit also sells at the POS counter. Scanning or adding it opens quantity entry (enter the weight or length) instead of adding one piece, and the bill line keeps that saved quantity and unit. A measured item can be kept aside and returned by quantity; see Counter Billing & Tenders and Returns & Exchanges. Offline billing of non-measured items uses whole positive quantities; measured items can be billed offline on a prepared counter under the conditions in Bill measured items while the counter is offline.

Invoices

When selling by unit is on, the invoices you generate from Orders show the quantity with its unit for each measured line, for example "4 kg" in the Qty column, in all the invoice layouts (Classic, Modern, Minimal and GST Detailed). A product with a custom unit prints the unit's label. Pieces lines print the bare number.

Where an invoice shows an HSN summary, it groups lines by HSN code and unit. So 4 kg and 2 pcs sold under the same HSN appear as two rows ("4 kg" and "2"), never added together as 6. Invoices already finalised keep the unit they were issued with.

Troubleshooting

A vendor or staff user sees no Sold by list

If a vendor or staff user opens a product and the Sold by list is empty or shows an error, check in order: (1) the store has switched units on and at least one unit is on in Settings → Units (the vendor sees only switched-on units); (2) the vendor reloads the Admin Panel so the page loads the latest version; (3) the person is signed in with a vendor or staff role, not a customer account.

Customers still see the plain price and whole quantities

Check these in order:

  1. The product is still on Piece. Open the product and confirm Sold by is not Piece (pcs), then save.
  2. The unit is switched off. Go to Settings → Units and confirm the unit is Enabled. A switched-off unit is not offered in Sold by.
  3. The feature is off for your environment. If you cannot see the Selling unit card at all, selling by unit has not been turned on for your admin panel. If the card shows but the storefront looks unchanged, it has not been turned on for your storefront. Ask BillionBiz support to enable it.

The per-unit price on the product page differs from the cart or my old catalogue price

The storefront shows the measured rate (the price saved with the product's Sold by unit, or the rate quoted for the customer's chosen variant or quantity), never the plain catalogue price saved before the product was switched to a unit. For example, a product whose old catalogue price was ₹120 but whose measured rate is ₹64 per kg shows "₹64.00 / kg" on the product page, and adding 0.5 kg gives a ₹32 line that matches the cart. If the page and cart still disagree, wait for the total to stop showing Pending (the rate updates together with the total for a new quantity or variant), then reload the page. To change the rate, open the product, edit the price field below the Selling unit card and save.

A measured product shows Sold out although it still has stock

If the stock left is above zero but below the product's Minimum quantity, no customer can buy even the smallest allowed amount. So the storefront treats the product as sold out. For example, with a Minimum quantity (sqft) of 100 and 20 sqft in stock, the product page reads Sold out, Add to cart and Buy Now (and the sticky buy bar on a phone) are disabled, and search engines are told it is out of stock. The same product opened in Quick view shows Out of Stock with its Add to Cart disabled, and its card in the shop and collection listings shows a disabled Out of stock control instead of the add button.

To sell it again, either raise the product's stock to at least the Minimum quantity, or lower the Minimum quantity on the product, then save. At or above the minimum the product is available again straight away. A product sold in pieces, or a measured product with stock of zero, behaves as it always did. This only applies to products sold by unit.

A customer cannot buy less than a certain amount

That is the Minimum quantity. The storefront quantity control will not go below it, and it moves only by the Step. Lower the minimum or step on the product and save.

The unit only shows for a product that is set to sell by unit (Sold by is not Piece (pcs)) while selling by unit is turned on for your storefront. A product on Piece, or a storefront where BillionBiz has not turned the feature on, shows the plain price everywhere. Check the product's Sold by first, then see the steps above.

The home page grid shows the plain price, not "/ kg"

The home-page sections show the per-unit label only for a product whose Sold by is not Piece (pcs), while selling by unit is on for your storefront. Confirm the product, then reload the storefront. If the shop page shows "/ kg" but a home-page section does not, check that the section is showing that product (a hand-picked or collection section reads the product's current data).

My cart shows Pending instead of a price

Pending on a measured line means the server has not yet returned a priced total for the current quantity. It shows briefly after each quantity change, and the total appears once the quote is back. If it stays on Pending: reload the cart, then change the quantity by one step so the line is priced again. Check that the product still has a Sold by unit and a rate saved (open the product, Selling unit card), and that the quantity respects the product's minimum, step and maximum. Pieces lines never show Pending. A line that stays on Pending with the notice Quantity rules changed. Remove this line and add it again. is not waiting for a quote: its saved quantity no longer fits the product's minimum or step, so its buttons are inactive. Remove the line and add the product again; you can also check the Minimum quantity and Step on the product.

The cart still shows the catalogue price per piece, or whole-number steps

The measured price, rate caption and fractional steps apply only to a line added with a unit while selling by unit is on for your storefront. A line added while the product was on Piece, or any line when selling by unit is off, behaves as a normal pieces line: remove it and add the item again from the product page.

The cart line has no rate caption, or reorder added pieces

The caption and the measured reorder only apply to lines added with a unit. A line added while the product was on Piece, or a store where selling by unit is off, behaves as a normal pieces line. Re-add the item from the product page.

The admin order shows a number but no unit

The order detail Items table, Packing slip, refund dialog and drawer, and the customer order dialog show the unit only for lines bought by unit. Pieces lines, and lines placed before the product was sold by unit, show the bare number.

The invoice quantity shows no unit

Check that the order line was bought by unit (the order detail page shows "Qty: 2.5 kg") and that selling by unit is on for your environment. Pieces lines, and every invoice when the feature is off, print the bare number. An invoice that was already finalised before the line carried a unit keeps its original quantity text; generate a new one for later orders.

Card shows Choose quantity instead of adding to the cart

The product has no minimum quantity available to the storefront. Enter a Minimum quantity on the product and save.

Why is my product's stock showing 0 in the editor?

A product with no variant rows keeps its stock on the product itself. Older editor builds showed 0 for these products; the editor now shows the product's real stock. If you still see 0, reload the page and check the stock on the product list.

Why can't I save 2.5 stock?

If Sold by is Piece (pcs), stock must be a whole number. A fractional value such as 2.5 shows "Whole numbers only — this product is sold in pieces" under the stock field, in the classic Add and Edit product dialogs and in the new editor's Pricing & stock card. Either enter a whole number, or change Sold by to a unit such as kg, where stock accepts up to 3 decimals.

The server rejected my unit settings

The red box in the Selling unit card lists each reason. Fix the field it names (for example a step that does not fit the unit) and save again.