Skip to content

Price Groups

A price group is a customer segment, not a topical folder. Every customer is assigned to exactly one price group; the price list holds a separate amount per device type and group. A large account therefore pays a different price for the same calibration than a walk-in customer.

Route: /price-category · Permission: price_category_view

Typical groups

Group Purpose
Standard Regular prices for new and occasional customers
Framework agreement Terms from a framework contract
Key account Volume-discounted terms
Intercompany Transfer prices within the group

Names are free and differ per installation.

Assignment to a customer

The price group is maintained on the customer, in the "Price group" field of the create and edit form. Price resolution uses the order's invoice customer.

For many customers at once: show the Price group column in the customer list through the column picker and set it per row directly in the table. The form and the list write the same field.

Assigning needs customers_edit and price_category_view — the picker reads the group catalogue. Without the second permission an already assigned group stays readable, but cannot be changed.

Details in Customer Management.

Customer without a price group

Without an assigned price group, price resolution finds no price and the order position stays at 0.00. This is deliberate: the alternative would be handing a customer without a segment some other group's price.

List view

Column Description
Price group Name (unique), links to the detail page
Description Free text

Creating, editing and deleting happen in the list's dialog.

Detail view

The detail page shows key figures the list cannot answer:

Figure Meaning
Assigned customers How many customers sit on this group
Price rows How many prices the group contains
Coverage For how many of the existing device types a price exists

Coverage below the total number of device types means: for the missing types, price resolution returns nothing in this group. The price matrix shows exactly where.

Duplicating a group

Building a second group by hand would mean re-entering one row per device type. The Duplicate group action copies the whole group including its price rows instead, optionally applying a percentage ("Standard minus ten percent gives Key account").

The factor applies to price, minimum price, maximum price and costs. Tax rate, unit, quantity, discount and validity are copied unchanged.

Preview first, write second

The Preview button reports how many price rows would be copied with which factor, without writing anything. A mass price change should never be a surprise.

Duplicating requires both permissions: price_category_edit for the group and price_edit, because price rows are created.

Deleting

A price group can be deleted. Its price rows lose their reference point and are no longer found by price resolution — so check first whether customers still sit on the group (key figure on the detail page).

Those customers keep the deleted group's key; their "Price group" field then shows nothing and price resolution finds nothing. Saving such a customer still works — whoever touches the record next can set or clear the group in the same go.

API endpoints

GET    /api/v2/price-categories                  # All price groups
GET    /api/v2/price-categories/{id}             # Detail incl. meta.statistics
POST   /api/v2/price-categories                  # Create
PUT    /api/v2/price-categories/{id}             # Update
POST   /api/v2/price-categories/{id}/duplicate   # Copy (factor, dry_run)
DELETE /api/v2/price-categories/{id}             # Delete

Example of a copy with a ten percent reduction, first as a preview:

POST /api/v2/price-categories/{id}/duplicate
{
  "name": "Key account",
  "factor": 0.9,
  "dry_run": true
}

Permissions

Permission Allows
price_category_view Read groups
price_category_edit Create, update, duplicate (plus price_edit)
price_category_delete Delete