SKU Pricing

SKU pricing is a form of pricing where the price is put on an object instead of an option. This way it is way easier to scale it up. You can create SKUs for very simple objects, especially when there are a lot of them. Instead of editing the prices in our backend by manually entering values, you can import spreadsheets to speed up this process. When the type of a material affects the price, you can assign an SKU to the materials themselves. For now, this works best when you have a maximum of 1 type of material configuration per object with an SKU. If you want to have multiple configuration questions where you mix and match materials or colours, try to split the objects so you are only configuring a single material group per SKU. (because you can only do model SKU + material SKU, not model SKU + material SKU1 +material SKU2, etc.)


If the price is not right, you can check where it went wrong by following these steps:

  1. Open your preview
  1. Press F12
  2. Copy this line: window.expivi.saveConfiguration().then((data)=>console.log(JSON.stringify(data)));
  3. Paste it in the console and press enter
  4. Press the button “copy” in the right bottom corner of the console
  5. Paste this in a JSON editor
  6. Open the articles tab


Here you will find tabs that contain the SKU’s that are being read.

User case example


For this example, we will use a desk as our product.

You can configure the width, height, desktop thickness, type of legs and the colour of the paint job, etc.


Each major part of the desk has its own product code/SKU:

-Left leg / right leg



-cable tray


-privacy screens


The product code of the desktop is a summary of all the choices that have been made while configuring that particular object, or choices elsewhere that influence it.


If you consider the product code V10A2E1A1H.

-V10 is the code that defines the type of object. In this case the desktop.

-A2 determines the width of the desktop. In this case 280 cm. The valid range varies from 100 cm to 300 cm. Each increment of 20 cm has a new code.

-E determines the depth of the desktop. In this case 80 cm. This can vary between 80 cm to 200 cm. Again, each increment of 20 cm has a new code.

-1 determines if the corners of the desktop have been rounded. In this example 1 means the corners are rounded. 0 would mean the desktop is perfectly straight.

-A stands for the thickness. There are a few variations like 18,20,22 and 25 mm. In this case, the desktop has a thickness of 18mm.


So far we have covered V10A2E1A  1H.

This is the part of the SKU that we can define in the model itself.

The last part describes the type of material that is chosen in the configuration.

You can assign a model to what we call a “material group”. Any model inside this group can have its materials changed as part of the configuration.


The material groups:

We can give materials their own SKU.

This SKU is automatically added to the SKU that was defined in the model so that the combined SKU will become V10A2E1A + 1H.

In this example, the price isn’t totally unique for each material, they only care if you use a solid colour (1U) or a wooden print (1H).


To link this SKU to a price we have to create a spreadsheet that lists a price for each possible SKU.

Some examples:

A scene with multiple components would look something like this:

For this project, we have a special function that allows us to link a unique code for specifying a paint colour (000927) while only adding 000 to the SKU. This was implemented because the colour did not matter for the price but you still want to know what colour was picked.