Hi!
When you click on the Add button on the variant relation on the main product, you should get a standard dialogue where you select which product type you want to create.
Which properties are shown is controlled in a couple of methods on the content class that you can override. If you look at the custom partial class file for ShoeProduct, you will see the following code:
public override System.Collections.Generic.List<int> GetVariantProperties() {
List<int> varProps = base.GetVariantProperties();
varProps.Add(ShoeProduct.PropertyIdColor);
varProps.Add(ShoeProduct.PropertyIdSize);
return varProps;
}
public override List<int> GetPropertiesToExcludeInVariantAutoUpdate() {
List<int> varProps = base.GetPropertiesToExcludeInVariantAutoUpdate();
if(varProps.Contains(ShoeProduct.PropertyIdItemNumber)){
varProps.Remove(ShoeProduct.PropertyIdItemNumber);
}
varProps.Add(ShoeProduct.PropertyIdAdditionalImages);
varProps.Add(ShoeProduct.PropertyIdReviews);
varProps.Add(ShoeProduct.PropertyIdMainProductImage);
return varProps;
}
public override List<int> GetPropertiesToRenderInSubVariant() {
List<int> varProps = base.GetPropertiesToRenderInSubVariant();
if (varProps.Contains(ShoeProduct.PropertyIdItemNumber)) {
varProps.Remove(ShoeProduct.PropertyIdItemNumber);
}
varProps.Add(ShoeProduct.PropertyIdAdditionalImages);
varProps.Add(ShoeProduct.PropertyIdMainProductImage);
return varProps;
}
The names of the properties should explain fairly well what each of them does, but to give you a bit more info:
GetVariantProperties() - this is where you tell the system what properties on the content class that are variant properties.
GetPropertiesToExcludeInVariantAutoUpdate - When you save a main variant, all the other variants get the same content in most properties. The variant properties is of course not the same on all variants, but in addition, there are often a few other properties that are unique to the variant. For example, often each variant has a unique item number/manufacturer id and often a different picture. All the properties specified here need to be manually edited (or kept up to date with an import workflow from an ERP system etc).
GetPropertiesToRenderInSubVariant - It does what it says basically. It returns the property ids of properties you want to be visible when you edit a variant.
You can also find more information on variants here: http://developer.webnodes.com/variants