예제 #1
0
        private List <ShopifyVariantNew> CleanAndBuildVariantPayload(List <string> itemIds)
        {
            var settings = _settingsRepository.RetrieveSettings();
            var output   = new List <ShopifyVariantNew>();

            foreach (var itemId in itemIds)
            {
                var stockItemRecord = _syncInventoryRepository.RetrieveStockItem(itemId);
                var stockItem       = _acumaticaJsonService.RetrieveStockItem(itemId);

                var price = stockItem.DefaultPrice.value;

                var isTaxable = stockItemRecord.IsTaxable(settings);
                if (isTaxable == null)
                {
                    _logService.Log($"{stockItem.TaxCategory} invalid Tax Category for {stockItemRecord.LogDescriptor()}");
                    continue;
                }

                var existsInShopify = _syncInventoryRepository.SkuExistsInShopify(stockItemRecord.ItemId);
                if (existsInShopify)
                {
                    _logService.Log($"Skipping {stockItemRecord.LogDescriptor()} - exists in Shopify already");
                    continue;
                }

                var standardizedSku = stockItemRecord.ItemId.StandardizedSku();

                var variant = new ShopifyVariantNew();
                variant.sku                 = standardizedSku;
                variant.title               = stockItem.Description.value;
                variant.taxable             = isTaxable.Value;
                variant.grams               = stockItem.DimensionWeight.value.ToShopifyGrams();
                variant.price               = (decimal)price;
                variant.option1             = standardizedSku;
                variant.inventory_policy    = "deny";
                variant.fulfillment_service = "manual";

                output.Add(variant);
            }

            return(output);
        }
예제 #2
0
 public static string LogDescriptor(this ShopifyVariantNew variant)
 {
     return($"Shopify Variant {variant.sku} (new)");
 }
예제 #3
0
 public static string CreatingShopifyVariant(ShopifyVariantNew item)
 {
     return($"Creating Shopify Variant for {item.LogDescriptor()}");
 }