public PublishedContentProductInformationExtractor(IStoreService storeService, ICurrencyService currencyService, IVatGroupService vatGroupService, IVariantService <IPublishedContent, VariantPublishedContent> variantService) { StoreService = storeService; CurrencyService = currencyService; VatGroupService = vatGroupService; VariantService = variantService; }
/// <summary> /// Will get variant information from a single product. This json will mostly be used to create variant selection drop downs in the frontend /// </summary> /// <param name="variants"></param> /// <returns>A json blob with a dictionary of products and their variants. This dictionary will only contain a single product</returns> /// /// <summary> /// /// </summary> /// <typeparam name="T"></typeparam> /// <param name="storeId"></param> /// <param name="product"></param> /// <param name="onlyValid"></param> /// <returns></returns> public static string GetVariantJson <T>(long storeId, T product, bool onlyValid = true) where T : class { IVariantService <T, VariantPublishedContent> variantService = DependencyContainer.Instance.Resolve <IVariantService <T, VariantPublishedContent> >(); return(variantService.GetVariantJson(storeId, new List <T> { product }, onlyValid)); }
public HomeController(ILogger <HomeController> logger, IAnswerService answerService, IRegistrationService registrationService, IVariantService variantService, IQuestionService questionService) { _logger = logger; _answerService = answerService; _registrationService = registrationService; _variantService = variantService; _questionService = questionService; }
public void PostStock(string productIdentifier, Stock stock) { ProductIdentifier productIdentifierObj = new ProductIdentifier(productIdentifier); IContent content = ApplicationContext.Current.Services.ContentService.GetById(productIdentifierObj.NodeId); IProductInformationExtractor <IContent, VariantPublishedContent> productInformationExtractor = ContentProductInformationExtractor.Instance; IVariantService <IContent, VariantPublishedContent> contentVariantService = ContentVariantService.Instance; long storeId = productInformationExtractor.GetStoreId(content); VariantPublishedContent variant = contentVariantService.GetVariant(storeId, content, productIdentifierObj.VariantId); stock.Sku = !string.IsNullOrEmpty(stock.Sku) ? stock.Sku : productInformationExtractor.GetSku(content, variant); ProductService.Instance.SetStock(storeId, stock.Sku, !string.IsNullOrEmpty(stock.Value) ? stock.Value.ParseToDecimal() : null); }
public Stock GetStock(string productIdentifier) { Stock stock = new Stock(); ProductIdentifier productIdentifierObj = new ProductIdentifier(productIdentifier); IContent content = ApplicationContext.Current.Services.ContentService.GetById(productIdentifierObj.NodeId); IProductInformationExtractor <IContent, VariantPublishedContent> productInformationExtractor = ContentProductInformationExtractor.Instance; IVariantService <IContent, VariantPublishedContent> contentVariantService = ContentVariantService.Instance; long storeId = productInformationExtractor.GetStoreId(content); VariantPublishedContent variant = contentVariantService.GetVariant(storeId, content, productIdentifierObj.VariantId); stock.Sku = productInformationExtractor.GetSku(content, variant); decimal?stockValue = ProductService.Instance.GetStock(storeId, stock.Sku); stock.Value = stockValue != null?stockValue.Value.ToString("0.####") : ""; return(stock); }
public VariantAppService(IVariantService variantService) : base(variantService) { _VariantService = variantService; }
/// <summary> /// Gets the attribute groups and attributes present in a collection of variants. /// </summary> /// <param name="variants">A collection of variants.</param> /// <returns></returns> public static IEnumerable <VariantGroup> GetVariantGroups <T>(T product, IEnumerable <VariantPublishedContent> variants) where T : class { IVariantService <T, VariantPublishedContent> variantService = DependencyContainer.Instance.Resolve <IVariantService <T, VariantPublishedContent> >(); return(variantService.GetVariantGroups(variants)); }
/// <summary> /// Get the variants from a specific product content. The variants will be fetched from the property field using the "Tea Commerce: Variant editor" /// </summary> /// <param name="storeId">Id of the store.</param> /// <param name="model">The product as a IPublishedContent.</param> /// <param name="onlyValid">Fetch only the valid variants. A valid variant have one of each variant type and is not a duplicate.</param> /// <returns></returns> public static IEnumerable <VariantPublishedContent> GetVariants <T>(long storeId, T product, bool onlyValid = true) where T : class { IVariantService <T, VariantPublishedContent> variantService = DependencyContainer.Instance.Resolve <IVariantService <T, VariantPublishedContent> >(); return(variantService.GetVariants(storeId, product, onlyValid)); }
/// <summary> /// Get a variant from a specific product content. The variants will be fetched from the property field using the "Tea Commerce: Variant editor" /// </summary> /// <param name="storeId">Id of the store.</param> /// <param name="model">The product as a IPublishedContent.</param> /// <param name="variantId">The id of a specific product variant</param> /// <param name="onlyValid">Fetch only the valid variants. A valid variant have one of each variant type and is not a duplicate.</param> /// <returns></returns> public static VariantPublishedContent GetVariant <T>(long storeId, T product, string variantId, bool onlyValid = true) where T : class { IVariantService <T, VariantPublishedContent> variantService = DependencyContainer.Instance.Resolve <IVariantService <T, VariantPublishedContent> >(); return(variantService.GetVariant(storeId, product, variantId, onlyValid)); }
public VariantController(IVariantService variantService) { _variantService = variantService; }
/// <summary> /// Will get variant information from several products. This json will mostly be used to create variant selection drop downs in the frontend /// </summary> /// <param name="variants"></param> /// <returns>A json blob with a dictionary of products and their variants</returns> public static string GetVariantJson <T>(long storeId, IEnumerable <T> products, bool onlyValid = true) { IVariantService <T, VariantPublishedContent> variantService = DependencyContainer.Instance.Resolve <IVariantService <T, VariantPublishedContent> >(); return(variantService.GetVariantJson(storeId, products, onlyValid)); }