private async static Task ImportNewCategoriesAsync()
        {
            var collectionDictionary = new Dictionary <string, long>();
            var service = new SmartCollectionService(_myShopifyUrl, _shopAccessToken);

            WriteInfo("Getting smart collections from Shopify store...");

            var collectionsCount = await service.CountAsync();

            var batchCount = Math.Ceiling(collectionsCount / 250d);

            WriteInfoWithTime("with {0} batch(es)", batchCount);
            for (int i = 0; i < batchCount; i++)
            {
                // HACK: API CALL
                var collections = await service.ListAsync(new SmartCollectionFilter { Limit = 250, Page = i + 1, Fields = "id,title" });

                foreach (var collection in collections)
                {
                    collectionDictionary.Add(collection.Title, collection.Id.Value);
                }

                WriteInfoWithTime("- Got {0} collection(s) in batch {1}", collections.Count(), i + 1);
            }

            WriteInfoWithTime("DONE Getting smart collections from Shopify store");

            Console.WriteLine();
            WriteInfo("Inserting new smart collections...");

            using (var c = new ServerConnection(_connectionString))
            {
                var distinctCommand = c.SetStatement(@"SELECT DISTINCT [Category] FROM Products p
                                            LEFT OUTER JOIN SeparatedTable st ON p.Id = st.Id
                                            WHERE st.Id IS NULL;");

                var dataReader = await distinctCommand.ExecuteReaderAsync();

                int newCount = 0;
                while (await dataReader.ReadAsync())
                {
                    var category = dataReader.GetValueOrDefault <string>("Category");
                    if (!collectionDictionary.ContainsKey(category))
                    {
                        newCount++;

                        var rules = category.Split('/').Select(cat => new SmartCollectionRules
                        {
                            Column    = "tag",
                            Relation  = "equals",
                            Condition = cat
                        });
                        // HACK: API CALL
                        await service.CreateAsync(new SmartCollection
                        {
                            Title       = category,
                            Disjunctive = false,
                            Rules       = rules
                        });

                        WriteInfoWithTime("✓ {0}. Added smart collection: '{1}'", newCount, category);
                    }
                }

                WriteInfoWithTime("DONE Inserting new collections");
            }
        }