Beispiel #1
0
        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;
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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)));
        }
Beispiel #5
0
        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));
        }
Beispiel #6
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
        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);
        }
Beispiel #11
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;
 }
Beispiel #12
0
 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);
     }
 }
Beispiel #13
0
 public void TestDownload()
 {
     Product product = new Product();
     object results = Mozu.Mozu.Request(product);
     Assert.IsNotNull(results);
 }
Beispiel #14
0
 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);
 }
Beispiel #15
0
 public static string BuildProductExportMessageAsync(this Product product, string providerCode, string xrefMerchantId)
 {
     return(product != null?product.ToEdgeProductExportMessage(providerCode, xrefMerchantId).ToXml() : String.Empty);
 }
Beispiel #16
0
        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)));
        }
Beispiel #17
0
        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)));
        }
Beispiel #18
0
        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)));
        }