private void AddConfiguredAttributes(VendorAssortmentBulk.VendorAssortmentItem configurableProduct, bool hasCupsize) { var configuredAttributesNames = new List <String> { "Color", "Size" }; if (!_configuredAttributes.Keys.Contains(configurableProduct.VendorProduct.VendorItemNumber)) { _configuredAttributes.Add(configurableProduct.VendorProduct.VendorItemNumber, configuredAttributesNames); } }
protected override void Process() { var defaultVendorIDSetting = GetConfiguration().AppSettings.Settings["VendorID"]; if (defaultVendorIDSetting == null) { throw new Exception("Setting VendorID is missing"); } DefaultVendorID = Int32.Parse(defaultVendorIDSetting.Value); var vendorIdsToProcess = GetConfiguration().AppSettings.Settings["VendorIDs"]; if (vendorIdsToProcess == null) { throw new Exception("Setting VendorIDs is missing"); } _vendorIDs = vendorIdsToProcess.Value.Split(',').Select(x => Convert.ToInt32(x)).ToArray(); var attributes = new List <ProductAttributeMetaData>(); using (var unit = GetUnitOfWork()) { try { InitAttributeMapping(); SetupAttributes(unit, _attributeMapping, DefaultVendorID, out attributes); } catch (Exception e) { log.Debug(e.InnerException); } foreach (var vendorID in _vendorIDs) { _configuredAttributes = new Dictionary <string, List <string> >(); var repositoryProductTypes = new ProductTypeRepository((IServiceUnitOfWork)unit, DefaultVendorID); var repositoryModels = new ProductModelRepository((IServiceUnitOfWork)unit, DefaultVendorID); bool useAdvicePrice = false; var useAdvicePriceSetting = unit.Scope.Repository <VendorSetting>().GetSingle(c => c.VendorID == vendorID && c.SettingKey == USE_ADVICE_PRICE_FROM_XML_SETTING_KEY); if (useAdvicePriceSetting != null) { bool.TryParse(useAdvicePriceSetting.Value, out useAdvicePrice); } var ReturnCostsVendorItemNumber = unit.Scope.Repository <VendorSetting>().GetSingle(c => c.VendorID == vendorID && c.SettingKey == "ReturnCostsProduct"); if (ReturnCostsVendorItemNumber != null) { ReturnVendorItemNumber = ReturnCostsVendorItemNumber.Value; } var ShipmentCostsVendorItemNumber = unit.Scope.Repository <VendorSetting>().GetSingle(c => c.VendorID == vendorID && c.SettingKey == "ShipmentCostsProduct"); if (ShipmentCostsVendorItemNumber != null) { ShipmentVendorItemNumber = ShipmentCostsVendorItemNumber.Value; } foreach (var attributeMapping in _attributeMapping) { attributeMapping.VendorID = vendorID; } var xmlAssortmentRepository = new XmlAssortmentRepository(vendorID, unit, log); foreach (var assortment in xmlAssortmentRepository.GetAssortment(vendorID)) { var assortmentList = new List <VendorAssortmentBulk.VendorAssortmentItem>(); var stockPerProduct = (from p in unit.Scope.Repository <Product>().GetAll(c => c.SourceVendorID == vendorID) let stock = p.VendorStocks.FirstOrDefault(c => c.VendorID == vendorID) where stock != null select new { p.VendorItemNumber, stock.QuantityOnHand }).ToDictionary(c => c.VendorItemNumber, c => c.QuantityOnHand); var productGroup = assortment.Assortments.GroupBy(c => c.ConfigurableVendorItemNumber).ToList(); foreach (var configurableProductGroup in productGroup) { var first = configurableProductGroup.First(); var isConfigurableProductAWebsiteProduct = configurableProductGroup.Select(x => x.Website).Contains("WEB"); var type = first.TypeCode; var typeObject = repositoryProductTypes.Get(type); var modelObject = repositoryModels.Get(first.ModelCode); #region "Configurable Product" var configurableProduct = new VendorAssortmentBulk.VendorAssortmentItem(); if (first.ConfigurableVendorItemNumber != ShipmentVendorItemNumber && first.ConfigurableVendorItemNumber != ReturnVendorItemNumber) { #region BrandVendor configurableProduct.BrandVendors = new List <VendorAssortmentBulk.VendorImportBrand>() { new VendorAssortmentBulk.VendorImportBrand() { VendorID = DefaultVendorID, VendorBrandCode = first.Brand, Name = first.Brand } }; #endregion #region GeneralProductInfo configurableProduct.VendorProduct = new VendorAssortmentBulk.VendorProduct { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = configurableProductGroup.Key, VendorItemNumber = configurableProductGroup.Key, VendorBrandCode = first.Brand, IsConfigurable = 1, VendorProductGroupCode1 = first.ProductGroupCode1, VendorProductGroupCodeName1 = first.ProductGroupCode1, VendorProductGroupCode2 = first.ProductGroupCode2, VendorProductGroupCodeName2 = first.ProductGroupCode2, VendorProductGroupCode3 = first.ProductGroupCode3, VendorProductGroupCodeName3 = first.ProductGroupCode3, VendorProductGroupCode4 = first.Brand, VendorProductGroupCodeName4 = first.Brand, ShortDescription = first.ShortDescription, LongDescription = first.LongDescription, Barcode = String.Empty }; #endregion #region ProductDescription configurableProduct.VendorProductDescriptions = new List <VendorAssortmentBulk.VendorProductDescription>() { new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorProductDescription() { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = first.ConfigurableVendorItemNumber, LanguageID = 1, ProductName = first.ShortDescription, ShortContentDescription = first.ShortDescription, LongContentDescription = first.LongDescription } }; #endregion #region Attributes configurableProduct.VendorImportAttributeValues = new List <VendorAssortmentBulk.VendorImportAttributeValue>() { new VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "Season", Value = first.ProductGroupCode2, AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Season").AttributeID, CustomItemNumber = first.ConfigurableVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID }, new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "IsBra", Value = typeObject == null ? "false" : typeObject.IsBra.ToString(), AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "IsBra").AttributeID, CustomItemNumber = first.ConfigurableVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID }, new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "Group", Value = typeObject == null ? type : typeObject.ProductType.ToString(), AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Group").AttributeID, CustomItemNumber = first.ConfigurableVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID } }; #region ProductType Translation Attributes if (typeObject != null) //add translations { foreach (var translation in typeObject.Translations) { configurableProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue { AttributeCode = "Type", Value = translation.Value, AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Type").AttributeID, CustomItemNumber = first.ConfigurableVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = translation.Key.ToString(), VendorID = ConcentratorVendorID }); } } #endregion #region Model Translation if (modelObject != null) { configurableProduct.VendorImportAttributeValues.Add(new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "Model", Value = modelObject.Translation, AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Model").AttributeID, CustomItemNumber = first.ConfigurableVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID }); } #endregion #endregion #region Prices configurableProduct.VendorImportPrices = new List <Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportPrice>() { new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportPrice() { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = configurableProductGroup.Key, CommercialStatus = isConfigurableProductAWebsiteProduct ? "Active" : "Non-Web", Price = "0" } }; #endregion #region VendorStock configurableProduct.VendorImportStocks = new List <VendorAssortmentBulk.VendorImportStock>() { new VendorAssortmentBulk.VendorImportStock() { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = configurableProductGroup.Key, StockType = "Webshop", StockStatus = "NonStock" } }; #endregion assortmentList.Add(configurableProduct); configurableProduct.RelatedProducts = new List <VendorAssortmentBulk.VendorImportRelatedProduct>(); var otherProductsFromModel = assortment.Assortments.Where(c => c.ModelCode == first.ModelCode && c.TypeCode != first.ModelCode) .Select(c => c.ConfigurableVendorItemNumber) .Distinct() .ToList(); var otherProductsFromModelAndSameType = new List <string>(); var otherProductsFromModelAndDifferentType = new List <string>(); foreach (var product in otherProductsFromModel) { //var typeRelated = product.Split(new char[] {'-'}, StringSplitOptions.RemoveEmptyEntries)[1]; var typeObjectRelated = repositoryProductTypes.Get(type); if (typeObjectRelated != null && typeObject != null) { if (typeObjectRelated.IsBra == typeObject.IsBra) { otherProductsFromModelAndSameType.Add(product); } else { otherProductsFromModelAndDifferentType.Add(product); } } } foreach (var relatedFromType in otherProductsFromModelAndSameType) { configurableProduct.RelatedProducts.Add(new VendorAssortmentBulk.VendorImportRelatedProduct() { CustomItemNumber = configurableProductGroup.Key, DefaultVendorID = DefaultVendorID, VendorID = vendorID, RelatedCustomItemNumber = relatedFromType, IsConfigured = 0, RelatedProductType = "ModelType" }); } foreach (var relatedFromType in otherProductsFromModelAndDifferentType) { configurableProduct.RelatedProducts.Add(new VendorAssortmentBulk.VendorImportRelatedProduct() { CustomItemNumber = configurableProductGroup.Key, DefaultVendorID = DefaultVendorID, VendorID = vendorID, RelatedCustomItemNumber = relatedFromType, IsConfigured = 0, RelatedProductType = "ModelTypeCross" }); } } #endregion var isBra = typeObject != null && typeObject.IsBra; foreach (var simpleItem in configurableProductGroup) { var cupsizeProduct = false; #region "Simple Product" var simpleProduct = new VendorAssortmentBulk.VendorAssortmentItem(); #region "Brand" simpleProduct.BrandVendors = new List <VendorAssortmentBulk.VendorImportBrand>() { new VendorAssortmentBulk.VendorImportBrand() { VendorID = DefaultVendorID, VendorBrandCode = simpleItem.Brand, Name = simpleItem.Brand } }; #endregion #region "Vendor Product" simpleProduct.VendorProduct = new VendorAssortmentBulk.VendorProduct { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, VendorItemNumber = simpleItem.SimpleVendorItemNumber, VendorBrandCode = first.Brand, IsConfigurable = 0, VendorProductGroupCode1 = simpleItem.ProductGroupCode1, VendorProductGroupCodeName1 = simpleItem.ProductGroupCode1, VendorProductGroupCode2 = simpleItem.ProductGroupCode2, VendorProductGroupCodeName2 = simpleItem.ProductGroupCode2, VendorProductGroupCode3 = simpleItem.ProductGroupCode3, VendorProductGroupCodeName3 = simpleItem.ProductGroupCode3, VendorProductGroupCode4 = first.Brand, VendorProductGroupCodeName4 = first.Brand, ShortDescription = simpleItem.ShortDescription, LongDescription = simpleItem.LongDescription, Barcode = simpleItem.Barcode, ParentProductCustomItemNumber = configurableProductGroup.Key }; #endregion #region "Product Description" simpleProduct.VendorProductDescriptions = new List <VendorAssortmentBulk.VendorProductDescription>() { new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorProductDescription() { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, LanguageID = 1, ProductName = simpleItem.ShortDescription, ShortContentDescription = simpleItem.ShortDescription, LongContentDescription = simpleItem.LongDescription } }; #endregion #region "Attribute" simpleProduct.VendorImportAttributeValues = new List <VendorAssortmentBulk.VendorImportAttributeValue>() { new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "Color", Value = simpleItem.ColourcodeSupplier, AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Color").AttributeID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID }, new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "Group", Value = typeObject == null ? type : typeObject.ProductType.ToString(), AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Group").AttributeID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID } }; if (!string.IsNullOrEmpty(simpleItem.SubsizeSupplier)) { simpleProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "Size", Value = string.Format("{0}{1}", simpleItem.SizeSupplier, simpleItem.SubsizeSupplier), AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Size").AttributeID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID }); cupsizeProduct = true; } else { simpleProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "Size", Value = simpleItem.SizeSupplier, AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "Size").AttributeID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, DefaultVendorID = DefaultVendorID, LanguageID = null, VendorID = ConcentratorVendorID }); } if (isBra) { simpleProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "TopSize", Value = string.Format("{0}{1}", simpleItem.SizeSupplier, simpleItem.SubsizeSupplier), AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "TopSize").AttributeID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, DefaultVendorID = DefaultVendorID, // 50 LanguageID = null, VendorID = ConcentratorVendorID // 48 }); } else { simpleProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue() { AttributeCode = "BottomSize", Value = simpleItem.SizeSupplier, AttributeID = attributes.FirstOrDefault(c => c.AttributeCode == "BottomSize").AttributeID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, DefaultVendorID = DefaultVendorID, // 50 LanguageID = null, VendorID = ConcentratorVendorID // 48 }); } #endregion #region "Price" simpleProduct.VendorImportPrices = new List <Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportPrice>() { new Concentrator.Objects.Vendors.Bulk.VendorAssortmentBulk.VendorImportPrice() { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, CommercialStatus = simpleItem.Website.Equals("WEB") ? "Active" : "Non-Web", Price = (useAdvicePrice ? simpleItem.AdvicePrice : simpleItem.LabellingPrice).ToString(CultureInfo.InvariantCulture), CostPrice = (useAdvicePrice ? simpleItem.AdvicePrice : simpleItem.LabellingPrice).ToString(CultureInfo.InvariantCulture) } }; #endregion #region "Stock" if (!stockPerProduct.ContainsKey(simpleItem.SimpleVendorItemNumber)) { simpleProduct.VendorImportStocks = new List <VendorAssortmentBulk.VendorImportStock>() { new VendorAssortmentBulk.VendorImportStock() { VendorID = vendorID, DefaultVendorID = DefaultVendorID, CustomItemNumber = simpleItem.SimpleVendorItemNumber, StockType = "Webshop", StockStatus = "ENA" } }; } else { simpleProduct.VendorImportStocks = new List <VendorAssortmentBulk.VendorImportStock>(); } #endregion assortmentList.Add(simpleProduct); if (first.ConfigurableVendorItemNumber != ShipmentVendorItemNumber && first.ConfigurableVendorItemNumber != ReturnVendorItemNumber) { configurableProduct.RelatedProducts.Add(new VendorAssortmentBulk.VendorImportRelatedProduct() { CustomItemNumber = first.ConfigurableVendorItemNumber, DefaultVendorID = DefaultVendorID, IsConfigured = 1, VendorID = vendorID, RelatedCustomItemNumber = simpleItem.SimpleVendorItemNumber, RelatedProductType = "Configured product" }); AddConfiguredAttributes(configurableProduct, cupsizeProduct); } #endregion } } try { var bulkConfig = new VendorAssortmentBulkConfiguration { IsPartialAssortment = IsPartialAssortment }; using (var vendorAssortmentBulk = new VendorAssortmentBulk(assortmentList, vendorID, DefaultVendorID, bulkConfig)) { vendorAssortmentBulk.Init(unit.Context); vendorAssortmentBulk.Sync(unit.Context); } } catch (Exception ex) { log.AuditError(ex.Message); } foreach (var productAttributeConfiguration in _configuredAttributes) { var product = unit.Scope.Repository <Product>().GetSingle(c => c.VendorItemNumber == productAttributeConfiguration.Key && c.IsConfigurable); foreach (var code in productAttributeConfiguration.Value) { var ent = product.ProductAttributeMetaDatas.FirstOrDefault(c => c.AttributeCode == code); if (ent == null) { var attr = unit.Scope.Repository <ProductAttributeMetaData>().GetSingle(c => c.AttributeCode == code); product.ProductAttributeMetaDatas.Add(attr); } } } unit.Save(); CopyArticleInformationToTnt(assortment.FileName); } } } }
private VendorAssortmentBulk.VendorAssortmentItem GetVendorAssortmentForSimpleProduct(Article article) { var vendorItemNumber = article.GetVendorItemNumber(); var simpleProduct = new VendorAssortmentBulk.VendorAssortmentItem { RelatedProducts = new List <VendorAssortmentBulk.VendorImportRelatedProduct> { new VendorAssortmentBulk.VendorImportRelatedProduct { CustomItemNumber = article.ArticleCode, DefaultVendorID = VendorID, IsConfigured = 1, RelatedCustomItemNumber = vendorItemNumber, RelatedProductType = Constants.Relation.Style, VendorID = VendorID } }, VendorProduct = GetVendorAssortmentProduct(article, false, Context), VendorProductDescriptions = GetVendorAssortmentProductDescriptions(article, vendorItemNumber), VendorImportAttributeValues = new List <VendorAssortmentBulk.VendorImportAttributeValue> { new VendorAssortmentBulk.VendorImportAttributeValue { AttributeID = PropertyStore.ReferenceCode.AttributeID, CustomItemNumber = vendorItemNumber, DefaultVendorID = VendorID, VendorID = VendorID, Value = article.ReferenceCode } } }; if (!article.ColorCode.Equals(Constants.IgnoreCode)) { simpleProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue { AttributeID = PropertyStore.ColorCode.AttributeID, CustomItemNumber = vendorItemNumber, DefaultVendorID = VendorID, VendorID = VendorID, Value = article.ColorCode }); simpleProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue { AttributeID = PropertyStore.ColorName.AttributeID, CustomItemNumber = vendorItemNumber, DefaultVendorID = VendorID, VendorID = VendorID, Value = article.ColorName }); } if (!article.SizeCode.Equals(Constants.IgnoreCode)) { simpleProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue { AttributeID = PropertyStore.SizeCode.AttributeID, CustomItemNumber = vendorItemNumber, DefaultVendorID = VendorID, VendorID = VendorID, Value = article.SizeCode }); } return(simpleProduct); }
private Boolean ProcessFile(Stream fileStream) { using (var document = new ExcelPackage(fileStream)) { var worksheet = document.Workbook.Worksheets.First(); if (VerifyWorksheet(worksheet)) { TraceVerbose("Loading existing product vendor assortment data..."); var vendorBySkuLookup = Unit.Scope.Repository <VendorAssortment>() .Include(vendorAssortment => vendorAssortment.Product) .GetAll(vendorAssortment => vendorAssortment.Product.IsConfigurable) .ToLookup(vendorAssortment => vendorAssortment.CustomItemNumber, vendorAssortment => vendorAssortment.VendorID); TraceVerbose("Loading product content processors..."); var productContentRecordProcessors = GetType() .GetNestedTypes(BindingFlags.Instance | BindingFlags.NonPublic) .Where(type => type.BaseType == typeof(ProductContentRecordProcessor)) .Select(processorType => Activator.CreateInstance(processorType, DefaultVendor) as ProductContentRecordProcessor) .ToArray(); TraceVerbose("Loading product content records..."); var productContentRecords = GetProductContentRecords(worksheet).ToArray(); var vendorAssortmentDictionary = new Dictionary <Int32, IList <VendorAssortmentBulk.VendorAssortmentItem> >(); var progressStopwatch = Stopwatch.StartNew(); for (var index = 0; index < productContentRecords.Length; index++) { var productContentRecord = productContentRecords[index]; var customItemNumber = String.Format("{0} {1}", productContentRecord[HeaderName].Substring(3), productContentRecord[HeaderColor]); foreach (var vendorID in vendorBySkuLookup[customItemNumber]) { var vendorAssortmentItem = new VendorAssortmentBulk.VendorAssortmentItem(); foreach (var productContentProcessor in productContentRecordProcessors) { productContentProcessor.CustomItemNumber = customItemNumber; productContentProcessor.LanguageID = DefaultLanguage.LanguageID; productContentProcessor.VendorAssortment = vendorAssortmentItem; productContentProcessor.VendorID = vendorID; productContentProcessor.Process(productContentRecord); } if (!vendorAssortmentDictionary.ContainsKey(vendorID)) { vendorAssortmentDictionary[vendorID] = new List <VendorAssortmentBulk.VendorAssortmentItem>(); } vendorAssortmentDictionary[vendorID].Add(vendorAssortmentItem); } if (progressStopwatch.ElapsedMilliseconds > 1000L || productContentRecords.Length - 1 == index) { TraceVerbose("Progress: {0:P2}", (index + 1D) / productContentRecords.Length); progressStopwatch.Restart(); } } foreach (var vendorID in vendorAssortmentDictionary.Keys) { TraceVerbose("Bulk importing vendor '{0}'...", Unit.Scope.Repository <Vendor>().GetSingle(vendor => vendor.VendorID == vendorID).Name); var bulkConfig = new VendorAssortmentBulkConfiguration { IsPartialAssortment = true }; using (var vendorAssortmentBulk = new VendorAssortmentBulk(vendorAssortmentDictionary[vendorID], vendorID, vendorID, bulkConfig)) { vendorAssortmentBulk.Init(Unit.Context); vendorAssortmentBulk.Sync(Unit.Context); } } return(true); } } return(false); }
private VendorAssortmentBulk.VendorAssortmentItem GetVendorAssortmentForConfigurableProductWithColorLevel(Article article) { var colorVendorItemNumber = article.GetColorVendorItemNumber(); var colorProduct = new VendorAssortmentBulk.VendorAssortmentItem { RelatedProducts = new List <VendorAssortmentBulk.VendorImportRelatedProduct> { new VendorAssortmentBulk.VendorImportRelatedProduct { CustomItemNumber = article.ArticleCode, DefaultVendorID = VendorID, IsConfigured = 0, RelatedCustomItemNumber = colorVendorItemNumber, RelatedProductType = Constants.Relation.Color, VendorID = VendorID } }, VendorProduct = GetVendorAssortmentProduct(article, false, Context), VendorProductDescriptions = GetVendorAssortmentProductDescriptions(article, colorVendorItemNumber), VendorImportAttributeValues = new List <VendorAssortmentBulk.VendorImportAttributeValue> { new VendorAssortmentBulk.VendorImportAttributeValue { AttributeID = PropertyStore.ReferenceCode.AttributeID, CustomItemNumber = colorVendorItemNumber, DefaultVendorID = VendorID, VendorID = VendorID, Value = article.ReferenceCode } } }; if (!article.ColorCode.Equals(Constants.IgnoreCode)) { colorProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue { AttributeID = PropertyStore.ColorCode.AttributeID, CustomItemNumber = colorVendorItemNumber, DefaultVendorID = VendorID, VendorID = VendorID, Value = article.ColorCode }); colorProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue { AttributeID = PropertyStore.ColorName.AttributeID, CustomItemNumber = colorVendorItemNumber, DefaultVendorID = VendorID, VendorID = VendorID, Value = article.ColorName }); } //if (!article.SizeCode.Equals(Constants.IgnoreCode)) //{ // colorProduct.VendorImportAttributeValues.Add(new VendorAssortmentBulk.VendorImportAttributeValue // { // AttributeID = PropertyStore.SizeCode.AttributeID, // CustomItemNumber = colorVendorItemNumber, // DefaultVendorID = VendorID, // VendorID = VendorID, // Value = article.SizeCode // }); //} return(colorProduct); }