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); }
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}"); } }