public static async Task FillProductLocalizedImages(this Product product, IApiContext apiContext) { var productImages = new List <ProductLocalizedImage>(); var images = product.Content.ProductImages; if (images == null) { return; } var documentResource = new DocumentResource(apiContext); foreach (var image in images) { var imageUrl = image.ImageUrl ?? String.Format("//cdn-sb.mozu.com/{0}-m1/cms/files/{1}", apiContext.TenantId, image.CmsId); var document = await documentResource.GetDocumentAsync("files@mozu", image.CmsId); productImages.Add(new ProductLocalizedImage { CmsId = image.CmsId, ImageLabel = document.Name, ImageUrl = imageUrl.Replace(image.CmsId, document.Name) }); } product.Content.ProductImages = productImages; }
public static string GetPropertyStringLabel(this Product product, string propertyName) { var prop = product.GetProperty(propertyName); if (prop == null) { return(String.Empty); } var propValue = prop.Values.FirstOrDefault(); return(propValue != null && propValue.AttributeVocabularyValueDetail != null?Convert.ToString(propValue.AttributeVocabularyValueDetail.Content.StringValue) : String.Empty); }
public static string GetPropertyValue(this Product product, string propertyName) { var prop = product.GetProperty(propertyName); if (prop == null) { return(String.Empty); } var propValue = prop.Values.FirstOrDefault(); return(propValue != null?Convert.ToString(propValue.Value) : String.Empty); }
public static bool GetPropertyBooleanValue(this Product product, string propertyName) { var prop = product.GetProperty(propertyName); if (prop == null) { return(false); } var propValue = prop.Values.FirstOrDefault(); return(propValue != null && (Convert.ToString(propValue.Value) == "1" || propValue.Value.Equals(true))); }
public static bool GetOptionBooleanValue(this Product product, string optionName) { var option = product.GetOption(optionName); if (option == null) { return(false); } var optValue = option.Values.FirstOrDefault(); return(optValue != null && Convert.ToString(optValue.Value) != "" && Convert.ToBoolean(optValue.Value)); }
public static string GetOptionStringValue(this Product product, string optionName) { var option = product.GetOption(optionName); if (option == null) { return(String.Empty); } var optValue = option.Values.FirstOrDefault(); return(optValue != null?Convert.ToString(optValue.Value) : String.Empty); }
public async Task <String> ExportInventoryAsync(IApiContext apiContext, Product product, IList <LocationInventory> locations) { await product.FillProductLocalizedImages(apiContext); var inventoryExportXml = product.BuildInventoryExportMessageAsync(ProviderCode, XRefMerchantId, locations); var client = new InventoryImport_wrapService { Url = _inventoryImportServiceUrl }; var result = await ExportInventoryAsyncTask(client, inventoryExportXml); return(result.Result); }
public async Task <String> ExportProductAsync(IApiContext apiContext, Product product) { await product.FillProductLocalizedImages(apiContext); var productExportXml = product.BuildProductExportMessageAsync(ProviderCode, XRefMerchantId); var client = new CatalogImport_wrapService { Url = _productImportServiceUrl }; var result = await ExportProductAsyncTask(client, productExportXml); return(result.Result); }
public static IList <string> GetPropertyListValue(this Product product, string propertyName) { var prop = product.GetProperty(propertyName); if (prop == null) { return(new List <string>()); } var propValue = prop.Values; var vals = propValue.Select(v => Convert.ToString(v.Value)).ToList(); return(vals); }
public static decimal GetExtraValue(this Product product, string extraName) { var extra = product.GetExtra(extraName); if (extra == null) { return(0); } var extValue = extra.Values.FirstOrDefault(); if (extValue == null) { return(0); } var deltaPrice = extValue.DeltaPrice; return(deltaPrice != null ? deltaPrice.DeltaPrice : 0); }
/// <summary> /// generate Product object /// </summary> /// <param name="productTypeId"> producttype id. If null, it will use the default one</param> /// <param name="extras"></param> /// <param name="options"></param> /// <param name="properties"></param> /// <returns></returns> public static Product GenerateProduct(int? productTypeId = null, List<ProductExtra> extras = null, List<ProductOption> options = null, List<ProductProperty> properties = null) { Product PTobj; PTobj = new Product() { ProductCode = Generator.RandomString(5, Generator.RandomCharacterGroup.AlphaOnly), Price = GenerateProductPrice(price: Generator.RandomDecimal(50, 200)), //SeoContent = GenerateProductLocalizedSEOContent(), Content = GenerateProductLocalizedContent(Generator.RandomString(6, Generator.RandomCharacterGroup.AlphaOnly)), Extras = extras, Options = options, Properties = properties, ProductTypeId = productTypeId, PackageWeight = GenerateMeasurement("lbs", Generator.RandomDecimal(50, 200)), ProductUsage = "Standard" // Bundle,Component,Standard // ProductInSites = , // UPC = , // IsHiddenWhenOutOfStock = , // IsBackOrderAllowed = , // IsPackagedStandAlone = , // IsTaxable = , // ManageStock = , // StockOnHandAdjustment = , // IsRecurring = , // StandAlonePackageType = , // PackageHeight = , // PackageLength = , // PackageWidth = , //the following are readonly // ApplicableDiscounts = , // StockAvailable = , // StockOnBackOrder = , // StockOnHand = , // ShippingClassId = , // IsValidForProductType = , // ProductSequence = , // SiteGroupId = , // HasConfigurableOptions = , // HasStandAloneOptions = , // AuditInfo = , // BaseProductCode = , // IsVariation = , // VariationKey = , // VariationOptions = }; return PTobj; }
public static void ActivateVariations(ServiceClientMessageHandler messageHandler, Product product) { var vars = ProductTypeVariationFactory.GenerateProductVariations(messageHandler, productOptionsIn: product.Options, productTypeId: (int)product.ProductTypeId); foreach (var variation in vars.Items) { variation.IsActive = true; variation.DeltaPrice = GenerateProductVariationDeltaPrice(Generator.RandomDecimal(0, (decimal) (product.Price.Price - 1))); variation.DeltaWeight = Generator.RandomDecimal(0, (decimal)(product.PackageWeight.Value - 1)); ProductVariationFactory.UpdateProductVariation(messageHandler, productVariation: variation, productCode: product.ProductCode, variationKey: variation.Variationkey); } }
public void TestDownload() { Product product = new Product(); object results = Mozu.Mozu.Request(product); Assert.IsNotNull(results); }
public static string BuildInventoryExportMessageAsync(this Product product, string providerCode, string xrefMerchantId, IList <LocationInventory> locations) { return(product != null?product.ToEdgeInventoryExportMessage(providerCode, xrefMerchantId, locations).ToXml() : String.Empty); }
public static string BuildProductExportMessageAsync(this Product product, string providerCode, string xrefMerchantId) { return(product != null?product.ToEdgeProductExportMessage(providerCode, xrefMerchantId).ToXml() : String.Empty); }
public static ProductProperty GetProperty(this Product product, string propertyName) { var pNameWoNs = propertyName.GetPropertyWithoutNamespace(); return(product.Properties == null ? null : product.Properties.FirstOrDefault(p => p.AttributeFQN.EndsWith(pNameWoNs))); }
public static ProductOption GetOption(this Product product, string optionName) { var optionNameWoNs = optionName.GetPropertyWithoutNamespace(); return(product.Options == null ? null : product.Options.FirstOrDefault(p => p.AttributeFQN.EndsWith(optionNameWoNs))); }
public static ProductExtra GetExtra(this Product product, string extraName) { var extraNameWoNs = extraName.GetPropertyWithoutNamespace(); return(product.Extras == null ? null : product.Extras.FirstOrDefault(p => p.AttributeFQN.EndsWith(extraNameWoNs))); }