Inventory

Use Price Settings for Bulk Margin and Price Changes

Price Settings is where an owner or manager changes many item prices at once, with preview checks, MRP/cost safeguards and history.

Menu path
Inventory -> Price Settings
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

Live local POS Inventory -> Price Settings audited 2026-09-10, frontend/modules/priceSettings.html, frontend/static/script/js/modules/js/report_pricesettings.js, api/src/repositories/item.repository.js calculations, safeguards and audit storage, items/marginPreview, items/bulkSetMargin, items/bulkPricePreview, items/bulkUpdatePrices, items/bulkPriceHistory

Set MarginChoose margin or markup deliberately, preview the result, and keep the MRP safeguard enabled. The live workflow was rechecked on 2026-09-10.
Custom ChangeRaise or lower Selling Price, MRP or Cost Price for all items or one category. Check reports totals; it does not list every affected item.
Bulk price historySuccessful runs that changed at least one item appear here, 15 rows at a time; the captured demo state has no runs.

Before You Change Prices

Bulk price changes affect customer bills, labels, margin and owner trust. Use this screen only after item cost and MRP are reviewed.

  • Check that item cost prices are current. Margin cannot be honest when cost is missing.
  • Check MRP where the shop must not sell above maximum retail price.
  • Decide whether the change applies to all items or one category.
  • Run Check immediately before Apply or Update so the current changed and exception counts are visible.
  • Make the change outside a busy counter shift when possible.

Set Margin

  1. Open Inventory -> Price Settings.
  2. Stay on the Set Margin tab.
  3. Choose Which items: All items or One category.
  4. If One category is selected, choose the category.
  5. Enter the target Margin percent.
  6. Choose what the percent means: Margin (% of selling) or Markup (% on cost).
  7. Leave Skip items whose new price would go above MRP enabled unless the owner approves otherwise.
  8. Click Check.
  9. Review how many items would change, how many have no cost price and how many would exceed MRP.
  10. Click Apply margin only when the preview is acceptable.
  11. Open the History tab and confirm the run was recorded.

Check Is a Dry Run, Not an Approval Lock

Check calculates a preview without writing item prices. Apply margin and Update prices are still available without a preview, and a preview is not bound to the form: changing a field, category or value does not invalidate the old result on screen. Another user can also edit items after the check.

  • Set every control first, then click Check as the final review action.
  • Read the scope, field, direction, method, value and safeguard again before applying.
  • If any control changes, run Check again even if the previous result remains visible.
  • The preview shows aggregate counts, not a reviewable list of every item or old/new price.
  • In Custom Change, each displayed violation count is capped at 100 by the current implementation; treat 100 as at least 100, not necessarily the full total.
  • For a high-risk all-item change, export or inspect the catalog before and after the run.

Custom Change

Custom Change raises or lowers a selected price field for many items at once by percent or amount.

FieldOptionsUse
Which itemsAll items or One categoryScope the change so unrelated products are not touched.
Price to changeSelling Price, MRP, Cost PricePick the business value that really changed.
DirectionIncrease or DecreaseMatch the price decision exactly.
Byby % or by amountUse percent for broad rises, amount for fixed corrections.
Skip safetyAbove MRP or below costKeep enabled for normal owner-controlled changes.

How Custom Changes Are Calculated

A percentage is calculated from each item's current value in the selected field; an amount adds or subtracts the same currency amount from every matched item. Results are rounded to two decimal places, and a decrease never produces a value below zero.

ExampleResultMeaning
Selling Price 100, increase 10%110Adds 10% of that item's current selling price.
MRP 80, decrease by amount 575Subtracts the fixed amount from MRP.
Cost Price 20, increase 7.5%21.50Updates cost only; selling price is not recalculated.
Selling Price 3, decrease by amount 100The value is floored at zero, not made negative.
Any field, change 0No changeMatched items whose rounded result equals the old value are not updated.

Understand the Safety Checkbox

The safeguard evaluates the complete price relationship after the proposed field is changed. It skips an item when Selling Price would be above a positive MRP or below a positive Cost Price. A zero or missing MRP/cost does not enforce that particular rule.

Field changedPossible violationExample
Selling PriceAbove MRP or below Cost PriceRaising selling can cross MRP; lowering it can cross cost.
MRPExisting Selling Price becomes higher than the new MRPLowering MRP can make an unchanged selling price invalid.
Cost PriceExisting Selling Price becomes lower than the new costRaising cost can reveal a loss-making selling price.
Set MarginCalculated Selling Price is above MRPItems without cost are separately left unchanged.

Audit the History Tab

The History tab lists successful bulk runs that changed at least one item, newest first, with 15 rows per page. It is scoped to the signed-in license, not the active branch, so an owner may see runs affecting another branch. A category run is labelled one category but the category name is not shown.

  • Open History after each successful run.
  • Confirm the changed-by user is the person who approved the change.
  • Review Items Changed and Skipped before printing labels or selling at the new price.
  • For Set Margin, Items Skipped counts MRP safeguard skips; items with no cost are reported when applying but are not included in that history count.
  • Each changed item also receives an item-level Price History row linked to the bulk batch.
  • A zero-change run creates no batch-history row.
  • If the wrong scope was used, stop selling those items and correct prices before the next queue.

Margin and Markup Are Different

The Set Margin tab calculates from each item's Cost Price. Items without a usable cost are left unchanged. Margin must be below 100%; markup may be 100% or higher.

ModeFormula usedExample with cost 60 and 40%
Margin (% of selling)Selling = cost / (1 - margin / 100)100
Markup (% on cost)Selling = cost x (1 + markup / 100)84

After Applying a Price Run

  1. Read the success message and record Updated, total matched, skipped and no-cost counts where shown.
  2. Open History and confirm the user, time, operation, Changed and Skipped values.
  3. Open representative items from the affected scope and verify Selling Price, MRP and Cost Price together.
  4. Check a low-price item, a high-price item, an item near MRP and an item near cost.
  5. Run a test sale without completing it to confirm the selling price presented at the counter.
  6. Print replacement barcode or shelf labels only after the checks pass.
  7. Tell active tills and branches when the new prices take effect.

Correct a Wrong Bulk Change

Price Settings has no one-click undo. Do not assume that applying the opposite percentage restores the original value: a 10% increase followed by a 10% decrease leaves 99% of the starting price, before rounding.

  1. Pause sales of the affected items when the error can overcharge customers or sell below cost.
  2. Open History and identify the exact run, operator, scope, field and value.
  3. Use item Price History or a pre-change export to recover the original values.
  4. For a uniform amount error, use a carefully checked opposite amount only when no later edits occurred.
  5. For percentage, mixed or partially skipped changes, restore exact item values individually or with a controlled import/update process.
  6. Recheck the catalog, counter price and labels, and retain both audit runs with the incident record.

Common Mistakes

MistakeWhat happensFix
Cost price is emptyMargin preview leaves the item alone.Update item cost or receive stock with a proper purchase cost.
Old preview left on screenThe displayed counts can describe earlier controls or earlier data.Run Check again immediately before applying.
Wrong category selectedOnly that category changes, but History does not name it.Use item Price History and the catalog to identify and correct affected items.
Skip is disabledPrices may go above MRP or below cost.Use only with owner approval and verify sample items immediately.
Preview count treated as an item listThe screen does not show which individual items will change.Inspect/export the scope and spot-check known boundary items.
No history row expected after zero changeRuns with no updated items are not stored in bulk history.Confirm the message and correct scope/value before trying again.
Labels are printed before reviewShelf price and POS price may conflict.Spot-check item prices and a test cart before printing barcode labels.

Permissions and Troubleshooting

ProblemLikely reasonAction
Price Settings will not loadSession, branch context or item read access is unavailable.Reload, confirm the active branch and ask an administrator to review Item access.
Apply or Update is rejectedThe employee can read items but does not have Item write access.Use an authorized owner or manager account; do not share credentials.
One category asks for a categoryCategory scope was selected without choosing a category.Select the intended category and run Check again.
Margin is rejectedMargin mode must be below 100, or the value is blank/negative.Use a valid non-negative value; use Markup when 100% or more is intended.
Fewer items changed than matchedSame rounded prices, no-cost items or enabled safeguards left rows unchanged.Compare the preview and success counts, then inspect boundary items.
No items matchedThe active branch/category scope contains no eligible items.Confirm branch and category; no prices or history rows were written.
History looks emptyNo successful run has changed an item for this license yet.Apply only an approved change, then reload History.
Counts or prices changed after CheckThe form or catalog changed after the dry run.Cancel the decision, review the current controls and run Check again.