From 80dd161a6fe10a0826f57009635876e114c41edc Mon Sep 17 00:00:00 2001 From: victor-meng <56978073+victor-meng@users.noreply.github.com> Date: Mon, 6 Feb 2023 12:51:04 -0800 Subject: [PATCH 01/11] Remove networking warning message for sql, gremlin, and tables api (#1388) --- .../AddCollectionPanel.test.tsx.snap | 23 +++++++++++++++++++ src/Utils/NetworkUtility.ts | 12 +++------- src/hooks/useKnockoutExplorer.ts | 2 +- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap b/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap index 420e23955..4544d086b 100644 --- a/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap +++ b/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap @@ -234,6 +234,29 @@ exports[`AddCollectionPanel should render Default properly 1`] = ` type="text" value="" /> + + + { +export const getNetworkSettingsWarningMessage = (): string => { const accountProperties = userContext.databaseAccount?.properties; if (!accountProperties) { @@ -40,13 +40,7 @@ export const getNetworkSettingsWarningMessage = (clientIpAddress: string): strin if (numberOfMatches !== portalIPs.length) { return "The Network settings for this account are preventing access from Data Explorer. Please allow access from Azure Portal to proceed."; } - - return ""; - } else { - if (!clientIpAddress || ipRules.some((ipRule) => ipRule.ipAddressOrRange === clientIpAddress)) { - return ""; - } - - return "The Network settings for this account are preventing access from Data Explorer. Please add your current IP to the firewall rules to proceed."; } + + return ""; }; diff --git a/src/hooks/useKnockoutExplorer.ts b/src/hooks/useKnockoutExplorer.ts index dbfd64c5e..70f8dc3c6 100644 --- a/src/hooks/useKnockoutExplorer.ts +++ b/src/hooks/useKnockoutExplorer.ts @@ -382,7 +382,7 @@ function updateContextsFromPortalMessage(inputs: DataExplorerInputsFrame) { } } - const warningMessage = getNetworkSettingsWarningMessage(inputs.clientIpAddress); + const warningMessage = getNetworkSettingsWarningMessage(); useTabs.getState().setNetworkSettingsWarning(warningMessage); if (inputs.features) { From 99af4acca453a96fd33b02b36d839e4cea5537f2 Mon Sep 17 00:00:00 2001 From: MokireddySampath <120497218+MokireddySampath@users.noreply.github.com> Date: Tue, 7 Feb 2023 11:48:45 +0530 Subject: [PATCH 02/11] autoscale and manual radiobuutton fixes (#1387) --- .../Controls/ThroughputInput/ThroughputInput.test.tsx | 4 ++-- src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx | 4 ++-- .../__snapshots__/ThroughputInput.test.tsx.snap | 4 ++-- src/Explorer/Panes/AddCollectionPanel.tsx | 4 ++-- .../Panes/__snapshots__/AddCollectionPanel.test.tsx.snap | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Explorer/Controls/ThroughputInput/ThroughputInput.test.tsx b/src/Explorer/Controls/ThroughputInput/ThroughputInput.test.tsx index ef3281801..4dc81a97d 100644 --- a/src/Explorer/Controls/ThroughputInput/ThroughputInput.test.tsx +++ b/src/Explorer/Controls/ThroughputInput/ThroughputInput.test.tsx @@ -23,12 +23,12 @@ describe("ThroughputInput Pane", () => { }); it("should switch mode properly", () => { - wrapper.find('[aria-label="Manual mode"]').simulate("change"); + wrapper.find('[aria-label="Manual database throughput"]').simulate("change"); expect(wrapper.find('[aria-label="Throughput header"]').at(0).text()).toBe( "Container throughput (400 - unlimited RU/s)" ); - wrapper.find('[aria-label="Autoscale mode"]').simulate("change"); + wrapper.find('[aria-label="Autoscale database throughput"]').simulate("change"); expect(wrapper.find('[aria-label="Throughput header"]').at(0).text()).toBe("Container throughput (autoscale)"); }); }); diff --git a/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx b/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx index c4b3d936c..d86b0414f 100644 --- a/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx +++ b/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx @@ -188,7 +188,7 @@ export const ThroughputInput: FunctionComponent = ({ = ({ diff --git a/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap b/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap index 4544d086b..7adf8316f 100644 --- a/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap +++ b/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap @@ -331,7 +331,7 @@ exports[`AddCollectionPanel should render Default properly 1`] = ` directionalHint={4} > Date: Tue, 7 Feb 2023 18:34:10 -0800 Subject: [PATCH 03/11] Update address sample data for SQL and Mongo (#1389) --- sampleData/sqlSampleData.json | 6291 ++++++++++++++++++++- src/Explorer/Panes/AddCollectionPanel.tsx | 4 +- 2 files changed, 6271 insertions(+), 24 deletions(-) diff --git a/sampleData/sqlSampleData.json b/sampleData/sqlSampleData.json index 1cde20e57..a46c9edd0 100644 --- a/sampleData/sqlSampleData.json +++ b/sampleData/sqlSampleData.json @@ -1,25 +1,6272 @@ { "data": [ - { "address": "2007, NE 37TH PL" }, - { "address": "11635, SE MAY CREEK PARK DR" }, - { "address": "8923, 133RD AVE SE" }, - { "address": "1124, N 33RD ST" }, - { "address": "4288, 131ST PL SE" }, - { "address": "10900, SE 66TH ST" }, - { "address": "6260, 139TH AVE NE" }, - { "address": "13427, NE SPRING BLVD" }, - { "address": "13812, NE SPRING BLVD" }, - { "address": "5029, 159TH PL SE" }, - { "address": "8604, 117TH AVE SE" }, - { "address": "1561, 139TH LN NE" }, - { "address": "1575, 139TH CT NE" }, - { "address": "13901, NE 15TH CT" }, - { "address": "16365, NE 12TH PL" }, - { "address": "12226, NE 37TH ST" }, - { "address": "4021, 129TH CT SE" }, - { "address": "1455, 159TH PL NE" }, - { "address": "15825, NE 14TH RD" }, - { "address": "1418, 157TH CT NE" }, - { "address": "889, 131ST PL NE" } + { + "id": "027D0B9A-F9D9-4C96-8213-C8546C4AAE71", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-R581", + "name": "LL Road Seat/Saddle", + "description": "The product called \"LL Road Seat/Saddle\"", + "price": 27.12, + "tags": [ + { + "id": "0573D684-9140-4DEE-89AF-4E4A90E65666", + "name": "Tag-113" + }, + { + "id": "6C2F05C8-1E61-4912-BE1A-C67A378429BB", + "name": "Tag-5" + }, + { + "id": "B48D6572-67EB-4630-A1DB-AFD4AD7041C9", + "name": "Tag-100" + }, + { + "id": "D70F215D-A8AC-483A-9ABD-4A008D2B72B2", + "name": "Tag-85" + }, + { + "id": "DCF66D9A-E2BF-4C70-8AC1-AD55E5988E9D", + "name": "Tag-37" + } + ] + }, + { + "id": "08225A9E-F2B3-4FA3-AB08-8C70ADD6C3C2", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79U-50", + "name": "Touring-1000 Blue, 50", + "description": "The product called \"Touring-1000 Blue, 50\"", + "price": 2384.07, + "tags": [ + { + "id": "27B7F8D5-1009-45B8-88F5-41008A0F0393", + "name": "Tag-61" + } + ] + }, + { + "id": "0A7E57DA-C73F-467F-954F-17B7AFD6227E", + "categoryId": "4F34E180-384D-42FC-AC10-FEC30227577F", + "categoryName": "Components, Pedals", + "sku": "PD-R563", + "name": "ML Road Pedal", + "description": "The product called \"ML Road Pedal\"", + "price": 62.09, + "tags": [ + { + "id": "14CFF1D6-7749-4A57-85B3-783F47731F32", + "name": "Tag-7" + }, + { + "id": "319E277F-6B7A-483D-81BA-1EC34CC700EB", + "name": "Tag-163" + } + ] + }, + { + "id": "14174164-F6C0-47FC-83FB-604C6A63408D", + "categoryId": "006A1D51-28DA-4956-A7FB-C0B2BF6360CA", + "categoryName": "Accessories, Bottles and Cages", + "sku": "BC-M005", + "name": "Mountain Bottle Cage", + "description": "The product called \"Mountain Bottle Cage\"", + "price": 9.99, + "tags": [ + { + "id": "A49D83E4-E506-4301-8110-E114599B4A35", + "name": "Tag-27" + }, + { + "id": "CA7D17BB-45A6-47E6-A3E3-E70AF34C2072", + "name": "Tag-158" + }, + { + "id": "ECBBCC15-3016-4075-B084-4B49DA754814", + "name": "Tag-138" + } + ] + }, + { + "id": "1A176FDB-D9A8-4888-BDD9-CE4F12E97AAE", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TI-R982", + "name": "HL Road Tire", + "description": "The product called \"HL Road Tire\"", + "price": 32.6, + "tags": [ + { + "id": "51CD93BF-098C-4C25-9829-4AD42046D038", + "name": "Tag-25" + }, + { + "id": "5D24B427-1402-49DE-B79B-5A7013579FBC", + "name": "Tag-76" + }, + { + "id": "8AAFD985-8BCE-4FA8-85A2-2CA67D9DF8E6", + "name": "Tag-172" + }, + { + "id": "D4EC9C09-75F3-4ADD-A6EB-ACDD12C648FA", + "name": "Tag-153" + } + ] + }, + { + "id": "201D0D79-81AD-43D2-AD6E-F09EEE6AC2D7", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-M798", + "name": "ML Mountain Seat/Saddle", + "description": "The product called \"ML Mountain Seat/Saddle\"", + "price": 39.14, + "tags": [ + { + "id": "0917B02C-1EAB-4EBA-BA74-5E6D3C5CC96A", + "name": "Tag-192" + }, + { + "id": "0C184C69-F4F2-4774-9645-46F53D297D95", + "name": "Tag-49" + }, + { + "id": "3A3A99B6-E3BF-46D0-BAD9-F5F4DBB720F4", + "name": "Tag-70" + }, + { + "id": "DAC25651-3DD3-4483-8FD1-581DC41EF34B", + "name": "Tag-56" + } + ] + }, + { + "id": "24BE4267-85D8-4C1A-B184-C08709495752", + "categoryId": "006A1D51-28DA-4956-A7FB-C0B2BF6360CA", + "categoryName": "Accessories, Bottles and Cages", + "sku": "BC-R205", + "name": "Road Bottle Cage", + "description": "The product called \"Road Bottle Cage\"", + "price": 8.99, + "tags": [ + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + }, + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + }, + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + } + ] + }, + { + "id": "290B4594-95BE-47C5-863A-4EFAAFC0AED7", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TI-M602", + "name": "ML Mountain Tire", + "description": "The product called \"ML Mountain Tire\"", + "price": 29.99, + "tags": [ + { + "id": "0917B02C-1EAB-4EBA-BA74-5E6D3C5CC96A", + "name": "Tag-192" + }, + { + "id": "14D5A3F0-7B6D-4D2D-9D45-AC2E35F90298", + "name": "Tag-166" + }, + { + "id": "31BDDC90-386A-4EED-A588-751DA0587A0A", + "name": "Tag-95" + }, + { + "id": "59676183-1BD7-48A0-B3B0-42B3C0800EB0", + "name": "Tag-64" + }, + { + "id": "9C89E562-1247-435D-B786-4E54024E681C", + "name": "Tag-128" + } + ] + }, + { + "id": "29663491-D2E9-47B4-83AE-D9459B6B5B67", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TT-T092", + "name": "Touring Tire Tube", + "description": "The product called \"Touring Tire Tube\"", + "price": 4.99, + "tags": [ + { + "id": "14D5A3F0-7B6D-4D2D-9D45-AC2E35F90298", + "name": "Tag-166" + }, + { + "id": "539DF8CA-7DCD-43BC-9F4A-1F6657B61708", + "name": "Tag-53" + }, + { + "id": "74680691-FA4C-4721-9CB4-5846B7C3210A", + "name": "Tag-103" + }, + { + "id": "94F41BAD-B861-4BB0-A941-89677D04F455", + "name": "Tag-26" + } + ] + }, + { + "id": "2C981511-AC73-4A65-9DA3-A0577E386394", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79U-46", + "name": "Touring-1000 Blue, 46", + "description": "The product called \"Touring-1000 Blue, 46\"", + "price": 2384.07, + "tags": [ + { + "id": "4E102F3F-7D57-4CD7-88F4-AC5076A42C59", + "name": "Tag-91" + }, + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + }, + { + "id": "7B37373F-FC14-44FD-96AA-32F4854E0B6B", + "name": "Tag-63" + }, + { + "id": "83D720BA-BB31-4BE5-B723-8A836AB6D532", + "name": "Tag-127" + }, + { + "id": "DA661FCF-CC7F-4AF9-A9E2-8E7A5570844E", + "name": "Tag-188" + } + ] + }, + { + "id": "3F105575-8677-42F9-8E1F-76E4B450F136", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79Y-46", + "name": "Touring-1000 Yellow, 46", + "description": "The product called \"Touring-1000 Yellow, 46\"", + "price": 2384.07, + "tags": [ + { + "id": "84C396AD-98C6-4B12-8C3A-1BDA3ABF7D73", + "name": "Tag-24" + }, + { + "id": "B1C00DC4-236A-4A5F-844C-3F56BBE87968", + "name": "Tag-167" + } + ] + }, + { + "id": "3FE1A99E-DE14-4D11-B635-F5D39258A0B9", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-T924", + "name": "HL Touring Seat/Saddle", + "description": "The product called \"HL Touring Seat/Saddle\"", + "price": 52.64, + "tags": [ + { + "id": "125497D0-9175-4ECD-844D-DA71E5F4ED43", + "name": "Tag-42" + }, + { + "id": "762CE1E0-5615-418E-B476-BCD46AD5E79E", + "name": "Tag-137" + }, + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + }, + { + "id": "D2427B7F-AF57-498B-A73E-E7D67FD5CFD9", + "name": "Tag-195" + }, + { + "id": "D4EC9C09-75F3-4ADD-A6EB-ACDD12C648FA", + "name": "Tag-153" + } + ] + }, + { + "id": "44873725-7B3B-4B28-804D-963D2D62E761", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79U-60", + "name": "Touring-1000 Blue, 60", + "description": "The product called \"Touring-1000 Blue, 60\"", + "price": 2384.07, + "tags": [ + { + "id": "033D3826-2851-4B97-9464-59D3675175D4", + "name": "Tag-108" + }, + { + "id": "511652EB-9EC2-4235-BA77-0C6E4E316679", + "name": "Tag-199" + }, + { + "id": "E6CB7972-06F4-47C0-B464-F64E695F89E7", + "name": "Tag-51" + } + ] + }, + { + "id": "47C70E1E-E500-41B3-8615-DCCB963D9E35", + "categoryId": "AA28AE74-D57C-4B23-B5F7-F919E1C5844E", + "categoryName": "Clothing, Tights", + "sku": "TG-W091-S", + "name": "Women's Tights, S", + "description": "The product called \"Women's Tights, S\"", + "price": 74.99, + "tags": [ + { + "id": "488BD0F1-AABE-4FC5-BAF2-0B8A077CA3CF", + "name": "Tag-147" + }, + { + "id": "CAF27567-B4CB-463C-A54E-5EF1F2657DD2", + "name": "Tag-75" + } + ] + }, + { + "id": "4B0848F8-7BF5-4DB9-84A7-C4D69F2E3E8E", + "categoryId": "34340561-3D26-4F33-B6AD-09260FC811D6", + "categoryName": "Components, Bottom Brackets", + "sku": "BB-7421", + "name": "LL Bottom Bracket", + "description": "The product called \"LL Bottom Bracket\"", + "price": 53.99, + "tags": [ + { + "id": "028057B8-8F03-4C18-B853-66510D354A72", + "name": "Tag-57" + }, + { + "id": "40525E23-C1FB-4213-BF28-2B4C64BDC29B", + "name": "Tag-135" + }, + { + "id": "A07D69D4-B8B9-4662-8148-8033DCDCC000", + "name": "Tag-142" + }, + { + "id": "E468DF53-4836-4546-9D05-C855AAC4B0AF", + "name": "Tag-2" + } + ] + }, + { + "id": "4E4B38CB-0D82-43E5-89AF-20270CD28A04", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T44U-60", + "name": "Touring-2000 Blue, 60", + "description": "The product called \"Touring-2000 Blue, 60\"", + "price": 1214.85, + "tags": [ + { + "id": "89FB612A-F9AA-4196-B5F5-B9FA16D558DC", + "name": "Tag-175" + }, + { + "id": "A30014DE-B012-4049-B456-4630527AF47F", + "name": "Tag-9" + }, + { + "id": "B18FB652-C4B6-4A40-BA22-1E687C1A58CE", + "name": "Tag-161" + }, + { + "id": "C6AB3E24-BA48-40F0-A260-CB04EB03D5B0", + "name": "Tag-73" + } + ] + }, + { + "id": "5089E32E-8A60-4117-AA98-5EF8AB9A61D1", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TT-R982", + "name": "Road Tire Tube", + "description": "The product called \"Road Tire Tube\"", + "price": 3.99, + "tags": [] + }, + { + "id": "52FAD88C-567E-469D-A35E-574EA3BF147F", + "categoryId": "4F34E180-384D-42FC-AC10-FEC30227577F", + "categoryName": "Components, Pedals", + "sku": "PD-M340", + "name": "ML Mountain Pedal", + "description": "The product called \"ML Mountain Pedal\"", + "price": 62.09, + "tags": [] + }, + { + "id": "5308BAE7-B0CB-4883-9A93-192CB10DC94F", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18U-44", + "name": "Touring-3000 Blue, 44", + "description": "The product called \"Touring-3000 Blue, 44\"", + "price": 742.35, + "tags": [ + { + "id": "A37349FB-4A1C-4382-A845-DF81830A7B4D", + "name": "Tag-150" + } + ] + }, + { + "id": "5996B5E0-6EC7-4CB7-A924-7B5A053AE980", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-M236", + "name": "LL Mountain Seat/Saddle", + "description": "The product called \"LL Mountain Seat/Saddle\"", + "price": 27.12, + "tags": [ + { + "id": "5D24B427-1402-49DE-B79B-5A7013579FBC", + "name": "Tag-76" + }, + { + "id": "79E61D0F-3C95-4353-BF27-DB04535088C9", + "name": "Tag-50" + }, + { + "id": "BEBD68EF-901A-4282-911F-28AB44B802FE", + "name": "Tag-139" + }, + { + "id": "E468DF53-4836-4546-9D05-C855AAC4B0AF", + "name": "Tag-2" + } + ] + }, + { + "id": "5B5E90B8-FEA2-4D6C-B728-EC586656FA6D", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79Y-60", + "name": "Touring-1000 Yellow, 60", + "description": "The product called \"Touring-1000 Yellow, 60\"", + "price": 2384.07, + "tags": [ + { + "id": "4F67013C-3B5E-4A3D-B4B0-8C597A491EB6", + "name": "Tag-82" + }, + { + "id": "6C6D061E-F701-41DC-AEA2-7A5C28061840", + "name": "Tag-98" + } + ] + }, + { + "id": "5BFADECD-2240-4480-9485-1256D1D60EA8", + "categoryId": "32A9A8E6-7004-4B24-9C2A-BB3E93B9E6BD", + "categoryName": "Clothing, Gloves", + "sku": "GL-F110-S", + "name": "Full-Finger Gloves, S", + "description": "The product called \"Full-Finger Gloves, S\"", + "price": 37.99, + "tags": [ + { + "id": "84C396AD-98C6-4B12-8C3A-1BDA3ABF7D73", + "name": "Tag-24" + } + ] + }, + { + "id": "6E3AA511-67DF-4EAD-8F0C-4C9F91F7D335", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18Y-50", + "name": "Touring-3000 Yellow, 50", + "description": "The product called \"Touring-3000 Yellow, 50\"", + "price": 742.35, + "tags": [ + { + "id": "2E7252D2-B646-47FB-B5BB-836643578038", + "name": "Tag-130" + } + ] + }, + { + "id": "6FB5B2D5-5725-4998-9B6C-2FF2B7A3E3E0", + "categoryId": "32A9A8E6-7004-4B24-9C2A-BB3E93B9E6BD", + "categoryName": "Clothing, Gloves", + "sku": "GL-H102-M", + "name": "Half-Finger Gloves, M", + "description": "The product called \"Half-Finger Gloves, M\"", + "price": 24.49, + "tags": [ + { + "id": "12A06E6F-45BF-42DF-9641-F1376CDDB7B1", + "name": "Tag-22" + }, + { + "id": "8DC9DFB4-1946-427A-A0A0-E06E1448CC63", + "name": "Tag-171" + }, + { + "id": "C1CB0EFE-02BB-4AE5-AA48-3DAC12921450", + "name": "Tag-109" + } + ] + }, + { + "id": "71BDFE67-6499-4A8E-9CCA-9E9AF7D92A7A", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18U-54", + "name": "Touring-3000 Blue, 54", + "description": "The product called \"Touring-3000 Blue, 54\"", + "price": 742.35, + "tags": [ + { + "id": "5D24B427-1402-49DE-B79B-5A7013579FBC", + "name": "Tag-76" + }, + { + "id": "66D8EA21-E1F0-471C-A17F-02F3B149D6E6", + "name": "Tag-83" + }, + { + "id": "6FB11EB9-319C-431C-89D7-70113401D186", + "name": "Tag-154" + } + ] + }, + { + "id": "7BAA49C9-21B5-4EEF-9F6B-BCD6DA7C2239", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-R995", + "name": "HL Road Seat/Saddle", + "description": "The product called \"HL Road Seat/Saddle\"", + "price": 52.64, + "tags": [] + }, + { + "id": "7EA0EEEB-824E-42E9-B787-019219CE4466", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79U-54", + "name": "Touring-1000 Blue, 54", + "description": "The product called \"Touring-1000 Blue, 54\"", + "price": 2384.07, + "tags": [ + { + "id": "23ECB896-D6C6-4E9D-BE43-1908CB5C5E07", + "name": "Tag-112" + }, + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + }, + { + "id": "D5887E7C-B916-4AF4-BAF8-7B996ADA8C83", + "name": "Tag-52" + }, + { + "id": "E1A62ABF-BBC3-48A2-BAC6-E3350D023C83", + "name": "Tag-194" + } + ] + }, + { + "id": "80D3630F-B661-4FD6-A296-CD03BB7A4A0C", + "categoryId": "629A8F3C-CFB0-4347-8DCC-505A4789876B", + "categoryName": "Clothing, Vests", + "sku": "VE-C304-L", + "name": "Classic Vest, L", + "description": "The product called \"Classic Vest, L\"", + "price": 63.5, + "tags": [ + { + "id": "2CE9DADE-DCAC-436C-9D69-B7C886A01B77", + "name": "Tag-101" + }, + { + "id": "CA170AAD-A5F6-42FF-B115-146FADD87298", + "name": "Tag-186" + } + ] + }, + { + "id": "866F8033-A439-42D9-99EE-178C1285F13E", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18Y-44", + "name": "Touring-3000 Yellow, 44", + "description": "The product called \"Touring-3000 Yellow, 44\"", + "price": 742.35, + "tags": [ + { + "id": "31BDDC90-386A-4EED-A588-751DA0587A0A", + "name": "Tag-95" + }, + { + "id": "A2AFF2FF-8438-44A3-8AC6-20A50422D82A", + "name": "Tag-18" + }, + { + "id": "AA24EC37-7CE3-4ABE-B935-EC62D5FB6947", + "name": "Tag-148" + }, + { + "id": "DB21A27B-5A3F-400C-A0DF-69A5266E1447", + "name": "Tag-34" + }, + { + "id": "F202FBC3-B5AA-4E0F-950B-2B5715AC0B3B", + "name": "Tag-173" + } + ] + }, + { + "id": "906A453F-2B5E-469A-87B5-FFA531EE615D", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "PK-7098", + "name": "Patch Kit/8 Patches", + "description": "The product called \"Patch Kit/8 Patches\"", + "price": 2.29, + "tags": [ + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + } + ] + }, + { + "id": "9190229B-1372-4997-8F64-5B3E7A2459C5", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TT-M928", + "name": "Mountain Tire Tube", + "description": "The product called \"Mountain Tire Tube\"", + "price": 4.99, + "tags": [ + { + "id": "66D8EA21-E1F0-471C-A17F-02F3B149D6E6", + "name": "Tag-83" + }, + { + "id": "6FB11EB9-319C-431C-89D7-70113401D186", + "name": "Tag-154" + }, + { + "id": "8AAFD985-8BCE-4FA8-85A2-2CA67D9DF8E6", + "name": "Tag-172" + }, + { + "id": "A4D9E596-B630-4792-BDD1-7D6459827820", + "name": "Tag-164" + } + ] + }, + { + "id": "94265B3D-7718-47F0-ADF7-64DEE36CAC41", + "categoryId": "629A8F3C-CFB0-4347-8DCC-505A4789876B", + "categoryName": "Clothing, Vests", + "sku": "VE-C304-S", + "name": "Classic Vest, S", + "description": "The product called \"Classic Vest, S\"", + "price": 63.5, + "tags": [] + }, + { + "id": "967155B3-9925-4FA3-84B0-B24CDA101C1B", + "categoryId": "629A8F3C-CFB0-4347-8DCC-505A4789876B", + "categoryName": "Clothing, Vests", + "sku": "VE-C304-M", + "name": "Classic Vest, M", + "description": "The product called \"Classic Vest, M\"", + "price": 63.5, + "tags": [ + { + "id": "3798DC56-04BE-4A82-B70B-6A0DC7714A36", + "name": "Tag-105" + }, + { + "id": "403AE98F-892E-4FEC-B262-A264CF1F52A9", + "name": "Tag-45" + }, + { + "id": "A49D83E4-E506-4301-8110-E114599B4A35", + "name": "Tag-27" + } + ] + }, + { + "id": "98324A24-9D56-4662-93A5-9A7370E7EE5A", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-T762", + "name": "ML Touring Seat/Saddle", + "description": "The product called \"ML Touring Seat/Saddle\"", + "price": 39.14, + "tags": [ + { + "id": "2400025E-FB22-4031-B4A2-9C3BD1402A9B", + "name": "Tag-38" + }, + { + "id": "537DB3C8-8636-4005-8FE2-32EECEBA5B3F", + "name": "Tag-80" + }, + { + "id": "F287FE0A-712B-4B52-925F-5047B34F3610", + "name": "Tag-197" + } + ] + }, + { + "id": "9851FE19-CCA4-4B94-B6AC-CCE579D7F693", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TI-M823", + "name": "HL Mountain Tire", + "description": "The product called \"HL Mountain Tire\"", + "price": 35.0, + "tags": [] + }, + { + "id": "987E39AC-6C62-4717-9929-E9BDFF9902ED", + "categoryId": "34340561-3D26-4F33-B6AD-09260FC811D6", + "categoryName": "Components, Bottom Brackets", + "sku": "BB-8107", + "name": "ML Bottom Bracket", + "description": "The product called \"ML Bottom Bracket\"", + "price": 101.24, + "tags": [ + { + "id": "9467BA7B-49FB-4AA5-A868-478D94AF2E54", + "name": "Tag-92" + } + ] + }, + { + "id": "9E6692D7-57E1-4D35-ACD8-105D44A1073B", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18U-58", + "name": "Touring-3000 Blue, 58", + "description": "The product called \"Touring-3000 Blue, 58\"", + "price": 742.35, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + }, + { + "id": "F132E7B8-65B1-471E-8D3E-5E8D7110CA48", + "name": "Tag-118" + } + ] + }, + { + "id": "9FCA9658-8506-4268-8539-DBAA65C51F41", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TI-T723", + "name": "Touring Tire", + "description": "The product called \"Touring Tire\"", + "price": 28.99, + "tags": [ + { + "id": "8BAC6191-1DAE-4F5B-88FC-7081B682095D", + "name": "Tag-15" + }, + { + "id": "DBC84212-C3E9-4966-8619-9A4D64EBF517", + "name": "Tag-125" + }, + { + "id": "E1A62ABF-BBC3-48A2-BAC6-E3350D023C83", + "name": "Tag-194" + }, + { + "id": "F59DC0A2-537E-4A8F-A97D-19C82074D3E7", + "name": "Tag-146" + } + ] + }, + { + "id": "A042C88C-B060-4A64-B314-ED92124047E5", + "categoryId": "4F34E180-384D-42FC-AC10-FEC30227577F", + "categoryName": "Components, Pedals", + "sku": "PD-R853", + "name": "HL Road Pedal", + "description": "The product called \"HL Road Pedal\"", + "price": 80.99, + "tags": [ + { + "id": "1B387A00-57D3-4444-8331-18A90725E98B", + "name": "Tag-43" + }, + { + "id": "1CFF105D-294E-4E2D-ADE4-0615CBDEBC28", + "name": "Tag-44" + }, + { + "id": "40525E23-C1FB-4213-BF28-2B4C64BDC29B", + "name": "Tag-135" + }, + { + "id": "59676183-1BD7-48A0-B3B0-42B3C0800EB0", + "name": "Tag-64" + }, + { + "id": "89500F13-B516-4F77-8128-47FC412BEFCD", + "name": "Tag-151" + } + ] + }, + { + "id": "A13C5B23-34DF-41C7-849C-0BA623BEFE02", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79Y-50", + "name": "Touring-1000 Yellow, 50", + "description": "The product called \"Touring-1000 Yellow, 50\"", + "price": 2384.07, + "tags": [ + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + }, + { + "id": "AEFA79EF-CBF1-4824-AAF7-1D20EA85119B", + "name": "Tag-17" + }, + { + "id": "BE894A90-F425-4BE3-B9DF-56525DD54F62", + "name": "Tag-62" + }, + { + "id": "D5887E7C-B916-4AF4-BAF8-7B996ADA8C83", + "name": "Tag-52" + }, + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + } + ] + }, + { + "id": "A6BB4603-7CD5-43DC-920A-2A2F55D52492", + "categoryId": "AB952F9F-5ABA-4251-BC2D-AFF8DF412A4A", + "categoryName": "Components, Headsets", + "sku": "HS-2451", + "name": "ML Headset", + "description": "The product called \"ML Headset\"", + "price": 102.29, + "tags": [ + { + "id": "A34D34F7-3286-4FA4-B4B0-5E61CCEEE197", + "name": "Tag-4" + }, + { + "id": "BA4D7ABD-2E82-4DC2-ACF2-5D3B0DEAE1C1", + "name": "Tag-59" + }, + { + "id": "D69B1B6C-4963-4E85-8FA5-6A3E1CD1C83B", + "name": "Tag-187" + } + ] + }, + { + "id": "A875BC33-C4AC-4D2B-B018-9FF4672A2BB9", + "categoryId": "32A9A8E6-7004-4B24-9C2A-BB3E93B9E6BD", + "categoryName": "Clothing, Gloves", + "sku": "GL-H102-L", + "name": "Half-Finger Gloves, L", + "description": "The product called \"Half-Finger Gloves, L\"", + "price": 24.49, + "tags": [] + }, + { + "id": "A9EFB9E2-8859-4401-B8A6-F7E2D5264FEE", + "categoryId": "AA28AE74-D57C-4B23-B5F7-F919E1C5844E", + "categoryName": "Clothing, Tights", + "sku": "TG-W091-M", + "name": "Women's Tights, M", + "description": "The product called \"Women's Tights, M\"", + "price": 74.99, + "tags": [] + }, + { + "id": "ABB81D0E-4744-44EC-8AAB-FB3962FD2AF7", + "categoryId": "32A9A8E6-7004-4B24-9C2A-BB3E93B9E6BD", + "categoryName": "Clothing, Gloves", + "sku": "GL-F110-L", + "name": "Full-Finger Gloves, L", + "description": "The product called \"Full-Finger Gloves, L\"", + "price": 37.99, + "tags": [] + }, + { + "id": "ABDE32DD-FADD-4042-9278-0440B7B2F3E0", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TI-M267", + "name": "LL Mountain Tire", + "description": "The product called \"LL Mountain Tire\"", + "price": 24.99, + "tags": [ + { + "id": "A34D34F7-3286-4FA4-B4B0-5E61CCEEE197", + "name": "Tag-4" + }, + { + "id": "B49C6195-5ABA-42FA-B15C-84CF9FE252FE", + "name": "Tag-129" + }, + { + "id": "BF28390C-CBBE-48FC-8EBF-1BD7E6608E59", + "name": "Tag-193" + }, + { + "id": "E6CB7972-06F4-47C0-B464-F64E695F89E7", + "name": "Tag-51" + }, + { + "id": "F287FE0A-712B-4B52-925F-5047B34F3610", + "name": "Tag-197" + } + ] + }, + { + "id": "ACC683CB-6199-416E-AE64-7C10D0C72CF9", + "categoryId": "4F34E180-384D-42FC-AC10-FEC30227577F", + "categoryName": "Components, Pedals", + "sku": "PD-M562", + "name": "HL Mountain Pedal", + "description": "The product called \"HL Mountain Pedal\"", + "price": 80.99, + "tags": [ + { + "id": "66D8EA21-E1F0-471C-A17F-02F3B149D6E6", + "name": "Tag-83" + }, + { + "id": "6FB11EB9-319C-431C-89D7-70113401D186", + "name": "Tag-154" + }, + { + "id": "7CACE200-11A3-4E2D-A88E-25E9614D2BE9", + "name": "Tag-97" + }, + { + "id": "B1EBD7E0-BBE0-4AFB-AC6C-50649484780B", + "name": "Tag-40" + } + ] + }, + { + "id": "AFED4FD0-17D1-4CD5-8639-13F15B043EC2", + "categoryId": "006A1D51-28DA-4956-A7FB-C0B2BF6360CA", + "categoryName": "Accessories, Bottles and Cages", + "sku": "WB-H098", + "name": "Water Bottle - 30 oz.", + "description": "The product called \"Water Bottle - 30 oz.\"", + "price": 4.99, + "tags": [ + { + "id": "319E277F-6B7A-483D-81BA-1EC34CC700EB", + "name": "Tag-163" + }, + { + "id": "79E61D0F-3C95-4353-BF27-DB04535088C9", + "name": "Tag-50" + }, + { + "id": "A2176C7A-4E0D-4283-AFAA-319A77E9C122", + "name": "Tag-19" + } + ] + }, + { + "id": "B267655B-A7C1-41E3-9682-21730E93FCB5", + "categoryId": "AA28AE74-D57C-4B23-B5F7-F919E1C5844E", + "categoryName": "Clothing, Tights", + "sku": "TG-W091-L", + "name": "Women's Tights, L", + "description": "The product called \"Women's Tights, L\"", + "price": 74.99, + "tags": [ + { + "id": "9C89E562-1247-435D-B786-4E54024E681C", + "name": "Tag-128" + } + ] + }, + { + "id": "B2AC17CB-A69E-462E-B72A-917CB544FF81", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TI-R628", + "name": "ML Road Tire", + "description": "The product called \"ML Road Tire\"", + "price": 24.99, + "tags": [ + { + "id": "0BC579CA-03FC-4AA6-85AA-A55035201E43", + "name": "Tag-21" + }, + { + "id": "4E85E551-E511-4666-BD21-E171C33A7880", + "name": "Tag-3" + }, + { + "id": "7F518FB1-4664-4B20-9B9F-23D5B44F6798", + "name": "Tag-69" + } + ] + }, + { + "id": "B35B87F4-5ADE-4ED4-9469-DF024AC4195D", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18Y-58", + "name": "Touring-3000 Yellow, 58", + "description": "The product called \"Touring-3000 Yellow, 58\"", + "price": 742.35, + "tags": [ + { + "id": "511652EB-9EC2-4235-BA77-0C6E4E316679", + "name": "Tag-199" + }, + { + "id": "7F518FB1-4664-4B20-9B9F-23D5B44F6798", + "name": "Tag-69" + }, + { + "id": "BEBD68EF-901A-4282-911F-28AB44B802FE", + "name": "Tag-139" + }, + { + "id": "C1CB0EFE-02BB-4AE5-AA48-3DAC12921450", + "name": "Tag-109" + }, + { + "id": "DBC84212-C3E9-4966-8619-9A4D64EBF517", + "name": "Tag-125" + } + ] + }, + { + "id": "BCD77A3D-9FF1-4CE4-9327-4C2A41BA9F0F", + "categoryId": "4F34E180-384D-42FC-AC10-FEC30227577F", + "categoryName": "Components, Pedals", + "sku": "PD-T852", + "name": "Touring Pedal", + "description": "The product called \"Touring Pedal\"", + "price": 80.99, + "tags": [ + { + "id": "72E191A8-F404-48AE-B8BC-2511569C895C", + "name": "Tag-168" + }, + { + "id": "BA4D7ABD-2E82-4DC2-ACF2-5D3B0DEAE1C1", + "name": "Tag-59" + }, + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + } + ] + }, + { + "id": "BD340F0A-F661-4ED8-B36F-FBA7623605D9", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18U-62", + "name": "Touring-3000 Blue, 62", + "description": "The product called \"Touring-3000 Blue, 62\"", + "price": 742.35, + "tags": [ + { + "id": "6C2F05C8-1E61-4912-BE1A-C67A378429BB", + "name": "Tag-5" + }, + { + "id": "74680691-FA4C-4721-9CB4-5846B7C3210A", + "name": "Tag-103" + }, + { + "id": "764C1CC8-2E5F-4EF5-83F6-8FF7441290B3", + "name": "Tag-190" + } + ] + }, + { + "id": "BF381234-799A-4B1A-BD4B-B55891CC5907", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T44U-50", + "name": "Touring-2000 Blue, 50", + "description": "The product called \"Touring-2000 Blue, 50\"", + "price": 1214.85, + "tags": [ + { + "id": "7990C336-92BD-41F9-8FB6-97390BC4D187", + "name": "Tag-189" + } + ] + }, + { + "id": "DA96F0D0-84C7-42C3-BE74-FEB39BD60EF5", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18Y-62", + "name": "Touring-3000 Yellow, 62", + "description": "The product called \"Touring-3000 Yellow, 62\"", + "price": 742.35, + "tags": [ + { + "id": "A4D9E596-B630-4792-BDD1-7D6459827820", + "name": "Tag-164" + } + ] + }, + { + "id": "DB89A887-43E3-4D9C-8783-7F034ACD88C0", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18Y-54", + "name": "Touring-3000 Yellow, 54", + "description": "The product called \"Touring-3000 Yellow, 54\"", + "price": 742.35, + "tags": [ + { + "id": "3C26DF5C-CE21-4EF6-AEE2-E8E1066D06B1", + "name": "Tag-60" + }, + { + "id": "765EF7D7-331C-42C0-BF23-A3022A723BF7", + "name": "Tag-191" + }, + { + "id": "812C1444-1DEA-480D-88E7-B9609ECA783C", + "name": "Tag-136" + }, + { + "id": "A37349FB-4A1C-4382-A845-DF81830A7B4D", + "name": "Tag-150" + }, + { + "id": "A49D83E4-E506-4301-8110-E114599B4A35", + "name": "Tag-27" + } + ] + }, + { + "id": "DC8209E8-151E-425C-B7D9-7F082B66E39D", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-M940", + "name": "HL Mountain Seat/Saddle", + "description": "The product called \"HL Mountain Seat/Saddle\"", + "price": 52.64, + "tags": [] + }, + { + "id": "DDD64AA0-30DC-4DC1-BCDC-2882A0FD178C", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T18U-50", + "name": "Touring-3000 Blue, 50", + "description": "The product called \"Touring-3000 Blue, 50\"", + "price": 742.35, + "tags": [ + { + "id": "0BC579CA-03FC-4AA6-85AA-A55035201E43", + "name": "Tag-21" + }, + { + "id": "304041C4-8C80-4C1E-9EE9-8A1DEFCF39FC", + "name": "Tag-72" + }, + { + "id": "3A3A99B6-E3BF-46D0-BAD9-F5F4DBB720F4", + "name": "Tag-70" + }, + { + "id": "F287FE0A-712B-4B52-925F-5047B34F3610", + "name": "Tag-197" + } + ] + }, + { + "id": "DE8C032F-472A-4FFE-A8AE-4C7FFAF06DA8", + "categoryId": "34340561-3D26-4F33-B6AD-09260FC811D6", + "categoryName": "Components, Bottom Brackets", + "sku": "BB-9108", + "name": "HL Bottom Bracket", + "description": "The product called \"HL Bottom Bracket\"", + "price": 121.49, + "tags": [ + { + "id": "51CD93BF-098C-4C25-9829-4AD42046D038", + "name": "Tag-25" + }, + { + "id": "8AAFD985-8BCE-4FA8-85A2-2CA67D9DF8E6", + "name": "Tag-172" + }, + { + "id": "9467BA7B-49FB-4AA5-A868-478D94AF2E54", + "name": "Tag-92" + }, + { + "id": "F6B1A09C-BCC9-4A74-8472-D1CA98310501", + "name": "Tag-185" + } + ] + }, + { + "id": "E08E4507-9666-411B-AAC4-519C00596B0A", + "categoryId": "86F3CBAB-97A7-4D01-BABB-ADEFFFAED6B4", + "categoryName": "Accessories, Tires and Tubes", + "sku": "TI-R092", + "name": "LL Road Tire", + "description": "The product called \"LL Road Tire\"", + "price": 21.49, + "tags": [ + { + "id": "567D183B-9ED1-47B4-AE22-80C52BF41067", + "name": "Tag-165" + }, + { + "id": "DBC84212-C3E9-4966-8619-9A4D64EBF517", + "name": "Tag-125" + } + ] + }, + { + "id": "E60D6D23-0151-4B7E-BC56-598B9FEE026B", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T79Y-54", + "name": "Touring-1000 Yellow, 54", + "description": "The product called \"Touring-1000 Yellow, 54\"", + "price": 2384.07, + "tags": [ + { + "id": "A2AFF2FF-8438-44A3-8AC6-20A50422D82A", + "name": "Tag-18" + } + ] + }, + { + "id": "E78CEEF9-A87B-4612-8BD3-4E5DC8AC4700", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T44U-54", + "name": "Touring-2000 Blue, 54", + "description": "The product called \"Touring-2000 Blue, 54\"", + "price": 1214.85, + "tags": [ + { + "id": "2400025E-FB22-4031-B4A2-9C3BD1402A9B", + "name": "Tag-38" + }, + { + "id": "BF28390C-CBBE-48FC-8EBF-1BD7E6608E59", + "name": "Tag-193" + } + ] + }, + { + "id": "EDCB55C5-4CF5-424F-9083-310F940879FA", + "categoryId": "75BF1ACB-168D-469C-9AA3-1FD26BB4EA4C", + "categoryName": "Bikes, Touring Bikes", + "sku": "BK-T44U-46", + "name": "Touring-2000 Blue, 46", + "description": "The product called \"Touring-2000 Blue, 46\"", + "price": 1214.85, + "tags": [ + { + "id": "01078B1D-5267-4B35-82B8-57042AA9CABB", + "name": "Tag-84" + }, + { + "id": "BF28390C-CBBE-48FC-8EBF-1BD7E6608E59", + "name": "Tag-193" + }, + { + "id": "EBDBD608-416A-4FE2-96DF-02367C8D071E", + "name": "Tag-102" + } + ] + }, + { + "id": "EF16A6FA-9BE2-4AF9-872A-299A9EA88D5F", + "categoryId": "32A9A8E6-7004-4B24-9C2A-BB3E93B9E6BD", + "categoryName": "Clothing, Gloves", + "sku": "GL-F110-M", + "name": "Full-Finger Gloves, M", + "description": "The product called \"Full-Finger Gloves, M\"", + "price": 37.99, + "tags": [ + { + "id": "94C05E5C-13B7-41DA-89DF-98C11195AE1E", + "name": "Tag-79" + }, + { + "id": "AA24EC37-7CE3-4ABE-B935-EC62D5FB6947", + "name": "Tag-148" + }, + { + "id": "BEBD68EF-901A-4282-911F-28AB44B802FE", + "name": "Tag-139" + }, + { + "id": "D2427B7F-AF57-498B-A73E-E7D67FD5CFD9", + "name": "Tag-195" + } + ] + }, + { + "id": "F07F8C10-4820-4C80-AAE2-1DDEC41E5A29", + "categoryId": "AB952F9F-5ABA-4251-BC2D-AFF8DF412A4A", + "categoryName": "Components, Headsets", + "sku": "HS-3479", + "name": "HL Headset", + "description": "The product called \"HL Headset\"", + "price": 124.73, + "tags": [ + { + "id": "87BC6842-2CCA-4CD3-994C-33AB101455F4", + "name": "Tag-12" + }, + { + "id": "F07885AF-BD6C-4B71-88B1-F04295992176", + "name": "Tag-149" + } + ] + }, + { + "id": "F32990D7-F8E4-4ACD-AA8C-1F03D8299DE7", + "categoryId": "4F34E180-384D-42FC-AC10-FEC30227577F", + "categoryName": "Components, Pedals", + "sku": "PD-M282", + "name": "LL Mountain Pedal", + "description": "The product called \"LL Mountain Pedal\"", + "price": 40.49, + "tags": [ + { + "id": "762CE1E0-5615-418E-B476-BCD46AD5E79E", + "name": "Tag-137" + } + ] + }, + { + "id": "F6628734-A209-46A2-9010-0F19E7D3F3D3", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-R908", + "name": "ML Road Seat/Saddle", + "description": "The product called \"ML Road Seat/Saddle\"", + "price": 39.14, + "tags": [ + { + "id": "29CBEDD8-D9C3-43A3-B20F-63224FEE0D34", + "name": "Tag-11" + }, + { + "id": "31BDDC90-386A-4EED-A588-751DA0587A0A", + "name": "Tag-95" + }, + { + "id": "511652EB-9EC2-4235-BA77-0C6E4E316679", + "name": "Tag-199" + }, + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + }, + { + "id": "CF3C6F6C-8038-4FAD-A07A-E1AD1C34DE22", + "name": "Tag-77" + } + ] + }, + { + "id": "F7261436-B748-42D6-A7C9-ACD2B589F0B7", + "categoryId": "32A9A8E6-7004-4B24-9C2A-BB3E93B9E6BD", + "categoryName": "Clothing, Gloves", + "sku": "GL-H102-S", + "name": "Half-Finger Gloves, S", + "description": "The product called \"Half-Finger Gloves, S\"", + "price": 24.49, + "tags": [ + { + "id": "033D3826-2851-4B97-9464-59D3675175D4", + "name": "Tag-108" + }, + { + "id": "3A3A99B6-E3BF-46D0-BAD9-F5F4DBB720F4", + "name": "Tag-70" + } + ] + }, + { + "id": "FB118699-4C89-493B-B0AB-DA517935773E", + "categoryId": "26C74104-40BC-4541-8EF5-9892F7F03D72", + "categoryName": "Components, Saddles", + "sku": "SE-T312", + "name": "LL Touring Seat/Saddle", + "description": "The product called \"LL Touring Seat/Saddle\"", + "price": 27.12, + "tags": [] + }, + { + "id": "FC0B659C-C1EF-41F3-AFE2-F87C7F43AD48", + "categoryId": "AB952F9F-5ABA-4251-BC2D-AFF8DF412A4A", + "categoryName": "Components, Headsets", + "sku": "HS-0296", + "name": "LL Headset", + "description": "The product called \"LL Headset\"", + "price": 34.2, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + }, + { + "id": "1B387A00-57D3-4444-8331-18A90725E98B", + "name": "Tag-43" + }, + { + "id": "C6AB3E24-BA48-40F0-A260-CB04EB03D5B0", + "name": "Tag-73" + }, + { + "id": "DAC25651-3DD3-4483-8FD1-581DC41EF34B", + "name": "Tag-56" + }, + { + "id": "E6D5275B-8C42-47AE-BDEC-FC708DB3E0AC", + "name": "Tag-119" + } + ] + }, + { + "id": "FCF95DBC-BBAD-467B-9639-FC6E4EC42B4C", + "categoryId": "4F34E180-384D-42FC-AC10-FEC30227577F", + "categoryName": "Components, Pedals", + "sku": "PD-R347", + "name": "LL Road Pedal", + "description": "The product called \"LL Road Pedal\"", + "price": 40.49, + "tags": [ + { + "id": "001C55F4-E7F6-4A7E-A736-79114A0A3A4E", + "name": "Tag-41" + }, + { + "id": "A34D34F7-3286-4FA4-B4B0-5E61CCEEE197", + "name": "Tag-4" + } + ] + }, + { + "id": "0B013EA7-B40E-4996-A494-D1E2840FEAAE", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72R-44", + "name": "ML Road Frame - Red, 44", + "description": "The product called \"ML Road Frame - Red, 44\"", + "price": 594.83, + "tags": [ + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + }, + { + "id": "AA35D2EA-24FD-4A62-80FE-83EFF821F019", + "name": "Tag-10" + }, + { + "id": "DA661FCF-CC7F-4AF9-A9E2-8E7A5570844E", + "name": "Tag-188" + } + ] + }, + { + "id": "1BEAE2B0-134A-4780-9A7A-5FA17EADD513", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92R-48", + "name": "HL Road Frame - Red, 48", + "description": "The product called \"HL Road Frame - Red, 48\"", + "price": 1431.5, + "tags": [] + }, + { + "id": "21756241-F313-4D34-9914-9B7DAC76F9D6", + "categoryId": "973B839C-BF5D-485D-9D17-863C59B262E3", + "categoryName": "Components, Forks", + "sku": "FK-1639", + "name": "LL Fork", + "description": "The product called \"LL Fork\"", + "price": 148.22, + "tags": [ + { + "id": "2E7252D2-B646-47FB-B5BB-836643578038", + "name": "Tag-130" + }, + { + "id": "84C1934D-F048-4D2B-8525-323AFE2A7C7C", + "name": "Tag-184" + }, + { + "id": "8DC9DFB4-1946-427A-A0A0-E06E1448CC63", + "name": "Tag-171" + }, + { + "id": "B18FB652-C4B6-4A40-BA22-1E687C1A58CE", + "name": "Tag-161" + }, + { + "id": "E6D5275B-8C42-47AE-BDEC-FC708DB3E0AC", + "name": "Tag-119" + } + ] + }, + { + "id": "26E6C049-667F-4463-AF1D-660953231165", + "categoryId": "8797AB0F-A9A3-475D-925E-56AC73DC206E", + "categoryName": "Components, Chains", + "sku": "CH-0234", + "name": "Chain", + "description": "The product called \"Chain\"", + "price": 20.24, + "tags": [ + { + "id": "403AE98F-892E-4FEC-B262-A264CF1F52A9", + "name": "Tag-45" + }, + { + "id": "BEBD68EF-901A-4282-911F-28AB44B802FE", + "name": "Tag-139" + }, + { + "id": "E80C2AD7-0ABA-4B0E-87B7-46AE28851531", + "name": "Tag-141" + } + ] + }, + { + "id": "2CE4EFA7-5DC6-4D3E-ACB2-B7DDE4518408", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92B-58", + "name": "HL Road Frame - Black, 58", + "description": "The product called \"HL Road Frame - Black, 58\"", + "price": 1431.5, + "tags": [ + { + "id": "2CE9DADE-DCAC-436C-9D69-B7C886A01B77", + "name": "Tag-101" + }, + { + "id": "AEFA79EF-CBF1-4824-AAF7-1D20EA85119B", + "name": "Tag-17" + }, + { + "id": "D197C394-FB88-4EFF-B0FB-8BED1A86F294", + "name": "Tag-182" + }, + { + "id": "ECBBCC15-3016-4075-B084-4B49DA754814", + "name": "Tag-138" + } + ] + }, + { + "id": "311D60FC-9EB9-4194-B594-1E5BD87CCF81", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38R-62", + "name": "LL Road Frame - Red, 62", + "description": "The product called \"LL Road Frame - Red, 62\"", + "price": 337.22, + "tags": [ + { + "id": "567D183B-9ED1-47B4-AE22-80C52BF41067", + "name": "Tag-165" + }, + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + } + ] + }, + { + "id": "32C5F63D-CF84-457C-9063-0C758CCDACE7", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92R-44", + "name": "HL Road Frame - Red, 44", + "description": "The product called \"HL Road Frame - Red, 44\"", + "price": 1431.5, + "tags": [] + }, + { + "id": "332C8377-F7B5-44C2-8DFC-B374294FD9B2", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92R-62", + "name": "HL Road Frame - Red, 62", + "description": "The product called \"HL Road Frame - Red, 62\"", + "price": 1431.5, + "tags": [ + { + "id": "3C26DF5C-CE21-4EF6-AEE2-E8E1066D06B1", + "name": "Tag-60" + } + ] + }, + { + "id": "34C0090C-B299-433B-8D31-42EFCDC5874D", + "categoryId": "345E8DEC-774F-45F6-BE0C-18CDDB368FC8", + "categoryName": "Accessories, Panniers", + "sku": "PA-T100", + "name": "Touring-Panniers, Large", + "description": "The product called \"Touring-Panniers, Large\"", + "price": 125.0, + "tags": [ + { + "id": "50F59C1E-E78D-4543-B4D0-B06E4C59E617", + "name": "Tag-126" + } + ] + }, + { + "id": "3B52D15D-DF6C-4042-BA15-2EFEA8A2F852", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92B-62", + "name": "HL Road Frame - Black, 62", + "description": "The product called \"HL Road Frame - Black, 62\"", + "price": 1431.5, + "tags": [ + { + "id": "1A2E203E-B80D-4693-A7C2-AB39E31C9C61", + "name": "Tag-134" + }, + { + "id": "2E7252D2-B646-47FB-B5BB-836643578038", + "name": "Tag-130" + }, + { + "id": "AEFA79EF-CBF1-4824-AAF7-1D20EA85119B", + "name": "Tag-17" + }, + { + "id": "E661634D-CDC3-4FA6-BE4B-D1FEEAECB5B9", + "name": "Tag-121" + } + ] + }, + { + "id": "3FA9E0D9-E6E9-429D-9E24-7DAFE9B99A2C", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92R-58", + "name": "HL Road Frame - Red, 58", + "description": "The product called \"HL Road Frame - Red, 58\"", + "price": 1431.5, + "tags": [ + { + "id": "E661634D-CDC3-4FA6-BE4B-D1FEEAECB5B9", + "name": "Tag-121" + } + ] + }, + { + "id": "409BC0E0-2B43-4F82-9C36-2E4ABBB7344C", + "categoryId": "ECEEC6AC-3CF1-41A6-8430-A1255F355BB5", + "categoryName": "Components, Brakes", + "sku": "FB-9873", + "name": "Front Brakes", + "description": "The product called \"Front Brakes\"", + "price": 106.5, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + }, + { + "id": "29CBEDD8-D9C3-43A3-B20F-63224FEE0D34", + "name": "Tag-11" + }, + { + "id": "8AAFD985-8BCE-4FA8-85A2-2CA67D9DF8E6", + "name": "Tag-172" + }, + { + "id": "CAF27567-B4CB-463C-A54E-5EF1F2657DD2", + "name": "Tag-75" + } + ] + }, + { + "id": "435D4B82-D557-4752-B825-D28767FB32D3", + "categoryId": "AA5A82D4-914C-4132-8C08-E7B75DCE3428", + "categoryName": "Components, Cranksets", + "sku": "CS-4759", + "name": "LL Crankset", + "description": "The product called \"LL Crankset\"", + "price": 175.49, + "tags": [] + }, + { + "id": "4424AA2A-CC8D-4471-9478-21E91185593C", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92B-48", + "name": "HL Road Frame - Black, 48", + "description": "The product called \"HL Road Frame - Black, 48\"", + "price": 1431.5, + "tags": [] + }, + { + "id": "491834BE-AAA5-419D-B166-77B93F20EBA7", + "categoryId": "AA5A82D4-914C-4132-8C08-E7B75DCE3428", + "categoryName": "Components, Cranksets", + "sku": "CS-9183", + "name": "HL Crankset", + "description": "The product called \"HL Crankset\"", + "price": 404.99, + "tags": [] + }, + { + "id": "520E3E6B-95F1-4258-9F74-E434848E88B2", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38R-48", + "name": "LL Road Frame - Red, 48", + "description": "The product called \"LL Road Frame - Red, 48\"", + "price": 337.22, + "tags": [ + { + "id": "033D3826-2851-4B97-9464-59D3675175D4", + "name": "Tag-108" + }, + { + "id": "A2176C7A-4E0D-4283-AFAA-319A77E9C122", + "name": "Tag-19" + } + ] + }, + { + "id": "5253671B-E50E-4686-9A17-4F51C2B65C0F", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72Y-40", + "name": "ML Road Frame-W - Yellow, 40", + "description": "The product called \"ML Road Frame-W - Yellow, 40\"", + "price": 594.83, + "tags": [ + { + "id": "0C184C69-F4F2-4774-9645-46F53D297D95", + "name": "Tag-49" + }, + { + "id": "403AE98F-892E-4FEC-B262-A264CF1F52A9", + "name": "Tag-45" + } + ] + }, + { + "id": "56BB7DD2-2421-4671-A527-7373008DD553", + "categoryId": "975E2A45-DA17-45CE-B65E-575A19334EB2", + "categoryName": "Components, Derailleurs", + "sku": "RD-2308", + "name": "Rear Derailleur", + "description": "The product called \"Rear Derailleur\"", + "price": 121.46, + "tags": [ + { + "id": "A2AFF2FF-8438-44A3-8AC6-20A50422D82A", + "name": "Tag-18" + } + ] + }, + { + "id": "58978B2E-D4C6-4D69-A840-D935688F9C2D", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92R-56", + "name": "HL Road Frame - Red, 56", + "description": "The product called \"HL Road Frame - Red, 56\"", + "price": 1431.5, + "tags": [ + { + "id": "3A3A99B6-E3BF-46D0-BAD9-F5F4DBB720F4", + "name": "Tag-70" + }, + { + "id": "66D8EA21-E1F0-471C-A17F-02F3B149D6E6", + "name": "Tag-83" + }, + { + "id": "69212884-78CF-48C9-A5C6-B62E76725533", + "name": "Tag-104" + }, + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + }, + { + "id": "D5887E7C-B916-4AF4-BAF8-7B996ADA8C83", + "name": "Tag-52" + } + ] + }, + { + "id": "58B0F878-2619-4225-B9B1-9C6C4FFF9C17", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38B-44", + "name": "LL Road Frame - Black, 44", + "description": "The product called \"LL Road Frame - Black, 44\"", + "price": 337.22, + "tags": [ + { + "id": "1830EEDD-AF21-43EA-A13C-393ED77DEAC5", + "name": "Tag-152" + }, + { + "id": "812C1444-1DEA-480D-88E7-B9609ECA783C", + "name": "Tag-136" + }, + { + "id": "B49C6195-5ABA-42FA-B15C-84CF9FE252FE", + "name": "Tag-129" + }, + { + "id": "EBDBD608-416A-4FE2-96DF-02367C8D071E", + "name": "Tag-102" + }, + { + "id": "F629F27D-3301-4906-BE9B-C46D6D6F6141", + "name": "Tag-65" + } + ] + }, + { + "id": "600DDD58-C9D0-4118-9A69-B7716ED3A303", + "categoryId": "340D259D-BFFE-4E2A-9C5E-8B1E473A0322", + "categoryName": "Accessories, Bike Stands", + "sku": "ST-1401", + "name": "All-Purpose Bike Stand", + "description": "The product called \"All-Purpose Bike Stand\"", + "price": 159.0, + "tags": [ + { + "id": "2CE9DADE-DCAC-436C-9D69-B7C886A01B77", + "name": "Tag-101" + }, + { + "id": "304041C4-8C80-4C1E-9EE9-8A1DEFCF39FC", + "name": "Tag-72" + }, + { + "id": "5A94DABD-FD34-48F7-9626-50872E214275", + "name": "Tag-181" + }, + { + "id": "6167EE62-5458-45B8-822D-1C10F274D9F1", + "name": "Tag-170" + }, + { + "id": "7337386B-E865-4ADC-BA17-4437CB02E3BE", + "name": "Tag-8" + } + ] + }, + { + "id": "61B55CE9-DEB4-49B3-AB55-0AAC11EBBBBF", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38R-58", + "name": "LL Road Frame - Red, 58", + "description": "The product called \"LL Road Frame - Red, 58\"", + "price": 337.22, + "tags": [ + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + }, + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + } + ] + }, + { + "id": "6374995F-9A78-43CD-AE0D-5F6041078140", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38R-60", + "name": "LL Road Frame - Red, 60", + "description": "The product called \"LL Road Frame - Red, 60\"", + "price": 337.22, + "tags": [] + }, + { + "id": "7133D6F6-C8FD-4AD1-83E8-5622D1746E25", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72R-58", + "name": "ML Road Frame - Red, 58", + "description": "The product called \"ML Road Frame - Red, 58\"", + "price": 594.83, + "tags": [ + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + }, + { + "id": "CAF27567-B4CB-463C-A54E-5EF1F2657DD2", + "name": "Tag-75" + } + ] + }, + { + "id": "751115E7-BD5E-45C7-932B-E9DDE9D62579", + "categoryId": "973B839C-BF5D-485D-9D17-863C59B262E3", + "categoryName": "Components, Forks", + "sku": "FK-9939", + "name": "HL Fork", + "description": "The product called \"HL Fork\"", + "price": 229.49, + "tags": [ + { + "id": "2400025E-FB22-4031-B4A2-9C3BD1402A9B", + "name": "Tag-38" + }, + { + "id": "40525E23-C1FB-4213-BF28-2B4C64BDC29B", + "name": "Tag-135" + }, + { + "id": "AA24EC37-7CE3-4ABE-B935-EC62D5FB6947", + "name": "Tag-148" + }, + { + "id": "E80C2AD7-0ABA-4B0E-87B7-46AE28851531", + "name": "Tag-141" + } + ] + }, + { + "id": "794ACC61-01E9-49BF-B150-1D02EE01D76F", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38B-48", + "name": "LL Road Frame - Black, 48", + "description": "The product called \"LL Road Frame - Black, 48\"", + "price": 337.22, + "tags": [ + { + "id": "A2443B36-76AE-4963-9E21-368868F9C514", + "name": "Tag-6" + }, + { + "id": "F07885AF-BD6C-4B71-88B1-F04295992176", + "name": "Tag-149" + } + ] + }, + { + "id": "8826E4D4-36FF-42AD-A33F-0E7794215158", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38B-58", + "name": "LL Road Frame - Black, 58", + "description": "The product called \"LL Road Frame - Black, 58\"", + "price": 337.22, + "tags": [ + { + "id": "1A2E203E-B80D-4693-A7C2-AB39E31C9C61", + "name": "Tag-134" + }, + { + "id": "1B387A00-57D3-4444-8331-18A90725E98B", + "name": "Tag-43" + }, + { + "id": "69212884-78CF-48C9-A5C6-B62E76725533", + "name": "Tag-104" + }, + { + "id": "72E191A8-F404-48AE-B8BC-2511569C895C", + "name": "Tag-168" + }, + { + "id": "F629F27D-3301-4906-BE9B-C46D6D6F6141", + "name": "Tag-65" + } + ] + }, + { + "id": "894D03FA-1A4A-4FA4-9A0B-C3169EBB5674", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72Y-44", + "name": "ML Road Frame-W - Yellow, 44", + "description": "The product called \"ML Road Frame-W - Yellow, 44\"", + "price": 594.83, + "tags": [ + { + "id": "765254E3-8E88-4C57-AADA-9F5126917970", + "name": "Tag-93" + }, + { + "id": "76B3C6DC-3411-457B-96F5-A51CE015DAD9", + "name": "Tag-29" + }, + { + "id": "C68A2129-1E2B-43EC-95B5-AC56CC200FA4", + "name": "Tag-180" + }, + { + "id": "C6AB3E24-BA48-40F0-A260-CB04EB03D5B0", + "name": "Tag-73" + }, + { + "id": "E6D5275B-8C42-47AE-BDEC-FC708DB3E0AC", + "name": "Tag-119" + } + ] + }, + { + "id": "8BAA2AFB-CAE5-4A96-ABB2-46EDF9B5680E", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38B-60", + "name": "LL Road Frame - Black, 60", + "description": "The product called \"LL Road Frame - Black, 60\"", + "price": 337.22, + "tags": [ + { + "id": "274E32EE-612A-4AAB-B91A-C7E8E4D8C2A7", + "name": "Tag-1" + }, + { + "id": "AA24EC37-7CE3-4ABE-B935-EC62D5FB6947", + "name": "Tag-148" + } + ] + }, + { + "id": "8D3DCF87-D1ED-44DD-8DB8-085EB98C8A52", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92R-52", + "name": "HL Road Frame - Red, 52", + "description": "The product called \"HL Road Frame - Red, 52\"", + "price": 1431.5, + "tags": [ + { + "id": "01E0AFB1-867D-4BAA-B0DF-2E99D056EDA2", + "name": "Tag-107" + }, + { + "id": "2400025E-FB22-4031-B4A2-9C3BD1402A9B", + "name": "Tag-38" + }, + { + "id": "274E32EE-612A-4AAB-B91A-C7E8E4D8C2A7", + "name": "Tag-1" + }, + { + "id": "D56040DB-E5DF-40BE-9F2F-7E10F4340BCA", + "name": "Tag-31" + }, + { + "id": "E6CB7972-06F4-47C0-B464-F64E695F89E7", + "name": "Tag-51" + } + ] + }, + { + "id": "916ACEDC-DCF4-4118-90C6-B9572D30714E", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72R-60", + "name": "ML Road Frame - Red, 60", + "description": "The product called \"ML Road Frame - Red, 60\"", + "price": 594.83, + "tags": [ + { + "id": "033D3826-2851-4B97-9464-59D3675175D4", + "name": "Tag-108" + }, + { + "id": "69212884-78CF-48C9-A5C6-B62E76725533", + "name": "Tag-104" + }, + { + "id": "765EF7D7-331C-42C0-BF23-A3022A723BF7", + "name": "Tag-191" + }, + { + "id": "D1E5CB02-8E7B-422F-9421-C0E608F0AC4C", + "name": "Tag-133" + } + ] + }, + { + "id": "9183E546-A94B-4B7F-845B-A53E0EF5C626", + "categoryId": "973B839C-BF5D-485D-9D17-863C59B262E3", + "categoryName": "Components, Forks", + "sku": "FK-5136", + "name": "ML Fork", + "description": "The product called \"ML Fork\"", + "price": 175.49, + "tags": [ + { + "id": "D1E5CB02-8E7B-422F-9421-C0E608F0AC4C", + "name": "Tag-133" + }, + { + "id": "DCDBD26C-4D71-4F91-BBE9-98D1897E704D", + "name": "Tag-68" + } + ] + }, + { + "id": "92413209-8DA6-4661-9E11-26B55990BEB2", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38R-52", + "name": "LL Road Frame - Red, 52", + "description": "The product called \"LL Road Frame - Red, 52\"", + "price": 337.22, + "tags": [ + { + "id": "069169DD-F4B3-4769-8841-13B5FF745932", + "name": "Tag-157" + }, + { + "id": "94F41BAD-B861-4BB0-A941-89677D04F455", + "name": "Tag-26" + }, + { + "id": "F533A770-1E5D-4B48-8792-E16E155B6E38", + "name": "Tag-87" + } + ] + }, + { + "id": "92DB7ABD-1C8E-458C-8828-9BFD1984B07D", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38B-62", + "name": "LL Road Frame - Black, 62", + "description": "The product called \"LL Road Frame - Black, 62\"", + "price": 337.22, + "tags": [ + { + "id": "51CD93BF-098C-4C25-9829-4AD42046D038", + "name": "Tag-25" + }, + { + "id": "718DAED6-2186-4E09-8C02-CCC58281838D", + "name": "Tag-94" + }, + { + "id": "A37349FB-4A1C-4382-A845-DF81830A7B4D", + "name": "Tag-150" + }, + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + } + ] + }, + { + "id": "9351199A-B781-482D-80BE-2C11394002E5", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72Y-38", + "name": "ML Road Frame-W - Yellow, 38", + "description": "The product called \"ML Road Frame-W - Yellow, 38\"", + "price": 594.83, + "tags": [ + { + "id": "59676183-1BD7-48A0-B3B0-42B3C0800EB0", + "name": "Tag-64" + }, + { + "id": "762CE1E0-5615-418E-B476-BCD46AD5E79E", + "name": "Tag-137" + }, + { + "id": "76B3C6DC-3411-457B-96F5-A51CE015DAD9", + "name": "Tag-29" + }, + { + "id": "AC4CC3CC-4E6B-461D-9B0E-4218EDDF3142", + "name": "Tag-122" + } + ] + }, + { + "id": "A2E169C8-0916-4CAD-9C7B-FBAF463D0DB3", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72Y-42", + "name": "ML Road Frame-W - Yellow, 42", + "description": "The product called \"ML Road Frame-W - Yellow, 42\"", + "price": 594.83, + "tags": [ + { + "id": "1B387A00-57D3-4444-8331-18A90725E98B", + "name": "Tag-43" + }, + { + "id": "227FF627-9E87-4BE5-8254-17BB155B0AD7", + "name": "Tag-23" + } + ] + }, + { + "id": "A6040C40-906B-4A87-9E2C-683A8037A1C3", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92B-52", + "name": "HL Road Frame - Black, 52", + "description": "The product called \"HL Road Frame - Black, 52\"", + "price": 1431.5, + "tags": [ + { + "id": "033D3826-2851-4B97-9464-59D3675175D4", + "name": "Tag-108" + }, + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + }, + { + "id": "94C05E5C-13B7-41DA-89DF-98C11195AE1E", + "name": "Tag-79" + }, + { + "id": "D1E5CB02-8E7B-422F-9421-C0E608F0AC4C", + "name": "Tag-133" + }, + { + "id": "D56040DB-E5DF-40BE-9F2F-7E10F4340BCA", + "name": "Tag-31" + } + ] + }, + { + "id": "B03973CE-FAAD-4BE2-84FF-5BA5C751B6D0", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R92B-44", + "name": "HL Road Frame - Black, 44", + "description": "The product called \"HL Road Frame - Black, 44\"", + "price": 1431.5, + "tags": [ + { + "id": "2400025E-FB22-4031-B4A2-9C3BD1402A9B", + "name": "Tag-38" + }, + { + "id": "47A34A77-A9B8-4703-9AEF-3786726C7A31", + "name": "Tag-176" + }, + { + "id": "C6AB3E24-BA48-40F0-A260-CB04EB03D5B0", + "name": "Tag-73" + }, + { + "id": "F287FE0A-712B-4B52-925F-5047B34F3610", + "name": "Tag-197" + }, + { + "id": "F6B1A09C-BCC9-4A74-8472-D1CA98310501", + "name": "Tag-185" + } + ] + }, + { + "id": "B08450AA-413C-4663-A62D-7291A8ECF1F5", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38R-44", + "name": "LL Road Frame - Red, 44", + "description": "The product called \"LL Road Frame - Red, 44\"", + "price": 337.22, + "tags": [ + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + }, + { + "id": "8CA1BBD8-D00B-4654-AABA-5C8724C6F4BD", + "name": "Tag-81" + }, + { + "id": "A4D9E596-B630-4792-BDD1-7D6459827820", + "name": "Tag-164" + }, + { + "id": "A50C570B-B3FC-4678-96C8-2D117DD11A12", + "name": "Tag-66" + }, + { + "id": "B20574A2-8F94-4CB5-A9A7-2E1E203978D6", + "name": "Tag-117" + } + ] + }, + { + "id": "B1AAF271-9DFA-4826-91A3-F3B4BFF49B1C", + "categoryId": "AA5A82D4-914C-4132-8C08-E7B75DCE3428", + "categoryName": "Components, Cranksets", + "sku": "CS-6583", + "name": "ML Crankset", + "description": "The product called \"ML Crankset\"", + "price": 256.49, + "tags": [] + }, + { + "id": "B8587D85-224F-4252-9521-A1763D63AEC2", + "categoryId": "ECEEC6AC-3CF1-41A6-8430-A1255F355BB5", + "categoryName": "Components, Brakes", + "sku": "RB-9231", + "name": "Rear Brakes", + "description": "The product called \"Rear Brakes\"", + "price": 106.5, + "tags": [] + }, + { + "id": "BF87ACE3-C52B-44EA-9871-4A6497B3AF9F", + "categoryId": "7FF64215-1F7A-4CDF-9BA1-AD6ADC6B5D1C", + "categoryName": "Accessories, Pumps", + "sku": "PU-0452", + "name": "Minipump", + "description": "The product called \"Minipump\"", + "price": 19.99, + "tags": [] + }, + { + "id": "C310A68D-DBF2-421A-91CA-F09A3B8A1AAA", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72R-52", + "name": "ML Road Frame - Red, 52", + "description": "The product called \"ML Road Frame - Red, 52\"", + "price": 594.83, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + }, + { + "id": "7990C336-92BD-41F9-8FB6-97390BC4D187", + "name": "Tag-189" + }, + { + "id": "80F182C6-0619-4547-9A2D-F90A7913FACF", + "name": "Tag-96" + }, + { + "id": "9E250CCC-6530-4DC0-9D64-E7777B3C3B73", + "name": "Tag-177" + }, + { + "id": "EFD6F482-9619-47C2-94FD-DA5D035DEA7A", + "name": "Tag-144" + } + ] + }, + { + "id": "CB038CA5-3728-4B59-B209-22FAB210F58B", + "categoryId": "4F2FD0D4-F0E5-4F9E-B049-861E6541B987", + "categoryName": "Accessories, Hydration Packs", + "sku": "HY-1023-70", + "name": "Hydration Pack - 70 oz.", + "description": "The product called \"Hydration Pack - 70 oz.\"", + "price": 54.99, + "tags": [ + { + "id": "01078B1D-5267-4B35-82B8-57042AA9CABB", + "name": "Tag-84" + }, + { + "id": "6FB11EB9-319C-431C-89D7-70113401D186", + "name": "Tag-154" + }, + { + "id": "775908D7-2622-4C29-AF4D-F2274824DA3B", + "name": "Tag-89" + }, + { + "id": "83D720BA-BB31-4BE5-B723-8A836AB6D532", + "name": "Tag-127" + }, + { + "id": "D69B1B6C-4963-4E85-8FA5-6A3E1CD1C83B", + "name": "Tag-187" + } + ] + }, + { + "id": "E223E34D-E0D0-4DFA-AB7D-8E72F94F2202", + "categoryId": "975E2A45-DA17-45CE-B65E-575A19334EB2", + "categoryName": "Components, Derailleurs", + "sku": "FD-2342", + "name": "Front Derailleur", + "description": "The product called \"Front Derailleur\"", + "price": 91.49, + "tags": [ + { + "id": "088B5F10-EB9B-4F33-A2E4-F2E54485B90F", + "name": "Tag-115" + }, + { + "id": "AA35D2EA-24FD-4A62-80FE-83EFF821F019", + "name": "Tag-10" + } + ] + }, + { + "id": "E5A67B5B-B190-45CB-A9E4-BE3F6BD49214", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72R-48", + "name": "ML Road Frame - Red, 48", + "description": "The product called \"ML Road Frame - Red, 48\"", + "price": 594.83, + "tags": [ + { + "id": "2CE9DADE-DCAC-436C-9D69-B7C886A01B77", + "name": "Tag-101" + }, + { + "id": "A2AFF2FF-8438-44A3-8AC6-20A50422D82A", + "name": "Tag-18" + }, + { + "id": "AC4CC3CC-4E6B-461D-9B0E-4218EDDF3142", + "name": "Tag-122" + }, + { + "id": "BDA92549-CBC2-4DC1-9C82-18D1A629C3F3", + "name": "Tag-145" + } + ] + }, + { + "id": "EEE4159B-F224-4C02-B578-2F398229592D", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R38B-52", + "name": "LL Road Frame - Black, 52", + "description": "The product called \"LL Road Frame - Black, 52\"", + "price": 337.22, + "tags": [ + { + "id": "6C6D061E-F701-41DC-AEA2-7A5C28061840", + "name": "Tag-98" + }, + { + "id": "7F518FB1-4664-4B20-9B9F-23D5B44F6798", + "name": "Tag-69" + }, + { + "id": "87BC6842-2CCA-4CD3-994C-33AB101455F4", + "name": "Tag-12" + } + ] + }, + { + "id": "FE292D83-1F34-4845-A467-7C62AD3C6CBE", + "categoryId": "7FF64215-1F7A-4CDF-9BA1-AD6ADC6B5D1C", + "categoryName": "Accessories, Pumps", + "sku": "PU-M044", + "name": "Mountain Pump", + "description": "The product called \"Mountain Pump\"", + "price": 24.99, + "tags": [ + { + "id": "01078B1D-5267-4B35-82B8-57042AA9CABB", + "name": "Tag-84" + }, + { + "id": "84C1934D-F048-4D2B-8525-323AFE2A7C7C", + "name": "Tag-184" + }, + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + } + ] + }, + { + "id": "FFCA3096-199F-41C3-99D1-35BC88D8AC6F", + "categoryId": "3E4CEACD-D007-46EB-82D7-31F6141752B2", + "categoryName": "Components, Road Frames", + "sku": "FR-R72Y-48", + "name": "ML Road Frame-W - Yellow, 48", + "description": "The product called \"ML Road Frame-W - Yellow, 48\"", + "price": 594.83, + "tags": [ + { + "id": "14CFF1D6-7749-4A57-85B3-783F47731F32", + "name": "Tag-7" + }, + { + "id": "84C396AD-98C6-4B12-8C3A-1BDA3ABF7D73", + "name": "Tag-24" + } + ] + }, + { + "id": "056C459F-DA40-475E-B7BE-B87B6DB39D33", + "categoryId": "9268EA12-29BA-404B-B514-E4737DB3BFCB", + "categoryName": "Clothing, Bib-Shorts", + "sku": "SB-M891-S", + "name": "Men's Bib-Shorts, S", + "description": "The product called \"Men's Bib-Shorts, S\"", + "price": 89.99, + "tags": [ + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + }, + { + "id": "89FB612A-F9AA-4196-B5F5-B9FA16D558DC", + "name": "Tag-175" + } + ] + }, + { + "id": "08CF5494-D064-40CF-952B-E33ED9CE9297", + "categoryId": "9268EA12-29BA-404B-B514-E4737DB3BFCB", + "categoryName": "Clothing, Bib-Shorts", + "sku": "SB-M891-M", + "name": "Men's Bib-Shorts, M", + "description": "The product called \"Men's Bib-Shorts, M\"", + "price": 89.99, + "tags": [ + { + "id": "0C1DA4B7-676B-413A-A2C5-CCC944837DDC", + "name": "Tag-39" + }, + { + "id": "764C1CC8-2E5F-4EF5-83F6-8FF7441290B3", + "name": "Tag-190" + }, + { + "id": "76B3C6DC-3411-457B-96F5-A51CE015DAD9", + "name": "Tag-29" + }, + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + }, + { + "id": "F132E7B8-65B1-471E-8D3E-5E8D7110CA48", + "name": "Tag-118" + } + ] + }, + { + "id": "0B77351B-8F31-45D2-AECC-85BABD03B24E", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98Y-50", + "name": "HL Touring Frame - Yellow, 50", + "description": "The product called \"HL Touring Frame - Yellow, 50\"", + "price": 1003.91, + "tags": [] + }, + { + "id": "0F124781-C991-48A9-ACF2-249771D44029", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M68B-42", + "name": "Mountain-200 Black, 42", + "description": "The product called \"Mountain-200 Black, 42\"", + "price": 2294.99, + "tags": [ + { + "id": "4F67013C-3B5E-4A3D-B4B0-8C597A491EB6", + "name": "Tag-82" + }, + { + "id": "59676183-1BD7-48A0-B3B0-42B3C0800EB0", + "name": "Tag-64" + }, + { + "id": "89500F13-B516-4F77-8128-47FC412BEFCD", + "name": "Tag-151" + }, + { + "id": "8DC9DFB4-1946-427A-A0A0-E06E1448CC63", + "name": "Tag-171" + } + ] + }, + { + "id": "12DD6F29-6AA2-4C03-8873-19581F97E9CD", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18B-48", + "name": "Mountain-500 Black, 48", + "description": "The product called \"Mountain-500 Black, 48\"", + "price": 539.99, + "tags": [ + { + "id": "9E250CCC-6530-4DC0-9D64-E7777B3C3B73", + "name": "Tag-177" + } + ] + }, + { + "id": "16F9DF28-56B4-4185-9B82-B85666BFA3A6", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M38S-38", + "name": "Mountain-400-W Silver, 38", + "description": "The product called \"Mountain-400-W Silver, 38\"", + "price": 769.49, + "tags": [ + { + "id": "125497D0-9175-4ECD-844D-DA71E5F4ED43", + "name": "Tag-42" + }, + { + "id": "3BFB03A9-3106-44C7-823A-DB1A67E283C3", + "name": "Tag-47" + }, + { + "id": "6C2F05C8-1E61-4912-BE1A-C67A378429BB", + "name": "Tag-5" + }, + { + "id": "A07D69D4-B8B9-4662-8148-8033DCDCC000", + "name": "Tag-142" + } + ] + }, + { + "id": "28A865D5-647E-46B5-B309-CA2B2F524E37", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98U-60", + "name": "HL Touring Frame - Blue, 60", + "description": "The product called \"HL Touring Frame - Blue, 60\"", + "price": 1003.91, + "tags": [ + { + "id": "1745EF28-6E0B-4FED-8925-BC3174F583B0", + "name": "Tag-48" + }, + { + "id": "319E277F-6B7A-483D-81BA-1EC34CC700EB", + "name": "Tag-163" + }, + { + "id": "4A6ED3A9-AFDA-4994-9C51-CA76256CEF81", + "name": "Tag-140" + }, + { + "id": "94C05E5C-13B7-41DA-89DF-98C11195AE1E", + "name": "Tag-79" + } + ] + }, + { + "id": "2BA4A26C-A8DB-4645-BEB9-F7D42F50262E", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98U-50", + "name": "HL Touring Frame - Blue, 50", + "description": "The product called \"HL Touring Frame - Blue, 50\"", + "price": 1003.91, + "tags": [] + }, + { + "id": "2EE56307-0398-465E-A340-1C5FB1C85648", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18S-42", + "name": "Mountain-500 Silver, 42", + "description": "The product called \"Mountain-500 Silver, 42\"", + "price": 564.99, + "tags": [ + { + "id": "C1CB0EFE-02BB-4AE5-AA48-3DAC12921450", + "name": "Tag-109" + } + ] + }, + { + "id": "312A464A-1830-4755-8FB2-2ED32DC7FDD6", + "categoryId": "9268EA12-29BA-404B-B514-E4737DB3BFCB", + "categoryName": "Clothing, Bib-Shorts", + "sku": "SB-M891-L", + "name": "Men's Bib-Shorts, L", + "description": "The product called \"Men's Bib-Shorts, L\"", + "price": 89.99, + "tags": [ + { + "id": "2400025E-FB22-4031-B4A2-9C3BD1402A9B", + "name": "Tag-38" + }, + { + "id": "84C396AD-98C6-4B12-8C3A-1BDA3ABF7D73", + "name": "Tag-24" + }, + { + "id": "B3EC53EB-000D-4E66-975A-910771520A6E", + "name": "Tag-54" + }, + { + "id": "F3A39B6E-753C-4E70-859F-454E8A9624A9", + "name": "Tag-179" + } + ] + }, + { + "id": "32B61AF2-53BE-4E36-85D8-A24738769352", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18S-52", + "name": "Mountain-500 Silver, 52", + "description": "The product called \"Mountain-500 Silver, 52\"", + "price": 564.99, + "tags": [ + { + "id": "511652EB-9EC2-4235-BA77-0C6E4E316679", + "name": "Tag-199" + }, + { + "id": "AC4CC3CC-4E6B-461D-9B0E-4218EDDF3142", + "name": "Tag-122" + } + ] + }, + { + "id": "397635D8-D71F-47B2-AD68-4ECA6A03F84F", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18B-44", + "name": "Mountain-500 Black, 44", + "description": "The product called \"Mountain-500 Black, 44\"", + "price": 539.99, + "tags": [ + { + "id": "D887B872-7CE0-467C-9307-1EABD0D06EEA", + "name": "Tag-20" + } + ] + }, + { + "id": "3ADF5B22-B5B2-43CD-9E07-36A187EB9473", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "LJ-0192-S", + "name": "Long-Sleeve Logo Jersey, S", + "description": "The product called \"Long-Sleeve Logo Jersey, S\"", + "price": 49.99, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + }, + { + "id": "BBE8A68F-6458-410E-BFF7-759507DCE858", + "name": "Tag-114" + } + ] + }, + { + "id": "462F8EAF-0988-4D32-B809-EB4362AF48D0", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M68B-38", + "name": "Mountain-200 Black, 38", + "description": "The product called \"Mountain-200 Black, 38\"", + "price": 2294.99, + "tags": [ + { + "id": "79E61D0F-3C95-4353-BF27-DB04535088C9", + "name": "Tag-50" + }, + { + "id": "E83726D0-E486-42C1-BBD3-594C1C5AED6D", + "name": "Tag-155" + }, + { + "id": "F41CEB6B-FFD0-40A2-BC0F-F89FC3256F09", + "name": "Tag-13" + } + ] + }, + { + "id": "47ED1C3B-C205-4507-94EE-3B69A744B261", + "categoryId": "14A1AD5D-59EA-4B63-A189-67B077783B0E", + "categoryName": "Accessories, Helmets", + "sku": "HL-U509", + "name": "Sport-100 Helmet, Black", + "description": "The product called \"Sport-100 Helmet, Black\"", + "price": 34.99, + "tags": [ + { + "id": "12A06E6F-45BF-42DF-9641-F1376CDDB7B1", + "name": "Tag-22" + }, + { + "id": "1745EF28-6E0B-4FED-8925-BC3174F583B0", + "name": "Tag-48" + }, + { + "id": "27B7F8D5-1009-45B8-88F5-41008A0F0393", + "name": "Tag-61" + }, + { + "id": "CF3C6F6C-8038-4FAD-A07A-E1AD1C34DE22", + "name": "Tag-77" + } + ] + }, + { + "id": "4DA12D36-495E-4DCA-95B0-F18CAA099779", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82S-42", + "name": "Mountain-100 Silver, 42", + "description": "The product called \"Mountain-100 Silver, 42\"", + "price": 3399.99, + "tags": [ + { + "id": "3C26DF5C-CE21-4EF6-AEE2-E8E1066D06B1", + "name": "Tag-60" + }, + { + "id": "BB35DF88-8BCE-4267-838B-9265BAE64EDF", + "name": "Tag-160" + }, + { + "id": "F629F27D-3301-4906-BE9B-C46D6D6F6141", + "name": "Tag-65" + } + ] + }, + { + "id": "55594B1E-1E16-4B2E-A16F-983E492321BC", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67Y-54", + "name": "LL Touring Frame - Yellow, 54", + "description": "The product called \"LL Touring Frame - Yellow, 54\"", + "price": 333.42, + "tags": [ + { + "id": "CA7D17BB-45A6-47E6-A3E3-E70AF34C2072", + "name": "Tag-158" + } + ] + }, + { + "id": "56560B7B-3AC6-4E07-8825-4266A7C98CFE", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18B-52", + "name": "Mountain-500 Black, 52", + "description": "The product called \"Mountain-500 Black, 52\"", + "price": 539.99, + "tags": [ + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + } + ] + }, + { + "id": "5BC9F76B-7FE9-4DD9-A672-2C5E802B2672", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "SJ-0194-L", + "name": "Short-Sleeve Classic Jersey, L", + "description": "The product called \"Short-Sleeve Classic Jersey, L\"", + "price": 53.99, + "tags": [ + { + "id": "29CBEDD8-D9C3-43A3-B20F-63224FEE0D34", + "name": "Tag-11" + }, + { + "id": "4A6ED3A9-AFDA-4994-9C51-CA76256CEF81", + "name": "Tag-140" + }, + { + "id": "FE2975F7-D3D2-42AE-A0BB-D87254E58540", + "name": "Tag-74" + } + ] + }, + { + "id": "5C30FF31-CAB7-4A99-8FD6-D610F58AC4BA", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M38S-42", + "name": "Mountain-400-W Silver, 42", + "description": "The product called \"Mountain-400-W Silver, 42\"", + "price": 769.49, + "tags": [ + { + "id": "01078B1D-5267-4B35-82B8-57042AA9CABB", + "name": "Tag-84" + }, + { + "id": "0C1DA4B7-676B-413A-A2C5-CCC944837DDC", + "name": "Tag-39" + }, + { + "id": "29CBEDD8-D9C3-43A3-B20F-63224FEE0D34", + "name": "Tag-11" + }, + { + "id": "9467BA7B-49FB-4AA5-A868-478D94AF2E54", + "name": "Tag-92" + } + ] + }, + { + "id": "5D3F5A52-A8BB-448C-B8CF-39D2FA2BDF3C", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98U-54", + "name": "HL Touring Frame - Blue, 54", + "description": "The product called \"HL Touring Frame - Blue, 54\"", + "price": 1003.91, + "tags": [] + }, + { + "id": "5ED1BF5F-6C1F-4EF8-B1A7-B8A8412C9F72", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M47B-38", + "name": "Mountain-300 Black, 38", + "description": "The product called \"Mountain-300 Black, 38\"", + "price": 1079.99, + "tags": [ + { + "id": "567D183B-9ED1-47B4-AE22-80C52BF41067", + "name": "Tag-165" + } + ] + }, + { + "id": "601A5234-644D-4B83-9FDB-326C22C1051D", + "categoryId": "14A1AD5D-59EA-4B63-A189-67B077783B0E", + "categoryName": "Accessories, Helmets", + "sku": "HL-U509-B", + "name": "Sport-100 Helmet, Blue", + "description": "The product called \"Sport-100 Helmet, Blue\"", + "price": 34.99, + "tags": [] + }, + { + "id": "61246D01-7C38-489E-9F49-A526679B568F", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67U-50", + "name": "LL Touring Frame - Blue, 50", + "description": "The product called \"LL Touring Frame - Blue, 50\"", + "price": 333.42, + "tags": [ + { + "id": "227FF627-9E87-4BE5-8254-17BB155B0AD7", + "name": "Tag-23" + }, + { + "id": "4B8ECDDE-FF08-4916-8869-372D08EA8BBA", + "name": "Tag-106" + } + ] + }, + { + "id": "6401B68F-924A-4B2E-AC9E-5660AEA0E848", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "LJ-0192-L", + "name": "Long-Sleeve Logo Jersey, L", + "description": "The product called \"Long-Sleeve Logo Jersey, L\"", + "price": 49.99, + "tags": [ + { + "id": "B48D6572-67EB-4630-A1DB-AFD4AD7041C9", + "name": "Tag-100" + }, + { + "id": "E1A62ABF-BBC3-48A2-BAC6-E3350D023C83", + "name": "Tag-194" + } + ] + }, + { + "id": "668E6FCE-03E9-49E7-AC33-1B17FEEF5E60", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18S-40", + "name": "Mountain-500 Silver, 40", + "description": "The product called \"Mountain-500 Silver, 40\"", + "price": 564.99, + "tags": [ + { + "id": "028057B8-8F03-4C18-B853-66510D354A72", + "name": "Tag-57" + }, + { + "id": "23ECB896-D6C6-4E9D-BE43-1908CB5C5E07", + "name": "Tag-112" + }, + { + "id": "BA4D7ABD-2E82-4DC2-ACF2-5D3B0DEAE1C1", + "name": "Tag-59" + }, + { + "id": "DCDBD26C-4D71-4F91-BBE9-98D1897E704D", + "name": "Tag-68" + } + ] + }, + { + "id": "6EB9F7AC-7FB0-4D8C-8D3F-76A735A3CB9A", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18B-40", + "name": "Mountain-500 Black, 40", + "description": "The product called \"Mountain-500 Black, 40\"", + "price": 539.99, + "tags": [ + { + "id": "088B5F10-EB9B-4F33-A2E4-F2E54485B90F", + "name": "Tag-115" + } + ] + }, + { + "id": "6F733A5D-9B66-4718-B69C-627DE4E164BA", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67Y-44", + "name": "LL Touring Frame - Yellow, 44", + "description": "The product called \"LL Touring Frame - Yellow, 44\"", + "price": 333.42, + "tags": [] + }, + { + "id": "824D58CA-ECCA-4E72-965C-66D3A5C0C67C", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67Y-58", + "name": "LL Touring Frame - Yellow, 58", + "description": "The product called \"LL Touring Frame - Yellow, 58\"", + "price": 333.42, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + }, + { + "id": "4E102F3F-7D57-4CD7-88F4-AC5076A42C59", + "name": "Tag-91" + }, + { + "id": "84C396AD-98C6-4B12-8C3A-1BDA3ABF7D73", + "name": "Tag-24" + }, + { + "id": "D197C394-FB88-4EFF-B0FB-8BED1A86F294", + "name": "Tag-182" + }, + { + "id": "D1E5CB02-8E7B-422F-9421-C0E608F0AC4C", + "name": "Tag-133" + } + ] + }, + { + "id": "840E2138-4265-4AC8-8514-AC0B9C98597C", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67U-44", + "name": "LL Touring Frame - Blue, 44", + "description": "The product called \"LL Touring Frame - Blue, 44\"", + "price": 333.42, + "tags": [ + { + "id": "274E32EE-612A-4AAB-B91A-C7E8E4D8C2A7", + "name": "Tag-1" + }, + { + "id": "47A34A77-A9B8-4703-9AEF-3786726C7A31", + "name": "Tag-176" + }, + { + "id": "76B3C6DC-3411-457B-96F5-A51CE015DAD9", + "name": "Tag-29" + }, + { + "id": "775908D7-2622-4C29-AF4D-F2274824DA3B", + "name": "Tag-89" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + } + ] + }, + { + "id": "86FD9250-4BD5-42D2-B941-1C1865A6A65E", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67U-58", + "name": "LL Touring Frame - Blue, 58", + "description": "The product called \"LL Touring Frame - Blue, 58\"", + "price": 333.42, + "tags": [ + { + "id": "764C1CC8-2E5F-4EF5-83F6-8FF7441290B3", + "name": "Tag-190" + }, + { + "id": "765EF7D7-331C-42C0-BF23-A3022A723BF7", + "name": "Tag-191" + }, + { + "id": "87BC6842-2CCA-4CD3-994C-33AB101455F4", + "name": "Tag-12" + }, + { + "id": "EBDBD608-416A-4FE2-96DF-02367C8D071E", + "name": "Tag-102" + }, + { + "id": "F8817638-4CF4-423E-B755-2150F02C432D", + "name": "Tag-71" + } + ] + }, + { + "id": "8B363B8B-378E-402A-9E68-A935302000B8", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98Y-46", + "name": "HL Touring Frame - Yellow, 46", + "description": "The product called \"HL Touring Frame - Yellow, 46\"", + "price": 1003.91, + "tags": [ + { + "id": "6C6D061E-F701-41DC-AEA2-7A5C28061840", + "name": "Tag-98" + }, + { + "id": "89500F13-B516-4F77-8128-47FC412BEFCD", + "name": "Tag-151" + }, + { + "id": "D5887E7C-B916-4AF4-BAF8-7B996ADA8C83", + "name": "Tag-52" + }, + { + "id": "DBC84212-C3E9-4966-8619-9A4D64EBF517", + "name": "Tag-125" + } + ] + }, + { + "id": "8B541087-A7F5-43B1-AC9F-EEFB4F4ADAFA", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18B-42", + "name": "Mountain-500 Black, 42", + "description": "The product called \"Mountain-500 Black, 42\"", + "price": 539.99, + "tags": [ + { + "id": "125497D0-9175-4ECD-844D-DA71E5F4ED43", + "name": "Tag-42" + }, + { + "id": "14CFF1D6-7749-4A57-85B3-783F47731F32", + "name": "Tag-7" + }, + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + } + ] + }, + { + "id": "91AA100C-D092-4190-92A7-7C02410F04EA", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67Y-62", + "name": "LL Touring Frame - Yellow, 62", + "description": "The product called \"LL Touring Frame - Yellow, 62\"", + "price": 333.42, + "tags": [ + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + } + ] + }, + { + "id": "91D3C273-9E79-4395-B444-6D39BF9B2F4D", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98U-46", + "name": "HL Touring Frame - Blue, 46", + "description": "The product called \"HL Touring Frame - Blue, 46\"", + "price": 1003.91, + "tags": [ + { + "id": "375399DC-F2B7-4A8C-8A03-C16B849489D3", + "name": "Tag-78" + }, + { + "id": "8CA1BBD8-D00B-4654-AABA-5C8724C6F4BD", + "name": "Tag-81" + }, + { + "id": "9467BA7B-49FB-4AA5-A868-478D94AF2E54", + "name": "Tag-92" + } + ] + }, + { + "id": "935EB2B7-8D50-4E20-B01A-570DBA674AD4", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82S-38", + "name": "Mountain-100 Silver, 38", + "description": "The product called \"Mountain-100 Silver, 38\"", + "price": 3399.99, + "tags": [ + { + "id": "B18FB652-C4B6-4A40-BA22-1E687C1A58CE", + "name": "Tag-161" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + }, + { + "id": "EFD6F482-9619-47C2-94FD-DA5D035DEA7A", + "name": "Tag-144" + } + ] + }, + { + "id": "9C0320C4-124B-486A-BA98-B7B82933F324", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67U-62", + "name": "LL Touring Frame - Blue, 62", + "description": "The product called \"LL Touring Frame - Blue, 62\"", + "price": 333.42, + "tags": [ + { + "id": "775908D7-2622-4C29-AF4D-F2274824DA3B", + "name": "Tag-89" + }, + { + "id": "7DF71D87-FB6F-498B-9D7B-E7EBE40350E1", + "name": "Tag-88" + }, + { + "id": "A50C570B-B3FC-4678-96C8-2D117DD11A12", + "name": "Tag-66" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + }, + { + "id": "F07885AF-BD6C-4B71-88B1-F04295992176", + "name": "Tag-149" + } + ] + }, + { + "id": "9DB28F2B-ADC8-40A2-A677-B0AAFC32CAC8", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82S-48", + "name": "Mountain-100 Silver, 48", + "description": "The product called \"Mountain-100 Silver, 48\"", + "price": 3399.99, + "tags": [ + { + "id": "29CBEDD8-D9C3-43A3-B20F-63224FEE0D34", + "name": "Tag-11" + }, + { + "id": "AA35D2EA-24FD-4A62-80FE-83EFF821F019", + "name": "Tag-10" + } + ] + }, + { + "id": "A6F069C2-EF85-4B79-9CE2-03833343AD92", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "SJ-0194-M", + "name": "Short-Sleeve Classic Jersey, M", + "description": "The product called \"Short-Sleeve Classic Jersey, M\"", + "price": 53.99, + "tags": [ + { + "id": "088B5F10-EB9B-4F33-A2E4-F2E54485B90F", + "name": "Tag-115" + }, + { + "id": "89FB612A-F9AA-4196-B5F5-B9FA16D558DC", + "name": "Tag-175" + }, + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + }, + { + "id": "DEDEB715-41D4-4EBF-BC09-5CCC2943D1A2", + "name": "Tag-131" + }, + { + "id": "F202FBC3-B5AA-4E0F-950B-2B5715AC0B3B", + "name": "Tag-173" + } + ] + }, + { + "id": "ACD4ABE3-82D8-4447-B126-2DE03B7DD106", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M38S-40", + "name": "Mountain-400-W Silver, 40", + "description": "The product called \"Mountain-400-W Silver, 40\"", + "price": 769.49, + "tags": [ + { + "id": "F59DC0A2-537E-4A8F-A97D-19C82074D3E7", + "name": "Tag-146" + } + ] + }, + { + "id": "AFBE0496-C372-4885-B509-507B93027174", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18S-44", + "name": "Mountain-500 Silver, 44", + "description": "The product called \"Mountain-500 Silver, 44\"", + "price": 564.99, + "tags": [ + { + "id": "069169DD-F4B3-4769-8841-13B5FF745932", + "name": "Tag-157" + }, + { + "id": "33AFFF1B-30AA-41C5-8510-34B67A523CA9", + "name": "Tag-110" + }, + { + "id": "46AC3482-E9A6-474D-A435-D3399F21991F", + "name": "Tag-90" + }, + { + "id": "C68A2129-1E2B-43EC-95B5-AC56CC200FA4", + "name": "Tag-180" + }, + { + "id": "CA170AAD-A5F6-42FF-B115-146FADD87298", + "name": "Tag-186" + } + ] + }, + { + "id": "B0FE1D0A-CED1-49E8-9ACF-E289A631A4ED", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M47B-44", + "name": "Mountain-300 Black, 44", + "description": "The product called \"Mountain-300 Black, 44\"", + "price": 1079.99, + "tags": [ + { + "id": "812C1444-1DEA-480D-88E7-B9609ECA783C", + "name": "Tag-136" + }, + { + "id": "A2443B36-76AE-4963-9E21-368868F9C514", + "name": "Tag-6" + }, + { + "id": "B1EBD7E0-BBE0-4AFB-AC6C-50649484780B", + "name": "Tag-40" + } + ] + }, + { + "id": "B10065F8-543A-49E7-BFE6-3D19B0BE5670", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M68S-46", + "name": "Mountain-200 Silver, 46", + "description": "The product called \"Mountain-200 Silver, 46\"", + "price": 2319.99, + "tags": [ + { + "id": "274E32EE-612A-4AAB-B91A-C7E8E4D8C2A7", + "name": "Tag-1" + }, + { + "id": "764C1CC8-2E5F-4EF5-83F6-8FF7441290B3", + "name": "Tag-190" + }, + { + "id": "D56040DB-E5DF-40BE-9F2F-7E10F4340BCA", + "name": "Tag-31" + }, + { + "id": "DB21A27B-5A3F-400C-A0DF-69A5266E1447", + "name": "Tag-34" + }, + { + "id": "F533A770-1E5D-4B48-8792-E16E155B6E38", + "name": "Tag-87" + } + ] + }, + { + "id": "B3847F90-FDF3-4529-B7D0-04FE6F94BFB3", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M18S-48", + "name": "Mountain-500 Silver, 48", + "description": "The product called \"Mountain-500 Silver, 48\"", + "price": 564.99, + "tags": [ + { + "id": "239313C7-6673-47D1-88D9-6AC61F27D30E", + "name": "Tag-116" + }, + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + }, + { + "id": "B20574A2-8F94-4CB5-A9A7-2E1E203978D6", + "name": "Tag-117" + }, + { + "id": "BA4D7ABD-2E82-4DC2-ACF2-5D3B0DEAE1C1", + "name": "Tag-59" + }, + { + "id": "DA661FCF-CC7F-4AF9-A9E2-8E7A5570844E", + "name": "Tag-188" + } + ] + }, + { + "id": "B79B140D-4369-429B-8F20-E28F3ED7F82A", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98Y-54", + "name": "HL Touring Frame - Yellow, 54", + "description": "The product called \"HL Touring Frame - Yellow, 54\"", + "price": 1003.91, + "tags": [] + }, + { + "id": "BB21E6EF-104A-420B-B9C5-2084118E5A2F", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M68S-42", + "name": "Mountain-200 Silver, 42", + "description": "The product called \"Mountain-200 Silver, 42\"", + "price": 2319.99, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + }, + { + "id": "A49D83E4-E506-4301-8110-E114599B4A35", + "name": "Tag-27" + }, + { + "id": "C8741857-FD6D-4C28-B594-BAF30BCACB6B", + "name": "Tag-120" + }, + { + "id": "F202FBC3-B5AA-4E0F-950B-2B5715AC0B3B", + "name": "Tag-173" + } + ] + }, + { + "id": "C0FBA4E8-B617-4889-B1A5-091D12783313", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82B-42", + "name": "Mountain-100 Black, 42", + "description": "The product called \"Mountain-100 Black, 42\"", + "price": 3374.99, + "tags": [ + { + "id": "12A06E6F-45BF-42DF-9641-F1376CDDB7B1", + "name": "Tag-22" + }, + { + "id": "2E7252D2-B646-47FB-B5BB-836643578038", + "name": "Tag-130" + } + ] + }, + { + "id": "CC8D2C8C-AB60-48BE-A019-33F633DB07CD", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "SJ-0194-X", + "name": "Short-Sleeve Classic Jersey, XL", + "description": "The product called \"Short-Sleeve Classic Jersey, XL\"", + "price": 53.99, + "tags": [ + { + "id": "69B1D1BA-C166-41F2-B2EB-8B2ADE77943C", + "name": "Tag-196" + }, + { + "id": "87BC6842-2CCA-4CD3-994C-33AB101455F4", + "name": "Tag-12" + }, + { + "id": "A4D9E596-B630-4792-BDD1-7D6459827820", + "name": "Tag-164" + }, + { + "id": "F3A39B6E-753C-4E70-859F-454E8A9624A9", + "name": "Tag-179" + } + ] + }, + { + "id": "CD5FF4D6-7D2D-4BD4-9319-CB38C1939D96", + "categoryId": "11EF8851-816A-49E2-9D5C-8D17AB82C5FF", + "categoryName": "Accessories, Lights", + "sku": "LT-T990", + "name": "Taillights - Battery-Powered", + "description": "The product called \"Taillights - Battery-Powered\"", + "price": 13.99, + "tags": [ + { + "id": "46C3C4F8-3FA1-44E9-AE78-37DA965EE913", + "name": "Tag-46" + }, + { + "id": "69B1D1BA-C166-41F2-B2EB-8B2ADE77943C", + "name": "Tag-196" + }, + { + "id": "76B3C6DC-3411-457B-96F5-A51CE015DAD9", + "name": "Tag-29" + }, + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + } + ] + }, + { + "id": "CEA9FD38-517E-474B-A5B1-B17BF1753F9C", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67Y-50", + "name": "LL Touring Frame - Yellow, 50", + "description": "The product called \"LL Touring Frame - Yellow, 50\"", + "price": 333.42, + "tags": [ + { + "id": "3798DC56-04BE-4A82-B70B-6A0DC7714A36", + "name": "Tag-105" + }, + { + "id": "47A34A77-A9B8-4703-9AEF-3786726C7A31", + "name": "Tag-176" + }, + { + "id": "7337386B-E865-4ADC-BA17-4437CB02E3BE", + "name": "Tag-8" + } + ] + }, + { + "id": "D47E0CC9-28A0-40A5-AB90-BB29BDBB0578", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "LJ-0192-X", + "name": "Long-Sleeve Logo Jersey, XL", + "description": "The product called \"Long-Sleeve Logo Jersey, XL\"", + "price": 49.99, + "tags": [ + { + "id": "125497D0-9175-4ECD-844D-DA71E5F4ED43", + "name": "Tag-42" + }, + { + "id": "89500F13-B516-4F77-8128-47FC412BEFCD", + "name": "Tag-151" + } + ] + }, + { + "id": "DE810086-817F-440C-9FEF-471083B8E4A0", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "LJ-0192-M", + "name": "Long-Sleeve Logo Jersey, M", + "description": "The product called \"Long-Sleeve Logo Jersey, M\"", + "price": 49.99, + "tags": [ + { + "id": "3798DC56-04BE-4A82-B70B-6A0DC7714A36", + "name": "Tag-105" + } + ] + }, + { + "id": "DF94F21F-4CDB-4E49-B67B-CAD318A31C4A", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82B-44", + "name": "Mountain-100 Black, 44", + "description": "The product called \"Mountain-100 Black, 44\"", + "price": 3374.99, + "tags": [ + { + "id": "14CFF1D6-7749-4A57-85B3-783F47731F32", + "name": "Tag-7" + }, + { + "id": "3C26DF5C-CE21-4EF6-AEE2-E8E1066D06B1", + "name": "Tag-60" + }, + { + "id": "765EF7D7-331C-42C0-BF23-A3022A723BF7", + "name": "Tag-191" + }, + { + "id": "7B37373F-FC14-44FD-96AA-32F4854E0B6B", + "name": "Tag-63" + }, + { + "id": "8AAFD985-8BCE-4FA8-85A2-2CA67D9DF8E6", + "name": "Tag-172" + } + ] + }, + { + "id": "DFE5521E-40C6-4A58-8E8D-5FC1BE5EC0FE", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82S-44", + "name": "Mountain-100 Silver, 44", + "description": "The product called \"Mountain-100 Silver, 44\"", + "price": 3399.99, + "tags": [ + { + "id": "4B8ECDDE-FF08-4916-8869-372D08EA8BBA", + "name": "Tag-106" + }, + { + "id": "511652EB-9EC2-4235-BA77-0C6E4E316679", + "name": "Tag-199" + }, + { + "id": "E1A62ABF-BBC3-48A2-BAC6-E3350D023C83", + "name": "Tag-194" + } + ] + }, + { + "id": "E2CCAF6F-7AB5-4086-86A3-A50B3E6EF101", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T98Y-60", + "name": "HL Touring Frame - Yellow, 60", + "description": "The product called \"HL Touring Frame - Yellow, 60\"", + "price": 1003.91, + "tags": [ + { + "id": "7019202D-B11A-4FAB-ACBC-2D0E5A4F72EF", + "name": "Tag-143" + }, + { + "id": "762CE1E0-5615-418E-B476-BCD46AD5E79E", + "name": "Tag-137" + }, + { + "id": "C1CB0EFE-02BB-4AE5-AA48-3DAC12921450", + "name": "Tag-109" + } + ] + }, + { + "id": "E681778F-8359-468B-98F9-4D325D6C377F", + "categoryId": "C3C57C35-1D80-4EC5-AB12-46C57A017AFB", + "categoryName": "Clothing, Jerseys", + "sku": "SJ-0194-S", + "name": "Short-Sleeve Classic Jersey, S", + "description": "The product called \"Short-Sleeve Classic Jersey, S\"", + "price": 53.99, + "tags": [] + }, + { + "id": "E8767BC9-D6BA-47FC-9842-3511468869B6", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M47B-48", + "name": "Mountain-300 Black, 48", + "description": "The product called \"Mountain-300 Black, 48\"", + "price": 1079.99, + "tags": [ + { + "id": "718DAED6-2186-4E09-8C02-CCC58281838D", + "name": "Tag-94" + }, + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + } + ] + }, + { + "id": "E9FCF7AC-1F45-4857-9E75-BC30A7C7C27B", + "categoryId": "C0EB227A-55A9-498B-8E21-F39EC5088143", + "categoryName": "Accessories, Cleaners", + "sku": "CL-9009", + "name": "Bike Wash - Dissolver", + "description": "The product called \"Bike Wash - Dissolver\"", + "price": 7.95, + "tags": [ + { + "id": "0BC579CA-03FC-4AA6-85AA-A55035201E43", + "name": "Tag-21" + }, + { + "id": "A2176C7A-4E0D-4283-AFAA-319A77E9C122", + "name": "Tag-19" + } + ] + }, + { + "id": "EC65B816-A2A7-4245-B138-43C03F14C514", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M68B-46", + "name": "Mountain-200 Black, 46", + "description": "The product called \"Mountain-200 Black, 46\"", + "price": 2294.99, + "tags": [ + { + "id": "088B5F10-EB9B-4F33-A2E4-F2E54485B90F", + "name": "Tag-115" + }, + { + "id": "A2176C7A-4E0D-4283-AFAA-319A77E9C122", + "name": "Tag-19" + }, + { + "id": "BB35DF88-8BCE-4267-838B-9265BAE64EDF", + "name": "Tag-160" + }, + { + "id": "F202FBC3-B5AA-4E0F-950B-2B5715AC0B3B", + "name": "Tag-173" + } + ] + }, + { + "id": "EE40F7FD-AB2C-4589-B54D-BEBACB3B083E", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82B-48", + "name": "Mountain-100 Black, 48", + "description": "The product called \"Mountain-100 Black, 48\"", + "price": 3374.99, + "tags": [ + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + } + ] + }, + { + "id": "EF3F4DC1-5F73-4234-B10E-6608F4DC937A", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M68S-38", + "name": "Mountain-200 Silver, 38", + "description": "The product called \"Mountain-200 Silver, 38\"", + "price": 2319.99, + "tags": [ + { + "id": "3A3A99B6-E3BF-46D0-BAD9-F5F4DBB720F4", + "name": "Tag-70" + }, + { + "id": "51CD93BF-098C-4C25-9829-4AD42046D038", + "name": "Tag-25" + }, + { + "id": "6C2F05C8-1E61-4912-BE1A-C67A378429BB", + "name": "Tag-5" + }, + { + "id": "B48D6572-67EB-4630-A1DB-AFD4AD7041C9", + "name": "Tag-100" + } + ] + }, + { + "id": "EFD1F33B-94AE-4309-B6E6-F9CCC2B61278", + "categoryId": "11EF8851-816A-49E2-9D5C-8D17AB82C5FF", + "categoryName": "Accessories, Lights", + "sku": "LT-H903", + "name": "Headlights - Weatherproof", + "description": "The product called \"Headlights - Weatherproof\"", + "price": 44.99, + "tags": [ + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + }, + { + "id": "775908D7-2622-4C29-AF4D-F2274824DA3B", + "name": "Tag-89" + }, + { + "id": "79E61D0F-3C95-4353-BF27-DB04535088C9", + "name": "Tag-50" + }, + { + "id": "83D720BA-BB31-4BE5-B723-8A836AB6D532", + "name": "Tag-127" + }, + { + "id": "C8741857-FD6D-4C28-B594-BAF30BCACB6B", + "name": "Tag-120" + } + ] + }, + { + "id": "F2447558-7C01-442E-A7BC-B6D5D8AE1070", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M82B-38", + "name": "Mountain-100 Black, 38", + "description": "The product called \"Mountain-100 Black, 38\"", + "price": 3374.99, + "tags": [ + { + "id": "227FF627-9E87-4BE5-8254-17BB155B0AD7", + "name": "Tag-23" + }, + { + "id": "6C2F05C8-1E61-4912-BE1A-C67A378429BB", + "name": "Tag-5" + }, + { + "id": "A2AFF2FF-8438-44A3-8AC6-20A50422D82A", + "name": "Tag-18" + }, + { + "id": "C1CB0EFE-02BB-4AE5-AA48-3DAC12921450", + "name": "Tag-109" + }, + { + "id": "DBC84212-C3E9-4966-8619-9A4D64EBF517", + "name": "Tag-125" + } + ] + }, + { + "id": "F5FB0386-C6AC-40AE-9342-7AFB832233A8", + "categoryId": "27A716B2-6F81-4A2C-B7E9-0B2AF5D8E51A", + "categoryName": "Accessories, Locks", + "sku": "LO-C100", + "name": "Cable Lock", + "description": "The product called \"Cable Lock\"", + "price": 25.0, + "tags": [ + { + "id": "0BC579CA-03FC-4AA6-85AA-A55035201E43", + "name": "Tag-21" + }, + { + "id": "1CFF105D-294E-4E2D-ADE4-0615CBDEBC28", + "name": "Tag-44" + }, + { + "id": "606E1794-5457-42A7-90FB-206142EEF023", + "name": "Tag-132" + }, + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + }, + { + "id": "CA170AAD-A5F6-42FF-B115-146FADD87298", + "name": "Tag-186" + } + ] + }, + { + "id": "FA06B762-D602-4235-8F77-D8AFB0D3D050", + "categoryId": "F3FBB167-11D8-41E4-84B4-5AAA92B1E737", + "categoryName": "Components, Touring Frames", + "sku": "FR-T67U-54", + "name": "LL Touring Frame - Blue, 54", + "description": "The product called \"LL Touring Frame - Blue, 54\"", + "price": 333.42, + "tags": [ + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + }, + { + "id": "84C396AD-98C6-4B12-8C3A-1BDA3ABF7D73", + "name": "Tag-24" + }, + { + "id": "89FB612A-F9AA-4196-B5F5-B9FA16D558DC", + "name": "Tag-175" + }, + { + "id": "D32CFC73-640F-48B6-976D-B053DCD0F393", + "name": "Tag-178" + }, + { + "id": "EBDBD608-416A-4FE2-96DF-02367C8D071E", + "name": "Tag-102" + } + ] + }, + { + "id": "FADA3DBE-28DC-4FFA-823E-99332AD2EA0C", + "categoryId": "11EF8851-816A-49E2-9D5C-8D17AB82C5FF", + "categoryName": "Accessories, Lights", + "sku": "LT-H902", + "name": "Headlights - Dual-Beam", + "description": "The product called \"Headlights - Dual-Beam\"", + "price": 34.99, + "tags": [ + { + "id": "E6CB7972-06F4-47C0-B464-F64E695F89E7", + "name": "Tag-51" + } + ] + }, + { + "id": "FB9A5084-F2B2-4C3B-9CF9-252873CABFF7", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M38S-46", + "name": "Mountain-400-W Silver, 46", + "description": "The product called \"Mountain-400-W Silver, 46\"", + "price": 769.49, + "tags": [ + { + "id": "DCDBD26C-4D71-4F91-BBE9-98D1897E704D", + "name": "Tag-68" + }, + { + "id": "F6B1A09C-BCC9-4A74-8472-D1CA98310501", + "name": "Tag-185" + } + ] + }, + { + "id": "FDEF01CB-5067-414F-B0A3-07FF8A4B80DD", + "categoryId": "14A1AD5D-59EA-4B63-A189-67B077783B0E", + "categoryName": "Accessories, Helmets", + "sku": "HL-U509-R", + "name": "Sport-100 Helmet, Red", + "description": "The product called \"Sport-100 Helmet, Red\"", + "price": 34.99, + "tags": [] + }, + { + "id": "FE8FFBD3-99AE-4ECF-AA53-D1304D941EC7", + "categoryId": "56400CF3-446D-4C3F-B9B2-68286DA3BB99", + "categoryName": "Bikes, Mountain Bikes", + "sku": "BK-M47B-40", + "name": "Mountain-300 Black, 40", + "description": "The product called \"Mountain-300 Black, 40\"", + "price": 1079.99, + "tags": [ + { + "id": "B1EBD7E0-BBE0-4AFB-AC6C-50649484780B", + "name": "Tag-40" + } + ] + }, + { + "id": "063F1A00-8CA1-4DB9-8298-BEAC4B8CC238", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R79Y-48", + "name": "Road-350-W Yellow, 48", + "description": "The product called \"Road-350-W Yellow, 48\"", + "price": 1700.99, + "tags": [ + { + "id": "033D3826-2851-4B97-9464-59D3675175D4", + "name": "Tag-108" + }, + { + "id": "E468DF53-4836-4546-9D05-C855AAC4B0AF", + "name": "Tag-2" + }, + { + "id": "E661634D-CDC3-4FA6-BE4B-D1FEEAECB5B9", + "name": "Tag-121" + } + ] + }, + { + "id": "06AC4FFF-9F97-429B-BB15-ED929EFF65EE", + "categoryId": "C48B4EF4-D352-4CD2-BCB8-CE89B7DFA642", + "categoryName": "Clothing, Socks", + "sku": "SO-R809-M", + "name": "Racing Socks, M", + "description": "The product called \"Racing Socks, M\"", + "price": 8.99, + "tags": [ + { + "id": "125497D0-9175-4ECD-844D-DA71E5F4ED43", + "name": "Tag-42" + }, + { + "id": "239313C7-6673-47D1-88D9-6AC61F27D30E", + "name": "Tag-116" + } + ] + }, + { + "id": "0846D2C3-7E50-4F68-A6CB-F0DC90FD03D0", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "FW-T905", + "name": "Touring Front Wheel", + "description": "The product called \"Touring Front Wheel\"", + "price": 218.01, + "tags": [ + { + "id": "7DF71D87-FB6F-498B-9D7B-E7EBE40350E1", + "name": "Tag-88" + }, + { + "id": "AA24EC37-7CE3-4ABE-B935-EC62D5FB6947", + "name": "Tag-148" + }, + { + "id": "CA7D17BB-45A6-47E6-A3E3-E70AF34C2072", + "name": "Tag-158" + }, + { + "id": "D69B1B6C-4963-4E85-8FA5-6A3E1CD1C83B", + "name": "Tag-187" + }, + { + "id": "E23954CF-D79A-433E-9BE6-FD787C5E4C9B", + "name": "Tag-111" + } + ] + }, + { + "id": "0990C3D9-4EC2-4272-ADB6-9481CA12F5F6", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94B-38", + "name": "HL Mountain Frame - Black, 38", + "description": "The product called \"HL Mountain Frame - Black, 38\"", + "price": 1349.6, + "tags": [ + { + "id": "762CE1E0-5615-418E-B476-BCD46AD5E79E", + "name": "Tag-137" + }, + { + "id": "7CACE200-11A3-4E2D-A88E-25E9614D2BE9", + "name": "Tag-97" + }, + { + "id": "84C1934D-F048-4D2B-8525-323AFE2A7C7C", + "name": "Tag-184" + }, + { + "id": "CAF27567-B4CB-463C-A54E-5EF1F2657DD2", + "name": "Tag-75" + } + ] + }, + { + "id": "0C3D95EB-EE37-44A5-816F-957A98519B03", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50B-44", + "name": "Road-650 Black, 44", + "description": "The product called \"Road-650 Black, 44\"", + "price": 782.99, + "tags": [ + { + "id": "1745EF28-6E0B-4FED-8925-BC3174F583B0", + "name": "Tag-48" + }, + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + }, + { + "id": "537DB3C8-8636-4005-8FE2-32EECEBA5B3F", + "name": "Tag-80" + }, + { + "id": "C68A2129-1E2B-43EC-95B5-AC56CC200FA4", + "name": "Tag-180" + } + ] + }, + { + "id": "0D7CB85D-4518-4E02-8E46-9683947BBBC4", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R68R-52", + "name": "Road-450 Red, 52", + "description": "The product called \"Road-450 Red, 52\"", + "price": 1457.99, + "tags": [ + { + "id": "461ADE06-0903-4BAF-97AB-CC713E5B1DD4", + "name": "Tag-174" + }, + { + "id": "8CA1BBD8-D00B-4654-AABA-5C8724C6F4BD", + "name": "Tag-81" + } + ] + }, + { + "id": "0E92DDAC-F969-4F63-8D5E-614AB5199D01", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89R-44", + "name": "Road-250 Red, 44", + "description": "The product called \"Road-250 Red, 44\"", + "price": 2443.35, + "tags": [ + { + "id": "27B7F8D5-1009-45B8-88F5-41008A0F0393", + "name": "Tag-61" + }, + { + "id": "29CBEDD8-D9C3-43A3-B20F-63224FEE0D34", + "name": "Tag-11" + }, + { + "id": "8CA1BBD8-D00B-4654-AABA-5C8724C6F4BD", + "name": "Tag-81" + }, + { + "id": "DBE23FA0-0D99-47F5-BCD7-3D798CE653AE", + "name": "Tag-55" + } + ] + }, + { + "id": "11E6FD95-0FF1-4FE8-9A6B-EC53F614212D", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R19B-58", + "name": "Road-750 Black, 58", + "description": "The product called \"Road-750 Black, 58\"", + "price": 539.99, + "tags": [ + { + "id": "375399DC-F2B7-4A8C-8A03-C16B849489D3", + "name": "Tag-78" + }, + { + "id": "3BFB03A9-3106-44C7-823A-DB1A67E283C3", + "name": "Tag-47" + }, + { + "id": "461ADE06-0903-4BAF-97AB-CC713E5B1DD4", + "name": "Tag-174" + }, + { + "id": "9E250CCC-6530-4DC0-9D64-E7777B3C3B73", + "name": "Tag-177" + }, + { + "id": "D2427B7F-AF57-498B-A73E-E7D67FD5CFD9", + "name": "Tag-195" + } + ] + }, + { + "id": "14912B0B-EA77-47B8-8F1C-C8E4BE859D7C", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21S-42", + "name": "LL Mountain Frame - Silver, 42", + "description": "The product called \"LL Mountain Frame - Silver, 42\"", + "price": 264.05, + "tags": [ + { + "id": "4B10B00B-C1CA-4508-9848-3B1BD910B724", + "name": "Tag-30" + }, + { + "id": "4E102F3F-7D57-4CD7-88F4-AC5076A42C59", + "name": "Tag-91" + }, + { + "id": "7F518FB1-4664-4B20-9B9F-23D5B44F6798", + "name": "Tag-69" + }, + { + "id": "A0A28560-17B9-4457-B993-D39AF56B53C8", + "name": "Tag-99" + }, + { + "id": "B48D6572-67EB-4630-A1DB-AFD4AD7041C9", + "name": "Tag-100" + } + ] + }, + { + "id": "18711AD6-0999-4E74-B2F5-81720A6BA5A2", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-T928", + "name": "HL Touring Handlebars", + "description": "The product called \"HL Touring Handlebars\"", + "price": 91.57, + "tags": [ + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + } + ] + }, + { + "id": "18B722BF-4742-4F1F-8336-3AB2E76B2908", + "categoryId": "E048A761-8038-42C2-8367-F21FF0DAA3F4", + "categoryName": "Accessories, Fenders", + "sku": "FE-6654", + "name": "Fender Set - Mountain", + "description": "The product called \"Fender Set - Mountain\"", + "price": 21.98, + "tags": [ + { + "id": "27B7F8D5-1009-45B8-88F5-41008A0F0393", + "name": "Tag-61" + }, + { + "id": "40525E23-C1FB-4213-BF28-2B4C64BDC29B", + "name": "Tag-135" + }, + { + "id": "6FB11EB9-319C-431C-89D7-70113401D186", + "name": "Tag-154" + } + ] + }, + { + "id": "1E0D3EBA-563D-4DA1-8D6C-FE9C7A63EE2B", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "FW-R820", + "name": "HL Road Front Wheel", + "description": "The product called \"HL Road Front Wheel\"", + "price": 330.06, + "tags": [ + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + }, + { + "id": "D1E5CB02-8E7B-422F-9421-C0E608F0AC4C", + "name": "Tag-133" + }, + { + "id": "E6D5275B-8C42-47AE-BDEC-FC708DB3E0AC", + "name": "Tag-119" + } + ] + }, + { + "id": "209B4171-CB26-4231-8F41-D092F4679BB9", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94S-52", + "name": "HL Mountain Frame - Silver, 48", + "description": "The product called \"HL Mountain Frame - Silver, 48\"", + "price": 1364.5, + "tags": [] + }, + { + "id": "243AE98C-D657-415C-9EF4-D8FA8F8770AA", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50R-48", + "name": "Road-650 Red, 48", + "description": "The product called \"Road-650 Red, 48\"", + "price": 782.99, + "tags": [ + { + "id": "775908D7-2622-4C29-AF4D-F2274824DA3B", + "name": "Tag-89" + } + ] + }, + { + "id": "2595584F-EA4E-4D45-948E-99A17AF8C519", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R19B-48", + "name": "Road-750 Black, 48", + "description": "The product called \"Road-750 Black, 48\"", + "price": 539.99, + "tags": [ + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + }, + { + "id": "7990C336-92BD-41F9-8FB6-97390BC4D187", + "name": "Tag-189" + } + ] + }, + { + "id": "25B35002-7F61-45E3-AA55-80A743C3BC36", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "FW-R623", + "name": "LL Road Front Wheel", + "description": "The product called \"LL Road Front Wheel\"", + "price": 85.565, + "tags": [ + { + "id": "66D8EA21-E1F0-471C-A17F-02F3B149D6E6", + "name": "Tag-83" + }, + { + "id": "DBE23FA0-0D99-47F5-BCD7-3D798CE653AE", + "name": "Tag-55" + } + ] + }, + { + "id": "26E8185C-782A-4B48-87FA-1E715E3825FB", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R64Y-48", + "name": "Road-550-W Yellow, 48", + "description": "The product called \"Road-550-W Yellow, 48\"", + "price": 1120.49, + "tags": [ + { + "id": "46AC3482-E9A6-474D-A435-D3399F21991F", + "name": "Tag-90" + }, + { + "id": "9C89E562-1247-435D-B786-4E54024E681C", + "name": "Tag-128" + } + ] + }, + { + "id": "28A93A52-553C-4755-A2C4-07C1F5BD30F5", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94B-46", + "name": "HL Mountain Frame - Black, 46", + "description": "The product called \"HL Mountain Frame - Black, 46\"", + "price": 1349.6, + "tags": [] + }, + { + "id": "295ABC00-9080-479C-9733-A9BE712D7A18", + "categoryId": "C48B4EF4-D352-4CD2-BCB8-CE89B7DFA642", + "categoryName": "Clothing, Socks", + "sku": "SO-R809-L", + "name": "Racing Socks, L", + "description": "The product called \"Racing Socks, L\"", + "price": 8.99, + "tags": [] + }, + { + "id": "2BBCE73F-9D1D-4BE1-808C-8B174D0DA1A2", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21B-52", + "name": "LL Mountain Frame - Black, 52", + "description": "The product called \"LL Mountain Frame - Black, 52\"", + "price": 249.79, + "tags": [ + { + "id": "69212884-78CF-48C9-A5C6-B62E76725533", + "name": "Tag-104" + } + ] + }, + { + "id": "2FBE9F71-86EC-4FEB-BBF4-5580FD28E3FD", + "categoryId": "C7324EF3-D951-45D9-A345-A82EAE344394", + "categoryName": "Clothing, Shorts", + "sku": "SH-M897-X", + "name": "Men's Sports Shorts, XL", + "description": "The product called \"Men's Sports Shorts, XL\"", + "price": 59.99, + "tags": [ + { + "id": "033D3826-2851-4B97-9464-59D3675175D4", + "name": "Tag-108" + } + ] + }, + { + "id": "3933505E-7BD5-458D-84FE-546AA3520A66", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R68R-44", + "name": "Road-450 Red, 44", + "description": "The product called \"Road-450 Red, 44\"", + "price": 1457.99, + "tags": [ + { + "id": "76B3C6DC-3411-457B-96F5-A51CE015DAD9", + "name": "Tag-29" + }, + { + "id": "8BAC6191-1DAE-4F5B-88FC-7081B682095D", + "name": "Tag-15" + }, + { + "id": "9E250CCC-6530-4DC0-9D64-E7777B3C3B73", + "name": "Tag-177" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + }, + { + "id": "F3A39B6E-753C-4E70-859F-454E8A9624A9", + "name": "Tag-179" + } + ] + }, + { + "id": "39F4BE10-8C68-4E7E-A185-B05BCA543B9F", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50B-52", + "name": "Road-650 Black, 52", + "description": "The product called \"Road-650 Black, 52\"", + "price": 782.99, + "tags": [ + { + "id": "2901FEF6-491C-40F5-B2CE-ECF80735BE5D", + "name": "Tag-159" + }, + { + "id": "35047162-8B96-4BC7-A31D-4186126DBF00", + "name": "Tag-169" + }, + { + "id": "66D8EA21-E1F0-471C-A17F-02F3B149D6E6", + "name": "Tag-83" + }, + { + "id": "80F182C6-0619-4547-9A2D-F90A7913FACF", + "name": "Tag-96" + }, + { + "id": "CA170AAD-A5F6-42FF-B115-146FADD87298", + "name": "Tag-186" + } + ] + }, + { + "id": "3A70EDD4-6C8C-44AA-A13D-49D0F6058699", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R64Y-40", + "name": "Road-550-W Yellow, 40", + "description": "The product called \"Road-550-W Yellow, 40\"", + "price": 1120.49, + "tags": [ + { + "id": "2CE9DADE-DCAC-436C-9D69-B7C886A01B77", + "name": "Tag-101" + }, + { + "id": "CA7D17BB-45A6-47E6-A3E3-E70AF34C2072", + "name": "Tag-158" + } + ] + }, + { + "id": "3CE3E061-88E1-4430-BAC7-809B285FC702", + "categoryId": "C7324EF3-D951-45D9-A345-A82EAE344394", + "categoryName": "Clothing, Shorts", + "sku": "SH-M897-M", + "name": "Men's Sports Shorts, M", + "description": "The product called \"Men's Sports Shorts, M\"", + "price": 59.99, + "tags": [ + { + "id": "B1C00DC4-236A-4A5F-844C-3F56BBE87968", + "name": "Tag-167" + } + ] + }, + { + "id": "3D9B62A3-3CDF-45A2-B64C-8A9890818E2C", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21B-48", + "name": "LL Mountain Frame - Black, 48", + "description": "The product called \"LL Mountain Frame - Black, 48\"", + "price": 249.79, + "tags": [ + { + "id": "A4D9E596-B630-4792-BDD1-7D6459827820", + "name": "Tag-164" + } + ] + }, + { + "id": "3E144819-7455-4362-A4BB-FAD007A90AEF", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94S-44", + "name": "HL Mountain Frame - Silver, 44", + "description": "The product called \"HL Mountain Frame - Silver, 44\"", + "price": 1364.5, + "tags": [ + { + "id": "0C184C69-F4F2-4774-9645-46F53D297D95", + "name": "Tag-49" + }, + { + "id": "59676183-1BD7-48A0-B3B0-42B3C0800EB0", + "name": "Tag-64" + }, + { + "id": "775908D7-2622-4C29-AF4D-F2274824DA3B", + "name": "Tag-89" + }, + { + "id": "D32CFC73-640F-48B6-976D-B053DCD0F393", + "name": "Tag-178" + } + ] + }, + { + "id": "3F3E4045-AC4D-4D28-99D5-6C9C53F1DEAF", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21B-40", + "name": "LL Mountain Frame - Black, 40", + "description": "The product called \"LL Mountain Frame - Black, 40\"", + "price": 249.79, + "tags": [ + { + "id": "375399DC-F2B7-4A8C-8A03-C16B849489D3", + "name": "Tag-78" + }, + { + "id": "7019202D-B11A-4FAB-ACBC-2D0E5A4F72EF", + "name": "Tag-143" + } + ] + }, + { + "id": "42FDA4EC-96CA-4160-956A-3870549AF76E", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R64Y-42", + "name": "Road-550-W Yellow, 42", + "description": "The product called \"Road-550-W Yellow, 42\"", + "price": 1120.49, + "tags": [ + { + "id": "BA4D7ABD-2E82-4DC2-ACF2-5D3B0DEAE1C1", + "name": "Tag-59" + }, + { + "id": "CA170AAD-A5F6-42FF-B115-146FADD87298", + "name": "Tag-186" + }, + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + } + ] + }, + { + "id": "4973E28A-A70A-45B9-8517-5D3B647E82C2", + "categoryId": "BDC73EF8-1745-4A45-8944-D2868A763819", + "categoryName": "Accessories, Bike Racks", + "sku": "RA-H123", + "name": "Hitch Rack - 4-Bike", + "description": "The product called \"Hitch Rack - 4-Bike\"", + "price": 120.0, + "tags": [ + { + "id": "5D24B427-1402-49DE-B79B-5A7013579FBC", + "name": "Tag-76" + }, + { + "id": "CA7D17BB-45A6-47E6-A3E3-E70AF34C2072", + "name": "Tag-158" + } + ] + }, + { + "id": "49ACE2DB-4315-4C16-819E-BE372922C634", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "RW-R820", + "name": "HL Road Rear Wheel", + "description": "The product called \"HL Road Rear Wheel\"", + "price": 357.06, + "tags": [ + { + "id": "5A94DABD-FD34-48F7-9626-50872E214275", + "name": "Tag-181" + }, + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + } + ] + }, + { + "id": "49E5C64F-B689-4C0B-9E2C-5DFF006B929D", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63S-40", + "name": "ML Mountain Frame-W - Silver, 40", + "description": "The product called \"ML Mountain Frame-W - Silver, 40\"", + "price": 364.09, + "tags": [ + { + "id": "1A2E203E-B80D-4693-A7C2-AB39E31C9C61", + "name": "Tag-134" + }, + { + "id": "B3EC53EB-000D-4E66-975A-910771520A6E", + "name": "Tag-54" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + } + ] + }, + { + "id": "4F9FC42A-F43F-4C13-92FC-ADF701F48C36", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R79Y-44", + "name": "Road-350-W Yellow, 44", + "description": "The product called \"Road-350-W Yellow, 44\"", + "price": 1700.99, + "tags": [ + { + "id": "8BAC6191-1DAE-4F5B-88FC-7081B682095D", + "name": "Tag-15" + } + ] + }, + { + "id": "50DC9B64-03B8-49AB-9DB4-75D12B3180D8", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63B-48", + "name": "ML Mountain Frame - Black, 48", + "description": "The product called \"ML Mountain Frame - Black, 48\"", + "price": 348.76, + "tags": [] + }, + { + "id": "58C93A21-73D1-44D8-ACF1-3A9E1DB0CE0D", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R93R-52", + "name": "Road-150 Red, 52", + "description": "The product called \"Road-150 Red, 52\"", + "price": 3578.27, + "tags": [ + { + "id": "35047162-8B96-4BC7-A31D-4186126DBF00", + "name": "Tag-169" + }, + { + "id": "59676183-1BD7-48A0-B3B0-42B3C0800EB0", + "name": "Tag-64" + }, + { + "id": "A07D69D4-B8B9-4662-8148-8033DCDCC000", + "name": "Tag-142" + }, + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + } + ] + }, + { + "id": "5C24E8CD-2BFF-460A-88D4-3A2926407346", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-M918", + "name": "HL Mountain Handlebars", + "description": "The product called \"HL Mountain Handlebars\"", + "price": 120.27, + "tags": [ + { + "id": "4B8ECDDE-FF08-4916-8869-372D08EA8BBA", + "name": "Tag-106" + }, + { + "id": "B49C6195-5ABA-42FA-B15C-84CF9FE252FE", + "name": "Tag-129" + } + ] + }, + { + "id": "626D67C2-C316-49EB-8316-129BDFBFDE8A", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50R-60", + "name": "Road-650 Red, 60", + "description": "The product called \"Road-650 Red, 60\"", + "price": 782.99, + "tags": [ + { + "id": "8A104DF9-CB32-4C6E-951F-8F7DAF9E2BC1", + "name": "Tag-200" + }, + { + "id": "D56040DB-E5DF-40BE-9F2F-7E10F4340BCA", + "name": "Tag-31" + } + ] + }, + { + "id": "637D953B-42DB-4219-927F-51687E889A04", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R93R-56", + "name": "Road-150 Red, 56", + "description": "The product called \"Road-150 Red, 56\"", + "price": 3578.27, + "tags": [ + { + "id": "764C1CC8-2E5F-4EF5-83F6-8FF7441290B3", + "name": "Tag-190" + }, + { + "id": "765254E3-8E88-4C57-AADA-9F5126917970", + "name": "Tag-93" + }, + { + "id": "9C89E562-1247-435D-B786-4E54024E681C", + "name": "Tag-128" + }, + { + "id": "D77B44A9-7951-4CC8-BB27-8B5D78CFDDF8", + "name": "Tag-124" + }, + { + "id": "DBE23FA0-0D99-47F5-BCD7-3D798CE653AE", + "name": "Tag-55" + } + ] + }, + { + "id": "64B3F15E-3E21-4ECD-9013-E50ABD324337", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "RW-M423", + "name": "LL Mountain Rear Wheel", + "description": "The product called \"LL Mountain Rear Wheel\"", + "price": 87.745, + "tags": [] + }, + { + "id": "6964ECD2-6FC5-4D65-88BC-126BC2BE2CCB", + "categoryId": "C48B4EF4-D352-4CD2-BCB8-CE89B7DFA642", + "categoryName": "Clothing, Socks", + "sku": "SO-B909-L", + "name": "Mountain Bike Socks, L", + "description": "The product called \"Mountain Bike Socks, L\"", + "price": 9.5, + "tags": [ + { + "id": "23ECB896-D6C6-4E9D-BE43-1908CB5C5E07", + "name": "Tag-112" + }, + { + "id": "567D183B-9ED1-47B4-AE22-80C52BF41067", + "name": "Tag-165" + }, + { + "id": "F07885AF-BD6C-4B71-88B1-F04295992176", + "name": "Tag-149" + } + ] + }, + { + "id": "6AEDC59D-F3E3-4B4F-9290-7EFC225B7F42", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "FW-M928", + "name": "HL Mountain Front Wheel", + "description": "The product called \"HL Mountain Front Wheel\"", + "price": 300.215, + "tags": [ + { + "id": "0485B9B8-3A52-49FD-98D4-8515CCD057F3", + "name": "Tag-162" + }, + { + "id": "606E1794-5457-42A7-90FB-206142EEF023", + "name": "Tag-132" + }, + { + "id": "A30014DE-B012-4049-B456-4630527AF47F", + "name": "Tag-9" + } + ] + }, + { + "id": "6B41F665-5810-4AFD-8323-6106A8593EFC", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "RW-M928", + "name": "HL Mountain Rear Wheel", + "description": "The product called \"HL Mountain Rear Wheel\"", + "price": 327.215, + "tags": [ + { + "id": "1B387A00-57D3-4444-8331-18A90725E98B", + "name": "Tag-43" + } + ] + }, + { + "id": "6E059A32-56B5-4D98-AC6A-945B488B32A1", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R93R-62", + "name": "Road-150 Red, 62", + "description": "The product called \"Road-150 Red, 62\"", + "price": 3578.27, + "tags": [] + }, + { + "id": "6EAA3D6B-A290-48C4-B3ED-D668261512CD", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63S-46", + "name": "ML Mountain Frame-W - Silver, 46", + "description": "The product called \"ML Mountain Frame-W - Silver, 46\"", + "price": 364.09, + "tags": [ + { + "id": "EBDBD608-416A-4FE2-96DF-02367C8D071E", + "name": "Tag-102" + } + ] + }, + { + "id": "707106D2-0687-4217-AD2C-A6B828DFE075", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "RW-R762", + "name": "ML Road Rear Wheel", + "description": "The product called \"ML Road Rear Wheel\"", + "price": 275.385, + "tags": [ + { + "id": "1830EEDD-AF21-43EA-A13C-393ED77DEAC5", + "name": "Tag-152" + }, + { + "id": "6C6D061E-F701-41DC-AEA2-7A5C28061840", + "name": "Tag-98" + } + ] + }, + { + "id": "71BC9DC2-A409-4B4A-A34B-FCBF1E596FCF", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R93R-48", + "name": "Road-150 Red, 48", + "description": "The product called \"Road-150 Red, 48\"", + "price": 3578.27, + "tags": [ + { + "id": "125497D0-9175-4ECD-844D-DA71E5F4ED43", + "name": "Tag-42" + }, + { + "id": "227FF627-9E87-4BE5-8254-17BB155B0AD7", + "name": "Tag-23" + }, + { + "id": "7B37373F-FC14-44FD-96AA-32F4854E0B6B", + "name": "Tag-63" + }, + { + "id": "8AAFD985-8BCE-4FA8-85A2-2CA67D9DF8E6", + "name": "Tag-172" + }, + { + "id": "DBC21C2A-0AF6-45D4-B2C9-703DD708A821", + "name": "Tag-14" + } + ] + }, + { + "id": "7236DDB5-CFE0-4D3D-8FE5-799B398396B1", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50B-48", + "name": "Road-650 Black, 48", + "description": "The product called \"Road-650 Black, 48\"", + "price": 782.99, + "tags": [ + { + "id": "01E0AFB1-867D-4BAA-B0DF-2E99D056EDA2", + "name": "Tag-107" + }, + { + "id": "69212884-78CF-48C9-A5C6-B62E76725533", + "name": "Tag-104" + } + ] + }, + { + "id": "7355D821-E33B-410B-AE64-D5A535F767EB", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-M243", + "name": "LL Mountain Handlebars", + "description": "The product called \"LL Mountain Handlebars\"", + "price": 44.54, + "tags": [] + }, + { + "id": "744A624B-E4C2-429E-8A69-DC3B57682BD5", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21B-42", + "name": "LL Mountain Frame - Black, 42", + "description": "The product called \"LL Mountain Frame - Black, 42\"", + "price": 249.79, + "tags": [ + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + }, + { + "id": "ECBBCC15-3016-4075-B084-4B49DA754814", + "name": "Tag-138" + }, + { + "id": "F533A770-1E5D-4B48-8792-E16E155B6E38", + "name": "Tag-87" + } + ] + }, + { + "id": "78E7D28A-2D53-40DC-9ED2-8E2841820DEB", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50B-62", + "name": "Road-650 Black, 62", + "description": "The product called \"Road-650 Black, 62\"", + "price": 782.99, + "tags": [ + { + "id": "0BC579CA-03FC-4AA6-85AA-A55035201E43", + "name": "Tag-21" + }, + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + }, + { + "id": "F202FBC3-B5AA-4E0F-950B-2B5715AC0B3B", + "name": "Tag-173" + } + ] + }, + { + "id": "7AD4F00E-BB64-4B02-AC6B-0D5F04B01CAB", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R64Y-38", + "name": "Road-550-W Yellow, 38", + "description": "The product called \"Road-550-W Yellow, 38\"", + "price": 1120.49, + "tags": [ + { + "id": "028057B8-8F03-4C18-B853-66510D354A72", + "name": "Tag-57" + }, + { + "id": "27B7F8D5-1009-45B8-88F5-41008A0F0393", + "name": "Tag-61" + }, + { + "id": "84C1934D-F048-4D2B-8525-323AFE2A7C7C", + "name": "Tag-184" + }, + { + "id": "D69B1B6C-4963-4E85-8FA5-6A3E1CD1C83B", + "name": "Tag-187" + } + ] + }, + { + "id": "7EF2B766-E966-4809-B568-372823002877", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63B-40", + "name": "ML Mountain Frame - Black, 40", + "description": "The product called \"ML Mountain Frame - Black, 40\"", + "price": 348.76, + "tags": [ + { + "id": "6FB11EB9-319C-431C-89D7-70113401D186", + "name": "Tag-154" + }, + { + "id": "718DAED6-2186-4E09-8C02-CCC58281838D", + "name": "Tag-94" + } + ] + }, + { + "id": "829B2717-0D74-43D3-BBD8-27CFDEF5ACA1", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94B-48", + "name": "HL Mountain Frame - Black, 48", + "description": "The product called \"HL Mountain Frame - Black, 48\"", + "price": 1349.6, + "tags": [ + { + "id": "46AC3482-E9A6-474D-A435-D3399F21991F", + "name": "Tag-90" + }, + { + "id": "7B37373F-FC14-44FD-96AA-32F4854E0B6B", + "name": "Tag-63" + }, + { + "id": "A49D83E4-E506-4301-8110-E114599B4A35", + "name": "Tag-27" + }, + { + "id": "AEFA79EF-CBF1-4824-AAF7-1D20EA85119B", + "name": "Tag-17" + } + ] + }, + { + "id": "878C50F0-7E29-4D0D-A52E-6D8B063673E3", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89R-58", + "name": "Road-250 Red, 58", + "description": "The product called \"Road-250 Red, 58\"", + "price": 2443.35, + "tags": [ + { + "id": "2CE9DADE-DCAC-436C-9D69-B7C886A01B77", + "name": "Tag-101" + }, + { + "id": "762CE1E0-5615-418E-B476-BCD46AD5E79E", + "name": "Tag-137" + } + ] + }, + { + "id": "8A4C4A7F-6EE1-4436-89E3-80AA2D8A1154", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "RW-R623", + "name": "LL Road Rear Wheel", + "description": "The product called \"LL Road Rear Wheel\"", + "price": 112.565, + "tags": [ + { + "id": "537DB3C8-8636-4005-8FE2-32EECEBA5B3F", + "name": "Tag-80" + }, + { + "id": "5D24B427-1402-49DE-B79B-5A7013579FBC", + "name": "Tag-76" + }, + { + "id": "7F518FB1-4664-4B20-9B9F-23D5B44F6798", + "name": "Tag-69" + }, + { + "id": "BE894A90-F425-4BE3-B9DF-56525DD54F62", + "name": "Tag-62" + }, + { + "id": "CAF27567-B4CB-463C-A54E-5EF1F2657DD2", + "name": "Tag-75" + } + ] + }, + { + "id": "8B8184BF-B79B-4157-BAA6-D30413BCC7A9", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "RW-M762", + "name": "ML Mountain Rear Wheel", + "description": "The product called \"ML Mountain Rear Wheel\"", + "price": 236.025, + "tags": [] + }, + { + "id": "8DB727BC-BE6B-4472-93F9-977B927D0C36", + "categoryId": "ACCC1FC1-7601-4F7A-AFA7-29C892F0FBE3", + "categoryName": "Clothing, Caps", + "sku": "CA-1098", + "name": "AWC Logo Cap", + "description": "The product called \"AWC Logo Cap\"", + "price": 8.99, + "tags": [ + { + "id": "511652EB-9EC2-4235-BA77-0C6E4E316679", + "name": "Tag-199" + }, + { + "id": "BA4D7ABD-2E82-4DC2-ACF2-5D3B0DEAE1C1", + "name": "Tag-59" + } + ] + }, + { + "id": "8FE13D26-469C-41FE-BD7E-0A856A82F95C", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94S-38", + "name": "HL Mountain Frame - Silver, 38", + "description": "The product called \"HL Mountain Frame - Silver, 38\"", + "price": 1364.5, + "tags": [ + { + "id": "A49D83E4-E506-4301-8110-E114599B4A35", + "name": "Tag-27" + }, + { + "id": "D2427B7F-AF57-498B-A73E-E7D67FD5CFD9", + "name": "Tag-195" + } + ] + }, + { + "id": "90888587-BBBD-4632-8A48-5B979586DEE4", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50R-62", + "name": "Road-650 Red, 62", + "description": "The product called \"Road-650 Red, 62\"", + "price": 782.99, + "tags": [ + { + "id": "80F182C6-0619-4547-9A2D-F90A7913FACF", + "name": "Tag-96" + }, + { + "id": "8DC9DFB4-1946-427A-A0A0-E06E1448CC63", + "name": "Tag-171" + }, + { + "id": "BDA92549-CBC2-4DC1-9C82-18D1A629C3F3", + "name": "Tag-145" + }, + { + "id": "BE894A90-F425-4BE3-B9DF-56525DD54F62", + "name": "Tag-62" + } + ] + }, + { + "id": "91E5405C-DC61-42CE-B900-0F46C94FBBA5", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R64Y-44", + "name": "Road-550-W Yellow, 44", + "description": "The product called \"Road-550-W Yellow, 44\"", + "price": 1120.49, + "tags": [ + { + "id": "A2AFF2FF-8438-44A3-8AC6-20A50422D82A", + "name": "Tag-18" + }, + { + "id": "A49D83E4-E506-4301-8110-E114599B4A35", + "name": "Tag-27" + }, + { + "id": "B1EBD7E0-BBE0-4AFB-AC6C-50649484780B", + "name": "Tag-40" + }, + { + "id": "D2427B7F-AF57-498B-A73E-E7D67FD5CFD9", + "name": "Tag-195" + }, + { + "id": "D77B44A9-7951-4CC8-BB27-8B5D78CFDDF8", + "name": "Tag-124" + } + ] + }, + { + "id": "9363838B-2D13-48E8-986D-C9625BE5AB26", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50B-60", + "name": "Road-650 Black, 60", + "description": "The product called \"Road-650 Black, 60\"", + "price": 782.99, + "tags": [ + { + "id": "028057B8-8F03-4C18-B853-66510D354A72", + "name": "Tag-57" + }, + { + "id": "46AC3482-E9A6-474D-A435-D3399F21991F", + "name": "Tag-90" + }, + { + "id": "79E61D0F-3C95-4353-BF27-DB04535088C9", + "name": "Tag-50" + }, + { + "id": "B1EBD7E0-BBE0-4AFB-AC6C-50649484780B", + "name": "Tag-40" + } + ] + }, + { + "id": "93A037C1-7135-4544-A688-3A3A75F25D0E", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94B-42", + "name": "HL Mountain Frame - Black, 42", + "description": "The product called \"HL Mountain Frame - Black, 42\"", + "price": 1349.6, + "tags": [] + }, + { + "id": "9E5C74FD-F685-45AE-A799-D67EFB5C28A1", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R79Y-40", + "name": "Road-350-W Yellow, 40", + "description": "The product called \"Road-350-W Yellow, 40\"", + "price": 1700.99, + "tags": [ + { + "id": "069169DD-F4B3-4769-8841-13B5FF745932", + "name": "Tag-157" + } + ] + }, + { + "id": "9E5DD0E4-89B5-4300-BD49-87518EE9DB6A", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-R956", + "name": "HL Road Handlebars", + "description": "The product called \"HL Road Handlebars\"", + "price": 120.27, + "tags": [ + { + "id": "403AE98F-892E-4FEC-B262-A264CF1F52A9", + "name": "Tag-45" + }, + { + "id": "89500F13-B516-4F77-8128-47FC412BEFCD", + "name": "Tag-151" + }, + { + "id": "D1E5CB02-8E7B-422F-9421-C0E608F0AC4C", + "name": "Tag-133" + } + ] + }, + { + "id": "9FEC8F06-D741-42EC-AF1D-E2F83BABC9F5", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63S-38", + "name": "ML Mountain Frame-W - Silver, 38", + "description": "The product called \"ML Mountain Frame-W - Silver, 38\"", + "price": 364.09, + "tags": [] + }, + { + "id": "A1D803E1-B9DE-49B4-9E61-66F5C3CD679A", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-R504", + "name": "LL Road Handlebars", + "description": "The product called \"LL Road Handlebars\"", + "price": 44.54, + "tags": [ + { + "id": "403AE98F-892E-4FEC-B262-A264CF1F52A9", + "name": "Tag-45" + }, + { + "id": "D69B1B6C-4963-4E85-8FA5-6A3E1CD1C83B", + "name": "Tag-187" + } + ] + }, + { + "id": "A374B506-8D35-456B-8C63-BCE78B5083B8", + "categoryId": "C7324EF3-D951-45D9-A345-A82EAE344394", + "categoryName": "Clothing, Shorts", + "sku": "SH-W890-M", + "name": "Women's Mountain Shorts, M", + "description": "The product called \"Women's Mountain Shorts, M\"", + "price": 69.99, + "tags": [] + }, + { + "id": "B3217262-876C-4C29-A201-06101B710396", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21S-40", + "name": "LL Mountain Frame - Silver, 40", + "description": "The product called \"LL Mountain Frame - Silver, 40\"", + "price": 264.05, + "tags": [ + { + "id": "89FB612A-F9AA-4196-B5F5-B9FA16D558DC", + "name": "Tag-175" + }, + { + "id": "8CA1BBD8-D00B-4654-AABA-5C8724C6F4BD", + "name": "Tag-81" + }, + { + "id": "BBE8A68F-6458-410E-BFF7-759507DCE858", + "name": "Tag-114" + } + ] + }, + { + "id": "B39A06DD-3A51-470E-8253-8D6ACB3EA102", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21S-48", + "name": "LL Mountain Frame - Silver, 48", + "description": "The product called \"LL Mountain Frame - Silver, 48\"", + "price": 264.05, + "tags": [ + { + "id": "33AFFF1B-30AA-41C5-8510-34B67A523CA9", + "name": "Tag-110" + } + ] + }, + { + "id": "B3C8AE66-8E4B-4605-A78D-FF2A8C4EAD9A", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94S-46", + "name": "HL Mountain Frame - Silver, 46", + "description": "The product called \"HL Mountain Frame - Silver, 46\"", + "price": 1364.5, + "tags": [] + }, + { + "id": "B6591222-0FB9-415F-8F2B-18B56A483AA1", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-R720", + "name": "ML Road Handlebars", + "description": "The product called \"ML Road Handlebars\"", + "price": 61.92, + "tags": [ + { + "id": "E23954CF-D79A-433E-9BE6-FD787C5E4C9B", + "name": "Tag-111" + }, + { + "id": "F287FE0A-712B-4B52-925F-5047B34F3610", + "name": "Tag-197" + } + ] + }, + { + "id": "B73FFF5D-37A0-4A29-A42C-D91CD6743593", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50R-52", + "name": "Road-650 Red, 52", + "description": "The product called \"Road-650 Red, 52\"", + "price": 782.99, + "tags": [ + { + "id": "812C1444-1DEA-480D-88E7-B9609ECA783C", + "name": "Tag-136" + } + ] + }, + { + "id": "B8E30737-758B-49E0-A153-B210B80749F4", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21S-52", + "name": "LL Mountain Frame - Silver, 52", + "description": "The product called \"LL Mountain Frame - Silver, 52\"", + "price": 264.05, + "tags": [ + { + "id": "2CE9DADE-DCAC-436C-9D69-B7C886A01B77", + "name": "Tag-101" + } + ] + }, + { + "id": "BF3E0E82-DCFC-4EA3-A71C-8C9EAA329E14", + "categoryId": "C48B4EF4-D352-4CD2-BCB8-CE89B7DFA642", + "categoryName": "Clothing, Socks", + "sku": "SO-B909-M", + "name": "Mountain Bike Socks, M", + "description": "The product called \"Mountain Bike Socks, M\"", + "price": 9.5, + "tags": [ + { + "id": "F41CEB6B-FFD0-40A2-BC0F-F89FC3256F09", + "name": "Tag-13" + } + ] + }, + { + "id": "C461038A-6DB6-4EC7-924F-ECA906259A6E", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R79Y-42", + "name": "Road-350-W Yellow, 42", + "description": "The product called \"Road-350-W Yellow, 42\"", + "price": 1700.99, + "tags": [ + { + "id": "0C184C69-F4F2-4774-9645-46F53D297D95", + "name": "Tag-49" + }, + { + "id": "304041C4-8C80-4C1E-9EE9-8A1DEFCF39FC", + "name": "Tag-72" + }, + { + "id": "89FB612A-F9AA-4196-B5F5-B9FA16D558DC", + "name": "Tag-175" + }, + { + "id": "A2176C7A-4E0D-4283-AFAA-319A77E9C122", + "name": "Tag-19" + }, + { + "id": "DCF66D9A-E2BF-4C70-8AC1-AD55E5988E9D", + "name": "Tag-37" + } + ] + }, + { + "id": "C6941C95-C463-4F66-BE5F-8CA9C5F7FD91", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89R-52", + "name": "Road-250 Red, 52", + "description": "The product called \"Road-250 Red, 52\"", + "price": 2443.35, + "tags": [ + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + }, + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + }, + { + "id": "F132E7B8-65B1-471E-8D3E-5E8D7110CA48", + "name": "Tag-118" + } + ] + }, + { + "id": "C7B411C0-31F7-4634-B62F-ED349027EFE0", + "categoryId": "C7324EF3-D951-45D9-A345-A82EAE344394", + "categoryName": "Clothing, Shorts", + "sku": "SH-W890-L", + "name": "Women's Mountain Shorts, L", + "description": "The product called \"Women's Mountain Shorts, L\"", + "price": 69.99, + "tags": [ + { + "id": "CA170AAD-A5F6-42FF-B115-146FADD87298", + "name": "Tag-186" + } + ] + }, + { + "id": "C7BE1762-AC9D-4239-BD15-F3096B08AFA9", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "FW-M423", + "name": "LL Mountain Front Wheel", + "description": "The product called \"LL Mountain Front Wheel\"", + "price": 60.745, + "tags": [] + }, + { + "id": "CAC12FD1-C2ED-4B75-9199-86EB2044DB0D", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63B-44", + "name": "ML Mountain Frame - Black, 44", + "description": "The product called \"ML Mountain Frame - Black, 44\"", + "price": 348.76, + "tags": [ + { + "id": "18AC309F-F81C-4234-A752-5DDD2BEAEE83", + "name": "Tag-32" + } + ] + }, + { + "id": "CB1F441C-90E4-4E0B-ABDA-E0D07AFC2E01", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89B-58", + "name": "Road-250 Black, 58", + "description": "The product called \"Road-250 Black, 58\"", + "price": 2443.35, + "tags": [ + { + "id": "1745EF28-6E0B-4FED-8925-BC3174F583B0", + "name": "Tag-48" + } + ] + }, + { + "id": "CDFC37BB-8DB8-4D66-841D-7C3FF28B1F0A", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-T721", + "name": "LL Touring Handlebars", + "description": "The product called \"LL Touring Handlebars\"", + "price": 46.09, + "tags": [ + { + "id": "0C184C69-F4F2-4774-9645-46F53D297D95", + "name": "Tag-49" + }, + { + "id": "1745EF28-6E0B-4FED-8925-BC3174F583B0", + "name": "Tag-48" + }, + { + "id": "1830EEDD-AF21-43EA-A13C-393ED77DEAC5", + "name": "Tag-152" + }, + { + "id": "AC4CC3CC-4E6B-461D-9B0E-4218EDDF3142", + "name": "Tag-122" + }, + { + "id": "B49C6195-5ABA-42FA-B15C-84CF9FE252FE", + "name": "Tag-129" + } + ] + }, + { + "id": "CE35E963-F6ED-4108-BC4B-6A3DD0557B47", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21B-44", + "name": "LL Mountain Frame - Black, 44", + "description": "The product called \"LL Mountain Frame - Black, 44\"", + "price": 249.79, + "tags": [ + { + "id": "50F59C1E-E78D-4543-B4D0-B06E4C59E617", + "name": "Tag-126" + }, + { + "id": "89500F13-B516-4F77-8128-47FC412BEFCD", + "name": "Tag-151" + }, + { + "id": "E1A62ABF-BBC3-48A2-BAC6-E3350D023C83", + "name": "Tag-194" + } + ] + }, + { + "id": "D17F948A-2316-4E2E-8D89-973C92FAD9ED", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63S-42", + "name": "ML Mountain Frame-W - Silver, 42", + "description": "The product called \"ML Mountain Frame-W - Silver, 42\"", + "price": 364.09, + "tags": [ + { + "id": "14CFF1D6-7749-4A57-85B3-783F47731F32", + "name": "Tag-7" + }, + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + }, + { + "id": "718DAED6-2186-4E09-8C02-CCC58281838D", + "name": "Tag-94" + }, + { + "id": "E83726D0-E486-42C1-BBD3-594C1C5AED6D", + "name": "Tag-155" + } + ] + }, + { + "id": "D1F006A3-C6C0-42A4-B479-FC3A510C9E9E", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M63B-38", + "name": "ML Mountain Frame - Black, 38", + "description": "The product called \"ML Mountain Frame - Black, 38\"", + "price": 348.76, + "tags": [ + { + "id": "1A2E203E-B80D-4693-A7C2-AB39E31C9C61", + "name": "Tag-134" + }, + { + "id": "7CACE200-11A3-4E2D-A88E-25E9614D2BE9", + "name": "Tag-97" + }, + { + "id": "9C89E562-1247-435D-B786-4E54024E681C", + "name": "Tag-128" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + } + ] + }, + { + "id": "D616598D-3159-4616-BF9D-FD316BF07224", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R68R-60", + "name": "Road-450 Red, 60", + "description": "The product called \"Road-450 Red, 60\"", + "price": 1457.99, + "tags": [] + }, + { + "id": "D8CA2EB2-7532-4F74-9D1D-E8CCC7326604", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50R-58", + "name": "Road-650 Red, 58", + "description": "The product called \"Road-650 Red, 58\"", + "price": 782.99, + "tags": [ + { + "id": "87BC6842-2CCA-4CD3-994C-33AB101455F4", + "name": "Tag-12" + }, + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + }, + { + "id": "BDA92549-CBC2-4DC1-9C82-18D1A629C3F3", + "name": "Tag-145" + }, + { + "id": "E6D5275B-8C42-47AE-BDEC-FC708DB3E0AC", + "name": "Tag-119" + } + ] + }, + { + "id": "D9FCCC86-10FD-47E9-B68B-F0DFE758AA0E", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "FW-M762", + "name": "ML Mountain Front Wheel", + "description": "The product called \"ML Mountain Front Wheel\"", + "price": 209.025, + "tags": [ + { + "id": "0573D684-9140-4DEE-89AF-4E4A90E65666", + "name": "Tag-113" + }, + { + "id": "069169DD-F4B3-4769-8841-13B5FF745932", + "name": "Tag-157" + }, + { + "id": "2901FEF6-491C-40F5-B2CE-ECF80735BE5D", + "name": "Tag-159" + }, + { + "id": "319E277F-6B7A-483D-81BA-1EC34CC700EB", + "name": "Tag-163" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + } + ] + }, + { + "id": "E2FD2420-B084-4764-8BC4-94574DFF1AC6", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R68R-48", + "name": "Road-450 Red, 48", + "description": "The product called \"Road-450 Red, 48\"", + "price": 1457.99, + "tags": [ + { + "id": "1CFF105D-294E-4E2D-ADE4-0615CBDEBC28", + "name": "Tag-44" + }, + { + "id": "3A3A99B6-E3BF-46D0-BAD9-F5F4DBB720F4", + "name": "Tag-70" + }, + { + "id": "52E5F264-BA4E-4A8B-BF8C-69E50F81B676", + "name": "Tag-67" + }, + { + "id": "6FB11EB9-319C-431C-89D7-70113401D186", + "name": "Tag-154" + }, + { + "id": "DCDBD26C-4D71-4F91-BBE9-98D1897E704D", + "name": "Tag-68" + } + ] + }, + { + "id": "E49AE44E-40AC-4FD8-A007-EEC046F02684", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M21S-44", + "name": "LL Mountain Frame - Silver, 44", + "description": "The product called \"LL Mountain Frame - Silver, 44\"", + "price": 264.05, + "tags": [] + }, + { + "id": "E54D5E31-073F-4D37-8400-E63A2994C92C", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "FW-R762", + "name": "ML Road Front Wheel", + "description": "The product called \"ML Road Front Wheel\"", + "price": 248.385, + "tags": [ + { + "id": "29CBEDD8-D9C3-43A3-B20F-63224FEE0D34", + "name": "Tag-11" + }, + { + "id": "52E5F264-BA4E-4A8B-BF8C-69E50F81B676", + "name": "Tag-67" + }, + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + } + ] + }, + { + "id": "E5C302BB-43AC-4E47-8355-F0D2165C394A", + "categoryId": "B5EF9CFA-FD22-4888-858D-2C8C5E4B2EFA", + "categoryName": "Components, Handlebars", + "sku": "HB-M763", + "name": "ML Mountain Handlebars", + "description": "The product called \"ML Mountain Handlebars\"", + "price": 61.92, + "tags": [ + { + "id": "23ECB896-D6C6-4E9D-BE43-1908CB5C5E07", + "name": "Tag-112" + }, + { + "id": "B18FB652-C4B6-4A40-BA22-1E687C1A58CE", + "name": "Tag-161" + }, + { + "id": "BEBD68EF-901A-4282-911F-28AB44B802FE", + "name": "Tag-139" + } + ] + }, + { + "id": "E5CEC513-A0F9-4437-B26D-A9FB28237554", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89B-44", + "name": "Road-250 Black, 44", + "description": "The product called \"Road-250 Black, 44\"", + "price": 2443.35, + "tags": [] + }, + { + "id": "E9F21624-C055-4D5F-8C02-8F69C1EA0AEE", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50R-44", + "name": "Road-650 Red, 44", + "description": "The product called \"Road-650 Red, 44\"", + "price": 782.99, + "tags": [ + { + "id": "6C6D061E-F701-41DC-AEA2-7A5C28061840", + "name": "Tag-98" + }, + { + "id": "A37349FB-4A1C-4382-A845-DF81830A7B4D", + "name": "Tag-150" + }, + { + "id": "B805F2EF-E936-4A6E-8DBB-0543A8C4F949", + "name": "Tag-183" + }, + { + "id": "D69B1B6C-4963-4E85-8FA5-6A3E1CD1C83B", + "name": "Tag-187" + }, + { + "id": "DAC25651-3DD3-4483-8FD1-581DC41EF34B", + "name": "Tag-56" + } + ] + }, + { + "id": "EB793BFC-82A4-4EF4-BB2A-4FD218DD1843", + "categoryId": "C7324EF3-D951-45D9-A345-A82EAE344394", + "categoryName": "Clothing, Shorts", + "sku": "SH-M897-L", + "name": "Men's Sports Shorts, L", + "description": "The product called \"Men's Sports Shorts, L\"", + "price": 59.99, + "tags": [ + { + "id": "0C184C69-F4F2-4774-9645-46F53D297D95", + "name": "Tag-49" + }, + { + "id": "304041C4-8C80-4C1E-9EE9-8A1DEFCF39FC", + "name": "Tag-72" + }, + { + "id": "567D183B-9ED1-47B4-AE22-80C52BF41067", + "name": "Tag-165" + }, + { + "id": "A07D69D4-B8B9-4662-8148-8033DCDCC000", + "name": "Tag-142" + } + ] + }, + { + "id": "EC2ADE30-9132-4DFE-B8FE-D233DDFFAAB3", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89B-52", + "name": "Road-250 Black, 52", + "description": "The product called \"Road-250 Black, 52\"", + "price": 2443.35, + "tags": [ + { + "id": "028057B8-8F03-4C18-B853-66510D354A72", + "name": "Tag-57" + }, + { + "id": "52FCE975-91EE-4789-9E36-94EC766F02A0", + "name": "Tag-35" + }, + { + "id": "AA24EC37-7CE3-4ABE-B935-EC62D5FB6947", + "name": "Tag-148" + }, + { + "id": "F629F27D-3301-4906-BE9B-C46D6D6F6141", + "name": "Tag-65" + } + ] + }, + { + "id": "F1AA8B6D-4CF2-4DB2-BB17-997C2BD1A6AC", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R68R-58", + "name": "Road-450 Red, 58", + "description": "The product called \"Road-450 Red, 58\"", + "price": 1457.99, + "tags": [ + { + "id": "1CFF105D-294E-4E2D-ADE4-0615CBDEBC28", + "name": "Tag-44" + }, + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + }, + { + "id": "7337386B-E865-4ADC-BA17-4437CB02E3BE", + "name": "Tag-8" + }, + { + "id": "A37349FB-4A1C-4382-A845-DF81830A7B4D", + "name": "Tag-150" + } + ] + }, + { + "id": "F25B4447-9094-42DB-8244-186A279E461C", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R50B-58", + "name": "Road-650 Black, 58", + "description": "The product called \"Road-650 Black, 58\"", + "price": 782.99, + "tags": [ + { + "id": "7337386B-E865-4ADC-BA17-4437CB02E3BE", + "name": "Tag-8" + }, + { + "id": "8A104DF9-CB32-4C6E-951F-8F7DAF9E2BC1", + "name": "Tag-200" + }, + { + "id": "A34D34F7-3286-4FA4-B4B0-5E61CCEEE197", + "name": "Tag-4" + }, + { + "id": "A50C570B-B3FC-4678-96C8-2D117DD11A12", + "name": "Tag-66" + }, + { + "id": "E23954CF-D79A-433E-9BE6-FD787C5E4C9B", + "name": "Tag-111" + } + ] + }, + { + "id": "F3012443-6317-4856-800A-6E108A5F8AE5", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94S-42", + "name": "HL Mountain Frame - Silver, 42", + "description": "The product called \"HL Mountain Frame - Silver, 42\"", + "price": 1364.5, + "tags": [ + { + "id": "1830EEDD-AF21-43EA-A13C-393ED77DEAC5", + "name": "Tag-152" + }, + { + "id": "9C89E562-1247-435D-B786-4E54024E681C", + "name": "Tag-128" + }, + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + }, + { + "id": "BEBD68EF-901A-4282-911F-28AB44B802FE", + "name": "Tag-139" + } + ] + }, + { + "id": "F42672DA-1B19-463B-B49D-AC4EA2E1F77C", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89B-48", + "name": "Road-250 Black, 48", + "description": "The product called \"Road-250 Black, 48\"", + "price": 2443.35, + "tags": [ + { + "id": "0BC579CA-03FC-4AA6-85AA-A55035201E43", + "name": "Tag-21" + }, + { + "id": "45CBB7FF-FA48-49D8-89EF-F1D0B8AC3923", + "name": "Tag-86" + }, + { + "id": "6C6D061E-F701-41DC-AEA2-7A5C28061840", + "name": "Tag-98" + }, + { + "id": "8A104DF9-CB32-4C6E-951F-8F7DAF9E2BC1", + "name": "Tag-200" + }, + { + "id": "94C05E5C-13B7-41DA-89DF-98C11195AE1E", + "name": "Tag-79" + } + ] + }, + { + "id": "F58F50FB-BE83-4AE1-ACF0-662F702B2E5A", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R89R-48", + "name": "Road-250 Red, 48", + "description": "The product called \"Road-250 Red, 48\"", + "price": 2443.35, + "tags": [ + { + "id": "0917B02C-1EAB-4EBA-BA74-5E6D3C5CC96A", + "name": "Tag-192" + }, + { + "id": "33AFFF1B-30AA-41C5-8510-34B67A523CA9", + "name": "Tag-110" + }, + { + "id": "9653F306-0B3C-4856-ABF8-13C3F04AE4F0", + "name": "Tag-36" + } + ] + }, + { + "id": "F59ECC09-CAA5-4D3C-87A7-16945A92EA2D", + "categoryId": "C7324EF3-D951-45D9-A345-A82EAE344394", + "categoryName": "Clothing, Shorts", + "sku": "SH-W890-S", + "name": "Women's Mountain Shorts, S", + "description": "The product called \"Women's Mountain Shorts, S\"", + "price": 69.99, + "tags": [ + { + "id": "4E102F3F-7D57-4CD7-88F4-AC5076A42C59", + "name": "Tag-91" + }, + { + "id": "7019202D-B11A-4FAB-ACBC-2D0E5A4F72EF", + "name": "Tag-143" + } + ] + }, + { + "id": "F7078B88-417F-44C0-9345-DCEDDB5C41F8", + "categoryId": "C7324EF3-D951-45D9-A345-A82EAE344394", + "categoryName": "Clothing, Shorts", + "sku": "SH-M897-S", + "name": "Men's Sports Shorts, S", + "description": "The product called \"Men's Sports Shorts, S\"", + "price": 59.99, + "tags": [] + }, + { + "id": "F741B78B-36F0-42E9-A26A-FAE908E0FB3A", + "categoryId": "C80E3277-604C-4C6D-85AE-FCB237C08751", + "categoryName": "Components, Wheels", + "sku": "RW-T905", + "name": "Touring Rear Wheel", + "description": "The product called \"Touring Rear Wheel\"", + "price": 245.01, + "tags": [] + }, + { + "id": "FD00408C-57B1-431C-B1FA-2CAF41D87CD4", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R19B-44", + "name": "Road-750 Black, 44", + "description": "The product called \"Road-750 Black, 44\"", + "price": 539.99, + "tags": [ + { + "id": "0BC579CA-03FC-4AA6-85AA-A55035201E43", + "name": "Tag-21" + } + ] + }, + { + "id": "FD48A179-6CF5-45F2-8605-9DA19B9D4409", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R93R-44", + "name": "Road-150 Red, 44", + "description": "The product called \"Road-150 Red, 44\"", + "price": 3578.27, + "tags": [ + { + "id": "765254E3-8E88-4C57-AADA-9F5126917970", + "name": "Tag-93" + }, + { + "id": "E23954CF-D79A-433E-9BE6-FD787C5E4C9B", + "name": "Tag-111" + } + ] + }, + { + "id": "FDD4E68A-6284-4DC7-B48D-232F347CA827", + "categoryId": "3B75F01D-6443-4C83-B182-8BB38192C33B", + "categoryName": "Components, Mountain Frames", + "sku": "FR-M94B-44", + "name": "HL Mountain Frame - Black, 44", + "description": "The product called \"HL Mountain Frame - Black, 44\"", + "price": 1349.6, + "tags": [ + { + "id": "3BFB03A9-3106-44C7-823A-DB1A67E283C3", + "name": "Tag-47" + }, + { + "id": "54C5E2EB-EE2D-496D-8AE2-200D7575968A", + "name": "Tag-156" + }, + { + "id": "7DF71D87-FB6F-498B-9D7B-E7EBE40350E1", + "name": "Tag-88" + }, + { + "id": "A0BA4E3B-AD4A-42AF-BFA4-5F48E2E57F07", + "name": "Tag-58" + }, + { + "id": "A9834752-41CA-47F5-8A5A-D9A878DF0ACB", + "name": "Tag-198" + } + ] + }, + { + "id": "FEEFEE3B-6CB9-4A75-B896-5182531F661B", + "categoryId": "AE48F0AA-4F65-4734-A4CF-D48B8F82267F", + "categoryName": "Bikes, Road Bikes", + "sku": "BK-R19B-52", + "name": "Road-750 Black, 52", + "description": "The product called \"Road-750 Black, 52\"", + "price": 539.99, + "tags": [ + { + "id": "461ADE06-0903-4BAF-97AB-CC713E5B1DD4", + "name": "Tag-174" + }, + { + "id": "AC4CC3CC-4E6B-461D-9B0E-4218EDDF3142", + "name": "Tag-122" + }, + { + "id": "D56040DB-E5DF-40BE-9F2F-7E10F4340BCA", + "name": "Tag-31" + }, + { + "id": "D77B44A9-7951-4CC8-BB27-8B5D78CFDDF8", + "name": "Tag-124" + }, + { + "id": "E468DF53-4836-4546-9D05-C855AAC4B0AF", + "name": "Tag-2" + } + ] + } ] -} +} \ No newline at end of file diff --git a/src/Explorer/Panes/AddCollectionPanel.tsx b/src/Explorer/Panes/AddCollectionPanel.tsx index 090883051..c58724b2e 100644 --- a/src/Explorer/Panes/AddCollectionPanel.tsx +++ b/src/Explorer/Panes/AddCollectionPanel.tsx @@ -979,7 +979,7 @@ export class AddCollectionPanel extends React.Component Date: Wed, 15 Feb 2023 09:24:55 -0500 Subject: [PATCH 04/11] Users/bogercraig/add cdb live show link (#1391) * Exchanged links on DE home page with link to the Azure Cosmos DB Live TV show. * Adding back accidentally removed terminating , * Added cdb TV to Postgres quick start splash page. * Removing cdb tv description from next steps and moved up. * Moved cdb tv to the tips and learn more column on postgres getting started page. * Shortening postgrest cdb tv line. * Removing link from PG since only 1 episode so far for PG. * Adding terminating comma back. Formatting. * Consolidating Cosmos DB Live TV to a single variable. * Updating prettier formatting. --- src/Explorer/SplashScreen/SplashScreen.tsx | 42 +++++++++------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/src/Explorer/SplashScreen/SplashScreen.tsx b/src/Explorer/SplashScreen/SplashScreen.tsx index c9c73ed5e..191da5a8a 100644 --- a/src/Explorer/SplashScreen/SplashScreen.tsx +++ b/src/Explorer/SplashScreen/SplashScreen.tsx @@ -563,7 +563,17 @@ export class SplashScreen extends React.Component { } private getLearningResourceItems(): JSX.Element { - let items: { link: string; title: string; description: string }[]; + interface item { + link: string; + title: string; + description: string; + } + const cdbLiveTv: item = { + link: "https://developer.azurecosmosdb.com/tv", + title: "Learn the Fundamentals", + description: "Watch Azure Cosmos DB Live TV show introductory and how to videos.", + }; + let items: item[]; switch (userContext.apiType) { case "SQL": case "Postgres": @@ -573,11 +583,7 @@ export class SplashScreen extends React.Component { title: "Get Started using an SDK", description: "Learn about the Azure Cosmos DB SDK.", }, - { - link: "https://aka.ms/msl-complex-queries", - title: "Master Complex Queries", - description: "Learn how to author complex queries.", - }, + cdbLiveTv, { link: "https://aka.ms/msl-move-data", title: "Migrate Your Data", @@ -597,11 +603,7 @@ export class SplashScreen extends React.Component { title: "Getting Started Guide", description: "Learn the basics to get started.", }, - { - link: "http://aka.ms/mongodotnet", - title: "Build a web API", - description: "Create a web API with the.NET SDK.", - }, + cdbLiveTv, ]; break; case "Cassandra": @@ -611,11 +613,7 @@ export class SplashScreen extends React.Component { title: "Create a Container", description: "Get to know the create a container options.", }, - { - link: "https://aka.ms/cassandraserverdiagnostics", - title: "Run Server Diagnostics", - description: "Learn how to run server diagnostics.", - }, + cdbLiveTv, { link: "https://aka.ms/Cassandrathroughput", title: "Provision Throughput", @@ -635,11 +633,7 @@ export class SplashScreen extends React.Component { title: "Import Graph Data", description: "Learn Bulk ingestion data using BulkExecutor", }, - { - link: "https://aka.ms/graphoptimize", - title: "Optimize your Queries", - description: "Learn how to evaluate your Gremlin queries", - }, + cdbLiveTv, ]; break; case "Tables": @@ -654,11 +648,7 @@ export class SplashScreen extends React.Component { title: "Build a Java App", description: "Create a Azure Cosmos DB for Table app with Java SDK ", }, - { - link: "https://aka.ms/tablenodejs", - title: "Build a Node.js App", - description: "Create a Azure Cosmos DB for Table app with Node.js SDK", - }, + cdbLiveTv, ]; break; } From 2a47e4311c1c863f410fac57ee6e8579641cda6b Mon Sep 17 00:00:00 2001 From: jawelton74 <103591340+jawelton74@users.noreply.github.com> Date: Thu, 16 Feb 2023 16:23:24 -0800 Subject: [PATCH 05/11] Set overwrite to true for both blob uploads to storage. (#1392) --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0fc4fc455..06938c2c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,11 +92,11 @@ jobs: name: dist path: dist/ - name: Upload build to preview blob storage - run: az storage blob upload-batch -d '$web' -s 'dist' --account-name cosmosexplorerpreview --destination-path "${{github.event.pull_request.head.sha || github.sha}}" --account-key="${PREVIEW_STORAGE_KEY}" + run: az storage blob upload-batch -d '$web' -s 'dist' --account-name cosmosexplorerpreview --destination-path "${{github.event.pull_request.head.sha || github.sha}}" --account-key="${PREVIEW_STORAGE_KEY}" --overwrite true env: PREVIEW_STORAGE_KEY: ${{ secrets.PREVIEW_STORAGE_KEY }} - name: Upload preview config to blob storage - run: az storage blob upload -c '$web' -f ./preview/config.json --account-name cosmosexplorerpreview --name "${{github.event.pull_request.head.sha || github.sha}}/config.json" --account-key="${PREVIEW_STORAGE_KEY}" + run: az storage blob upload -c '$web' -f ./preview/config.json --account-name cosmosexplorerpreview --name "${{github.event.pull_request.head.sha || github.sha}}/config.json" --account-key="${PREVIEW_STORAGE_KEY}" --overwrite true env: PREVIEW_STORAGE_KEY: ${{ secrets.PREVIEW_STORAGE_KEY }} endtoendemulator: From b4bca3d41a59894dd80fd4838413955381e8b1ca Mon Sep 17 00:00:00 2001 From: jawelton74 <103591340+jawelton74@users.noreply.github.com> Date: Thu, 16 Feb 2023 17:51:57 -0800 Subject: [PATCH 06/11] Updates user to use for nuget push. (#1393) --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 06938c2c7..2c84975bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -182,7 +182,7 @@ jobs: with: name: dist - run: cp ./configs/prod.json config.json - - run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "vimeng@microsoft.com" -Password "$AZURE_DEVOPS_PAT" + - run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "jawelton@microsoft.com" -Password "$AZURE_DEVOPS_PAT" - run: nuget pack -Version "2.0.0-github-${GITHUB_SHA}" - run: nuget push -SkipDuplicate -Source "$NUGET_SOURCE" -ApiKey Az *.nupkg - uses: actions/upload-artifact@v2 @@ -207,7 +207,7 @@ jobs: name: dist - run: cp ./configs/mpac.json config.json - run: sed -i 's/Azure.Cosmos.DB.Data.Explorer/Azure.Cosmos.DB.Data.Explorer.MPAC/g' DataExplorer.nuspec - - run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "vimeng@microsoft.com" -Password "$AZURE_DEVOPS_PAT" + - run: nuget sources add -Name "ADO" -Source "$NUGET_SOURCE" -UserName "jawelton@microsoft.com" -Password "$AZURE_DEVOPS_PAT" - run: nuget pack -Version "2.0.0-github-${GITHUB_SHA}" - run: nuget push -SkipDuplicate -Source "$NUGET_SOURCE" -ApiKey Az *.nupkg - uses: actions/upload-artifact@v2 From 1285ffc44031c68a7686ee12586f651ccc424e44 Mon Sep 17 00:00:00 2001 From: sindhuba <122321535+sindhuba@users.noreply.github.com> Date: Fri, 24 Feb 2023 10:58:36 -0800 Subject: [PATCH 07/11] Refresh collection automatically when container is created using Quickstart pop up (#1394) * Quickstart Refresh collection automatically when container is created * Fix unit tests * Fix unit tests and address comments * Minor fixes in message handler * Minor changes to fix tsconfig.strict.json * Resolve npm compile:strict errors by fixing the code implementation * Remove cache refresh code in configureHosted function * Fix spacing * Run npm format --- src/Utils/MessageValidation.ts | 17 +++++++++++++++++ src/hooks/useKnockoutExplorer.ts | 28 +++++++--------------------- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/src/Utils/MessageValidation.ts b/src/Utils/MessageValidation.ts index 891c06369..6490722ea 100644 --- a/src/Utils/MessageValidation.ts +++ b/src/Utils/MessageValidation.ts @@ -21,6 +21,23 @@ function isValidOrigin(allowedOrigins: ReadonlyArray, event: MessageEven return false; } +export function shouldProcessMessage(event: MessageEvent): boolean { + if (typeof event.data !== "object") { + return false; + } + if (event.data["signature"] !== "pcIframe") { + return false; + } + if (!("data" in event.data)) { + return false; + } + if (typeof event.data["data"] !== "object") { + return false; + } + + return true; +} + export function isReadyMessage(event: MessageEvent): boolean { if (!event?.data?.kind && !event?.data?.data) { return false; diff --git a/src/hooks/useKnockoutExplorer.ts b/src/hooks/useKnockoutExplorer.ts index 70f8dc3c6..b9d088ee0 100644 --- a/src/hooks/useKnockoutExplorer.ts +++ b/src/hooks/useKnockoutExplorer.ts @@ -1,3 +1,4 @@ +import Explorer from "Explorer/Explorer"; import { ReactTabKind, useTabs } from "hooks/useTabs"; import { useEffect, useState } from "react"; import { getNetworkSettingsWarningMessage } from "Utils/NetworkUtility"; @@ -10,7 +11,6 @@ import { configContext, Platform, updateConfigContext } from "../ConfigContext"; import { ActionType, DataExplorerAction } from "../Contracts/ActionContracts"; import { MessageTypes } from "../Contracts/ExplorerContracts"; import { DataExplorerInputsFrame } from "../Contracts/ViewModels"; -import Explorer from "../Explorer/Explorer"; import { handleOpenAction } from "../Explorer/OpenActions/OpenActions"; import { useDatabases } from "../Explorer/useDatabases"; import { @@ -33,7 +33,7 @@ import { Node, PortalEnv, updateUserContext, userContext } from "../UserContext" import { listKeys } from "../Utils/arm/generatedClients/cosmos/databaseAccounts"; import { DatabaseAccountListKeysResult } from "../Utils/arm/generatedClients/cosmos/types"; import { getMsalInstance } from "../Utils/AuthorizationUtils"; -import { isInvalidParentFrameOrigin } from "../Utils/MessageValidation"; +import { isInvalidParentFrameOrigin, shouldProcessMessage } from "../Utils/MessageValidation"; // This hook will create a new instance of Explorer.ts and bind it to the DOM // This hook has a LOT of magic, but ideally we can delete it once we have removed KO and switched entirely to React @@ -239,6 +239,7 @@ async function configurePortal(): Promise { updateUserContext({ authType: AuthType.AAD, }); + let explorer: Explorer; return new Promise((resolve) => { // In development mode, try to load the iframe message from session storage. // This allows webpack hot reload to function properly in the portal @@ -251,7 +252,7 @@ async function configurePortal(): Promise { ); console.dir(message); updateContextsFromPortalMessage(message); - const explorer = new Explorer(); + explorer = new Explorer(); // In development mode, save the iframe message from the portal in session storage. // This allows webpack hot reload to funciton properly if (process.env.NODE_ENV === "development") { @@ -287,7 +288,7 @@ async function configurePortal(): Promise { } updateContextsFromPortalMessage(inputs); - const explorer = new Explorer(); + explorer = new Explorer(); resolve(explorer); if (openAction) { handleOpenAction(openAction, useDatabases.getState().databases, explorer); @@ -300,6 +301,8 @@ async function configurePortal(): Promise { } else { useTabs.getState().closeTabsByComparator((tab) => tab.tabId === event.data?.data?.tabId); } + } else if (message?.type === MessageTypes.RefreshResources) { + explorer.onRefreshResourcesClick(); } }, false @@ -314,23 +317,6 @@ function shouldForwardMessage(message: PortalMessage, messageOrigin: string) { return messageOrigin === window.document.location.origin && message.type === MessageTypes.TelemetryInfo; } -function shouldProcessMessage(event: MessageEvent): boolean { - if (typeof event.data !== "object") { - return false; - } - if (event.data["signature"] !== "pcIframe") { - return false; - } - if (!("data" in event.data)) { - return false; - } - if (typeof event.data["data"] !== "object") { - return false; - } - - return true; -} - function updateContextsFromPortalMessage(inputs: DataExplorerInputsFrame) { if ( configContext.BACKEND_ENDPOINT && From a7a38807df6fdc8e4cc705cc301c84f677a8cb3c Mon Sep 17 00:00:00 2001 From: MokireddySampath <120497218+MokireddySampath@users.noreply.github.com> Date: Tue, 28 Feb 2023 09:11:52 +0530 Subject: [PATCH 08/11] Defect2236159 (#1396) * autoscale and manual radiobuutton fixes * alt text attribute for images * Revert "alt text attribute for images" This reverts commit 5a660551c6289d475b6298f90abc9d149146772e. * alt text for decorative images --- .../Controls/NotebookGallery/InfoComponent/InfoComponent.tsx | 4 ++-- .../InfoComponent/__snapshots__/InfoComponent.test.tsx.snap | 1 + src/Explorer/SplashScreen/SplashScreen.tsx | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Explorer/Controls/NotebookGallery/InfoComponent/InfoComponent.tsx b/src/Explorer/Controls/NotebookGallery/InfoComponent/InfoComponent.tsx index f2c5a2c6e..94515d46a 100644 --- a/src/Explorer/Controls/NotebookGallery/InfoComponent/InfoComponent.tsx +++ b/src/Explorer/Controls/NotebookGallery/InfoComponent/InfoComponent.tsx @@ -1,5 +1,5 @@ +import { HoverCard, HoverCardType, Icon, Label, Link, Stack } from "@fluentui/react"; import * as React from "react"; -import { Icon, Label, Stack, HoverCard, HoverCardType, Link } from "@fluentui/react"; import { CodeOfConductEndpoints } from "../../../../Common/Constants"; import "./InfoComponent.less"; @@ -41,7 +41,7 @@ export class InfoComponent extends React.Component { public render(): JSX.Element { return ( -
+
diff --git a/src/Explorer/Controls/NotebookGallery/InfoComponent/__snapshots__/InfoComponent.test.tsx.snap b/src/Explorer/Controls/NotebookGallery/InfoComponent/__snapshots__/InfoComponent.test.tsx.snap index 06ddee518..06d6559a6 100644 --- a/src/Explorer/Controls/NotebookGallery/InfoComponent/__snapshots__/InfoComponent.test.tsx.snap +++ b/src/Explorer/Controls/NotebookGallery/InfoComponent/__snapshots__/InfoComponent.test.tsx.snap @@ -12,6 +12,7 @@ exports[`InfoComponent renders 1`] = ` >
{ > {item.title} - +  {item.description} From 72c3605dbec1a6215be0f6eaa69d8adf879ce67f Mon Sep 17 00:00:00 2001 From: MokireddySampath <120497218+MokireddySampath@users.noreply.github.com> Date: Tue, 14 Mar 2023 23:49:21 +0530 Subject: [PATCH 09/11] Sampath accessibility sev 2 (#1400) * autoscale and manual radiobuutton fixes * alt text attribute for images * Revert "alt text attribute for images" This reverts commit 5a660551c6289d475b6298f90abc9d149146772e. * alt text for decorative images * sev2 accessibilitydefects in data explorer * Revert "sev2 accessibilitydefects in data explorer" This reverts commit b84d5b572c6f127cd17033995c919867285d897e. * Sev2 accessibilitydefects * Revert "Sev2 accessibilitydefects" This reverts commit a4e60f106c43d0fe994fc9a0749b084ae427397e. * accessibilitydefects-data explorer * Remove extra white space --------- Co-authored-by: Victor Meng --- images/imgarrowlefticon.svg | 2 +- src/Common/TableEntity.tsx | 20 +-- .../ThroughputInput/ThroughputInput.tsx | 58 +++---- .../ThroughputInput.test.tsx.snap | 73 ++++----- .../Controls/TreeComponent/TreeComponent.tsx | 2 +- .../__snapshots__/TreeComponent.test.tsx.snap | 5 + .../GraphVizComponent.tsx | 2 + .../MiddlePaneComponent.tsx | 6 +- .../NotificationConsoleComponent.tsx | 3 - ...NotificationConsoleComponent.test.tsx.snap | 6 - src/Explorer/Panes/AddCollectionPanel.tsx | 110 +++++++------- .../AddCollectionPanel.test.tsx.snap | 142 +++++++++--------- src/Explorer/SplashScreen/SplashScreen.tsx | 9 +- 13 files changed, 230 insertions(+), 208 deletions(-) diff --git a/images/imgarrowlefticon.svg b/images/imgarrowlefticon.svg index cd886d754..716024607 100644 --- a/images/imgarrowlefticon.svg +++ b/images/imgarrowlefticon.svg @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/src/Common/TableEntity.tsx b/src/Common/TableEntity.tsx index 54c27adf5..f3ec564f5 100644 --- a/src/Common/TableEntity.tsx +++ b/src/Common/TableEntity.tsx @@ -137,15 +137,17 @@ export const TableEntity: FunctionComponent = ({ /> {!isEntityValueDisable && ( - editEntity +
+ editEntity +
)} {isDeleteOptionVisible && userContext.apiType !== "Cassandra" && ( diff --git a/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx b/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx index d86b0414f..926b1af5c 100644 --- a/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx +++ b/src/Explorer/Controls/ThroughputInput/ThroughputInput.tsx @@ -185,35 +185,37 @@ export const ThroughputInput: FunctionComponent = ({ - handleOnChangeMode(e, "Autoscale")} - /> - +
+ handleOnChangeMode(e, "Autoscale")} + /> + - handleOnChangeMode(e, "Manual")} - /> - + handleOnChangeMode(e, "Manual")} + /> + +
{isAutoscaleSelected && ( diff --git a/src/Explorer/Controls/ThroughputInput/__snapshots__/ThroughputInput.test.tsx.snap b/src/Explorer/Controls/ThroughputInput/__snapshots__/ThroughputInput.test.tsx.snap index 009eab607..864124ad4 100644 --- a/src/Explorer/Controls/ThroughputInput/__snapshots__/ThroughputInput.test.tsx.snap +++ b/src/Explorer/Controls/ThroughputInput/__snapshots__/ThroughputInput.test.tsx.snap @@ -654,44 +654,45 @@ exports[`ThroughputInput Pane should render Default properly 1`] = `
- - - - + + + + +
{node.children && ( -
+
{TreeNodeComponent.getSortedChildren(node).map((childNode: TreeNode) => (
@@ -465,6 +468,7 @@ exports[`TreeNodeComponent renders sorted children, expanded, leaves and parents
{ {/* svg load more icon inlined as-is here: remove the style="fill:#374649;" so we can override it */} {
Graph - {this.props.isTabsContentExpanded - +
diff --git a/src/Explorer/Menus/NotificationConsole/NotificationConsoleComponent.tsx b/src/Explorer/Menus/NotificationConsole/NotificationConsoleComponent.tsx index c7a2cf108..f27470a04 100644 --- a/src/Explorer/Menus/NotificationConsole/NotificationConsoleComponent.tsx +++ b/src/Explorer/Menus/NotificationConsole/NotificationConsoleComponent.tsx @@ -147,12 +147,9 @@ export class NotificationConsoleComponent extends React.Component<
- - Create new +
+ + Create new - - Use existing + + Use existing +
{this.state.createNewDatabase && ( @@ -802,35 +804,37 @@ export class AddCollectionPanel extends React.Component - - On +
+ + On - - Off + + Off +
{!this.isSynapseLinkEnabled() && ( diff --git a/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap b/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap index 7adf8316f..000310d32 100644 --- a/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap +++ b/src/Explorer/Panes/__snapshots__/AddCollectionPanel.test.tsx.snap @@ -42,39 +42,43 @@ exports[`AddCollectionPanel should render Default properly 1`] = ` horizontal={true} verticalAlign="center" > - - - Create new - - - - Use existing - + + + Create new + + + + Use existing + +
- - - On - - - - Off - + + + On + + + + Off + +
{
-
+
{userContext.apiType === "Postgres" ? "Welcome to Azure Cosmos DB for PostgreSQL" : "Welcome to Azure Cosmos DB"} From 1ee6abf89076ed8542286add3dbcfad24faa27de Mon Sep 17 00:00:00 2001 From: jawelton74 <103591340+jawelton74@users.noreply.github.com> Date: Mon, 27 Mar 2023 10:47:04 -0700 Subject: [PATCH 10/11] Change AAD endpoint from /common to /organizations. (#1408) --- src/Utils/AuthorizationUtils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Utils/AuthorizationUtils.ts b/src/Utils/AuthorizationUtils.ts index 0da7e310f..6e99d2351 100644 --- a/src/Utils/AuthorizationUtils.ts +++ b/src/Utils/AuthorizationUtils.ts @@ -49,7 +49,7 @@ export function getMsalInstance() { cacheLocation: "localStorage", }, auth: { - authority: `${configContext.AAD_ENDPOINT}common`, + authority: `${configContext.AAD_ENDPOINT}organizations`, clientId: "203f1145-856a-4232-83d4-a43568fba23d", }, }; From 7f220bf8be09a57ce50e30a18c67a94822a7bfd3 Mon Sep 17 00:00:00 2001 From: sindhuba <122321535+sindhuba@users.noreply.github.com> Date: Mon, 27 Mar 2023 15:33:55 -0700 Subject: [PATCH 11/11] Add additional teaching bubbles in Quickstart (#1407) * Add additional teaching bubbles in Quickstart * Run npm format * Fix lint error * Add unit tests * Add Mongo teaching bubbles for Try CosmosDB and Launch full screen * Add additional tests for UrlUtility * Run npm format * Add tests for Notebook Utils --- src/Common/EnvironmentUtility.test.ts | 14 ++++ src/Common/OfferUtility.test.ts | 24 ++++++- src/Common/UrlUtility.test.ts | 49 ++++++++++++++ .../CommandBarComponentButtonFactory.tsx | 1 + .../InMemoryContentProviderUtils.test.ts | 23 +++++++ .../Tutorials/MongoQuickstartTutorial.tsx | 67 ++++++++++++++++--- .../Tutorials/SQLQuickstartTutorial.tsx | 64 +++++++++++++++--- src/Main.tsx | 1 + 8 files changed, 222 insertions(+), 21 deletions(-) create mode 100644 src/Common/EnvironmentUtility.test.ts create mode 100644 src/Common/UrlUtility.test.ts create mode 100644 src/Explorer/Notebook/NotebookComponent/InMemoryContentProviderUtils.test.ts diff --git a/src/Common/EnvironmentUtility.test.ts b/src/Common/EnvironmentUtility.test.ts new file mode 100644 index 000000000..6b5b1e218 --- /dev/null +++ b/src/Common/EnvironmentUtility.test.ts @@ -0,0 +1,14 @@ +import * as EnvironmentUtility from "./EnvironmentUtility"; + +describe("Environment Utility Test", () => { + it("Test sample URI with /", () => { + const uri = "test/"; + expect(EnvironmentUtility.normalizeArmEndpoint(uri)).toEqual(uri); + }); + + it("Test sample URI without /", () => { + const uri = "test"; + const expectedResult = "test/"; + expect(EnvironmentUtility.normalizeArmEndpoint(uri)).toEqual(expectedResult); + }); +}); diff --git a/src/Common/OfferUtility.test.ts b/src/Common/OfferUtility.test.ts index ce86c0d8a..d854f74d0 100644 --- a/src/Common/OfferUtility.test.ts +++ b/src/Common/OfferUtility.test.ts @@ -1,6 +1,6 @@ -import * as OfferUtility from "./OfferUtility"; -import { SDKOfferDefinition, Offer } from "../Contracts/DataModels"; import { OfferResponse } from "@azure/cosmos"; +import { Offer, SDKOfferDefinition } from "../Contracts/DataModels"; +import * as OfferUtility from "./OfferUtility"; describe("parseSDKOfferResponse", () => { it("manual throughput", () => { @@ -31,6 +31,26 @@ describe("parseSDKOfferResponse", () => { expect(OfferUtility.parseSDKOfferResponse(mockResponse)).toEqual(expectedResult); }); + it("offerContent not defined", () => { + const mockOfferDefinition = { + id: "test", + } as SDKOfferDefinition; + + const mockResponse = { + resource: mockOfferDefinition, + } as OfferResponse; + + expect(OfferUtility.parseSDKOfferResponse(mockResponse)).toEqual(undefined); + }); + + it("offerDefinition is null", () => { + const mockResponse = { + resource: undefined, + } as OfferResponse; + + expect(OfferUtility.parseSDKOfferResponse(mockResponse)).toEqual(undefined); + }); + it("autoscale throughput", () => { const mockOfferDefinition = { content: { diff --git a/src/Common/UrlUtility.test.ts b/src/Common/UrlUtility.test.ts new file mode 100644 index 000000000..8170cc63f --- /dev/null +++ b/src/Common/UrlUtility.test.ts @@ -0,0 +1,49 @@ +import * as UrlUtility from "./UrlUtility"; + +describe("parseDocumentsPath", () => { + it("empty resource path", () => { + const resourcePath = ""; + + expect(UrlUtility.parseDocumentsPath(resourcePath)).toEqual({}); + }); + + it("resourcePath does not begin or end with /", () => { + const resourcePath = "localhost/portal/home"; + const expectedResult = { + type: "home", + objectBody: { + id: "portal", + self: "/localhost/portal/home/", + }, + }; + + expect(UrlUtility.parseDocumentsPath(resourcePath)).toEqual(expectedResult); + }); + + it("resourcePath length is even", () => { + const resourcePath = "/localhost/portal/src/home/"; + const expectedResult = { + type: "src", + objectBody: { + id: "home", + self: resourcePath, + }, + }; + + expect(UrlUtility.parseDocumentsPath(resourcePath)).toEqual(expectedResult); + }); + + it("createUri", () => { + const baseUri = "http://foo.com/bar/"; + const relativeUri = "/index.html"; + const expectedUri = "http://foo.com/bar/index.html"; + + expect(UrlUtility.createUri(baseUri, relativeUri)).toEqual(expectedUri); + }); + + it("should throw an error if baseUri is empty", () => { + expect(() => { + UrlUtility.createUri("", "/home"); + }).toThrow("baseUri is null or empty"); + }); +}); diff --git a/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx b/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx index c02639f09..938383d5b 100644 --- a/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx +++ b/src/Explorer/Menus/CommandBar/CommandBarComponentButtonFactory.tsx @@ -202,6 +202,7 @@ export function createControlCommandBarButtons(container: Explorer): CommandButt if (showOpenFullScreen) { const label = "Open Full Screen"; const fullScreenButton: CommandButtonComponentProps = { + id: "openFullScreenBtn", iconSrc: OpenInTabIcon, iconAlt: label, onCommandClick: () => { diff --git a/src/Explorer/Notebook/NotebookComponent/InMemoryContentProviderUtils.test.ts b/src/Explorer/Notebook/NotebookComponent/InMemoryContentProviderUtils.test.ts new file mode 100644 index 000000000..a5fd5df80 --- /dev/null +++ b/src/Explorer/Notebook/NotebookComponent/InMemoryContentProviderUtils.test.ts @@ -0,0 +1,23 @@ +import * as InMemoryContentProviderUtils from "./ContentProviders/InMemoryContentProviderUtils"; + +describe("fromContentUri", () => { + it("fromContentUri should return valid result", () => { + const contentUri = "memory://resource/path"; + const result = "resource"; + + expect(InMemoryContentProviderUtils.fromContentUri(contentUri)).toEqual(result); + }); + + it("fromContentUri should return undefined on invalid input", () => { + const contentUri = "invalid"; + + expect(InMemoryContentProviderUtils.fromContentUri(contentUri)).toEqual(undefined); + }); + + it("toContentUri should return valid result", () => { + const path = "resource/path"; + const result = "memory://resource/path"; + + expect(InMemoryContentProviderUtils.toContentUri(path)).toEqual(result); + }); +}); diff --git a/src/Explorer/Quickstart/Tutorials/MongoQuickstartTutorial.tsx b/src/Explorer/Quickstart/Tutorials/MongoQuickstartTutorial.tsx index d6655e14b..aa9c5e300 100644 --- a/src/Explorer/Quickstart/Tutorials/MongoQuickstartTutorial.tsx +++ b/src/Explorer/Quickstart/Tutorials/MongoQuickstartTutorial.tsx @@ -1,4 +1,4 @@ -import { Link, Stack, TeachingBubble, Text } from "@fluentui/react"; +import { DirectionalHint, Link, Stack, TeachingBubble, Text } from "@fluentui/react"; import { ReactTabKind, useTabs } from "hooks/useTabs"; import { useTeachingBubble } from "hooks/useTeachingBubble"; import React from "react"; @@ -18,6 +18,11 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { return <>; } + let totalSteps = 9; + if (userContext.isTryCosmosDBSubscription) { + totalSteps = 10; + } + switch (step) { case 1: return isSampleDBExpanded ? ( @@ -33,7 +38,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { }, }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 1 of 8" + footerContent={"Step 1 of " + totalSteps} > Start viewing and working with your data by opening Documents under Data @@ -55,7 +60,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(1), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 2 of 8" + footerContent={"Step 2 of " + totalSteps} > View documents here using the documents window. You can also use your favorite MongoDB tools and drivers to do so. @@ -78,7 +83,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(2), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 3 of 8" + footerContent={"Step 3 of " + totalSteps} > Add new document by copy / pasting JSON or uploading a JSON. You can also use your favorite MongoDB tools and drivers to do so. @@ -99,7 +104,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(3), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 4 of 8" + footerContent={"Step 4 of " + totalSteps} > Query your data using the filter function. Azure Cosmos DB for MongoDB provides comprehensive support for MongoDB query language constructs. You can also use your favorite MongoDB tools and drivers to do so. @@ -120,7 +125,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(4), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 5 of 8" + footerContent={"Step 5 of " + totalSteps} > Change throughput provisioned to your collection according to your needs @@ -140,7 +145,7 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(5), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 6 of 8" + footerContent={"Step 6 of " + totalSteps} > Use the indexing policy editor to create and edit your indexes. @@ -160,12 +165,54 @@ export const MongoQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(6), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 7 of 8" + footerContent={"Step 7 of " + totalSteps} > Visualize your data, store queries in an interactive document ); case 8: + return ( + (userContext.isTryCosmosDBSubscription ? setStep(9) : setStep(10)), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(7), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent={"Step 8 of " + totalSteps} + > + This will open a new tab in your browser to use Cosmos DB Explorer. Using the provided URLs you can share + read-write or read-only access with other people. + + ); + case 9: + return ( + setStep(10), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(8), + }} + calloutProps={{ directionalHint: DirectionalHint.leftCenter }} + onDismiss={() => onDimissTeachingBubble()} + footerContent={"Step 9 of " + totalSteps} + > + Unlock everything Azure Cosmos DB has to offer When you're ready, upgrade to production. + + ); + case 10: return ( { }} secondaryButtonProps={{ text: "Previous", - onClick: () => setStep(7), + onClick: () => (userContext.isTryCosmosDBSubscription ? setStep(9) : setStep(8)), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 8 of 8" + footerContent={"Step " + totalSteps + " of " + totalSteps} > diff --git a/src/Explorer/Quickstart/Tutorials/SQLQuickstartTutorial.tsx b/src/Explorer/Quickstart/Tutorials/SQLQuickstartTutorial.tsx index cced06a50..ddb35aa5e 100644 --- a/src/Explorer/Quickstart/Tutorials/SQLQuickstartTutorial.tsx +++ b/src/Explorer/Quickstart/Tutorials/SQLQuickstartTutorial.tsx @@ -1,4 +1,4 @@ -import { Link, Stack, TeachingBubble, Text } from "@fluentui/react"; +import { DirectionalHint, Link, Stack, TeachingBubble, Text } from "@fluentui/react"; import { ReactTabKind, useTabs } from "hooks/useTabs"; import { useTeachingBubble } from "hooks/useTeachingBubble"; import React from "react"; @@ -17,6 +17,10 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => { if (userContext.apiType !== "SQL") { return <>; } + let totalSteps = 8; + if (userContext.isTryCosmosDBSubscription) { + totalSteps = 9; + } switch (step) { case 1: @@ -33,7 +37,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => { }, }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 1 of 7" + footerContent={"Step 1 of " + totalSteps} > Start viewing and working with your data by opening Items under Data @@ -55,7 +59,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(1), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 2 of 7" + footerContent={"Step 2 of " + totalSteps} > View item here using the items window. Additionally you can also filter items to be reviewed with the filter function @@ -78,7 +82,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(2), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 3 of 7" + footerContent={"Step 3 of " + totalSteps} > Add new item by copy / pasting JSON; or uploading a JSON @@ -98,7 +102,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(3), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 4 of 7" + footerContent={"Step 4 of " + totalSteps} > Query your data using either the filter function or new query. @@ -118,7 +122,7 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(4), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 5 of 7" + footerContent={"Step 5 of " + totalSteps} > Change throughput provisioned to your container according to your needs @@ -138,12 +142,54 @@ export const SQLQuickstartTutorial: React.FC = (): JSX.Element => { onClick: () => setStep(5), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 6 of 7" + footerContent={"Step 6 of " + totalSteps} > Visualize your data, store queries in an interactive document ); case 7: + return ( + (userContext.isTryCosmosDBSubscription ? setStep(8) : setStep(9)), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(6), + }} + onDismiss={() => onDimissTeachingBubble()} + footerContent={"Step 7 of " + totalSteps} + > + This will open a new tab in your browser to use Cosmos DB Explorer. Using the provided URLs you can share + read-write or read-only access with other people. + + ); + case 8: + return ( + setStep(9), + }} + secondaryButtonProps={{ + text: "Previous", + onClick: () => setStep(7), + }} + calloutProps={{ directionalHint: DirectionalHint.leftCenter }} + onDismiss={() => onDimissTeachingBubble()} + footerContent={"Step 8 of " + totalSteps} + > + Unlock everything Azure Cosmos DB has to offer When you're ready, upgrade to production. + + ); + case 9: return ( { }} secondaryButtonProps={{ text: "Previous", - onClick: () => setStep(6), + onClick: () => (userContext.isTryCosmosDBSubscription ? setStep(8) : setStep(7)), }} onDismiss={() => onDimissTeachingBubble()} - footerContent="Step 7 of 7" + footerContent={"Step " + totalSteps + " of " + totalSteps} > diff --git a/src/Main.tsx b/src/Main.tsx index 2115406ce..d8d817847 100644 --- a/src/Main.tsx +++ b/src/Main.tsx @@ -80,6 +80,7 @@ const App: React.FunctionComponent = () => { return (
+
{/* Main Command Bar - Start */} {/* Collections Tree and Tabs - Begin */}