Settings

Create, Test and Maintain Customer Price Lists

Customer Pricing connects one customer category to one branch price list. Exact item prices win over percentage rules, and the resolved price is applied when a new line enters the sale cart.

Menu path
Manage -> Marketing -> Customer Pricing
Verified from
Posnic demo and current POS source reviewed on 2026-09-08
Technical source evidence

Local Posnic Manage -> Marketing -> Customer Pricing audited 2026-09-10, frontend/modules/settings_write.html Customer Pricing tab, frontend/static/script/js/modules/js/settings.js PosnicPro.pricelists, frontend/static/script/js/modules/js/sales.js _loadPriceLists and _applyPriceList, api/src/models/setting.model.js normalizePriceList and savePriceListModel, customerCategory/getCustomerCategoryAjaxList, items/search

New Price ListLive workflow rechecked 2026-09-10. Choose a customer category, set a percentage rule and add exact item prices when needed.
Customer categories firstA price list belongs to a customer category, so clean categories come first.
Customer on saleThe sale screen can resolve the price list only after the correct customer is attached.

What Customer Pricing Does

Customer Pricing is for trade, wholesale, VIP, staff or negotiated customer groups. It lets a customer category carry its own price rules so cashiers do not manually discount every sale.

  • Create customer categories before creating price lists.
  • Attach customers to the correct category before making a sale.
  • Use percentage off for broad group discounts.
  • Use negative percentage values for markup only when the business truly needs markup.
  • Use exact item prices for negotiated product prices.

Prepare Categories, Customers and Items First

The editor cannot create its own category or item. Prepare the records that the rule will reference before opening New List.

  1. Create the intended group under Customers -> Customer Categories, such as Wholesale, Staff or VIP.
  2. Open each participating customer and assign that exact category.
  3. Confirm every negotiated product already exists as an item with the normal selling price, tax treatment and stock behavior.
  4. Write down one ordinary item price and one proposed customer price for a controlled checkout test.
  5. Confirm the current branch before opening Marketing because price lists are stored for the active branch.

Create a Price List

  1. Open Manage -> Marketing -> Customer Pricing.
  2. Click New List.
  3. Choose the customer category.
  4. Enter Percent off. Use 0 when the list should use only exact item prices.
  5. Click Item price for every item that needs an exact price.
  6. Type enough of the item name, then leave the field so Posnic resolves the first search match to a real item ID.
  7. Confirm the field changes to the complete intended item name; an unrecognized name is not saved as an override.
  8. Enter the exact sale price for that item.
  9. Save the price list.
  10. Make a training sale with a customer from that category and confirm the expected price.

Rule Priority

The pricing code is explicit: exact item overrides win over the percentage. This prevents a negotiated item price from being discounted twice by the category percentage.

SetupSale resultUse case
10 percent off, no item overrideEvery eligible item uses 10 percent off.Simple wholesale group.
0 percent, exact item priceOnly listed items get exact prices.Contract price for selected products.
10 percent off plus exact item priceExact item price wins for that item; others use 10 percent off.Mixed wholesale contract.
Negative percentCategory markup.Special pricing where group price is above normal retail.

When Posnic Applies the Price

Customer pricing is resolved once, when a catalog item is added as a new sale line. The selected customer's category chooses the list; an exact item override is checked first, otherwise Posnic applies the percentage to the normal selling price and rounds to two decimals.

  • Walk-in has no customer category, so it uses normal item prices.
  • Select the customer before scanning, searching or tapping the item.
  • Changing the customer after lines are already in the cart does not reprice those existing lines.
  • To correct an already-added line, remove it after selecting the right customer and add the item again.
  • Re-adding the same item can increase the existing quantity; verify the unit price before continuing.
  • The sale screen caches loaded price lists for up to about 60 seconds. After an urgent list edit, open a fresh sale and verify the result before serving the customer.

Price, Discount, Modifier and Tax Order

The list price becomes the sale line's selling and MRP price before later sale calculations. Product modifiers, line or sale discounts and tax then continue through their normal calculation paths.

ComponentOrderOperator implication
Customer price listSets the base price as the line is added.Confirm the customer and unit price first.
Item modifierIts configured price delta is added after the list price is resolved.A size or add-on can still change the final line value.
Line or sale discountRuns through the normal discount calculation after the customer price.Do not add a manual discount merely to recreate the category rule.
TaxUses the line's configured tax mode and downstream sale calculation.Compare tax-inclusive and tax-exclusive items separately during testing.
QuantityMultiplies the resolved unit price.Check unit price, quantity and line total, not only the final bill total.

Run a Controlled Checkout Test

  1. Start a new empty sale and keep Walk-in selected.
  2. Add the test item and record its normal unit price, then remove it.
  3. Select a customer whose category owns the new price list.
  4. Add the same item again and compare the unit price with the expected percentage or exact override.
  5. Add an item without an exact override to verify the percentage rule separately.
  6. For a mixed list, confirm the exact-price item was not discounted again by the percentage.
  7. Check quantity, modifiers, discount, tax and final total before tendering.
  8. Save only an approved training transaction, then verify its customer, lines and prices in Sales History.

Validation and Save Rules

ConditionResult
No customer categorySave is rejected with Pick the customer category this list prices for.
Zero percent and no valid item pricesSave is rejected because a list needs a percentage or at least one item price.
Percent is 100 or moreRejected; percent off must remain below 100.
Percent is -1000 or lowerRejected; negative values are markup but this boundary is not accepted.
Negative item priceThat override is ignored.
Duplicate item rowsOnly the first valid occurrence of an item is retained.
Unknown typed item nameThe row has no resolved item ID and is omitted from the saved overrides.
Existing category saved againThe branch's list for that category is updated rather than duplicated.

Edit or Delete a Price List

  1. Open Manage -> Marketing -> Customer Pricing and identify the row by Category, Rule and Item Prices count.
  2. Choose Edit to change the percentage or exact item rows, then run the controlled checkout test again.
  3. Remove an obsolete item row with its red X before saving.
  4. Choose Delete only when the entire category rule should stop applying; deletion is immediate in the current screen and has no separate confirmation dialog.
  5. Start a fresh sale after deletion and verify that the category customer now receives normal item prices.

Sale-Screen Requirements

Customer pricing depends on customer identity and clean category assignment. If staff keep Walk-in selected, Posnic has no category customer to price against.

  • Search and attach the customer before adding or finalizing items.
  • Confirm the customer has the right category in Customers -> Customer List.
  • If price is wrong, check the price list first, then item price and tax.
  • Avoid manual discounts when a price list should handle the policy.
  • Review Sales History after go-live to confirm wholesale pricing is being used correctly.

Maintenance Rules

  • Keep one price list per category.
  • Name customer categories by business rule, not by temporary offer.
  • Review exact item prices after item cost changes.
  • Remove item overrides that are no longer negotiated.
  • Document who may approve customer price changes.

Troubleshooting Customer Prices

SymptomLikely causeCorrection
New List says No customer categories yetNo categories exist or the category request failed.Create a customer category, reopen Customer Pricing and retry.
Customer receives normal priceWalk-in is selected, the customer has no category, or no list exists for that category.Verify the customer chip, customer category and price-list row.
Old cart lines keep the old priceThe customer was selected or changed after those lines were added.Remove the affected lines and add them again after selecting the customer.
Exact item price is missing after SaveThe typed name did not resolve to a real item or a duplicate row was ignored.Edit the list, type a unique item name, leave the field and confirm the full resolved name.
Percentage seems to apply twiceA manual line, item-category or sale discount also applies.Inspect every discount source; the exact override itself is not percentage-discounted again.
Price differs by a small decimalPercentage results are rounded to two decimals before later calculations.Recalculate from the normal unit price and review the item's tax mode.
Recent edit does not appear immediatelyThe sale screen may still hold its short price-list cache or the existing line was already priced.Begin a fresh sale, wait briefly if needed, then add a new line.
Could not load price listsThe pricing request failed.Do not improvise a manual price policy; restore connectivity and reload the tab.