Product Variants is new way of specifying how different product properties such as size and colour can be combined to give different supplier SKUs.
In the past, dealing with different product combination SKUs properly was only possible using one of the following limited methods:
- A separate CPP product for each combination
- Using the basic API options for SKU formatting and concatenation
Going forward it is recommended that the above methods are avoided and product variants used wherever possible instead.
Note CPP v1 does not support product variants. It will only be possible to see and set them in v2 (basic prototype available by September).
PF Concept product 33S05 (CPP ID 1415489) is a T-shirt:
It has several available colours (handled using aspect options) as well as several sizes.
Each combination has a SKU which would have been difficult to reproduce using the older methods.
However because of product variants, the SKU can simply be defined for each combination.
|Colour (Aspect Option 1)||Size (Attribute 1)||Variant SKU|
Note The variant SKU is specified in full, even if it contains the base SKU.
Which Things Make Up a Variant
Currently, a product variant can be specified as a combination of the following things:
- Aspect Option 1
- Aspect Option 2
- Attribute 1
- Attribute 2
- Print Size
Personalisation Apps Order Flow
When a user creates a print job in a personalisation app for a product using variants, the active variant is saved along with all of the other details such as text and image details.
The active variant is determined automatically by the app based on the selections that have been made by the user.
Note Product state must be enabled when using product variants. If the user tries to add to cart without product state enabled, OMS will not be able to determine the correct SKU.
The variant SKU will then be passed back to the website via an additional field
in the callback data,
variant_sku. The base SKU will still be available in the
When an order is subsequently sent from the website to OMS via the order API, OMS will automatically
use the correct variant SKU (only if
Override Incoming SKU is enabled).
Retailer Integration Order Flow
Retailer integrations are able to detect that a product variant SKU has been provided and will work backwards from the variant to determine all of the relevant attributes that need to be applied to the item.
Variant SKUs can be mapped in the same way as normal SKUs.
To prevent any issues with existing integrations, product variants must be explicitly
enabled in the integration’s settings (
Enable Product Variants). The setting
will only be available in the v2 interface.
If the integration has no such setting, please create a support ticket.
Loading a Product Variant
It is also possible to load a product variant via an app URL (the product ID
must still be specified). For example, the below URL will load
Dark Red and
116 as default:
The value of the
state[variant] parameter should be the SKU of the desired variant.
Planned Future Development
Adding text area option support, so that a text area’s selected option value can change the product SKU (especially useful for CSV based retailer integrations).
Full support for dynamic pricing, so each variant gets its own price.