Esempio n. 1
0
 public PublishedContentProductInformationExtractor(IStoreService storeService, ICurrencyService currencyService, IVatGroupService vatGroupService, IVariantService <IPublishedContent, VariantPublishedContent> variantService)
 {
     StoreService    = storeService;
     CurrencyService = currencyService;
     VatGroupService = vatGroupService;
     VariantService  = variantService;
 }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        public HomeController(ILogger <HomeController> logger, IAnswerService answerService,
                              IRegistrationService registrationService, IVariantService variantService, IQuestionService questionService)
        {
            _logger = logger;

            _answerService       = answerService;
            _registrationService = registrationService;
            _variantService      = variantService;
            _questionService     = questionService;
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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;
 }
Esempio n. 7
0
        /// <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));
        }
Esempio n. 8
0
        /// <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));
        }
Esempio n. 9
0
        /// <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));
        }
Esempio n. 10
0
 public VariantController(IVariantService variantService)
 {
     _variantService = variantService;
 }
Esempio n. 11
0
        /// <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));
        }