Prices

In TRADElube a price is not a single field on the product. It always belongs to a price group, and a product carries as many prices as you have set up groups.

The reason sits at the other end of the line. An online shop knows customer groups with prices of their own, an ERP system holds purchase and sales prices side by side, and a marketplace wants exactly one of them. A single price field could serve none of those cases.

Price groups

You set price groups up once under Settings, via the button Prices. Four of them come with every client from the start, one of each type: purchase price, sales price, special-offer price and list price. Their names are preset and yours to change, and you create further groups yourself, a trade price for commercial customers for instance.

Settings with the five price groups and their types

Each group carries three entries: the Position, which determines its order on the product, the Name, which you choose freely, and the Type.

What is most easily misunderstood about price groups is name and type, and the two are different things. The name is your label, the type tells TRADElube what the group stands for. Several groups may share a type: sales price and trade price are both of type Sales Price, and that is exactly why an order can work with either.

Two places hang directly off the type:

  • When an order item is created, TRADElube takes the price from the first group of type Sales Price, in the order of the settings. Moving a group up therefore also changes which price ends up in a new order item.
  • Only the type Special-Offer Price has the columns Valid From and Valid To. With every other type an entered period is discarded again, because a price without an expiry date is the normal case, and a period nobody evaluates would be a trap.

On the product each group has a collapsible section of its own, filled or empty. Empty groups are the normal case and not a defect: if you run no special offers, you leave the group empty and nothing arrives in the target system.

If a price group is deleted, the prices of that group disappear from every product along with it. A group that is no longer needed is therefore better left standing empty than deleted.

Net or gross: you decide per price

On the product, the Prices section shows two columns side by side, Net Price and Gross Price. You enter a value in exactly one of them, and TRADElube derives the other from the tax rate. Which is which you see immediately: the derived value is shown in gray, the entered one in black.

Prices section of a product with the tax rate and the price groups

This choice applies per price line, not per client. The purchase price arrives from the supplier net, the sales price is displayed gross in the shop, and both sit on the same product, each entered on its own side.

What is stored is always the entered value, never the derived one. That sounds like a nicety and is the difference between a price that stays right and one that drifts: a gross price converted to net and converted back on the next save loses a rounding step every round. If the tax rate changes later, only the derived side therefore changes. A sales price of 24.90 euros gross stays 24.90 euros gross.

The tax rate sits on the product

You set tax rates up under Settings, via the button Tax Rates, with a name and a percentage. Two are present, Standard at 19 per cent and Ermäßigt at 7 per cent. Both names are German in every client and yours to change.

The rate is chosen once per product, in the Prices section above the list of groups, and it then applies to every price of that product. That is not a simplification but the matter itself: the tax rate hangs on the goods, not on the customer group. A book stays at the reduced rate whether it goes over the counter at the sales price or at the trade price.

If a tax rate is deleted, the products that used it lose the entry. TRADElube notes those products as changed in the process, so the next execution transfers them again. That is the same thought as everywhere in the transfer: a change in one place that affects many records must not leave the target system quietly sitting on an old state.

A price carries no currency

TRADElube holds a price as a number. There is no currency list in the settings and no currency field on the price, and from that follows a rule worth knowing before it catches up with you: all prices of a client are held in the same currency. Which one that is, you know. TRADElube does not.

If a connected system requires a currency, it comes from the transfer plan and sits there as a fixed value. That same place is the lever when a target system expects a different entry.

Scale prices

A price group can hold several lines, each with a quantity range made of Quantity From and Quantity To. That is how you record a quantity discount without needing a second price group for it.

Price group with three scale lines and the Discount column

The lines hang together, and TRADElube keeps them gapless: the first line always starts at 1, the last stays open at the top, and when you change Quantity From on a line, the line above follows with its Quantity To. The reason is the transfer. A target system asks for the price for a quantity and needs exactly one answer to that. A gap between 10 and 25, or an overlap, would be either a missing or an arbitrary price in the shop, and both only show up at the customer's end.

From the second line on, the Discount column appears as well. It shows the distance to the first line in per cent and can also be filled in itself, in which case TRADElube derives the price from it. A newly created line takes over what can be read off the existing ones: the discount step so far, where one is recognizable, otherwise the price of the line above. With three or four tiers per product that is the difference between typing and doing arithmetic.

Setting up a trade price

Suppose your commercial customers are to see different prices from your end customers, as a customer group of their own in the shop. In TRADElube that comes down to five decisions:

What you decide Your choice Why
Name of the group Trade price That is how it appears in the settings and on the product
Type Sales Price So an order item can work with this price
Position behind the sales price The first group of this type fills new order items, and that is to stay the end customer price
Input column Net Price Commercial customers work net. The gross price stands next to it in gray
Quantity discount second line from 12 units A tier in the same group, not a second group

One step is still missing afterwards, and it is not on this page: in the transfer plan of the Products Upload task the new group needs an assignment to the shop's customer group. Without it the trade price sits on the product and nowhere else.

Just as notable is what this does not involve: no second product list, no copy of the range, no change to the software. The price for that is in the third row. If somebody later moves the new group up in the settings, trade prices go into new order items from then on, and without any message, because both groups carry the same type and the order is the only thing telling them apart.

How it fits together

  • In the transfer plan the Prices area has a section of its own, in which it is decided per price group where it goes in the target system.
  • Which prices a connected system accepts is decided by that system. A marketplace often takes only one price, an online shop one per customer group. Listed under Channels and tasks.
  • With variants, every variant carries its own prices, not the parent article. See data model.
  • If a price in the shop differs from the one in TRADElube, the traces are the place where that can be looked up per record and field.

Further reading