iFactoAppsNL

Sales prices, discounts, surcharges and margins

🌐 NL · Last reviewed: 27 May 2026

Sales prices, discounts, surcharges and margins

DXSteel uses a layered pricing structure: a base price (Sales Price), optional length surcharges and length discounts (based on length brackets), and a minimum margin floor. Prices are filtered by customer, customer price group, all customers, or campaign β€” with currency, variant, UoM, and minimum quantity break-points.

The pricing layers

  1. Sales Price (base) β€” unit price per UoM. Valid within start/end date, optionally with a minimum quantity.

  2. Length surcharge β€” fixed surcharge applied when the line length falls within min/max bounds.

  3. Length discount β€” fixed discount within min/max bounds.

  4. Margin floor β€” Minimum Margins guards against below-cost sales.

Setup workflow

  1. Open Sales Prices via Tell Me and add one price record per item or item price group.

  2. Pick the right Sales Type: Customer / Customer Price Group / All Customers / Campaign. Campaign locks the date range from the Campaign card.

  3. Fill Unit Price, Price Unit of Measure (Steel UoM: KG, MTR, PCS, …), optionally Currency Code.

  4. For length-based surcharge or discount: set Length Surcharge Min/Max Length, Length Surcharge Amount, or the Discount counterparts.

  5. Set Minimum Quantity for volume-tiered pricing.

  6. Add a Minimum Margin record per item/customer to define the margin floor.

  7. For batch updates: use the Sales Price Worksheet (next page).

Field reference

Field

Purpose

Mandatory

Sales Type

Customer / Customer Price Group / All Customers / Campaign.

Yes

Sales Code

Customer No., Price Group code, or Campaign code β€” blank for All Customers.

Conditional

Unit Price

Base price per Price Unit of Measure.

Yes

Price Unit of Measure

Steel UoM. Mandatory together with Unit Price and length-based surcharge/discount.

Yes

Currency Code

Blank = local currency. Auto-filled from customer for customer-specific prices.

Conditional

Starting / Ending Date

Validity window. Read-only when Sales Type = Campaign.

No

Length Surcharge Min/Max Length

Length bounds for the surcharge to apply.

No

Length Surcharge Amount

Fixed surcharge in currency.

No

Length Discount Min/Max + amount

Same for discount.

No

Minimum Quantity

Threshold for volume pricing.

No

Allow Line Surcharge / Line Disc. / Invoice Disc.

Booleans toggling permission for additional layers.

No

Margin Percentage / Margin Amount

Mutually exclusive per record. Percentage clears Currency and Price UoM.

No

Best practices

Customer price groups first: configure groups (Gold/Silver/Bronze or segment-based) and link customers via the customer card. Per-customer overrides become the exception, not the rule.

Separate margin techniques: use Margin Percentage for a general floor (e.g. 8% above cost), Margin Amount for a strict euro floor.

Margin percentage and margin amount are mutually exclusive: filling one automatically clears the other.

Common errors

Message

Cause / fix

"%1 cannot be after %2"

Starting Date is after Ending Date. Adjust the dates.

"It is not possible to use %1 as %2 for volumes pricing. Do you want to use %3?"

The chosen UoM is not a base UoM. Confirm to switch automatically.

"%1 must be blank."

Sales Code populated while Sales Type = All Customers. Clear the field.

"The %1 cannot be larger then the %2."

Length surcharge / discount Min is greater than Max. Fix it.

  • Sales Price Inquiry and Worksheet
  • Minimum Margins β€” margin floors per item/customer.

  • Sales Costs, Sales Line Costs, Sales Line Discounts.

  • Sales Prices and Line Discounts β€” combined maintenance page.

[Screenshot: Sales prices list with length brackets and margin column]