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 |