Open core: don’t reinvent the wheel — build your fenestration software on ours.

Skip to main content

The price markup lookup sets a different price markup for a part family. A row can be
limited to a series, customer, customer group, job type or opening. There is no screen to edit this
list today; your OpenJanela administrator sets it up.

What, where, who, when, why

What A list of one-off price markup overrides by part family —
each row can narrow itself to a series, customer, customer group, opening and job type, and carries
a markup as a fraction (0.25 = 25%).
Where No user screen: rows live in the lookup table and an administrator
maintains them. They are applied while pricing an item’s parts and glass.
Who The pricing administrator. Quote users never see the rows, only the
resulting part prices.
When When one family must carry a different markup for one dealer group,
customer, opening or job type — without touching the part or the family default.
Why it matters It is a surgical override: the first matching row replaces
the part/family markup for parts priced as marked-up cost, and for resold supplier products it
raises the whole line total. Overlapping rows are dangerous because first-found wins with no
priority column.

Row fields

Field Meaning
Series The series the row belongs to. Only rows for the item’s series are loaded.
0 does not mean “any series”.
Part family The part family whose markup is replaced. It must match exactly.
Customer 0 = any customer, otherwise this customer only.
Customer group 0 = any group, otherwise customers whose Group is this one.
Opening 0 = any opening, otherwise parts of that opening only.
Job type 0 = any job type, otherwise orders of that job type only.
Markup A fraction: 0.25 = 25%.
Start / end date Stored, but not checked by pricing in the current version: a row
applies whatever the dates.

How it is applied to parts and glass

  1. The part’s price markup is set as usual: the part’s own markup, or the part family markup when
    the part’s is 0. A series override wins over both.
  2. Rows for the item’s series are read in table order. The first row that matches job type, part
    family, opening, customer group and customer replaces that markup. Later rows are not looked at.
  3. The markup only changes the price of parts that have no list price and are priced as marked-up
    cost: price = cost × (1 + markup).

Mullion and coupler parts, which have no opening, match regardless of the row’s opening. Glass
uses the same matching against the glass part family.

Dealer items built on a supplier’s product

When an item contains a supplier’s configured part (you resell a supplier’s series), a second
step runs after the item’s dealer price is worked out. It takes the first row for the series that
matches job type, customer and customer group only. Part family and opening are ignored here.
That row raises the line total: total × (1 + markup).

Keep rows unambiguous
The first match wins and the table has no priority column, so do not add overlapping rows. A
customer-specific row and a “any customer” row for the same family and opening may be found in either
order.

Worked example — screens cost 35% more for one dealer group

Field Value Why
Series / Part family Vinyl 700 / “Screen Mesh” The override only
loads for items of that series, and only replaces that family’s markup.
Customer group “Dealers” (id of the group) Customers whose Group
is Dealers; leave Customer = 0 for any of them.
Opening / Job type 0 / 0 Any opening, any job type.
Markup 0.35 A fraction — 0.35 = 35%, not 35. Typing 35 here means
3500%.
Effect Screen mesh with cost $10.00 and no list price prices at 10 × 1.35 =
$13.50
The row replaced the family’s usual 25% markup. Parts with a list price are
untouched.

See also Cost & price groups for how markups combine with
price groups.