Skip to content

Customer Classes & Price Levels

A customer class is a label that groups your customers — for example Retail, Wholesale, Landscaper, Employee, or Senior. Classes drive two big things in VMX:

  • Price levels — per-item pricing for a class. A landscaper class can pay a fixed contractor price on mulch, or get 20% off all pottery, automatically at the register.
  • Targeting and filtering — promotions can be limited to specific classes, and classes are used as filters when emailing statements, sending marketing broadcasts, and running customer reports.

This guide covers managing classes, assigning them to customers, and setting up class-based pricing.

Manage customer classes

Customer classes are managed on the Classes page: click Customers in the black ribbon at the top of any VMX page, then click Classes in the sub-navigation.

The page lists every class with its Name, Description, Legacy ID, and a # Customers column showing how many customers are currently assigned to each class.

To add a class:

  1. Click the + Customer Class button.
  2. Enter a Name (the short code stored on each customer, e.g. WHOLESALE) and a Description (the friendly label shown in dropdowns, e.g. "Wholesale Landscaper"). Legacy ID is only used for data converted from a previous POS system — leave it blank otherwise.
  3. Click Create.

To edit a class, click the pencil icon on its row, make your changes, and click Update.

Two validation errors you may see when saving:

  • "Class name cannot be empty." — enter a Name before saving.
  • "A customer class with this name already exists." — class names must be unique; pick a different Name or edit the existing class instead.

Classes cannot be deleted from this page. Also, be careful renaming a class that already has customers in it: customers store the class by its Name, so changing the Name does not move the existing customers to the new spelling. If you need to rename or retire a class that's in use, contact help@vmxllc.com and we'll migrate the customers for you.

Assign a class to a customer

Each customer has one class, set in the Class dropdown on their customer profile page (open the customer from Customers → Search). The dropdown shows each class's Description.

New customers are assigned a default class automatically — usually a standard retail class. The default for your system is configured by VMX.

Changing a customer's Class is a protected action: on most systems it requires the Merge Customers employee permission (set under employee permissions in the admin area). Some stores configure this differently — for example allowing all employees to change classes, or restricting specific classes only — so if you can't change a class you believe you should be able to, ask your manager or contact help@vmxllc.com.

Customer class at the register

The register has a Customer Class dropdown on the left side of the sale screen.

  • When you attach a customer to the sale, the dropdown is set automatically from the customer's Class — their class pricing applies to every item on the sale without any extra steps.
  • The cashier can also select a class manually for a sale with no customer attached (for example, ringing a walk-in wholesale buyer).
  • Selecting None removes class pricing from the sale.

Selecting Employee typically requires an actual employee customer record to be attached to the sale — otherwise the register shows "EMPLOYEE CUSTOMER REQUIRED" and reverts the selection.

On some systems the Customer Class dropdown is locked so the class can only come from the attached customer record, or only certain employees may change it. This is configured per-client by VMX — contact help@vmxllc.com if you'd like your register's behavior changed.

What is a price level?

A price level is class-specific pricing on an individual item. For each item and each customer class, you can set one of three discount types:

  • Fixed Price — the class pays this exact price for the item, regardless of the retail price.
  • Percent — the class gets this percent off the item's retail price.
  • Dollar — the class gets this dollar amount off the item's retail price.

Price levels take effect immediately, have no end date, and apply at all store locations. They apply automatically at the register whenever the sale's customer class matches — the cashier doesn't do anything.

Price levels are managed on each item's page (see "Set price levels on an item" below) or in bulk via the Price Level Bulk Update admin tool. They do not appear on the Promotions page, even though they behave like always-on, class-specific promotions.

Set price levels on an item

  1. Open the item page (search for the item from the Inventory area) and click the Price Rule tab.
  2. Scroll to the Price Levels section. There is one row per customer class, with columns Customer Class, Discount Type, Discount/Price, and Margin.
  3. For each class you want to price, choose a Discount TypeFixed Price, Percent, or Dollar — and enter the amount in the Discount/Price column. Leave the type as None for classes that should pay the standard retail price.
  4. The Margin column updates as you type, showing the profit margin you'd earn at that class's price based on the item's cost — a quick sanity check before you save.
  5. Click Save.

To remove a class's price level, set its Discount Type back to None and save.

How price levels compute at the register

When an item is rung up and the sale's customer class has a price level on that item:

  • Fixed Price — the line price becomes the fixed amount (e.g. retail $34.99, fixed price $25.00 → the class pays $25.00).
  • Percent — the line shows a percent discount off retail (e.g. retail $34.99 at 20% → $27.99).
  • Dollar — the line shows a dollar discount off retail (e.g. retail $34.99 less $5.00 → $29.99).

Two precedence rules are worth knowing:

  • A price level doesn't have to be the biggest discount to apply. Ordinary promotions compete with each other and only the best discount wins; a price level is treated as the class's price, so it can apply even when a promotion would have been a bigger discount. If an item has both a promotion and a price level for the same class and the exact price matters, ring a test sale to confirm which price wins.
  • Price levels apply even to items marked never discountable. An item's Discountable setting (Yes / Sometimes / Never on the item page) blocks promotions and discounts on Never items, but a price level still applies — it's the class's price, not a discount.

Customers with no class assigned (and sales with None selected in the register's Customer Class dropdown) never receive price-level pricing — price levels are tied to specific classes. Regular promotions that aren't limited to particular classes still apply.

Price Level Bulk Update (export and import in Excel)

To review or change many price levels at once, use the Price Level Bulk Update tool in the admin Tool Box (Tool Box → Price Level Bulk Update, in the Inventory & Pricing section). This tool is admin-only.

The page has two tabs: Export and Import.

Export price levels to a spreadsheet

  1. On the Export tab, check the Departments and Customer Classes you want to include (use Select All / None to toggle everything).
  2. Click Export XLSX to download a spreadsheet.

The file contains one row per item, with these columns:

  • PLU, Description, Department — read-only identifiers; don't change these.
  • Retail Price — the item's base list price. Edit this column to change an item's base price; leave a cell blank to leave that item's price untouched.
  • One {ClassName} Type / {ClassName} Amount column pair per customer class you selected. Type can be FIXED, PERCENT, DOLLAR, or blank/NONE to remove the price level for that class.

Import your edited spreadsheet

  1. Edit the exported file in Excel, then switch to the Import tab and drop the file on the upload zone (Drop file here or click to select). CSV and XLSX files are accepted — anything else shows "Only CSV and XLSX files are supported".
  2. The Preview Changes step shows every difference from the current database — filter with the All / New / Changed / Removed / Retail Price buttons. Rows with the same values as the database are skipped automatically, so re-importing an unedited export changes nothing.
  3. Review any row errors listed, then click Apply Changes. A progress bar shows the changes being applied.

Common row errors in the preview:

  • "PLU not found in inventory" — the PLU column doesn't match an existing item; check for typos or Excel reformatting the PLU.
  • "Invalid discount type: '…'. Must be FIXED, PERCENT, DOLLAR, or empty." — fix the Type cell for that class.
  • "Amount must be numeric, got: '…'" — remove currency symbols or text from the Amount cell.
  • "Cannot bulk-update Retail Price for this item — it has store-specific pricing enabled. Edit prices per store on the item page." — items with per-store pricing must be priced on their own item page.

If nothing imports and you see "Could not find a "PLU" column in the file headers.", the header row was changed or removed — start from a fresh export.

Do customer classes change taxes?

No — a customer class does not by itself change how a customer is taxed. Tax status is controlled by the separate Taxable setting (and the Tax ID and Tax ID Expiration fields) on the customer profile page.

Some stores have a convenience configured where choosing certain classes (for example a municipal or landscaper class) automatically marks the customer non-taxable with a default tax number. That behavior is set up per-client by VMX — contact help@vmxllc.com if you'd like something similar.

Other places customer classes are used

Beyond pricing, customer classes appear as filters and targets across VMX:

  • Promotions — every promotion has a Customer Classes selection, so a sale promo can be limited to specific classes. Unlike price levels, promotions have start/end dates and compete with other discounts for the best price.
  • Statements — the Statements page (Reports → Email Statements) has a Class... dropdown so you can filter which account customers to select before clicking Email Checked or Print Checked.
  • Marketing broadcasts — the email broadcast page lets you target recipients by customer class.
  • Reports — several customer reports (A/R Aging, customer spending and purchasing reports, exports) show or filter by class.
  • Per-client features — some stores use classes to gate other behavior, such as loyalty/rewards eligibility or special register rules. These are configured per-client by VMX; contact help@vmxllc.com with questions about your setup.

Customer class pricing on your online store

Class-based pricing on the VMX online store (wholesale pricing for logged-in landscape customers, contractor discounts, and similar) is a per-client customization — it is not enabled by default, and the specific rules are tailored to each store. If you'd like your web shop to honor customer-class pricing for signed-in customers, contact help@vmxllc.com.