Пример #1
0
        public static VariantPlaceholder MapOCProductVariant(SampleProduct product, SampleOption option, string val)
        {
            string variantSKU = "";

            foreach (SampleVariant variant in product.variants)
            {
                if (variant.option1 == val)
                {
                    variantSKU = variant.sku;
                }
            }
            var variantPlaceholder = new VariantPlaceholder()
            {
                ProductID    = CleanOrderCloudID(option.product_id),
                SpecID       = $"{CleanOrderCloudID(option.product_id)}-{CleanOrderCloudID(option.name)}",
                SpecOptionID = $"{CleanOrderCloudID(option.product_id)}-{CleanOrderCloudID(option.name)}-{CleanOrderCloudID(val)}",
                VariantSKU   = variantSKU
            };

            return(variantPlaceholder);
        }
Пример #2
0
        public async Task UpdateProductVariantsOC(VariantPlaceholder variant, ILogger logger)
        {
            try
            {
                // Get the variants previously created
                var genertatedVariants = await _oc.Products.ListVariantsAsync(variant.ProductID);

                // Modify the ID for the newly genrated variants.
                foreach (Variant v in genertatedVariants.Items)
                {
                    logger.LogInformation("Update Variant: " + v.ID);
                    Variant ocVariant = await _oc.Products.GetVariantAsync(variant.ProductID, v.ID);

                    var ocSpec = await _oc.Specs.GetAsync(variant.SpecID);

                    if (ocVariant != null && ocSpec != null)
                    {
                        foreach (SpecOption specOption in ocSpec.Options)
                        {
                            foreach (VariantSpec spec in ocVariant.Specs)
                            {
                                if (spec.OptionID == variant.SpecOptionID)
                                {
                                    ocVariant.ID = variant.VariantSKU;
                                }
                            }
                        }
                        await _oc.Products.SaveVariantAsync(variant.ProductID, v.ID, ocVariant);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.LogInformation($"Build Product Variants failed {ex.Message}: Product: {variant.ProductID}");
            }
        }