How can I use FieldValueSelectorType  value on the productmodel ?
It says here in the description that it
“Gets or sets the field value selector.”
 
But its defined as:
public virtual ProductModel.FieldValueSelectorType FieldValueSelector { get; }
 
Im interested in having it as VariantAndBaseProduct = 8 How can I make that happen?
Version 7.7.1
             
            
               
               
               
            
            
           
          
            
            
              Yes it is only “get” we must fix the documentation. 
This needs to be set on ProductModel initialization:
public ProductModel(BaseProduct baseProduct, Variant selectedVariant, FieldValueSelectorType fieldValueSelector, Lazy<ProductFieldTemplate> fieldTemplate, Lazy<ProductDisplayTemplate> displayTemplate)
        {
            BaseProduct = baseProduct;
            SelectedVariant = selectedVariant;
            FieldValueSelector = fieldValueSelector;
            _fieldTemplate = fieldTemplate;
            _displayTemplate = displayTemplate;
        } 
             
            
               
               
               
            
            
           
          
            
            
              What is the FieldValueSelectorType set to when using ProductModelBuilder?
             
            
               
               
               
            
            
           
          
            
            
              Not sure what you mean but this gets set in ProductModelBuilderImpl.cs  depending on what method (eg. BuildFromVariant  or BuildFromBaseProduct ) is called to generate the ProductModel . 
Why do you need to set FieldValueSelectorType  your self, what are you trying to do?
             
            
               
               
               
            
            
           
          
            
            
              I would like to know what FieldValueSelectorType is set to when using the different methods in ProductModelBuilder
             
            
               
               
               
            
            
           
          
            
            
              
        [Obsolete("Channel is mandatory, use overload.")]
        public override ProductModel BuildFromBaseProduct(BaseProduct baseProduct, WebSite webSite)
        {
            throw new NotSupportedException("Building ProductModel from baseProduct and website is not supported.");
        }
        public override ProductModel BuildFromBaseProduct(BaseProduct baseProduct, Channel channel)
        {
            if (baseProduct == null)
            {
                return null;
            }
            var variant = _variantService
                .GetByBaseProduct(baseProduct.SystemId)
                .FirstOrDefault(x => x.ChannelLinks.Any(z => z.ChannelSystemId == channel.SystemId));
            return variant == null ? null : BuildFromBaseProduct(baseProduct, variant);
        }
        public override ProductModel BuildFromBaseProduct(BaseProduct baseProduct, Variant selectedVariant)
        {
            return Create(baseProduct, selectedVariant);
        }
        public override ProductModel BuildFromBaseProduct(BaseProduct baseProduct)
        {
            if (baseProduct == null)
            {
                return null;
            }
            var channel = _routeRequestLookupInfoAccessor.RouteRequestLookupInfo?.Channel;
            if (channel == null)
            {
                return null;
            }
            var variant = _variantService
                .GetByBaseProduct(baseProduct.SystemId)
                .FirstOrDefault(x => x.ChannelLinks.Any(z => z.ChannelSystemId == channel.SystemId));
            return variant == null ? null : BuildFromBaseProduct(baseProduct, variant);
        }
        public override ProductModel BuildFromVariant(Variant variant)
        {
            if (variant == null)
            {
                return null;
            }
            return Create(null, variant);
        }
        public override ProductModel BuildFromVariant(Variant variant, BaseProduct baseProduct)
        {
            if (variant == null)
            {
                return null;
            }
            return Create(baseProduct, variant, ProductModel.FieldValueSelectorType.VariantAndBaseProduct);
        }
        private ProductModel Create(BaseProduct baseProduct, [NotNull] Variant selectedVariant, ProductModel.FieldValueSelectorType? fieldValueSelectorTypeDefault = null)
        {
            var fieldValueSelector = fieldValueSelectorTypeDefault ??
                (baseProduct == null ? ProductModel.FieldValueSelectorType.VariantAndBaseProduct : ProductModel.FieldValueSelectorType.BaseProductAndVariant);
            if (baseProduct == null)
            {
                baseProduct = _baseProductService.Get(selectedVariant.BaseProductSystemId);
            }
            else if (baseProduct.SystemId != selectedVariant.BaseProductSystemId)
            {
                throw new ArgumentException("Variant does not belong to the BaseProduct.", nameof(selectedVariant));
            }
            foreach (var validator in _renderingValidators)
            {
                if (!validator.Validate(baseProduct))
                {
                    return null;
                }
            }
            var fieldTemplate = new Lazy<ProductFieldTemplate>(() => _fieldTemplateService.Get<ProductFieldTemplate>(baseProduct.FieldTemplateSystemId));
            var displayTemplate = new Lazy<ProductDisplayTemplate>(() => _displayTemplateService.Get<ProductDisplayTemplate>(fieldTemplate.Value.DisplayTemplateSystemId));
            return new ProductModel(baseProduct, selectedVariant, fieldValueSelector, fieldTemplate, displayTemplate);
        }
 
             
            
               
               
               
            
            
           
          
            
              
                system  
                
                  Closed 
               
              
                  
                    November 8, 2021,  7:44am
                   
                   
              7 
               
             
            
              This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.