From 4c5cf7f622bb41fdc886424ff2c8f64c4f43763a Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 29 Feb 2024 20:08:06 -0700 Subject: [PATCH 01/52] committiing changes for single quote lint errors --- package.json | 1 - src/cart/index.html | 2 +- src/checkout/index.html | 25 +------- src/js/cart.js | 6 +- src/js/product.js | 12 ++-- src/json/sleeping-bags.json | 60 +++++--------------- src/json/tents.json | 2 +- src/product_pages/cedar-ridge-rimrock-2.html | 2 +- src/product_pages/marmot-ajax-3.html | 2 +- src/product_pages/northface-alpine-3.html | 2 +- src/product_pages/northface-talus-4.html | 2 +- vite.config.js | 24 ++++---- 12 files changed, 44 insertions(+), 96 deletions(-) diff --git a/package.json b/package.json index 86646645b..f24a64c6c 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,6 @@ "lint": "eslint *.js src/**/*.js", "format": "prettier --ignore-path ./.gitignore --write \"./**/*.{html,json,js,ts,css}\"", "test": "jest" - }, "author": "Shane Thompson", "license": "ISC", diff --git a/src/cart/index.html b/src/cart/index.html index f64b6f0c9..87399f39d 100644 --- a/src/cart/index.html +++ b/src/cart/index.html @@ -1,4 +1,4 @@ - + diff --git a/src/checkout/index.html b/src/checkout/index.html index 876458650..7ce7715e5 100644 --- a/src/checkout/index.html +++ b/src/checkout/index.html @@ -1,9 +1,7 @@ - + - - @@ -11,30 +9,22 @@ Sleep Outside | Checkout - -
- -
-
-

Review & Place your Order

-
-
- - - diff --git a/src/js/cart.js b/src/js/cart.js index a2fb3d8ef..70a9e2e3b 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,9 +1,9 @@ -import { getLocalStorage } from "./utils.mjs"; +import { getLocalStorage } from './utils.mjs'; function renderCartContents() { - const cartItems = getLocalStorage("so-cart"); + const cartItems = getLocalStorage('so-cart'); const htmlItems = cartItems.map((item) => cartItemTemplate(item)); - document.querySelector(".product-list").innerHTML = htmlItems.join(""); + document.querySelector('.product-list').innerHTML = htmlItems.join(''); } function cartItemTemplate(item) { diff --git a/src/js/product.js b/src/js/product.js index 0b8d0aa67..850429847 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,10 +1,10 @@ -import { setLocalStorage } from "./utils.mjs"; -import ProductData from "./ProductData.mjs"; +import { setLocalStorage } from './utils.mjs'; +import ProductData from './ProductData.mjs'; -const dataSource = new ProductData("tents"); +const dataSource = new ProductData('tents'); function addProductToCart(product) { - setLocalStorage("so-cart", product); + setLocalStorage('so-cart', product); } // add to cart button event handler async function addToCartHandler(e) { @@ -14,5 +14,5 @@ async function addToCartHandler(e) { // add listener to Add to Cart button document - .getElementById("addToCart") - .addEventListener("click", addToCartHandler); + .getElementById('addToCart') + .addEventListener('click', addToCartHandler); diff --git a/src/json/sleeping-bags.json b/src/json/sleeping-bags.json index 6bf7a1243..5d015123c 100644 --- a/src/json/sleeping-bags.json +++ b/src/json/sleeping-bags.json @@ -35,9 +35,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -93,9 +91,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "LH" - ] + "ZIPPER": ["LH"] }, "Colors": [ { @@ -196,12 +192,8 @@ ] }, "SizesAvailable": { - "LENGTH": [ - "REG" - ], - "ZIPPER": [ - "R" - ] + "LENGTH": ["REG"], + "ZIPPER": ["R"] }, "Colors": [ { @@ -323,9 +315,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -370,9 +360,7 @@ "ExtraImages": null }, "SizesAvailable": { - "HAND": [ - "LH" - ] + "HAND": ["LH"] }, "Colors": [ { @@ -422,9 +410,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -474,9 +460,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -526,9 +510,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -578,9 +560,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -630,9 +610,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -730,9 +708,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -1018,9 +994,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -1070,9 +1044,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "R" - ] + "ZIPPER": ["R"] }, "Colors": [ { @@ -1122,9 +1094,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "RH" - ] + "ZIPPER": ["RH"] }, "Colors": [ { diff --git a/src/json/tents.json b/src/json/tents.json index 98029223e..d24bd8bcb 100644 --- a/src/json/tents.json +++ b/src/json/tents.json @@ -99,7 +99,7 @@ { "ColorCode": "01", "ColorName": "Pale Pumpkin/Terracotta" - } + } ], "DescriptionHtmlSimple": "Excess. Get out and enjoy nature with Marmot's Ajax tent, featuring a smart design with durable, waterproof construction and two doors for easy access.", "SuggestedRetailPrice": 275.0, diff --git a/src/product_pages/cedar-ridge-rimrock-2.html b/src/product_pages/cedar-ridge-rimrock-2.html index c05810379..782252ae8 100644 --- a/src/product_pages/cedar-ridge-rimrock-2.html +++ b/src/product_pages/cedar-ridge-rimrock-2.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/marmot-ajax-3.html b/src/product_pages/marmot-ajax-3.html index 936f67541..2a501ac01 100644 --- a/src/product_pages/marmot-ajax-3.html +++ b/src/product_pages/marmot-ajax-3.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/northface-alpine-3.html b/src/product_pages/northface-alpine-3.html index 8d0ab07e3..c512994ef 100644 --- a/src/product_pages/northface-alpine-3.html +++ b/src/product_pages/northface-alpine-3.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/northface-talus-4.html b/src/product_pages/northface-talus-4.html index 891c22612..26ed18477 100644 --- a/src/product_pages/northface-talus-4.html +++ b/src/product_pages/northface-talus-4.html @@ -1,4 +1,4 @@ - + diff --git a/vite.config.js b/vite.config.js index 4a5eef384..06fd82ad0 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,30 +1,30 @@ -import { resolve } from "path"; -import { defineConfig } from "vite"; +import { resolve } from 'path'; +import { defineConfig } from 'vite'; export default defineConfig({ - root: "src/", + root: 'src/', build: { - outDir: "../dist", + outDir: '../dist', rollupOptions: { input: { - main: resolve(__dirname, "src/index.html"), - cart: resolve(__dirname, "src/cart/index.html"), - checkout: resolve(__dirname, "src/checkout/index.html"), + main: resolve(__dirname, 'src/index.html'), + cart: resolve(__dirname, 'src/cart/index.html'), + checkout: resolve(__dirname, 'src/checkout/index.html'), product1: resolve( __dirname, - "src/product_pages/cedar-ridge-rimrock-2.html" + 'src/product_pages/cedar-ridge-rimrock-2.html', ), - product2: resolve(__dirname, "src/product_pages/marmot-ajax-3.html"), + product2: resolve(__dirname, 'src/product_pages/marmot-ajax-3.html'), product3: resolve( __dirname, - "src/product_pages/northface-alpine-3.html" + 'src/product_pages/northface-alpine-3.html', ), product4: resolve( __dirname, - "src/product_pages/northface-talus-4.html" + 'src/product_pages/northface-talus-4.html', ), }, }, }, -}); +}); \ No newline at end of file From 763ccd5a655c6f73c504994ed12e8ca1f9c71279 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 29 Feb 2024 20:17:24 -0700 Subject: [PATCH 02/52] a change --- src/js/cart.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/cart.js b/src/js/cart.js index 70a9e2e3b..228dfdf1b 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -12,7 +12,7 @@ function cartItemTemplate(item) { ${item.Name} + >

${item.Name}

From fcd4abad405f5ef8494ac11ea5b8271e0faf17ad Mon Sep 17 00:00:00 2001 From: Krysta Hunt Date: Thu, 29 Feb 2024 20:26:54 -0700 Subject: [PATCH 03/52] Update cart.js --- src/js/cart.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/cart.js b/src/js/cart.js index 228dfdf1b..70a9e2e3b 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -12,7 +12,7 @@ function cartItemTemplate(item) { ${item.Name} + />

${item.Name}

From 02ab3c75410b69b0bbf017dae7ba3f230e97b34d Mon Sep 17 00:00:00 2001 From: drspahr Date: Thu, 29 Feb 2024 22:00:03 -0600 Subject: [PATCH 04/52] Testing mergre conflict resolution --- package.json | 1 - src/cart/index.html | 2 +- src/checkout/index.html | 25 +------- src/js/cart.js | 6 +- src/js/product.js | 12 ++-- src/json/sleeping-bags.json | 60 +++++--------------- src/json/tents.json | 2 +- src/product_pages/cedar-ridge-rimrock-2.html | 2 +- src/product_pages/marmot-ajax-3.html | 2 +- src/product_pages/northface-alpine-3.html | 2 +- src/product_pages/northface-talus-4.html | 2 +- vite.config.js | 22 +++---- 12 files changed, 43 insertions(+), 95 deletions(-) diff --git a/package.json b/package.json index 86646645b..f24a64c6c 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,6 @@ "lint": "eslint *.js src/**/*.js", "format": "prettier --ignore-path ./.gitignore --write \"./**/*.{html,json,js,ts,css}\"", "test": "jest" - }, "author": "Shane Thompson", "license": "ISC", diff --git a/src/cart/index.html b/src/cart/index.html index f64b6f0c9..87399f39d 100644 --- a/src/cart/index.html +++ b/src/cart/index.html @@ -1,4 +1,4 @@ - + diff --git a/src/checkout/index.html b/src/checkout/index.html index 876458650..7ce7715e5 100644 --- a/src/checkout/index.html +++ b/src/checkout/index.html @@ -1,9 +1,7 @@ - + - - @@ -11,30 +9,22 @@ Sleep Outside | Checkout - -
- -
-
-

Review & Place your Order

-
-
©NOT a real business
- - - diff --git a/src/js/cart.js b/src/js/cart.js index a2fb3d8ef..70a9e2e3b 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,9 +1,9 @@ -import { getLocalStorage } from "./utils.mjs"; +import { getLocalStorage } from './utils.mjs'; function renderCartContents() { - const cartItems = getLocalStorage("so-cart"); + const cartItems = getLocalStorage('so-cart'); const htmlItems = cartItems.map((item) => cartItemTemplate(item)); - document.querySelector(".product-list").innerHTML = htmlItems.join(""); + document.querySelector('.product-list').innerHTML = htmlItems.join(''); } function cartItemTemplate(item) { diff --git a/src/js/product.js b/src/js/product.js index 0b8d0aa67..850429847 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,10 +1,10 @@ -import { setLocalStorage } from "./utils.mjs"; -import ProductData from "./ProductData.mjs"; +import { setLocalStorage } from './utils.mjs'; +import ProductData from './ProductData.mjs'; -const dataSource = new ProductData("tents"); +const dataSource = new ProductData('tents'); function addProductToCart(product) { - setLocalStorage("so-cart", product); + setLocalStorage('so-cart', product); } // add to cart button event handler async function addToCartHandler(e) { @@ -14,5 +14,5 @@ async function addToCartHandler(e) { // add listener to Add to Cart button document - .getElementById("addToCart") - .addEventListener("click", addToCartHandler); + .getElementById('addToCart') + .addEventListener('click', addToCartHandler); diff --git a/src/json/sleeping-bags.json b/src/json/sleeping-bags.json index 6bf7a1243..5d015123c 100644 --- a/src/json/sleeping-bags.json +++ b/src/json/sleeping-bags.json @@ -35,9 +35,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -93,9 +91,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "LH" - ] + "ZIPPER": ["LH"] }, "Colors": [ { @@ -196,12 +192,8 @@ ] }, "SizesAvailable": { - "LENGTH": [ - "REG" - ], - "ZIPPER": [ - "R" - ] + "LENGTH": ["REG"], + "ZIPPER": ["R"] }, "Colors": [ { @@ -323,9 +315,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -370,9 +360,7 @@ "ExtraImages": null }, "SizesAvailable": { - "HAND": [ - "LH" - ] + "HAND": ["LH"] }, "Colors": [ { @@ -422,9 +410,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -474,9 +460,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -526,9 +510,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -578,9 +560,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -630,9 +610,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -730,9 +708,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -1018,9 +994,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -1070,9 +1044,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "R" - ] + "ZIPPER": ["R"] }, "Colors": [ { @@ -1122,9 +1094,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "RH" - ] + "ZIPPER": ["RH"] }, "Colors": [ { diff --git a/src/json/tents.json b/src/json/tents.json index 98029223e..d24bd8bcb 100644 --- a/src/json/tents.json +++ b/src/json/tents.json @@ -99,7 +99,7 @@ { "ColorCode": "01", "ColorName": "Pale Pumpkin/Terracotta" - } + } ], "DescriptionHtmlSimple": "Excess. Get out and enjoy nature with Marmot's Ajax tent, featuring a smart design with durable, waterproof construction and two doors for easy access.", "SuggestedRetailPrice": 275.0, diff --git a/src/product_pages/cedar-ridge-rimrock-2.html b/src/product_pages/cedar-ridge-rimrock-2.html index c05810379..782252ae8 100644 --- a/src/product_pages/cedar-ridge-rimrock-2.html +++ b/src/product_pages/cedar-ridge-rimrock-2.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/marmot-ajax-3.html b/src/product_pages/marmot-ajax-3.html index 936f67541..2a501ac01 100644 --- a/src/product_pages/marmot-ajax-3.html +++ b/src/product_pages/marmot-ajax-3.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/northface-alpine-3.html b/src/product_pages/northface-alpine-3.html index 8d0ab07e3..c512994ef 100644 --- a/src/product_pages/northface-alpine-3.html +++ b/src/product_pages/northface-alpine-3.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/northface-talus-4.html b/src/product_pages/northface-talus-4.html index 891c22612..26ed18477 100644 --- a/src/product_pages/northface-talus-4.html +++ b/src/product_pages/northface-talus-4.html @@ -1,4 +1,4 @@ - + diff --git a/vite.config.js b/vite.config.js index 4a5eef384..df1fc32cd 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,28 +1,28 @@ -import { resolve } from "path"; -import { defineConfig } from "vite"; +import { resolve } from 'path'; +import { defineConfig } from 'vite'; export default defineConfig({ - root: "src/", + root: 'src/', build: { - outDir: "../dist", + outDir: '../dist', rollupOptions: { input: { - main: resolve(__dirname, "src/index.html"), - cart: resolve(__dirname, "src/cart/index.html"), - checkout: resolve(__dirname, "src/checkout/index.html"), + main: resolve(__dirname, 'src/index.html'), + cart: resolve(__dirname, 'src/cart/index.html'), + checkout: resolve(__dirname, 'src/checkout/index.html'), product1: resolve( __dirname, - "src/product_pages/cedar-ridge-rimrock-2.html" + 'src/product_pages/cedar-ridge-rimrock-2.html', ), - product2: resolve(__dirname, "src/product_pages/marmot-ajax-3.html"), + product2: resolve(__dirname, 'src/product_pages/marmot-ajax-3.html'), product3: resolve( __dirname, - "src/product_pages/northface-alpine-3.html" + 'src/product_pages/northface-alpine-3.html', ), product4: resolve( __dirname, - "src/product_pages/northface-talus-4.html" + 'src/product_pages/northface-talus-4.html', ), }, }, From 51d30b28bbb54f3b313e39465dc99deaabc7bf6c Mon Sep 17 00:00:00 2001 From: billybarnie Date: Thu, 29 Feb 2024 22:09:15 -0600 Subject: [PATCH 05/52] coommit chanes --- package.json | 2 +- src/cart/index.html | 2 +- src/checkout/index.html | 25 +------- src/js/cart.js | 6 +- src/js/product.js | 12 ++-- src/json/sleeping-bags.json | 60 +++++--------------- src/json/tents.json | 2 +- src/product_pages/cedar-ridge-rimrock-2.html | 2 +- src/product_pages/marmot-ajax-3.html | 2 +- src/product_pages/northface-alpine-3.html | 2 +- src/product_pages/northface-talus-4.html | 2 +- vite.config.js | 6 +- 12 files changed, 36 insertions(+), 87 deletions(-) diff --git a/package.json b/package.json index 86646645b..c73b13272 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "lint": "eslint *.js src/**/*.js", "format": "prettier --ignore-path ./.gitignore --write \"./**/*.{html,json,js,ts,css}\"", "test": "jest" - + }, "author": "Shane Thompson", "license": "ISC", diff --git a/src/cart/index.html b/src/cart/index.html index f64b6f0c9..87399f39d 100644 --- a/src/cart/index.html +++ b/src/cart/index.html @@ -1,4 +1,4 @@ - + diff --git a/src/checkout/index.html b/src/checkout/index.html index 876458650..7ce7715e5 100644 --- a/src/checkout/index.html +++ b/src/checkout/index.html @@ -1,9 +1,7 @@ - + - - @@ -11,30 +9,22 @@ Sleep Outside | Checkout - -
- -
-
-

Review & Place your Order

-
-
©NOT a real business
- - - diff --git a/src/js/cart.js b/src/js/cart.js index a2fb3d8ef..70a9e2e3b 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,9 +1,9 @@ -import { getLocalStorage } from "./utils.mjs"; +import { getLocalStorage } from './utils.mjs'; function renderCartContents() { - const cartItems = getLocalStorage("so-cart"); + const cartItems = getLocalStorage('so-cart'); const htmlItems = cartItems.map((item) => cartItemTemplate(item)); - document.querySelector(".product-list").innerHTML = htmlItems.join(""); + document.querySelector('.product-list').innerHTML = htmlItems.join(''); } function cartItemTemplate(item) { diff --git a/src/js/product.js b/src/js/product.js index 0b8d0aa67..850429847 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,10 +1,10 @@ -import { setLocalStorage } from "./utils.mjs"; -import ProductData from "./ProductData.mjs"; +import { setLocalStorage } from './utils.mjs'; +import ProductData from './ProductData.mjs'; -const dataSource = new ProductData("tents"); +const dataSource = new ProductData('tents'); function addProductToCart(product) { - setLocalStorage("so-cart", product); + setLocalStorage('so-cart', product); } // add to cart button event handler async function addToCartHandler(e) { @@ -14,5 +14,5 @@ async function addToCartHandler(e) { // add listener to Add to Cart button document - .getElementById("addToCart") - .addEventListener("click", addToCartHandler); + .getElementById('addToCart') + .addEventListener('click', addToCartHandler); diff --git a/src/json/sleeping-bags.json b/src/json/sleeping-bags.json index 6bf7a1243..5d015123c 100644 --- a/src/json/sleeping-bags.json +++ b/src/json/sleeping-bags.json @@ -35,9 +35,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -93,9 +91,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "LH" - ] + "ZIPPER": ["LH"] }, "Colors": [ { @@ -196,12 +192,8 @@ ] }, "SizesAvailable": { - "LENGTH": [ - "REG" - ], - "ZIPPER": [ - "R" - ] + "LENGTH": ["REG"], + "ZIPPER": ["R"] }, "Colors": [ { @@ -323,9 +315,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -370,9 +360,7 @@ "ExtraImages": null }, "SizesAvailable": { - "HAND": [ - "LH" - ] + "HAND": ["LH"] }, "Colors": [ { @@ -422,9 +410,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -474,9 +460,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -526,9 +510,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -578,9 +560,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -630,9 +610,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -730,9 +708,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -1018,9 +994,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "L" - ] + "ZIPPER": ["L"] }, "Colors": [ { @@ -1070,9 +1044,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "R" - ] + "ZIPPER": ["R"] }, "Colors": [ { @@ -1122,9 +1094,7 @@ ] }, "SizesAvailable": { - "ZIPPER": [ - "RH" - ] + "ZIPPER": ["RH"] }, "Colors": [ { diff --git a/src/json/tents.json b/src/json/tents.json index 98029223e..d24bd8bcb 100644 --- a/src/json/tents.json +++ b/src/json/tents.json @@ -99,7 +99,7 @@ { "ColorCode": "01", "ColorName": "Pale Pumpkin/Terracotta" - } + } ], "DescriptionHtmlSimple": "Excess. Get out and enjoy nature with Marmot's Ajax tent, featuring a smart design with durable, waterproof construction and two doors for easy access.", "SuggestedRetailPrice": 275.0, diff --git a/src/product_pages/cedar-ridge-rimrock-2.html b/src/product_pages/cedar-ridge-rimrock-2.html index c05810379..782252ae8 100644 --- a/src/product_pages/cedar-ridge-rimrock-2.html +++ b/src/product_pages/cedar-ridge-rimrock-2.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/marmot-ajax-3.html b/src/product_pages/marmot-ajax-3.html index 936f67541..2a501ac01 100644 --- a/src/product_pages/marmot-ajax-3.html +++ b/src/product_pages/marmot-ajax-3.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/northface-alpine-3.html b/src/product_pages/northface-alpine-3.html index 8d0ab07e3..c512994ef 100644 --- a/src/product_pages/northface-alpine-3.html +++ b/src/product_pages/northface-alpine-3.html @@ -1,4 +1,4 @@ - + diff --git a/src/product_pages/northface-talus-4.html b/src/product_pages/northface-talus-4.html index 891c22612..26ed18477 100644 --- a/src/product_pages/northface-talus-4.html +++ b/src/product_pages/northface-talus-4.html @@ -1,4 +1,4 @@ - + diff --git a/vite.config.js b/vite.config.js index 4a5eef384..a74921ad8 100644 --- a/vite.config.js +++ b/vite.config.js @@ -13,16 +13,16 @@ export default defineConfig({ checkout: resolve(__dirname, "src/checkout/index.html"), product1: resolve( __dirname, - "src/product_pages/cedar-ridge-rimrock-2.html" + "src/product_pages/cedar-ridge-rimrock-2.html", ), product2: resolve(__dirname, "src/product_pages/marmot-ajax-3.html"), product3: resolve( __dirname, - "src/product_pages/northface-alpine-3.html" + "src/product_pages/northface-alpine-3.html", ), product4: resolve( __dirname, - "src/product_pages/northface-talus-4.html" + "src/product_pages/northface-talus-4.html", ), }, }, From 0ceff944f4e8526d272920f5bbde536030ba20de Mon Sep 17 00:00:00 2001 From: drspahr Date: Fri, 1 Mar 2024 20:35:37 -0600 Subject: [PATCH 06/52] Fixed error in addProductToCart() --- src/js/cart.js | 6 +++--- src/js/product.js | 14 ++++++++------ vite.config.js | 24 ++++++++++++------------ 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/js/cart.js b/src/js/cart.js index 70a9e2e3b..a2fb3d8ef 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,9 +1,9 @@ -import { getLocalStorage } from './utils.mjs'; +import { getLocalStorage } from "./utils.mjs"; function renderCartContents() { - const cartItems = getLocalStorage('so-cart'); + const cartItems = getLocalStorage("so-cart"); const htmlItems = cartItems.map((item) => cartItemTemplate(item)); - document.querySelector('.product-list').innerHTML = htmlItems.join(''); + document.querySelector(".product-list").innerHTML = htmlItems.join(""); } function cartItemTemplate(item) { diff --git a/src/js/product.js b/src/js/product.js index 850429847..65b3d0f8a 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,10 +1,12 @@ -import { setLocalStorage } from './utils.mjs'; -import ProductData from './ProductData.mjs'; +import { getLocalStorage, setLocalStorage } from "./utils.mjs"; +import ProductData from "./ProductData.mjs"; -const dataSource = new ProductData('tents'); +const dataSource = new ProductData("tents"); function addProductToCart(product) { - setLocalStorage('so-cart', product); + let cart = getLocalStorage("so-cart") || []; + cart.push(product); + setLocalStorage("so-cart", cart); } // add to cart button event handler async function addToCartHandler(e) { @@ -14,5 +16,5 @@ async function addToCartHandler(e) { // add listener to Add to Cart button document - .getElementById('addToCart') - .addEventListener('click', addToCartHandler); + .getElementById("addToCart") + .addEventListener("click", addToCartHandler); diff --git a/vite.config.js b/vite.config.js index 06fd82ad0..a74921ad8 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,30 +1,30 @@ -import { resolve } from 'path'; -import { defineConfig } from 'vite'; +import { resolve } from "path"; +import { defineConfig } from "vite"; export default defineConfig({ - root: 'src/', + root: "src/", build: { - outDir: '../dist', + outDir: "../dist", rollupOptions: { input: { - main: resolve(__dirname, 'src/index.html'), - cart: resolve(__dirname, 'src/cart/index.html'), - checkout: resolve(__dirname, 'src/checkout/index.html'), + main: resolve(__dirname, "src/index.html"), + cart: resolve(__dirname, "src/cart/index.html"), + checkout: resolve(__dirname, "src/checkout/index.html"), product1: resolve( __dirname, - 'src/product_pages/cedar-ridge-rimrock-2.html', + "src/product_pages/cedar-ridge-rimrock-2.html", ), - product2: resolve(__dirname, 'src/product_pages/marmot-ajax-3.html'), + product2: resolve(__dirname, "src/product_pages/marmot-ajax-3.html"), product3: resolve( __dirname, - 'src/product_pages/northface-alpine-3.html', + "src/product_pages/northface-alpine-3.html", ), product4: resolve( __dirname, - 'src/product_pages/northface-talus-4.html', + "src/product_pages/northface-talus-4.html", ), }, }, }, -}); \ No newline at end of file +}); From 81e147033ae5939415923f9719ed323ac909d087 Mon Sep 17 00:00:00 2001 From: billybarnie Date: Fri, 1 Mar 2024 20:35:47 -0600 Subject: [PATCH 07/52] revising add product to cart --- src/js/cart.js | 6 +++--- src/js/product.js | 14 ++++++++------ vite.config.js | 24 ++++++++++++------------ 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/js/cart.js b/src/js/cart.js index 70a9e2e3b..a2fb3d8ef 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,9 +1,9 @@ -import { getLocalStorage } from './utils.mjs'; +import { getLocalStorage } from "./utils.mjs"; function renderCartContents() { - const cartItems = getLocalStorage('so-cart'); + const cartItems = getLocalStorage("so-cart"); const htmlItems = cartItems.map((item) => cartItemTemplate(item)); - document.querySelector('.product-list').innerHTML = htmlItems.join(''); + document.querySelector(".product-list").innerHTML = htmlItems.join(""); } function cartItemTemplate(item) { diff --git a/src/js/product.js b/src/js/product.js index 850429847..610f9adb4 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,10 +1,12 @@ -import { setLocalStorage } from './utils.mjs'; -import ProductData from './ProductData.mjs'; +import { setLocalStorage, getLocalStorage } from "./utils.mjs"; +import ProductData from "./ProductData.mjs"; -const dataSource = new ProductData('tents'); +const dataSource = new ProductData("tents"); function addProductToCart(product) { - setLocalStorage('so-cart', product); + let cart = getLocalStorage("so-cart") || []; + cart.push(product); + setLocalStorage("so-cart", cart); } // add to cart button event handler async function addToCartHandler(e) { @@ -14,5 +16,5 @@ async function addToCartHandler(e) { // add listener to Add to Cart button document - .getElementById('addToCart') - .addEventListener('click', addToCartHandler); + .getElementById("addToCart") + .addEventListener("click", addToCartHandler); diff --git a/vite.config.js b/vite.config.js index 06fd82ad0..a74921ad8 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,30 +1,30 @@ -import { resolve } from 'path'; -import { defineConfig } from 'vite'; +import { resolve } from "path"; +import { defineConfig } from "vite"; export default defineConfig({ - root: 'src/', + root: "src/", build: { - outDir: '../dist', + outDir: "../dist", rollupOptions: { input: { - main: resolve(__dirname, 'src/index.html'), - cart: resolve(__dirname, 'src/cart/index.html'), - checkout: resolve(__dirname, 'src/checkout/index.html'), + main: resolve(__dirname, "src/index.html"), + cart: resolve(__dirname, "src/cart/index.html"), + checkout: resolve(__dirname, "src/checkout/index.html"), product1: resolve( __dirname, - 'src/product_pages/cedar-ridge-rimrock-2.html', + "src/product_pages/cedar-ridge-rimrock-2.html", ), - product2: resolve(__dirname, 'src/product_pages/marmot-ajax-3.html'), + product2: resolve(__dirname, "src/product_pages/marmot-ajax-3.html"), product3: resolve( __dirname, - 'src/product_pages/northface-alpine-3.html', + "src/product_pages/northface-alpine-3.html", ), product4: resolve( __dirname, - 'src/product_pages/northface-talus-4.html', + "src/product_pages/northface-talus-4.html", ), }, }, }, -}); \ No newline at end of file +}); From 32198ab14d2d95c8678905811db65c7b8fbf1a26 Mon Sep 17 00:00:00 2001 From: billybarnie Date: Fri, 1 Mar 2024 20:41:39 -0600 Subject: [PATCH 08/52] commiting changes to add product to cart --- src/js/product.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/product.js b/src/js/product.js index 610f9adb4..0a37d1ba9 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -7,6 +7,7 @@ function addProductToCart(product) { let cart = getLocalStorage("so-cart") || []; cart.push(product); setLocalStorage("so-cart", cart); + } // add to cart button event handler async function addToCartHandler(e) { From 0f0909d7b1e022a178014fa09247a907bcfc4e7f Mon Sep 17 00:00:00 2001 From: drspahr Date: Fri, 1 Mar 2024 21:06:14 -0600 Subject: [PATCH 09/52] Re-coded product.js --- src/js/product.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/js/product.js b/src/js/product.js index ed02ab818..7d5b4313f 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,10 +1,12 @@ -import { setLocalStorage } from './utils.mjs'; +import { getLocalStorage, setLocalStorage } from './utils.mjs'; import ProductData from './ProductData.mjs'; const dataSource = new ProductData("tents"); function addProductToCart(product) { - setLocalStorage('so-cart', product); + let cart = getLocalStorage('so-cart') || []; + cart.push(product); + setLocalStorage('so-cart', cart); } // add to cart button event handler async function addToCartHandler(e) { From 5e227d2562a2b3946cca52e053c62afe71dda8df Mon Sep 17 00:00:00 2001 From: Krysta Hunt Date: Fri, 1 Mar 2024 20:23:17 -0700 Subject: [PATCH 10/52] Update vite.config.js --- vite.config.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/vite.config.js b/vite.config.js index a74921ad8..e6bc7187f 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,28 +1,28 @@ -import { resolve } from "path"; -import { defineConfig } from "vite"; +import { resolve } from 'path'; +import { defineConfig } from 'vite'; export default defineConfig({ - root: "src/", + root: 'src/', build: { - outDir: "../dist", + outDir: '../dist', rollupOptions: { input: { - main: resolve(__dirname, "src/index.html"), - cart: resolve(__dirname, "src/cart/index.html"), - checkout: resolve(__dirname, "src/checkout/index.html"), + main: resolve(__dirname, 'src/index.html'), + cart: resolve(__dirname, 'src/cart/index.html'), + checkout: resolve(__dirname, 'src/checkout/index.html'), product1: resolve( __dirname, - "src/product_pages/cedar-ridge-rimrock-2.html", + 'src/product_pages/cedar-ridge-rimrock-2.html', ), - product2: resolve(__dirname, "src/product_pages/marmot-ajax-3.html"), + product2: resolve(__dirname, 'src/product_pages/marmot-ajax-3.html'), product3: resolve( __dirname, - "src/product_pages/northface-alpine-3.html", + 'src/product_pages/northface-alpine-3.html', ), product4: resolve( __dirname, - "src/product_pages/northface-talus-4.html", + 'src/product_pages/northface-talus-4.html, ), }, }, From abf9a4af85a25236bb196299f830a70f2dbaf41d Mon Sep 17 00:00:00 2001 From: Krysta Hunt Date: Fri, 1 Mar 2024 20:24:07 -0700 Subject: [PATCH 11/52] Update cart.js --- src/js/cart.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/cart.js b/src/js/cart.js index a2fb3d8ef..70a9e2e3b 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,9 +1,9 @@ -import { getLocalStorage } from "./utils.mjs"; +import { getLocalStorage } from './utils.mjs'; function renderCartContents() { - const cartItems = getLocalStorage("so-cart"); + const cartItems = getLocalStorage('so-cart'); const htmlItems = cartItems.map((item) => cartItemTemplate(item)); - document.querySelector(".product-list").innerHTML = htmlItems.join(""); + document.querySelector('.product-list').innerHTML = htmlItems.join(''); } function cartItemTemplate(item) { From 2679b16e256016c534da9fbf91f7c6b14e10ab2f Mon Sep 17 00:00:00 2001 From: Krysta Hunt Date: Fri, 1 Mar 2024 20:25:03 -0700 Subject: [PATCH 12/52] Update product.js --- src/js/product.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/js/product.js b/src/js/product.js index 6b9985d13..3887bdea8 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,7 +1,7 @@ -import { setLocalStorage, getLocalStorage } from "./utils.mjs"; -import ProductData from "./ProductData.mjs"; +import { setLocalStorage, getLocalStorage } from './utils.mjs'; +import ProductData from './ProductData.mjs'; -const dataSource = new ProductData("tents"); +const dataSource = new ProductData('tents'); function addProductToCart(product) { let cart = getLocalStorage('so-cart') || []; @@ -16,5 +16,5 @@ async function addToCartHandler(e) { // add listener to Add to Cart button document - .getElementById("addToCart") - .addEventListener("click", addToCartHandler); + .getElementById('addToCart') + .addEventListener('click', addToCartHandler); From 3ca2f2110b96cf362009090b4341fee538d61273 Mon Sep 17 00:00:00 2001 From: Krysta Hunt Date: Fri, 1 Mar 2024 20:32:16 -0700 Subject: [PATCH 13/52] Update vite.config.js --- vite.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index e6bc7187f..df1fc32cd 100644 --- a/vite.config.js +++ b/vite.config.js @@ -22,7 +22,7 @@ export default defineConfig({ ), product4: resolve( __dirname, - 'src/product_pages/northface-talus-4.html, + 'src/product_pages/northface-talus-4.html', ), }, }, From 4e5ee728bef582222795468977cbaaaaa1ab9c09 Mon Sep 17 00:00:00 2001 From: TuckTuck94 <114019356+TuckTuck94@users.noreply.github.com> Date: Fri, 1 Mar 2024 21:45:14 -0600 Subject: [PATCH 14/52] commit changes to individual --- src/js/product.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/js/product.js b/src/js/product.js index 3887bdea8..84c0d1ec5 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -4,6 +4,7 @@ import ProductData from './ProductData.mjs'; const dataSource = new ProductData('tents'); function addProductToCart(product) { + //cart array needed let cart = getLocalStorage('so-cart') || []; cart.push(product); setLocalStorage('so-cart', cart); From 01ff3c2de203b973615be454cb7ce49750a22aad Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 7 Mar 2024 19:49:51 -0700 Subject: [PATCH 15/52] week 2 team activity --- src/index.html | 8 ++--- src/js/ProductDetails.mjs | 57 ++++++++++++++++++++++++++++++++ src/js/product.js | 22 ++++--------- src/js/utils.mjs | 5 +++ src/product_pages/index.html | 63 ++++++++++++++++++++++++++++++++++++ 5 files changed, 135 insertions(+), 20 deletions(-) create mode 100644 src/js/ProductDetails.mjs create mode 100644 src/product_pages/index.html diff --git a/src/index.html b/src/index.html index 35ac63ce6..850fd0918 100644 --- a/src/index.html +++ b/src/index.html @@ -54,7 +54,7 @@

Top Products

+
©NOT a real business
diff --git a/src/css/style.css b/src/css/style.css index dee10f627..6875e41e5 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -202,6 +202,9 @@ button { grid-column: 3; } +.hide { + display: none; +} @media screen and (min-width: 500px) { body { max-width: 1080px; diff --git a/src/js/cart.js b/src/js/cart.js index 45c1a92b1..3fc161928 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -4,9 +4,12 @@ function renderCartContents() { const cartItems = getLocalStorage('so-cart'); const htmlItems = cartItems.map((item) => cartItemTemplate(item)); const total = getCartTotal(cartItems); - const cartTotalHTML = cartTotalTemplate(total); + const totalDiv = document.querySelector('.total'); + + totalDiv.innerHTML = total === 0 ? '' : cartTotalTemplate(total); + totalDiv.classList.toggle('hide', total === 0); + document.querySelector('.product-list').innerHTML = htmlItems.join(''); - document.querySelector('section.products').insertAdjacentHTML('beforeend', cartTotalHTML); } function cartItemTemplate(item) { From fc82a1b689f63e4ae301d4596330670e7b56310c Mon Sep 17 00:00:00 2001 From: billybarnie Date: Sat, 9 Mar 2024 13:11:17 -0600 Subject: [PATCH 21/52] making changes to the total to cart in a new branch --- src/js/cart.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/cart.js b/src/js/cart.js index 3fc161928..9dcd77ee1 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -6,7 +6,7 @@ function renderCartContents() { const total = getCartTotal(cartItems); const totalDiv = document.querySelector('.total'); - totalDiv.innerHTML = total === 0 ? '' : cartTotalTemplate(total); + totalDiv.innerHTML = total === 0 ? '' : cartTotalTemplate(total); // correcting my adding to cart in a new branch totalDiv.classList.toggle('hide', total === 0); document.querySelector('.product-list').innerHTML = htmlItems.join(''); From fcdc91f410c53d8f6b19ab29fb0dc13c1cb571e2 Mon Sep 17 00:00:00 2001 From: drspahr Date: Sat, 9 Mar 2024 13:26:06 -0600 Subject: [PATCH 22/52] Individual Activity 2 - New and moved files --- src/index.html | 5 +- src/js/ProductList.mjs | 36 + src/js/main.js | 8 + src/js/utils.mjs | 9 + src/public/images/banner-sm.jpg | Bin 0 -> 129858 bytes src/public/images/banner.jpg | Bin 0 -> 162405 bytes src/public/images/logos/marmot-160x100.jpg | Bin 0 -> 3685 bytes src/public/images/noun_Backpack_2389275.svg | 1 + src/public/images/noun_Backpack_65884.svg | 23 + src/public/images/noun_Tent_2517.svg | 5 + ...n-3-season-in-rust-clay~p~344yj_01~320.jpg | Bin 0 -> 13359 bytes ...pale-pumpkin-terracotta~p~880rr_01~320.jpg | Bin 0 -> 15599 bytes ...y-yellow-high-rise-grey~p~985pr_01~320.jpg | Bin 0 -> 9365 bytes ...lden-oak-saffron-yellow~p~985rf_01~320.jpg | Bin 0 -> 12188 bytes src/public/json/backpacks.json | 3482 +++++++++++++++++ src/public/json/sleeping-bags.json | 1206 ++++++ src/public/json/tents.json | 137 + vite.config.js | 29 +- 18 files changed, 4925 insertions(+), 16 deletions(-) create mode 100644 src/js/ProductList.mjs create mode 100644 src/public/images/banner-sm.jpg create mode 100644 src/public/images/banner.jpg create mode 100644 src/public/images/logos/marmot-160x100.jpg create mode 100644 src/public/images/noun_Backpack_2389275.svg create mode 100644 src/public/images/noun_Backpack_65884.svg create mode 100644 src/public/images/noun_Tent_2517.svg create mode 100644 src/public/images/tents/cedar-ridge-rimrock-tent-2-person-3-season-in-rust-clay~p~344yj_01~320.jpg create mode 100644 src/public/images/tents/marmot-ajax-tent-3-person-3-season-in-pale-pumpkin-terracotta~p~880rr_01~320.jpg create mode 100644 src/public/images/tents/the-north-face-alpine-guide-tent-3-person-4-season-in-canary-yellow-high-rise-grey~p~985pr_01~320.jpg create mode 100644 src/public/images/tents/the-north-face-talus-tent-4-person-3-season-in-golden-oak-saffron-yellow~p~985rf_01~320.jpg create mode 100644 src/public/json/backpacks.json create mode 100644 src/public/json/sleeping-bags.json create mode 100644 src/public/json/tents.json diff --git a/src/index.html b/src/index.html index 850fd0918..a3547309b 100644 --- a/src/index.html +++ b/src/index.html @@ -5,6 +5,7 @@ Sleep Outside | Home +
@@ -53,7 +54,7 @@

Top Products

    -
  • +
diff --git a/src/js/ProductList.mjs b/src/js/ProductList.mjs new file mode 100644 index 000000000..9af176644 --- /dev/null +++ b/src/js/ProductList.mjs @@ -0,0 +1,36 @@ +// Create a list of product cards in HTML from an array from a .json file +import { renderListWithTemplate } from './utils.mjs'; + +function productCardTemplate(product) { + return `
  • + + Image of ${product.Name} +

    ${product.Brand.Name}

    +

    ${product.Name}

    +

    $${product.FinalPrice}

    +
  • `; +} + +export default class ProductListing { + constructor(category, dataSource, listElement) { + this.category = category; + this.dataSource = dataSource; + this.listElement = listElement; + } + + async init() { + const list = await this.dataSource.getData(); + let fList = this.filterList(list); + this.renderList(fList); + // this.rendorList(list); + } + + renderList(list) { + renderListWithTemplate(productCardTemplate, this.listElement, list); + } + + filterList(list) { + const n = 4; + return list.slice(0, n); + } +} \ No newline at end of file diff --git a/src/js/main.js b/src/js/main.js index e69de29bb..35fd15522 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -0,0 +1,8 @@ +import ProductData from './ProductData.mjs'; +import ProductList from './ProductList.mjs'; + +const dataSource = new ProductData('tents'); // Create instance of ProductData +const element = document.querySelector('.product-list'); // Create variable to hold the element of the list +const listing = new ProductList('Tents', dataSource,element); // Create instance of the ProductList + +listing.init(); // Create the list of products of the given product diff --git a/src/js/utils.mjs b/src/js/utils.mjs index d7a34a456..650122059 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -26,3 +26,12 @@ export function getParam(param){ const urlParams = new URLSearchParams(queryString); return urlParams.get(param); } + +export function renderListWithTemplate( + templateFn, parentElement, list, postion = "afterBegin", clear = "false") { + const htmlStrings = list.map(templateFn); + if (clear) { + parentElement.innerHTML = ""; + } + parentElement.insertAdjacentHTML(postion, htmlStrings.join("")); + } diff --git a/src/public/images/banner-sm.jpg b/src/public/images/banner-sm.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c65f8fa254efec583e92a18744cccf88cda5e171 GIT binary patch literal 129858 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%0AlJ~} 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ϫIYPpb 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%0D*)vCRnNj(nlTk-FTHESqFv8mkNC8}>} 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 \ No newline at end of file diff --git a/src/public/images/noun_Backpack_65884.svg b/src/public/images/noun_Backpack_65884.svg new file mode 100644 index 000000000..1ae7f4f4c --- /dev/null +++ b/src/public/images/noun_Backpack_65884.svg @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/src/public/images/noun_Tent_2517.svg b/src/public/images/noun_Tent_2517.svg new file mode 100644 index 000000000..633bf17ab --- /dev/null +++ b/src/public/images/noun_Tent_2517.svg @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/public/images/tents/cedar-ridge-rimrock-tent-2-person-3-season-in-rust-clay~p~344yj_01~320.jpg b/src/public/images/tents/cedar-ridge-rimrock-tent-2-person-3-season-in-rust-clay~p~344yj_01~320.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ad93493ce630ec44b485ffc393deab8601cb7a66 GIT binary patch literal 13359 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 literal 0 HcmV?d00001 diff --git a/src/public/images/tents/marmot-ajax-tent-3-person-3-season-in-pale-pumpkin-terracotta~p~880rr_01~320.jpg b/src/public/images/tents/marmot-ajax-tent-3-person-3-season-in-pale-pumpkin-terracotta~p~880rr_01~320.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4bf019c8bbd9af2f62c57a3742c8f771512859d5 GIT binary patch literal 15599 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 HasK}TvH9Es literal 0 HcmV?d00001 diff --git a/src/public/images/tents/the-north-face-alpine-guide-tent-3-person-4-season-in-canary-yellow-high-rise-grey~p~985pr_01~320.jpg b/src/public/images/tents/the-north-face-alpine-guide-tent-3-person-4-season-in-canary-yellow-high-rise-grey~p~985pr_01~320.jpg new file mode 100644 index 0000000000000000000000000000000000000000..894c6057baf9a067e9a43baa54fa67e2f9253613 GIT binary patch literal 9365 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 literal 0 HcmV?d00001 diff --git a/src/public/images/tents/the-north-face-talus-tent-4-person-3-season-in-golden-oak-saffron-yellow~p~985rf_01~320.jpg b/src/public/images/tents/the-north-face-talus-tent-4-person-3-season-in-golden-oak-saffron-yellow~p~985rf_01~320.jpg new file mode 100644 index 0000000000000000000000000000000000000000..10a3a845a3e2c32a94ca5bfa71ec3f82a8ac29bd GIT binary patch literal 12188 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 literal 0 HcmV?d00001 diff --git a/src/public/json/backpacks.json b/src/public/json/backpacks.json new file mode 100644 index 000000000..e868cb819 --- /dev/null +++ b/src/public/json/backpacks.json @@ -0,0 +1,3482 @@ +{ + "Count": 64, + "Page": 1, + "PerPage": 24, + "NextPageUrl": "/api/1.0/products/s~backpacks/?page=2", + "LastPageUrl": "/api/1.0/products/s~backpacks/?page=3", + "RefinementsUrl": "/api/1.0/refinements/search~backpacks/", + "Title": "Search for \"backpacks\" ", + "Result": [ + { + "Id": "223RN", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/223rn/", + "WebUrl": "https://www.sierra.com/product/bounce/223rn/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/223rn/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/223rn/", + "ReviewCount": 11, + "AverageRating": 4.64 + }, + "NameWithoutBrand": "Zulu 55 Backpack - Internal Frame", + "Name": "Gregory Zulu 55 Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame-in-moss-green~p~223rn_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame-in-moss-green~p~223rn_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame-in-moss-green~p~223rn_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame-in-moss-green~p~223rn_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame~a~223rn_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame~a~223rn_3~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["M", "L"] }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Moss Green", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/223rn-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame-in-moss-green~p~223rn_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Gregory's Zulu 55 backpack boasts a streamlined, yet spacious design ideal for weekend trips and winter overnights. The highly breathable CrossFlo DTS suspension system keeps air circulating across your back, and the bottom compartment offers easy access to your sleeping bag.", + "SuggestedRetailPrice": 199.0, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-zulu-55-backpack-internal-frame~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "810NV", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/810nv/", + "WebUrl": "https://www.sierra.com/product/bounce/810nv/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/810nv/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/810nv/", + "ReviewCount": 1, + "AverageRating": 5.0 + }, + "NameWithoutBrand": "Paragon 58L Backpack - Internal Frame", + "Name": "Gregory Paragon 58L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-paragon-58l-backpack-internal-frame-in-sunset-grey~p~810nv_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-paragon-58l-backpack-internal-frame-in-sunset-grey~p~810nv_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-paragon-58l-backpack-internal-frame-in-sunset-grey~p~810nv_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-paragon-58l-backpack-internal-frame-in-sunset-grey~p~810nv_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-paragon-58l-backpack-internal-frame~a~810nv_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S/M", "M/L"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Sunset Grey", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/810nv-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-paragon-58l-backpack-internal-frame-in-sunset-grey~p~810nv_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The perfect lightweight companion for overnighting and minimalist trekking, Gregory's Paragon 58L backpack is well-balanced with an alloy Aerolon suspension for outstanding load support and plenty of pockets for organization.", + "SuggestedRetailPrice": 189.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-paragon-58l-backpack-internal-frame~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "848MJ", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848mj/", + "WebUrl": "https://www.sierra.com/product/bounce/848mj/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848mj/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848mj/", + "ReviewCount": 1, + "AverageRating": 3.0 + }, + "NameWithoutBrand": "Versant 70L Backpack - Internal Frame (For Men)", + "Name": "Thule Versant 70L Backpack - Internal Frame (For Men)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men-in-fjord~p~848mj_03~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men-in-fjord~p~848mj_03~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men-in-fjord~p~848mj_03~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men-in-fjord~p~848mj_03~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men~a~848mj_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men~a~848mj_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men~a~848mj_4~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men~a~848mj_5~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "03", + "ColorName": "Fjord", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848mj-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men-in-fjord~p~848mj_03~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. When your fun backpacking trip turns into a stormy mess, Thule's Versant 70L backpack has you covered with an integrated StormGuard weatherproofing system that keeps your gear safe from moisture. The adjustable torso and waistbelt ensure the pack fits perfectly every time (even over extra layers), and the main compartment is accessible via the top or a wide-opening front zip panel so that you don't have to totally unpack your bag every time you want something.", + "SuggestedRetailPrice": 215.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-men~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "541HM", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/541hm/", + "WebUrl": "https://www.sierra.com/product/bounce/541hm/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/541hm/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/541hm/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Revol 50L Backpack", + "Name": "Kelty Revol 50L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/kelty-revol-50l-backpack-in-raven~p~541hm_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/kelty-revol-50l-backpack-in-raven~p~541hm_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/kelty-revol-50l-backpack-in-raven~p~541hm_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/kelty-revol-50l-backpack-in-raven~p~541hm_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-revol-50l-backpack~a~541hm_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-revol-50l-backpack~a~541hm_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Raven", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/541hm-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-revol-50l-backpack-in-raven~p~541hm_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Forest Green", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/541hm-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-revol-50l-backpack-in-forest-green~p~541hm_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. A tried and trusted trail pack upgraded with modern, streamlined features and plenty of space for multi-day excursions, Kelty Revol 50L backpack boasts the Kinesis waistbelt that moves and adjusts with your every step, and a parallel-pivot design that keeps the shape of the waistbelt contoured to your body as you hike.", + "SuggestedRetailPrice": 149.99, + "Brand": { + "Id": "1105", + "Url": "/api/1.0/brand/1105/", + "ProductsUrl": "/api/1.0/products/kelty~b~1105/", + "LogoSrc": "https://i.stpost.com/kelty-revol-50l-backpack~b~1105~160x100.jpg", + "Name": "Kelty" + }, + "ListPrice": 119.99, + "FinalPrice": 119.99 + }, + { + "Id": "848MD", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848md/", + "WebUrl": "https://www.sierra.com/product/bounce/848md/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848md/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848md/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Versant 60L Backpack - Internal Frame (For Men)", + "Name": "Thule Versant 60L Backpack - Internal Frame (For Men)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men-in-fjord~p~848md_03~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men-in-fjord~p~848md_03~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men-in-fjord~p~848md_03~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men-in-fjord~p~848md_03~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men~a~848md_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men~a~848md_3~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "03", + "ColorName": "Fjord", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848md-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men-in-fjord~p~848md_03~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Dark Forest", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848md-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men-in-dark-forest~p~848md_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. When your fun backpacking trip turns into a stormy mess, Thule's Versant 60L backpack has you covered with an integrated StormGuard weatherproofing system that keeps your gear safe from moisture. The adjustable torso and waistbelt ensure the pack fits perfectly every time (even over extra layers), and the main compartment is accessible via the top and a wide-opening front zip panel. Bonus: The roomy, floating lid quickly converts into a sling pack for day hikes.", + "SuggestedRetailPrice": 205.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-men~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "889PR", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/889pr/", + "WebUrl": "https://www.sierra.com/product/bounce/889pr/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/889pr/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/889pr/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Stout 45 Adjustable Backpack", + "Name": "Gregory Stout 45 Adjustable Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-stout-45-adjustable-backpack-in-prairie-orange~p~889pr_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-stout-45-adjustable-backpack-in-prairie-orange~p~889pr_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-stout-45-adjustable-backpack-in-prairie-orange~p~889pr_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-stout-45-adjustable-backpack-in-prairie-orange~p~889pr_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-stout-45-adjustable-backpack~a~889pr_2~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-stout-45-adjustable-backpack~a~889pr_3~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-stout-45-adjustable-backpack~a~889pr_4~600.3.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Prairie Orange", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/889pr-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-stout-45-adjustable-backpack-in-prairie-orange~p~889pr_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Navy Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/889pr-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-stout-45-adjustable-backpack-in-navy-blue~p~889pr_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Supportive and smartly designed, Gregory's Stout 35 backpack features a TrailFlex wishbone suspension so it carries comfortably when fully loaded. A roomy, yet compact option well-suited to weekend backpacking trips through technical terrain.", + "SuggestedRetailPrice": 149.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-stout-45-adjustable-backpack~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 99.99, + "FinalPrice": 99.99 + }, + { + "Id": "928PD", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/928pd/", + "WebUrl": "https://www.sierra.com/product/bounce/928pd/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/928pd/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/928pd/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Trophy TS 20L Backpack", + "Name": "CamelBak Trophy TS 20L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack-in-mossy-oak-country-break-up~p~928pd_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack-in-mossy-oak-country-break-up~p~928pd_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack-in-mossy-oak-country-break-up~p~928pd_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack-in-mossy-oak-country-break-up~p~928pd_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack~a~928pd_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack~a~928pd_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack~a~928pd_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Mossy Oak Country Break-Up", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/928pd-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack-in-mossy-oak-country-break-up~p~928pd_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Keep hunting essentials close at hand using CamelBak's Trophy TS 20 backpack, optimized for stand hunting with a deployable work shelf and a strap-based hanging system.", + "SuggestedRetailPrice": 149.0, + "Brand": { + "Id": "6070", + "Url": "/api/1.0/brand/6070/", + "ProductsUrl": "/api/1.0/products/camelbak~b~6070/", + "LogoSrc": "https://i.stpost.com/camelbak-trophy-ts-20l-backpack~b~6070~160x100.jpg", + "Name": "CamelBak" + }, + "ListPrice": 79.99, + "FinalPrice": 79.99 + }, + { + "Id": "665HD", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/665hd/", + "WebUrl": "https://www.sierra.com/product/bounce/665hd/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/665hd/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/665hd/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Maven 45L Backpack - Internal Frame", + "Name": "Gregory Maven 45L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame-in-forest-grey~p~665hd_03~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame-in-forest-grey~p~665hd_03~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame-in-forest-grey~p~665hd_03~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame-in-forest-grey~p~665hd_03~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame~a~665hd_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame~a~665hd_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame~a~665hd_4~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S/M", "XS/S"] }, + "Colors": [ + { + "ColorCode": "03", + "ColorName": "Forest Grey", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/665hd-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame-in-forest-grey~p~665hd_03~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Phoenix Red", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/665hd-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame-in-phoenix-red~p~665hd_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The perfect lightweight companion for peak-bagging and minimalist overnighting, Gregory's Maven 45L backpack is well-balanced with alloy anti-barreling stays and an HDPE sheet for firm support.", + "SuggestedRetailPrice": 149.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-maven-45l-backpack-internal-frame~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 99.99, + "FinalPrice": 99.99 + }, + { + "Id": "896MX", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/896mx/", + "WebUrl": "https://www.sierra.com/product/bounce/896mx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/896mx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/896mx/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Manaslu 65L Backpack - Internal Frame", + "Name": "Lowe Alpine Manaslu 65L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame-in-oxide~p~896mx_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame-in-oxide~p~896mx_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame-in-oxide~p~896mx_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame-in-oxide~p~896mx_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame~a~896mx_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame~a~896mx_3~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Oxide", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame-in-oxide~p~896mx_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Shaded Spruce", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mx-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame-in-shaded-spruce~p~896mx_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. An epic adventure requires an epic pack, and that's where Lowe Alpine's Manaslu 65L backpack comes in. With its durable construction, expandable lid, Axiom 5 back adjustment system, abundant gear storage and ergonomic design, this backpack is the perfect companion for days, weeks -- or months -- of backpacking or travel.", + "SuggestedRetailPrice": 255.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-manaslu-65l-backpack-internal-frame~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 119.0, + "FinalPrice": 119.0 + }, + { + "Id": "896MT", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/896mt/", + "WebUrl": "https://www.sierra.com/product/bounce/896mt/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/896mt/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/896mt/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Mountain Ascent 40L Backpack", + "Name": "Lowe Alpine Mountain Ascent 40L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack-in-haute-red~p~896mt_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack-in-haute-red~p~896mt_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack-in-haute-red~p~896mt_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack-in-haute-red~p~896mt_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack~a~896mt_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack~a~896mt_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Haute Red", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mt-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack-in-haute-red~p~896mt_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Marine", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mt-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack-in-marine~p~896mt_02~160.jpg" + }, + { + "ColorCode": "03", + "ColorName": "Onyx", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mt-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack-in-onyx~p~896mt_03~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Designed with winter climbers in mind, this Lowe Alpine Mountain Ascent 40L backpack has you covered with plenty of room for your gear, and features gear loops, rope holder, a Headlocker ice axe attachment system and wide slots to tote your powder skis.", + "SuggestedRetailPrice": 190.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-mountain-ascent-40l-backpack~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 79.0, + "FinalPrice": 79.0 + }, + { + "Id": "223RM", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/223rm/", + "WebUrl": "https://www.sierra.com/product/bounce/223rm/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/223rm/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/223rm/", + "ReviewCount": 11, + "AverageRating": 4.27 + }, + "NameWithoutBrand": "Jade 53 Backpack (For Women)", + "Name": "Gregory Jade 53 Backpack (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-jade-53-backpack-for-women-in-dark-charcoal~p~223rm_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-jade-53-backpack-for-women-in-dark-charcoal~p~223rm_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-jade-53-backpack-for-women-in-dark-charcoal~p~223rm_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-jade-53-backpack-for-women-in-dark-charcoal~p~223rm_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-jade-53-backpack-for-women~a~223rm_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S", "M"] }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Dark Charcoal", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/223rm-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-jade-53-backpack-for-women-in-dark-charcoal~p~223rm_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Designed especially for trail-bound women, Gregory's Jade 53 backpack features an easy-access, expandable front bucket pocket that's perfect for stowing extra layers and rain gear. Plus, the ventilating CrossFlo DTS system offers comfort for the long haul, and the top pocket detaches as a daypack for shorter treks.", + "SuggestedRetailPrice": 199.0, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-jade-53-backpack-for-women~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "896NA", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/896na/", + "WebUrl": "https://www.sierra.com/product/bounce/896na/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/896na/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/896na/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Manaslu 55L Backpack - Internal Frame", + "Name": "Lowe Alpine Manaslu 55L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame-in-shaded-spruce~p~896na_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame-in-shaded-spruce~p~896na_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame-in-shaded-spruce~p~896na_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame-in-shaded-spruce~p~896na_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame~a~896na_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame~a~896na_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Shaded Spruce", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896na-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame-in-shaded-spruce~p~896na_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. An epic adventure requires an epic pack, and that's where Lowe Alpine's Manaslu 55L backpack comes in. With its durable construction, expandable lid, Axiom 5 back adjustment system, abundant gear storage and ergonomic design, this backpack is the perfect companion for mid-range trips.", + "SuggestedRetailPrice": 240.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-manaslu-55l-backpack-internal-frame~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 149.99, + "FinalPrice": 149.99 + }, + { + "Id": "810NW", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/810nw/", + "WebUrl": "https://www.sierra.com/product/bounce/810nw/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/810nw/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/810nw/", + "ReviewCount": 1, + "AverageRating": 5.0 + }, + "NameWithoutBrand": "Maven 55L Backpack - Internal Frame", + "Name": "Gregory Maven 55L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-maven-55l-backpack-internal-frame-in-river-blue~p~810nw_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-maven-55l-backpack-internal-frame-in-river-blue~p~810nw_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-maven-55l-backpack-internal-frame-in-river-blue~p~810nw_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-maven-55l-backpack-internal-frame-in-river-blue~p~810nw_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-maven-55l-backpack-internal-frame~a~810nw_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["XS/S", "S/M"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "River Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/810nw-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-maven-55l-backpack-internal-frame-in-river-blue~p~810nw_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The perfect lightweight companion for peak-bagging and minimalist overnighting, Gregory's Maven 55L backpack is well-balanced with alloy anti-barreling stays and an HDPE sheet for firm support.", + "SuggestedRetailPrice": 189.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-maven-55l-backpack-internal-frame~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 149.99, + "FinalPrice": 149.99 + }, + { + "Id": "893WV", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/893wv/", + "WebUrl": "https://www.sierra.com/product/bounce/893wv/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/893wv/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/893wv/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Capstone 32L Backpack - Internal Frame (For Women)", + "Name": "Thule Capstone 32L Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-capstone-32l-backpack-internal-frame-for-women-in-deep-teal~p~893wv_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-capstone-32l-backpack-internal-frame-for-women-in-deep-teal~p~893wv_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-capstone-32l-backpack-internal-frame-for-women-in-deep-teal~p~893wv_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-capstone-32l-backpack-internal-frame-for-women-in-deep-teal~p~893wv_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-capstone-32l-backpack-internal-frame-for-women~a~893wv_2~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Deep Teal", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/893wv-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-capstone-32l-backpack-internal-frame-for-women-in-deep-teal~p~893wv_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Thule's Capstone 32L backpack is a spacious, super-supportive daypack that can be loaded down comfortably for long day hikes and peak scrambling. The MicroAdjust suspension lets you adjust the torso length along the tubular aluminum frame while wearing the pack.", + "SuggestedRetailPrice": 140.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-capstone-32l-backpack-internal-frame-for-women~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 69.0, + "FinalPrice": 69.0 + }, + { + "Id": "810NP", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/810np/", + "WebUrl": "https://www.sierra.com/product/bounce/810np/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/810np/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/810np/", + "ReviewCount": 1, + "AverageRating": 5.0 + }, + "NameWithoutBrand": "Paragon 68L Backpack", + "Name": "Gregory Paragon 68L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-paragon-68l-backpack-in-omega-blue~p~810np_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-paragon-68l-backpack-in-omega-blue~p~810np_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-paragon-68l-backpack-in-omega-blue~p~810np_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-paragon-68l-backpack-in-omega-blue~p~810np_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-paragon-68l-backpack~a~810np_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["M/L"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Omega Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/810np-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-paragon-68l-backpack-in-omega-blue~p~810np_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The perfect lightweight companion for overnighting and minimalist trekking, Gregory's Paragon 58L backpack is well-balanced with an alloy Aerolon suspension for outstanding load support and plenty of pockets for organization.", + "SuggestedRetailPrice": 229.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-paragon-68l-backpack~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 119.0, + "FinalPrice": 119.0 + }, + { + "Id": "893WU", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/893wu/", + "WebUrl": "https://www.sierra.com/product/bounce/893wu/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/893wu/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/893wu/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Capstone 22L Backpack (For Men)", + "Name": "Thule Capstone 22L Backpack (For Men)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-capstone-22l-backpack-for-men-in-atlantic~p~893wu_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-capstone-22l-backpack-for-men-in-atlantic~p~893wu_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-capstone-22l-backpack-for-men-in-atlantic~p~893wu_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-capstone-22l-backpack-for-men-in-atlantic~p~893wu_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-capstone-22l-backpack-for-men~a~893wu_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S/M", "M/L"] }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Atlantic", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/893wu-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-capstone-22l-backpack-for-men-in-atlantic~p~893wu_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Obsidian", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/893wu-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-capstone-22l-backpack-for-men-in-obsidian~p~893wu_01~160.jpg" + }, + { + "ColorCode": "03", + "ColorName": "Slickrock", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/893wu-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-capstone-22l-backpack-for-men-in-slickrock~p~893wu_03~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Just add your sense of adventure! The Thule Capstone 22L backpack features a micro-adjustable suspension that provides the perfect fit, and it has all the trail-ready features you need for day trips and ultralight overnights.", + "SuggestedRetailPrice": 115.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-capstone-22l-backpack-for-men~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 79.99, + "FinalPrice": 79.99 + }, + { + "Id": "896MU", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/896mu/", + "WebUrl": "https://www.sierra.com/product/bounce/896mu/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/896mu/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/896mu/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Cerro Torre 65L Large Backpack - Internal Frame", + "Name": "Lowe Alpine Cerro Torre 65L Large Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame-in-bondi-blue~p~896mu_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame-in-bondi-blue~p~896mu_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame-in-bondi-blue~p~896mu_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame-in-bondi-blue~p~896mu_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame~a~896mu_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame~a~896mu_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Bondi Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mu-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame-in-bondi-blue~p~896mu_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. If you want a bag that does it all, look no further than Lowe Alpine's Cerro Torre 65L Large backpack. With its durable TriShield® Grid construction, expandable lid, Axiom 7 back adjustment system, abundant gear storage and ergonomic design, this backpack is the perfect companion for lengthy backpacking trips.", + "SuggestedRetailPrice": 300.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-cerro-torre-65l-large-backpack-internal-frame~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 149.0, + "FinalPrice": 149.0 + }, + { + "Id": "730FX", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/730fx/", + "WebUrl": "https://www.sierra.com/product/bounce/730fx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/730fx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/730fx/", + "ReviewCount": 1, + "AverageRating": 4.0 + }, + "NameWithoutBrand": "Instigator 32L Backpack", + "Name": "The North Face Instigator 32L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/the-north-face-instigator-32l-backpack-in-tnf-yellow-tnf-black~p~730fx_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/the-north-face-instigator-32l-backpack-in-tnf-yellow-tnf-black~p~730fx_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/the-north-face-instigator-32l-backpack-in-tnf-yellow-tnf-black~p~730fx_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/the-north-face-instigator-32l-backpack-in-tnf-yellow-tnf-black~p~730fx_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-instigator-32l-backpack~a~730fx_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-instigator-32l-backpack~a~730fx_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-instigator-32l-backpack~a~730fx_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Tnf Yellow/Tnf Black", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/730fx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/the-north-face-instigator-32l-backpack-in-tnf-yellow-tnf-black~p~730fx_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. At home in town and on the trail, The North Face's Instigator backpack lets you take it all with you safely and comfortably thanks to a massive main compartment, a padded laptop sleeve, and padded straps for optimal comfort.", + "SuggestedRetailPrice": 109.0, + "Brand": { + "Id": "1440", + "Url": "/api/1.0/brand/1440/", + "ProductsUrl": "/api/1.0/products/the-north-face~b~1440/", + "LogoSrc": "https://i.stpost.com/the-north-face-instigator-32l-backpack~b~1440~160x100.jpg", + "Name": "The North Face" + }, + "ListPrice": 59.0, + "FinalPrice": 59.0 + }, + { + "Id": "897XT", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/897xt/", + "WebUrl": "https://www.sierra.com/product/bounce/897xt/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/897xt/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/897xt/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Terraframe 3-Zip 50L Backpack", + "Name": "Mystery Ranch Terraframe 3-Zip 50L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xt_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xt_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xt_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xt_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack~a~897xt_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack~a~897xt_3~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["M"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Phantom", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/897xt-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xt_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Easily manage awkward, oversized loads on the trail with Mystery Ranch's Terraframe 3-Zip 50L backpack, a versatile hybrid bag featuring a rigid, carbon-fiber frame that flexes with your body, expandable Terraframe technology, a Y-shaped three-zip system for easy access to your full bag, and an OVERLOAD® sling that supports up to 150 pounds.", + "SuggestedRetailPrice": 330.0, + "Brand": { + "Id": "37083", + "Url": "/api/1.0/brand/37083/", + "ProductsUrl": "/api/1.0/products/mystery-ranch~b~37083/", + "LogoSrc": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack~b~37083~160x100.jpg", + "Name": "Mystery Ranch" + }, + "ListPrice": 229.99, + "FinalPrice": 229.99 + }, + { + "Id": "20FWN", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/20fwn/", + "WebUrl": "https://www.sierra.com/product/bounce/20fwn/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/20fwn/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/20fwn/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Banchee 65 Pack", + "Name": "The North Face Banchee 65 Pack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/the-north-face-banchee-65-pack-in-urban-navy-bright-cobalt-blue~p~20fwn_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/the-north-face-banchee-65-pack-in-urban-navy-bright-cobalt-blue~p~20fwn_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/the-north-face-banchee-65-pack-in-urban-navy-bright-cobalt-blue~p~20fwn_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/the-north-face-banchee-65-pack-in-urban-navy-bright-cobalt-blue~p~20fwn_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-banchee-65-pack~a~20fwn_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S/M", "L/XL"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Urban Navy/Bright Cobalt Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/20fwn-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/the-north-face-banchee-65-pack-in-urban-navy-bright-cobalt-blue~p~20fwn_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. From day hikes to overnight trips, The North Face's Banchee 65 pack will hold all your gear without weighing you down. With an ultralight, durable aluminum frame and FlashDry technology, you can comfortably carry this pack through any terrain.", + "SuggestedRetailPrice": 220.0, + "Brand": { + "Id": "1440", + "Url": "/api/1.0/brand/1440/", + "ProductsUrl": "/api/1.0/products/the-north-face~b~1440/", + "LogoSrc": "https://i.stpost.com/the-north-face-banchee-65-pack~b~1440~160x100.jpg", + "Name": "The North Face" + }, + "ListPrice": 149.99, + "FinalPrice": 149.99 + }, + { + "Id": "897XN", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/897xn/", + "WebUrl": "https://www.sierra.com/product/bounce/897xn/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/897xn/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/897xn/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Hover Pack 40L Backpack - Internal Frame", + "Name": "Mystery Ranch Hover Pack 40L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame-in-deep-sea~p~897xn_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame-in-deep-sea~p~897xn_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame-in-deep-sea~p~897xn_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame-in-deep-sea~p~897xn_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame~a~897xn_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame~a~897xn_3~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["M", "L"] }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Deep Sea", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/897xn-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame-in-deep-sea~p~897xn_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. The Mystery Ranch Hover 40L backpack features a highly breathable Hover system that allows air flow between your back and the pack, ample padding through the back and hips, and just-right room for all your gear.", + "SuggestedRetailPrice": 225.0, + "Brand": { + "Id": "37083", + "Url": "/api/1.0/brand/37083/", + "ProductsUrl": "/api/1.0/products/mystery-ranch~b~37083/", + "LogoSrc": "https://i.stpost.com/mystery-ranch-hover-pack-40l-backpack-internal-frame~b~37083~160x100.jpg", + "Name": "Mystery Ranch" + }, + "ListPrice": 149.99, + "FinalPrice": 149.99 + }, + { + "Id": "897XX", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/897xx/", + "WebUrl": "https://www.sierra.com/product/bounce/897xx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/897xx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/897xx/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Terraframe 3-Zip 50L Backpack", + "Name": "Mystery Ranch Terraframe 3-Zip 50L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xx_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xx_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xx_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xx_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack~a~897xx_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack~a~897xx_3~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S", "M", "XL"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Phantom", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/897xx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-phantom~p~897xx_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Deep Earth", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/897xx-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack-in-deep-earth~p~897xx_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Easily manage awkward, oversized loads on the trail with Mystery Ranch's Terraframe 3-Zip 50L backpack, a versatile hybrid bag featuring a rigid, carbon-fiber frame that flexes with your body, expandable Terraframe technology, a Y-shaped three-zip system for easy access to your full bag, and an OVERLOAD® sling that supports up to 150 pounds.", + "SuggestedRetailPrice": 330.0, + "Brand": { + "Id": "37083", + "Url": "/api/1.0/brand/37083/", + "ProductsUrl": "/api/1.0/products/mystery-ranch~b~37083/", + "LogoSrc": "https://i.stpost.com/mystery-ranch-terraframe-3-zip-50l-backpack~b~37083~160x100.jpg", + "Name": "Mystery Ranch" + }, + "ListPrice": 229.99, + "FinalPrice": 229.99 + }, + { + "Id": "889KT", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/889kt/", + "WebUrl": "https://www.sierra.com/product/bounce/889kt/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/889kt/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/889kt/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Stout 65L Backpack", + "Name": "Gregory Stout 65L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-stout-65l-backpack-in-navy-blue~p~889kt_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-stout-65l-backpack-in-navy-blue~p~889kt_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-stout-65l-backpack-in-navy-blue~p~889kt_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-stout-65l-backpack-in-navy-blue~p~889kt_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-stout-65l-backpack~a~889kt_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-stout-65l-backpack~a~889kt_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Navy Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/889kt-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-stout-65l-backpack-in-navy-blue~p~889kt_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Built for multi-day trips and globe-trotting travel, the Gregory Stout 65L backpack has all the comfort, advanced pack technology and organizing features you expect from the backpack experts at Gregory.", + "SuggestedRetailPrice": 169.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-stout-65l-backpack~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "20FWM", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/20fwm/", + "WebUrl": "https://www.sierra.com/product/bounce/20fwm/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/20fwm/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/20fwm/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Hydra 38 Backpack", + "Name": "The North Face Hydra 38 Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/the-north-face-hydra-38-backpack-in-urban-navy-bomber-blue~p~20fwm_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/the-north-face-hydra-38-backpack-in-urban-navy-bomber-blue~p~20fwm_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/the-north-face-hydra-38-backpack-in-urban-navy-bomber-blue~p~20fwm_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/the-north-face-hydra-38-backpack-in-urban-navy-bomber-blue~p~20fwm_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-hydra-38-backpack~a~20fwm_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-hydra-38-backpack~a~20fwm_3~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["L/XL", "S/M"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Urban Navy/Bomber Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/20fwm-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/the-north-face-hydra-38-backpack-in-urban-navy-bomber-blue~p~20fwm_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. From day hikes to overnight trips, The North Face's Hydra 38 backpack will hold all your gear without weighing you down. With an ultralight, durable aluminum frame and FlashDry® technology, you can comfortably carry this pack through any terrain.", + "SuggestedRetailPrice": 140.0, + "Brand": { + "Id": "1440", + "Url": "/api/1.0/brand/1440/", + "ProductsUrl": "/api/1.0/products/the-north-face~b~1440/", + "LogoSrc": "https://i.stpost.com/the-north-face-hydra-38-backpack~b~1440~160x100.jpg", + "Name": "The North Face" + }, + "ListPrice": 99.99, + "FinalPrice": 99.99 + }, + { + "Id": "195UK", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/195uk/", + "WebUrl": "https://www.sierra.com/product/bounce/195uk/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/195uk/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/195uk/", + "ReviewCount": 20, + "AverageRating": 4.35 + }, + "NameWithoutBrand": "Jade 38L Backpack - Internal Frame (For Women)", + "Name": "Gregory Jade 38L Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women-in-dark-charcoal~p~195uk_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women-in-dark-charcoal~p~195uk_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women-in-dark-charcoal~p~195uk_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women-in-dark-charcoal~p~195uk_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women~a~195uk_2~600.2.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S", "M", "XS"] }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Dark Charcoal", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/195uk-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women-in-dark-charcoal~p~195uk_02~160.jpg" + }, + { + "ColorCode": "04", + "ColorName": "Mountain Purple", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/195uk-04.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women-in-mountain-purple~p~195uk_04~160.jpg" + }, + { + "ColorCode": "03", + "ColorName": "Ruby Red", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/195uk-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women-in-ruby-red~p~195uk_03~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Designed especially for trail-bound women, Gregory's Jade 38 backpack features an easy-access, expandable front bucket pocket that's perfect for stowing extra layers and rain gear. Plus, the ventilating CrossFlo DTS system offers comfort for the long haul.", + "SuggestedRetailPrice": 179.0, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-jade-38l-backpack-internal-frame-for-women~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 79.99, + "FinalPrice": 79.99 + }, + { + "Id": "848JY", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848jy/", + "WebUrl": "https://www.sierra.com/product/bounce/848jy/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848jy/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848jy/", + "ReviewCount": 1, + "AverageRating": 5.0 + }, + "NameWithoutBrand": "Stir 28L Backpack", + "Name": "Thule Stir 28L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-stir-28l-backpack-in-dark-shadow~p~848jy_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-stir-28l-backpack-in-dark-shadow~p~848jy_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-stir-28l-backpack-in-dark-shadow~p~848jy_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-stir-28l-backpack-in-dark-shadow~p~848jy_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-28l-backpack~a~848jy_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-28l-backpack~a~848jy_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Dark Shadow", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848jy-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-28l-backpack-in-dark-shadow~p~848jy_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Dark Forest", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848jy-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-28l-backpack-in-dark-forest~p~848jy_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. With its 28-liter capacity and smart suspension, the Thule Stir backpack is nicely sized for day hikes and other short trips.", + "SuggestedRetailPrice": 110.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-stir-28l-backpack~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 69.99, + "FinalPrice": 69.99 + }, + { + "Id": "889DC", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/889dc/", + "WebUrl": "https://www.sierra.com/product/bounce/889dc/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/889dc/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/889dc/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Amber 60L Backpack (For Women)", + "Name": "Gregory Amber 60L Backpack (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-amber-60l-backpack-for-women-in-pearl-blue~p~889dc_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-amber-60l-backpack-for-women-in-pearl-blue~p~889dc_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-amber-60l-backpack-for-women-in-pearl-blue~p~889dc_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-amber-60l-backpack-for-women-in-pearl-blue~p~889dc_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-amber-60l-backpack-for-women~a~889dc_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Pearl Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/889dc-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-amber-60l-backpack-for-women-in-pearl-blue~p~889dc_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The features, TrailFlex suspension and 60-liter capacity of the Gregory Amber 60L backpack combine to hit a sweet spot -- this versatile backpack can cover quick over-night trips and multi-day hikes with equal ease.", + "SuggestedRetailPrice": 169.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-amber-60l-backpack-for-women~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "877UJ", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/877uj/", + "WebUrl": "https://www.sierra.com/product/bounce/877uj/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/877uj/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/877uj/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "ACT Lite 60+10 SL Backpack - Internal Frame (For Women)", + "Name": "Deuter ACT Lite 60+10 SL Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~877uj_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~877uj_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~877uj_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~877uj_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Pine/Moss", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/877uj-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~877uj_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Take an extended trip and spend your days surrounded by amazing views and the lovely sounds of nature with Deuter's ACT Lite 60+10 SL backpack, designed with multiple points of adjustment for a fine-tuned fit and a spacious main compartment with a floating lid and spindrift collar that can accommodate an extra 10 liters of gear.", + "SuggestedRetailPrice": 180.0, + "Brand": { + "Id": "4061", + "Url": "/api/1.0/brand/4061/", + "ProductsUrl": "/api/1.0/products/deuter~b~4061/", + "LogoSrc": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women~b~4061~160x100.jpg", + "Name": "Deuter" + }, + "ListPrice": 119.99, + "FinalPrice": 119.99 + }, + { + "Id": "665GX", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/665gx/", + "WebUrl": "https://www.sierra.com/product/bounce/665gx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/665gx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/665gx/", + "ReviewCount": 1, + "AverageRating": 5.0 + }, + "NameWithoutBrand": "Paragon 48L Backpack - Internal Frame", + "Name": "Gregory Paragon 48L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-paragon-48l-backpack-internal-frame-in-sunset-grey~p~665gx_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-paragon-48l-backpack-internal-frame-in-sunset-grey~p~665gx_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-paragon-48l-backpack-internal-frame-in-sunset-grey~p~665gx_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-paragon-48l-backpack-internal-frame-in-sunset-grey~p~665gx_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-paragon-48l-backpack-internal-frame~a~665gx_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S/M", "M/L"] }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Sunset Grey", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/665gx-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-paragon-48l-backpack-internal-frame-in-sunset-grey~p~665gx_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The perfect lightweight companion for overnighting and minimalist trekking, Gregory's Paragon 48L backpack is well-balanced with an alloy Aerolon suspension for outstanding load support and plenty of pockets for organization.", + "SuggestedRetailPrice": 149.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-paragon-48l-backpack-internal-frame~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 119.99, + "FinalPrice": 119.99 + }, + { + "Id": "19JDX", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/19jdx/", + "WebUrl": "https://www.sierra.com/product/bounce/19jdx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/19jdx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/19jdx/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Peak 45L Backpack - Internal Frame", + "Name": "ALPS Mountaineering Peak 45L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame-in-clay-apricot~p~19jdx_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame-in-clay-apricot~p~19jdx_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame-in-clay-apricot~p~19jdx_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame-in-clay-apricot~p~19jdx_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame~a~19jdx_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame~a~19jdx_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Clay/Apricot", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/19jdx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame-in-clay-apricot~p~19jdx_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Gray", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/19jdx-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame-in-gray~p~19jdx_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Ready for any adventure, this ALPS Mountaineering Peak 45 backpack features plenty of space for gear and essentials with a large main compartment, hip belt pockets and lid pocket, removable waist belt and a rain cover for stormy days.", + "SuggestedRetailPrice": 90.0, + "Brand": { + "Id": "1156", + "Url": "/api/1.0/brand/1156/", + "ProductsUrl": "/api/1.0/products/alps-mountaineering~b~1156/", + "LogoSrc": "https://i.stpost.com/alps-mountaineering-peak-45l-backpack-internal-frame~b~1156~160x100.jpg", + "Name": "ALPS Mountaineering" + }, + "ListPrice": 69.99, + "FinalPrice": 69.99 + }, + { + "Id": "893WW", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/893ww/", + "WebUrl": "https://www.sierra.com/product/bounce/893ww/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/893ww/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/893ww/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Capstone 32L Backpack (For Men)", + "Name": "Thule Capstone 32L Backpack (For Men)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-capstone-32l-backpack-for-men-in-obsidian~p~893ww_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-capstone-32l-backpack-for-men-in-obsidian~p~893ww_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-capstone-32l-backpack-for-men-in-obsidian~p~893ww_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-capstone-32l-backpack-for-men-in-obsidian~p~893ww_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-capstone-32l-backpack-for-men~a~893ww_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Obsidian", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/893ww-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-capstone-32l-backpack-for-men-in-obsidian~p~893ww_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Just add your sense of adventure! The Thule Capstone 32L backpack features a micro-adjustable suspension that provides the perfect fit, and it has all the trail-ready features you need for day trips and ultralight overnights.", + "SuggestedRetailPrice": 140.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-capstone-32l-backpack-for-men~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 89.99, + "FinalPrice": 89.99 + }, + { + "Id": "172TX", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/172tx/", + "WebUrl": "https://www.sierra.com/product/bounce/172tx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/172tx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/172tx/", + "ReviewCount": 7, + "AverageRating": 4.0 + }, + "NameWithoutBrand": "Lookout 80L Backpack - Internal Frame", + "Name": "Mountainsmith Lookout 80L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/mountainsmith-lookout-80l-backpack-internal-frame-in-pinon-green~p~172tx_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/mountainsmith-lookout-80l-backpack-internal-frame-in-pinon-green~p~172tx_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/mountainsmith-lookout-80l-backpack-internal-frame-in-pinon-green~p~172tx_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/mountainsmith-lookout-80l-backpack-internal-frame-in-pinon-green~p~172tx_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mountainsmith-lookout-80l-backpack-internal-frame~a~172tx_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Pinon Green", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/172tx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mountainsmith-lookout-80l-backpack-internal-frame-in-pinon-green~p~172tx_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. A heavy-duty hauler at a great value, Mountainsmith's Lookout 80L backpack is ready for multi-day backpacking missions. The adjustable, supportive suspension system and spacious main compartment mean you can load it up and still move comfortably on the trail.", + "SuggestedRetailPrice": 224.95, + "Brand": { + "Id": "13540", + "Url": "/api/1.0/brand/13540/", + "ProductsUrl": "/api/1.0/products/mountainsmith~b~13540/", + "LogoSrc": "https://i.stpost.com/mountainsmith-lookout-80l-backpack-internal-frame~b~13540~160x100.jpg", + "Name": "Mountainsmith" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "848MG", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848mg/", + "WebUrl": "https://www.sierra.com/product/bounce/848mg/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848mg/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848mg/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Versant 60L Backpack - Internal Frame (For Women)", + "Name": "Thule Versant 60L Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mg_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mg_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mg_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mg_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women~a~848mg_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women~a~848mg_3~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women~a~848mg_4~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women~a~848mg_5~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Mazerine Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848mg-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mg_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Deep Teal", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848mg-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women-in-deep-teal~p~848mg_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Thule's Versant 60L backpack is spacious and supportive enough for multi-day backcountry trips and backpacker travel. The female-specific design includes waistbelt and torso adjustability for customizable comfort, access to the spacious main compartment from the top and front, and a three-quarter rain cover with a waterproof bottom liner to protect your gear from the elements.", + "SuggestedRetailPrice": 205.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-versant-60l-backpack-internal-frame-for-women~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "486KV", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/486kv/", + "WebUrl": "https://www.sierra.com/product/bounce/486kv/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/486kv/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/486kv/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Approach 25L Backpack", + "Name": "Mountainsmith Approach 25L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/mountainsmith-approach-25l-backpack-in-dark-camo~p~486kv_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/mountainsmith-approach-25l-backpack-in-dark-camo~p~486kv_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/mountainsmith-approach-25l-backpack-in-dark-camo~p~486kv_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/mountainsmith-approach-25l-backpack-in-dark-camo~p~486kv_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mountainsmith-approach-25l-backpack~a~486kv_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mountainsmith-approach-25l-backpack~a~486kv_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mountainsmith-approach-25l-backpack~a~486kv_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Dark Camo", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/486kv-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mountainsmith-approach-25l-backpack-in-dark-camo~p~486kv_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The perfect go-to for commutes, jaunts across campus and quick ascents to the summit, Mountainsmith's Approach 25L backpack makes a handy dual-panel loader bag for both weekdays and adventure-filled weekends.", + "SuggestedRetailPrice": 89.95, + "Brand": { + "Id": "13540", + "Url": "/api/1.0/brand/13540/", + "ProductsUrl": "/api/1.0/products/mountainsmith~b~13540/", + "LogoSrc": "https://i.stpost.com/mountainsmith-approach-25l-backpack~b~13540~160x100.jpg", + "Name": "Mountainsmith" + }, + "ListPrice": 43.0, + "FinalPrice": 43.0 + }, + { + "Id": "848HW", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848hw/", + "WebUrl": "https://www.sierra.com/product/bounce/848hw/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848hw/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848hw/", + "ReviewCount": 1, + "AverageRating": 2.0 + }, + "NameWithoutBrand": "Stir 18L Backpack", + "Name": "Thule Stir 18L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-stir-18l-backpack-in-dark-shadow~p~848hw_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-stir-18l-backpack-in-dark-shadow~p~848hw_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-stir-18l-backpack-in-dark-shadow~p~848hw_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-stir-18l-backpack-in-dark-shadow~p~848hw_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-18l-backpack~a~848hw_2~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-18l-backpack~a~848hw_3~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-18l-backpack~a~848hw_4~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-18l-backpack~a~848hw_5~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-18l-backpack~a~848hw_6~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Dark Shadow", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848hw-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-18l-backpack-in-dark-shadow~p~848hw_01~160.jpg" + }, + { + "ColorCode": "03", + "ColorName": "Fjord", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848hw-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-18l-backpack-in-fjord~p~848hw_03~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Thule's Stir 18L backpack comfortably carries all your things over the mountains or around town in light, durable fabric and an ergonomic design. The padded, mesh-lined shoulder straps feature cutouts for added breathability, plus quick-access loops, a stretchy zip pocket and a removable sternum clip.", + "SuggestedRetailPrice": 80.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-stir-18l-backpack~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 49.99, + "FinalPrice": 49.99 + }, + { + "Id": "897XU", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/897xu/", + "WebUrl": "https://www.sierra.com/product/bounce/897xu/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/897xu/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/897xu/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Hover 50L Backpack - Internal Frame", + "Name": "Mystery Ranch Hover 50L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame-in-adobe~p~897xu_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame-in-adobe~p~897xu_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame-in-adobe~p~897xu_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame-in-adobe~p~897xu_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame~a~897xu_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame~a~897xu_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame~a~897xu_4~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["M", "L", "S", "XL"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Adobe", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/897xu-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame-in-adobe~p~897xu_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Mystery Ranch's Hover 50L backpack is a spacious and comfortable pack for long hikes and short backpacking trips, offering a breathable Hover system that allows air flow between your back and the pack, ample padding through the back and hips, and plenty of room for all your gear.", + "SuggestedRetailPrice": 240.0, + "Brand": { + "Id": "37083", + "Url": "/api/1.0/brand/37083/", + "ProductsUrl": "/api/1.0/products/mystery-ranch~b~37083/", + "LogoSrc": "https://i.stpost.com/mystery-ranch-hover-50l-backpack-internal-frame~b~37083~160x100.jpg", + "Name": "Mystery Ranch" + }, + "ListPrice": 179.99, + "FinalPrice": 179.99 + }, + { + "Id": "8439K", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/8439k/", + "WebUrl": "https://www.sierra.com/product/bounce/8439k/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/8439k/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/8439k/", + "ReviewCount": 8, + "AverageRating": 4.75 + }, + "NameWithoutBrand": "ACT Lite 60+10 SL Backpack - Internal Frame (For Women)", + "Name": "Deuter ACT Lite 60+10 SL Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~8439k_04~80.jpg", + "PrimaryMedium": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~8439k_04~160.jpg", + "PrimaryLarge": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~8439k_04~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~8439k_04~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "04", + "ColorName": "Pine/Moss", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/8439k-04.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women-in-pine-moss~p~8439k_04~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The customizable fit and multiple storage compartments in the Deuter ACT Lite 60+ 10 SL backpack make it an outstanding performer on weekend backpacking trips and for adventure travel.", + "SuggestedRetailPrice": 169.99, + "Brand": { + "Id": "4061", + "Url": "/api/1.0/brand/4061/", + "ProductsUrl": "/api/1.0/products/deuter~b~4061/", + "LogoSrc": "https://i.stpost.com/deuter-act-lite-60-plus-10-sl-backpack-internal-frame-for-women~b~4061~160x100.jpg", + "Name": "Deuter" + }, + "ListPrice": 119.99, + "FinalPrice": 119.99 + }, + { + "Id": "15FMM", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/15fmm/", + "WebUrl": "https://www.sierra.com/product/bounce/15fmm/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/15fmm/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/15fmm/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Happy Camper Mission 25 L Backpack", + "Name": "DaKine Happy Camper Mission 25 L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/dakine-happy-camper-mission-25-l-backpack-in-windells-speed-team~p~15fmm_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/dakine-happy-camper-mission-25-l-backpack-in-windells-speed-team~p~15fmm_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/dakine-happy-camper-mission-25-l-backpack-in-windells-speed-team~p~15fmm_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/dakine-happy-camper-mission-25-l-backpack-in-windells-speed-team~p~15fmm_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dakine-happy-camper-mission-25-l-backpack~a~15fmm_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Windells Speed Team", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/15fmm-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/dakine-happy-camper-mission-25-l-backpack-in-windells-speed-team~p~15fmm_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. From camping trips to mountain fun, this DaKine Happy Camper Mission backpack will be your happy companion through every season of the year. It includes plenty of pockets for essentials, a laptop sleeve, vertical snowboard carry straps and a stowable lunch box that can also be worn as a hip pack.", + "SuggestedRetailPrice": 115.0, + "Brand": { + "Id": "3895", + "Url": "/api/1.0/brand/3895/", + "ProductsUrl": "/api/1.0/products/dakine~b~3895/", + "LogoSrc": "https://i.stpost.com/dakine-happy-camper-mission-25-l-backpack~b~3895~160x100.jpg", + "Name": "DaKine" + }, + "ListPrice": 39.99, + "FinalPrice": 39.99 + }, + { + "Id": "926WF", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/926wf/", + "WebUrl": "https://www.sierra.com/product/bounce/926wf/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/926wf/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/926wf/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Peregrine 1800 Tactical Backpack", + "Name": "Kelty Peregrine 1800 Tactical Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack-in-coyote-brown~p~926wf_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack-in-coyote-brown~p~926wf_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack-in-coyote-brown~p~926wf_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack-in-coyote-brown~p~926wf_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack~a~926wf_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack~a~926wf_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack~a~926wf_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Coyote Brown", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/926wf-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack-in-coyote-brown~p~926wf_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. You'll be ready for adventures on the trail or in the city with Kelty's Peregrine 1800 tactical backpack, featuring three zip compartments with plenty of storage space, an inner sleeve that can accommodate a hydration reservoir or a laptop, and shoulder and back cushioning for all-day comfort.", + "SuggestedRetailPrice": 90.0, + "Brand": { + "Id": "1105", + "Url": "/api/1.0/brand/1105/", + "ProductsUrl": "/api/1.0/products/kelty~b~1105/", + "LogoSrc": "https://i.stpost.com/kelty-peregrine-1800-tactical-backpack~b~1105~160x100.jpg", + "Name": "Kelty" + }, + "ListPrice": 59.99, + "FinalPrice": 59.99 + }, + { + "Id": "445FJ", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/445fj/", + "WebUrl": "https://www.sierra.com/product/bounce/445fj/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/445fj/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/445fj/", + "ReviewCount": 1, + "AverageRating": 5.0 + }, + "NameWithoutBrand": "Siro 50L Backpack - Internal Frame", + "Name": "Kelty Siro 50L Backpack - Internal Frame", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame-in-woodbine~p~445fj_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame-in-woodbine~p~445fj_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame-in-woodbine~p~445fj_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame-in-woodbine~p~445fj_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame~a~445fj_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S/M", "M/L"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Woodbine", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/445fj-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame-in-woodbine~p~445fj_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Black", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/445fj-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame-in-black~p~445fj_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Overstock. Lightweight and streamlined, Kelty's 45L Siro backpack offers a FeatherFIT suspension system with a suspended AirMesh back panel and integrated lumbar support to keep you in comfort on the long haul.", + "SuggestedRetailPrice": 199.95, + "Brand": { + "Id": "1105", + "Url": "/api/1.0/brand/1105/", + "ProductsUrl": "/api/1.0/products/kelty~b~1105/", + "LogoSrc": "https://i.stpost.com/kelty-siro-50l-backpack-internal-frame~b~1105~160x100.jpg", + "Name": "Kelty" + }, + "ListPrice": 79.0, + "FinalPrice": 79.0 + }, + { + "Id": "896MM", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/896mm/", + "WebUrl": "https://www.sierra.com/product/bounce/896mm/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/896mm/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/896mm/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Alpine Ascent 25L Backpack", + "Name": "Lowe Alpine Alpine Ascent 25L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack-in-onyx~p~896mm_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack-in-onyx~p~896mm_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack-in-onyx~p~896mm_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack-in-onyx~p~896mm_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack~a~896mm_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack~a~896mm_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Onyx", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mm-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack-in-onyx~p~896mm_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Fire", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mm-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack-in-fire~p~896mm_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Whatever season you climb in, Lowe Alpine's Alpine Ascent 25L backpack has you covered with plenty of room for your gear, and features gear loops, rope holder and a Headlocker ice axe attachment system.", + "SuggestedRetailPrice": 130.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-alpine-ascent-25l-backpack~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 59.0, + "FinalPrice": 59.0 + }, + { + "Id": "20FWP", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/20fwp/", + "WebUrl": "https://www.sierra.com/product/bounce/20fwp/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/20fwp/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/20fwp/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Fovero 85 Pack", + "Name": "The North Face Fovero 85 Pack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/the-north-face-fovero-85-pack-in-tnf-black-high-rise-grey~p~20fwp_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/the-north-face-fovero-85-pack-in-tnf-black-high-rise-grey~p~20fwp_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/the-north-face-fovero-85-pack-in-tnf-black-high-rise-grey~p~20fwp_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/the-north-face-fovero-85-pack-in-tnf-black-high-rise-grey~p~20fwp_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-fovero-85-pack~a~20fwp_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-fovero-85-pack~a~20fwp_3~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["S/M"] }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Tnf Black/High Rise Grey", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/20fwp-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/the-north-face-fovero-85-pack-in-tnf-black-high-rise-grey~p~20fwp_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. The North Face's Fovero 85 pack will be your pack of choice for your next backcountry adventure with its OPTIFIT suspension and durable ripstop nylon construction.", + "SuggestedRetailPrice": 250.0, + "Brand": { + "Id": "1440", + "Url": "/api/1.0/brand/1440/", + "ProductsUrl": "/api/1.0/products/the-north-face~b~1440/", + "LogoSrc": "https://i.stpost.com/the-north-face-fovero-85-pack~b~1440~160x100.jpg", + "Name": "The North Face" + }, + "ListPrice": 179.99, + "FinalPrice": 179.99 + }, + { + "Id": "16DXP", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/16dxp/", + "WebUrl": "https://www.sierra.com/product/bounce/16dxp/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/16dxp/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/16dxp/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Speedfit 28 L Backpack", + "Name": "Dynafit Speedfit 28 L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/dynafit-speedfit-28-l-backpack-in-black-neo-yellow~p~16dxp_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/dynafit-speedfit-28-l-backpack-in-black-neo-yellow~p~16dxp_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/dynafit-speedfit-28-l-backpack-in-black-neo-yellow~p~16dxp_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/dynafit-speedfit-28-l-backpack-in-black-neo-yellow~p~16dxp_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dynafit-speedfit-28-l-backpack~a~16dxp_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dynafit-speedfit-28-l-backpack~a~16dxp_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dynafit-speedfit-28-l-backpack~a~16dxp_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Black/Neo Yellow", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/16dxp-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/dynafit-speedfit-28-l-backpack-in-black-neo-yellow~p~16dxp_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Be seen in low-light conditions on the mountain with Dynafit's Speedfit backpack, featuring a bright LED light band at the bottom of the pack.", + "SuggestedRetailPrice": 120.0, + "Brand": { + "Id": "1364", + "Url": "/api/1.0/brand/1364/", + "ProductsUrl": "/api/1.0/products/dynafit~b~1364/", + "LogoSrc": "https://i.stpost.com/dynafit-speedfit-28-l-backpack~b~1364~160x100.jpg", + "Name": "Dynafit" + }, + "ListPrice": 69.99, + "FinalPrice": 69.99 + }, + { + "Id": "848HV", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848hv/", + "WebUrl": "https://www.sierra.com/product/bounce/848hv/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848hv/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848hv/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Stir 15L Backpack", + "Name": "Thule Stir 15L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-stir-15l-backpack-in-fjord~p~848hv_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-stir-15l-backpack-in-fjord~p~848hv_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-stir-15l-backpack-in-fjord~p~848hv_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-stir-15l-backpack-in-fjord~p~848hv_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-15l-backpack~a~848hv_2~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-15l-backpack~a~848hv_3~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-15l-backpack~a~848hv_4~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-15l-backpack~a~848hv_5~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-15l-backpack~a~848hv_6~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-15l-backpack~a~848hv_7~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Fjord", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848hv-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-15l-backpack-in-fjord~p~848hv_02~160.jpg" + }, + { + "ColorCode": "03", + "ColorName": "Dark Forest", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848hv-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-15l-backpack-in-dark-forest~p~848hv_03~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. With its 15-liter capacity and smart suspension, the Thule Stir 15L backpack is nicely sized for day hikes and other short trips.", + "SuggestedRetailPrice": 50.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-stir-15l-backpack~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 34.99, + "FinalPrice": 34.99 + }, + { + "Id": "18DUD", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/18dud/", + "WebUrl": "https://www.sierra.com/product/bounce/18dud/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/18dud/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/18dud/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Aircontact 45L + 10 Backpack (For Men and Women)", + "Name": "Deuter Aircontact 45L + 10 Backpack (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/deuter-aircontact-45l--plus--10-backpack-for-men-and-women-in-cranberry-graphite~p~18dud_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/deuter-aircontact-45l--plus--10-backpack-for-men-and-women-in-cranberry-graphite~p~18dud_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/deuter-aircontact-45l--plus--10-backpack-for-men-and-women-in-cranberry-graphite~p~18dud_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/deuter-aircontact-45l--plus--10-backpack-for-men-and-women-in-cranberry-graphite~p~18dud_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/deuter-aircontact-45l--plus--10-backpack-for-men-and-women~a~18dud_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Cranberry/Graphite", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/18dud-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/deuter-aircontact-45l--plus--10-backpack-for-men-and-women-in-cranberry-graphite~p~18dud_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Deuter's Aircontact 48L+10 backpack comfortably carries your supplies for a weekend full of trail exploring. Its Aircontact back-system paired with S-shaped shoulder straps allow you to fine-tune your fit for optimal load distribution and breathable comfort even when fully loaded.", + "SuggestedRetailPrice": 220.0, + "Brand": { + "Id": "4061", + "Url": "/api/1.0/brand/4061/", + "ProductsUrl": "/api/1.0/products/deuter~b~4061/", + "LogoSrc": "https://i.stpost.com/deuter-aircontact-45l--plus--10-backpack-for-men-and-women~b~4061~160x100.jpg", + "Name": "Deuter" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "660MY", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/660my/", + "WebUrl": "https://www.sierra.com/product/bounce/660my/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/660my/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/660my/", + "ReviewCount": 3, + "AverageRating": 4.33 + }, + "NameWithoutBrand": "Competition 65+10L Backpack - 75L", + "Name": "Deuter Competition 65+10L Backpack - 75L", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/deuter-competition-65-plus-10l-backpack-75l-in-pine-granite~p~660my_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/deuter-competition-65-plus-10l-backpack-75l-in-pine-granite~p~660my_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/deuter-competition-65-plus-10l-backpack-75l-in-pine-granite~p~660my_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/deuter-competition-65-plus-10l-backpack-75l-in-pine-granite~p~660my_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Pine/Granite", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/660my-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/deuter-competition-65-plus-10l-backpack-75l-in-pine-granite~p~660my_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Deep wilderness treks require optimal comfort and space, so put on the Deuter Competition backpack and enjoy adjustable back length that allows for perfect shoulder and hip placement.", + "SuggestedRetailPrice": 179.99, + "Brand": { + "Id": "4061", + "Url": "/api/1.0/brand/4061/", + "ProductsUrl": "/api/1.0/products/deuter~b~4061/", + "LogoSrc": "https://i.stpost.com/deuter-competition-65-plus-10l-backpack-75l~b~4061~160x100.jpg", + "Name": "Deuter" + }, + "ListPrice": 99.0, + "FinalPrice": 99.0 + }, + { + "Id": "848HX", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848hx/", + "WebUrl": "https://www.sierra.com/product/bounce/848hx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848hx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848hx/", + "ReviewCount": 1, + "AverageRating": 4.0 + }, + "NameWithoutBrand": "Stir 35L Backpack (For Men)", + "Name": "Thule Stir 35L Backpack (For Men)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-stir-35l-backpack-for-men-in-dark-forest~p~848hx_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-stir-35l-backpack-for-men-in-dark-forest~p~848hx_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-stir-35l-backpack-for-men-in-dark-forest~p~848hx_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-stir-35l-backpack-for-men-in-dark-forest~p~848hx_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-35l-backpack-for-men~a~848hx_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-35l-backpack-for-men~a~848hx_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-stir-35l-backpack-for-men~a~848hx_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Dark Forest", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848hx-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-35l-backpack-for-men-in-dark-forest~p~848hx_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Dark Shadow", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848hx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-stir-35l-backpack-for-men-in-dark-shadow~p~848hx_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. The Thule Stir 35L backpack is a superb midsize option for overnight backpacking, climbing and other outdoor sports that require larger amounts of gear than daypacks can handle.", + "SuggestedRetailPrice": 120.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-stir-35l-backpack-for-men~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 69.99, + "FinalPrice": 69.99 + }, + { + "Id": "848MH", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/848mh/", + "WebUrl": "https://www.sierra.com/product/bounce/848mh/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/848mh/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/848mh/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Versant 70L Backpack - Internal Frame (For Women)", + "Name": "Thule Versant 70L Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mh_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mh_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mh_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mh_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women~a~848mh_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women~a~848mh_3~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women~a~848mh_4~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women~a~848mh_5~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Mazerine Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848mh-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women-in-mazerine-blue~p~848mh_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Deep Teal", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/848mh-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women-in-deep-teal~p~848mh_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. Thule's Versant 70L backpack is spacious and supportive enough for multi-day backcountry trips and backpacker travel. The female-specific design includes waistbelt and torso adjustability for customizable comfort, access to the spacious main compartment from the top and front, and a three-quarter rain cover with a waterproof bottom liner to protect your gear from the elements.", + "SuggestedRetailPrice": 215.0, + "Brand": { + "Id": "2757", + "Url": "/api/1.0/brand/2757/", + "ProductsUrl": "/api/1.0/products/thule~b~2757/", + "LogoSrc": "https://i.stpost.com/thule-versant-70l-backpack-internal-frame-for-women~b~2757~160x100.jpg", + "Name": "Thule" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "896MW", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/896mw/", + "WebUrl": "https://www.sierra.com/product/bounce/896mw/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/896mw/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/896mw/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Kulu 65L Backpack", + "Name": "Lowe Alpine Kulu 65L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mw_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mw_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mw_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mw_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack~a~896mw_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack~a~896mw_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack~a~896mw_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Magnetite", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mw-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mw_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. When your next adventure is a plane ride away, this Lowe Alpine Kulu 65L backpack is the perfect travel companion. With its durable construction, expandable lid, adjustable AirMesh back, abundant gear storage and versatile Travel FlipBelt technology, this backpack is designed to ease the stress of travel to remote locations.", + "SuggestedRetailPrice": 225.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 79.0, + "FinalPrice": 79.0 + }, + { + "Id": "18DUA", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/18dua/", + "WebUrl": "https://www.sierra.com/product/bounce/18dua/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/18dua/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/18dua/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "AC Lite 18 Backpack - Internal Frame (For Men and Women)", + "Name": "Deuter AC Lite 18 Backpack - Internal Frame (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dua_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dua_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dua_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dua_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women~a~18dua_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women~a~18dua_3~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women~a~18dua_4~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women~a~18dua_5~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Cranberry", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/18dua-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dua_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Steel", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/18dua-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women-in-steel~p~18dua_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Enjoy a day on the trail with Deuter's AC Lite 18 backpack, made from durable, water-resistant ripstop fabric with a breathable Aircomfort mesh back system, ergonomic design and plenty of storage space for your gear and other essentials.", + "SuggestedRetailPrice": 80.0, + "Brand": { + "Id": "4061", + "Url": "/api/1.0/brand/4061/", + "ProductsUrl": "/api/1.0/products/deuter~b~4061/", + "LogoSrc": "https://i.stpost.com/deuter-ac-lite-18-backpack-internal-frame-for-men-and-women~b~4061~160x100.jpg", + "Name": "Deuter" + }, + "ListPrice": 49.99, + "FinalPrice": 49.99 + }, + { + "Id": "926WH", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/926wh/", + "WebUrl": "https://www.sierra.com/product/bounce/926wh/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/926wh/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/926wh/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Map 3500 Tactical 38L Backpack", + "Name": "Kelty Map 3500 Tactical 38L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack-in-black~p~926wh_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack-in-black~p~926wh_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack-in-black~p~926wh_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack-in-black~p~926wh_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack~a~926wh_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack~a~926wh_3~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack~a~926wh_4~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Black", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/926wh-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack-in-black~p~926wh_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. This Kelty Map 3500 Tactical backpack hauls your essentials around the block or around the world comfortably and securely.", + "SuggestedRetailPrice": 120.0, + "Brand": { + "Id": "1105", + "Url": "/api/1.0/brand/1105/", + "ProductsUrl": "/api/1.0/products/kelty~b~1105/", + "LogoSrc": "https://i.stpost.com/kelty-map-3500-tactical-38l-backpack~b~1105~160x100.jpg", + "Name": "Kelty" + }, + "ListPrice": 79.99, + "FinalPrice": 79.99 + }, + { + "Id": "19JDW", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/19jdw/", + "WebUrl": "https://www.sierra.com/product/bounce/19jdw/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/19jdw/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/19jdw/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Hydro Trail 10L Hydration Backpack - 3L Reservoir", + "Name": "ALPS Mountaineering Hydro Trail 10L Hydration Backpack - 3L Reservoir", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~19jdw_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~19jdw_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~19jdw_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~19jdw_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Gray/Citrus", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/19jdw-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~19jdw_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Whether you're hiking, mountain biking or climbing, ALPS Mountaineering's Hydra Trail hydration pack makes it easy to stay hydrated while you're on the trail. With separate compartments and a ventilating 3D mesh suspension, it comfortably carries everything you need.", + "SuggestedRetailPrice": 80.0, + "Brand": { + "Id": "1156", + "Url": "/api/1.0/brand/1156/", + "ProductsUrl": "/api/1.0/products/alps-mountaineering~b~1156/", + "LogoSrc": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir~b~1156~160x100.jpg", + "Name": "ALPS Mountaineering" + }, + "ListPrice": 49.99, + "FinalPrice": 49.99 + }, + { + "Id": "896MV", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/896mv/", + "WebUrl": "https://www.sierra.com/product/bounce/896mv/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/896mv/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/896mv/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Kulu 65L Backpack", + "Name": "Lowe Alpine Kulu 65L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mv_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mv_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mv_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mv_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack~a~896mv_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack~a~896mv_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Magnetite", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/896mv-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack-in-magnetite~p~896mv_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. When your next adventure is a plane ride away, this Lowe Alpine Kulu 65L backpack is the perfect travel companion. With its durable construction, expandable lid, adjustable AirMesh back, abundant gear storage and versatile Travel FlipBelt technology, this backpack is designed to ease the stress of travel to remote locations.", + "SuggestedRetailPrice": 225.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-kulu-65l-backpack~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 79.0, + "FinalPrice": 79.0 + }, + { + "Id": "895DX", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/895dx/", + "WebUrl": "https://www.sierra.com/product/bounce/895dx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/895dx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/895dx/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "AirZone Velo 25L Backpack", + "Name": "Lowe Alpine AirZone Velo 25L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-airzone-velo-25l-backpack-in-marine~p~895dx_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-airzone-velo-25l-backpack-in-marine~p~895dx_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-airzone-velo-25l-backpack-in-marine~p~895dx_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-airzone-velo-25l-backpack-in-marine~p~895dx_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Marine", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/895dx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-airzone-velo-25l-backpack-in-marine~p~895dx_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. A great choice for days in the saddle, Lowe Alpine's AirZone Velo 25L backpack is made with super-durable TrailShield fabric, AirZone mesh for maximized airflow and a front pocket with a bike tool organizer for quick access if something should happen.", + "SuggestedRetailPrice": 140.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-airzone-velo-25l-backpack~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 49.0, + "FinalPrice": 49.0 + }, + { + "Id": "16DXR", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/16dxr/", + "WebUrl": "https://www.sierra.com/product/bounce/16dxr/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/16dxr/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/16dxr/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Speed 28 L Backpack", + "Name": "Dynafit Speed 28 L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/dynafit-speed-28-l-backpack-in-carbon-black~p~16dxr_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/dynafit-speed-28-l-backpack-in-carbon-black~p~16dxr_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/dynafit-speed-28-l-backpack-in-carbon-black~p~16dxr_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/dynafit-speed-28-l-backpack-in-carbon-black~p~16dxr_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dynafit-speed-28-l-backpack~a~16dxr_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dynafit-speed-28-l-backpack~a~16dxr_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Carbon/Black", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/16dxr-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/dynafit-speed-28-l-backpack-in-carbon-black~p~16dxr_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Dynafit's Speed backpack features a roomy compartment with a full-wrap zipper, an anatomical cut, breathable straps and an air mesh back panel system that makes it ideal for backcountry tours.", + "SuggestedRetailPrice": 110.0, + "Brand": { + "Id": "1364", + "Url": "/api/1.0/brand/1364/", + "ProductsUrl": "/api/1.0/products/dynafit~b~1364/", + "LogoSrc": "https://i.stpost.com/dynafit-speed-28-l-backpack~b~1364~160x100.jpg", + "Name": "Dynafit" + }, + "ListPrice": 59.99, + "FinalPrice": 59.99 + }, + { + "Id": "419FF", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/419ff/", + "WebUrl": "https://www.sierra.com/product/bounce/419ff/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/419ff/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/419ff/", + "ReviewCount": 5, + "AverageRating": 3.8 + }, + "NameWithoutBrand": "Red Wall 8L Hydration Backpack - 70 oz.", + "Name": "Stansport Red Wall 8L Hydration Backpack - 70 oz.", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/stansport-red-wall-8l-hydration-backpack-70-oz-in-black-gray~p~419ff_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/stansport-red-wall-8l-hydration-backpack-70-oz-in-black-gray~p~419ff_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/stansport-red-wall-8l-hydration-backpack-70-oz-in-black-gray~p~419ff_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/stansport-red-wall-8l-hydration-backpack-70-oz-in-black-gray~p~419ff_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/stansport-red-wall-8l-hydration-backpack-70-oz~a~419ff_2~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Black/Gray", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/419ff-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/stansport-red-wall-8l-hydration-backpack-70-oz-in-black-gray~p~419ff_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. A great little hydration pack for day hikes and biking, the Stansport Red Wall 8L hydration backpack has 8 liters of total capacity, which includes a 2-liter hydration reservoir with a no-leak bite valve.", + "SuggestedRetailPrice": 29.99, + "Brand": { + "Id": "33483", + "Url": "/api/1.0/brand/33483/", + "ProductsUrl": "/api/1.0/products/stansport~b~33483/", + "LogoSrc": "https://i.stpost.com/stansport-red-wall-8l-hydration-backpack-70-oz~b~33483~160x100.jpg", + "Name": "Stansport" + }, + "ListPrice": 19.99, + "FinalPrice": 19.99 + }, + { + "Id": "936GT", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/936gt/", + "WebUrl": "https://www.sierra.com/product/bounce/936gt/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/936gt/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/936gt/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Hydro Trail 10L Hydration Backpack - 3L Reservoir", + "Name": "ALPS Mountaineering Hydro Trail 10L Hydration Backpack - 3L Reservoir", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~936gt_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~936gt_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~936gt_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~936gt_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir~a~936gt_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir~a~936gt_3~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Gray/Citrus", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/936gt-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-citrus~p~936gt_02~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Gray/Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/936gt-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir-in-gray-blue~p~936gt_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Whether you're hiking, mountain biking or climbing, ALPS Mountaineering's Hydra Trail hydration pack makes it easy to stay hydrated while you're on the trail. With separate compartments and a ventilating 3D mesh suspension, it comfortably carries everything you need.", + "SuggestedRetailPrice": 80.0, + "Brand": { + "Id": "1156", + "Url": "/api/1.0/brand/1156/", + "ProductsUrl": "/api/1.0/products/alps-mountaineering~b~1156/", + "LogoSrc": "https://i.stpost.com/alps-mountaineering-hydro-trail-10l-hydration-backpack-3l-reservoir~b~1156~160x100.jpg", + "Name": "ALPS Mountaineering" + }, + "ListPrice": 49.99, + "FinalPrice": 49.99 + }, + { + "Id": "895FA", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/895fa/", + "WebUrl": "https://www.sierra.com/product/bounce/895fa/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/895fa/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/895fa/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "AirZone Velo 30L Backpack", + "Name": "Lowe Alpine AirZone Velo 30L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-airzone-velo-30l-backpack-in-black~p~895fa_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-airzone-velo-30l-backpack-in-black~p~895fa_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-airzone-velo-30l-backpack-in-black~p~895fa_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-airzone-velo-30l-backpack-in-black~p~895fa_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-airzone-velo-30l-backpack~a~895fa_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Black", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/895fa-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-airzone-velo-30l-backpack-in-black~p~895fa_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. A great choice for days in the saddle or the trail, Lowe Alpine's AirZone Velo 30L backpack is made with super-durable TriShield Dura fabric, AirZone mesh for maximized airflow and a front pocket with a bike tool organizer for quick access if something should happen.", + "SuggestedRetailPrice": 140.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-airzone-velo-30l-backpack~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 49.0, + "FinalPrice": 49.0 + }, + { + "Id": "20DPX", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/20dpx/", + "WebUrl": "https://www.sierra.com/product/bounce/20dpx/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/20dpx/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/20dpx/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Hydra 38 Backpack (For Women)", + "Name": "The North Face Hydra 38 Backpack (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women-in-new-taupe-green-four-leaf-clover~p~20dpx_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women-in-new-taupe-green-four-leaf-clover~p~20dpx_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women-in-new-taupe-green-four-leaf-clover~p~20dpx_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women-in-new-taupe-green-four-leaf-clover~p~20dpx_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women~a~20dpx_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women~a~20dpx_3~600.1.jpg" + } + ] + }, + "SizesAvailable": { "SIZE": ["XS/S"] }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "New Taupe Green/Four Leaf Clover", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/20dpx-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women-in-new-taupe-green-four-leaf-clover~p~20dpx_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. From day hikes to overnight trips, The North Face's Hydra 38 backpack will hold all your gear without weighing you down. With an ultralight, durable aluminum frame and FlashDry® technology, you can comfortably carry this pack through any terrain.", + "SuggestedRetailPrice": 150.0, + "Brand": { + "Id": "1440", + "Url": "/api/1.0/brand/1440/", + "ProductsUrl": "/api/1.0/products/the-north-face~b~1440/", + "LogoSrc": "https://i.stpost.com/the-north-face-hydra-38-backpack-for-women~b~1440~160x100.jpg", + "Name": "The North Face" + }, + "ListPrice": 99.99, + "FinalPrice": 99.99 + }, + { + "Id": "16DXT", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/16dxt/", + "WebUrl": "https://www.sierra.com/product/bounce/16dxt/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/16dxt/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/16dxt/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Speed 20 L Backpack", + "Name": "Dynafit Speed 20 L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/dynafit-speed-20-l-backpack-in-black-cactus~p~16dxt_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/dynafit-speed-20-l-backpack-in-black-cactus~p~16dxt_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/dynafit-speed-20-l-backpack-in-black-cactus~p~16dxt_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/dynafit-speed-20-l-backpack-in-black-cactus~p~16dxt_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dynafit-speed-20-l-backpack~a~16dxt_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/dynafit-speed-20-l-backpack~a~16dxt_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Black/Cactus", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/16dxt-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/dynafit-speed-20-l-backpack-in-black-cactus~p~16dxt_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Made for speed touring ascents, Dynafit's Speed backpack is ultralight-yet-roomy, with plenty of space for safety equipment, and the anatomical design with an airmesh back ensure all-day comfort.", + "SuggestedRetailPrice": 100.0, + "Brand": { + "Id": "1364", + "Url": "/api/1.0/brand/1364/", + "ProductsUrl": "/api/1.0/products/dynafit~b~1364/", + "LogoSrc": "https://i.stpost.com/dynafit-speed-20-l-backpack~b~1364~160x100.jpg", + "Name": "Dynafit" + }, + "ListPrice": 59.99, + "FinalPrice": 59.99 + }, + { + "Id": "18DTY", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/18dty/", + "WebUrl": "https://www.sierra.com/product/bounce/18dty/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/18dty/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/18dty/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "AC Lite 26L Backpack - Internal Frame (For Men and Women)", + "Name": "Deuter AC Lite 26L Backpack - Internal Frame (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dty_03~80.jpg", + "PrimaryMedium": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dty_03~160.jpg", + "PrimaryLarge": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dty_03~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dty_03~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women~a~18dty_2~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women~a~18dty_3~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "03", + "ColorName": "Cranberry", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/18dty-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women-in-cranberry~p~18dty_03~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Deuter's AC Lite 26L backpack comfortably carries your supplies for a weekend full of trail exploring. Its Aircomfort three-sided back ventilation system allows you to stay drier longer on the hike.", + "SuggestedRetailPrice": 85.0, + "Brand": { + "Id": "4061", + "Url": "/api/1.0/brand/4061/", + "ProductsUrl": "/api/1.0/products/deuter~b~4061/", + "LogoSrc": "https://i.stpost.com/deuter-ac-lite-26l-backpack-internal-frame-for-men-and-women~b~4061~160x100.jpg", + "Name": "Deuter" + }, + "ListPrice": 49.99, + "FinalPrice": 49.99 + }, + { + "Id": "665HT", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/665ht/", + "WebUrl": "https://www.sierra.com/product/bounce/665ht/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/665ht/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/665ht/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Amber Adjustable 34L Backpack - Internal Frame (For Women)", + "Name": "Gregory Amber Adjustable 34L Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-amber-adjustable-34l-backpack-internal-frame-for-women-in-teal-grey~p~665ht_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-amber-adjustable-34l-backpack-internal-frame-for-women-in-teal-grey~p~665ht_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-amber-adjustable-34l-backpack-internal-frame-for-women-in-teal-grey~p~665ht_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-amber-adjustable-34l-backpack-internal-frame-for-women-in-teal-grey~p~665ht_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-amber-adjustable-34l-backpack-internal-frame-for-women~a~665ht_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Teal Grey", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/665ht-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-amber-adjustable-34l-backpack-internal-frame-for-women-in-teal-grey~p~665ht_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Gregory's Amber 34L backpack is made for long days out or light overnight trips. The streamlined design and internal wire frame give it the long-distance comfort and load management required for extended exploration.", + "SuggestedRetailPrice": 119.99, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-amber-adjustable-34l-backpack-internal-frame-for-women~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 89.99, + "FinalPrice": 89.99 + }, + { + "Id": "877FF", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/877ff/", + "WebUrl": "https://www.sierra.com/product/bounce/877ff/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/877ff/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/877ff/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Amber 60L Backpack - Internal Frame (For Women)", + "Name": "Gregory Amber 60L Backpack - Internal Frame (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women-in-chili-pepper-red~p~877ff_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women-in-chili-pepper-red~p~877ff_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women-in-chili-pepper-red~p~877ff_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women-in-chili-pepper-red~p~877ff_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women~a~877ff_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women~a~877ff_3~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women~a~877ff_4~600.2.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Chili Pepper Red", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/877ff-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women-in-chili-pepper-red~p~877ff_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Large enough for multi-day backcountry trips, Gregory's Amber 60 backpack capably manages large loads with a TrailFlex wishbone suspension.", + "SuggestedRetailPrice": 170.0, + "Brand": { + "Id": "7155", + "Url": "/api/1.0/brand/7155/", + "ProductsUrl": "/api/1.0/products/gregory~b~7155/", + "LogoSrc": "https://i.stpost.com/gregory-amber-60l-backpack-internal-frame-for-women~b~7155~160x100.jpg", + "Name": "Gregory" + }, + "ListPrice": 119.99, + "FinalPrice": 119.99 + }, + { + "Id": "895FF", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/895ff/", + "WebUrl": "https://www.sierra.com/product/bounce/895ff/?filterString=s~backpacks%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/895ff/?filterString=s~backpacks%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/895ff/", + "ReviewCount": 0, + "AverageRating": 0.0 + }, + "NameWithoutBrand": "Ignite 15L Backpack", + "Name": "Lowe Alpine Ignite 15L Backpack", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack-in-auburn~p~895ff_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack-in-auburn~p~895ff_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack-in-auburn~p~895ff_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack-in-auburn~p~895ff_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack~a~895ff_2~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack~a~895ff_3~600.2.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack~a~895ff_4~600.1.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack~a~895ff_5~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Auburn", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/895ff-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack-in-auburn~p~895ff_01~160.jpg" + }, + { + "ColorCode": "04", + "ColorName": "Denim", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/895ff-04.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack-in-denim~p~895ff_04~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. The perfect-sized pack for day hikes, Lowe Alpine's Ignite backpack features a large main compartment for holding your gear, Daisy chain lash points, and padded mesh shoulder straps for carrying comfortably.", + "SuggestedRetailPrice": 35.0, + "Brand": { + "Id": "1280", + "Url": "/api/1.0/brand/1280/", + "ProductsUrl": "/api/1.0/products/lowe-alpine~b~1280/", + "LogoSrc": "https://i.stpost.com/lowe-alpine-ignite-15l-backpack~b~1280~160x100.jpg", + "Name": "Lowe Alpine" + }, + "ListPrice": 19.99, + "FinalPrice": 19.99 + } + ] +} diff --git a/src/public/json/sleeping-bags.json b/src/public/json/sleeping-bags.json new file mode 100644 index 000000000..5d015123c --- /dev/null +++ b/src/public/json/sleeping-bags.json @@ -0,0 +1,1206 @@ +{ + "Count": 58, + "Page": 1, + "PerPage": 24, + "NextPageUrl": "/api/1.0/products/s~sleeping-bags/?page=2", + "LastPageUrl": "/api/1.0/products/s~sleeping-bags/?page=3", + "RefinementsUrl": "/api/1.0/refinements/search~sleeping-bags/", + "Title": "Search for \"sleeping bags\" ", + "Result": [ + { + "Id": "927VJ", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/927vj/", + "WebUrl": "https://www.sierra.com/product/bounce/927vj/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/927vj/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/927vj/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "20°F Pinole Sleeping Bag - Mummy (For Men and Women)", + "Name": "Mountain Hardwear 20°F Pinole Sleeping Bag - Mummy (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women-in-altitude-blue~p~927vj_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women-in-altitude-blue~p~927vj_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women-in-altitude-blue~p~927vj_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women-in-altitude-blue~p~927vj_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women~a~927vj_2~600.2.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Altitude Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/927vj-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women-in-altitude-blue~p~927vj_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Dark Army", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/927vj-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women-in-dark-army~p~927vj_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. From spring to summer to fall, Mountain Hardwear's 20° F Pinole sleeping bag delivers away-from-home comfort with its Thermal.Q synthetic insulation, tailored hood for sealing in heat and comfort footbox for just-right wiggle room.", + "SuggestedRetailPrice": 130, + "Brand": { + "Id": "13530", + "Url": "/api/1.0/brand/13530/", + "ProductsUrl": "/api/1.0/products/mountain-hardwear~b~13530/", + "LogoSrc": "https://i.stpost.com/mountain-hardwear-20-f-pinole-sleeping-bag-mummy-for-men-and-women~b~13530~160x100.jpg", + "Name": "Mountain Hardwear" + }, + "ListPrice": 99.99, + "FinalPrice": 99.99 + }, + { + "Id": "21KMF", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/21kmf/", + "WebUrl": "https://www.sierra.com/product/bounce/21kmf/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/21kmf/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/21kmf/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "30°F Mavericks Double Wide Sleeping Bag - Square", + "Name": "Marmot 30°F Mavericks Double Wide Sleeping Bag - Square", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/marmot-30-f-mavericks-double-wide-sleeping-bag-square-in-golden-copper-dark-olive~p~21kmf_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/marmot-30-f-mavericks-double-wide-sleeping-bag-square-in-golden-copper-dark-olive~p~21kmf_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/marmot-30-f-mavericks-double-wide-sleeping-bag-square-in-golden-copper-dark-olive~p~21kmf_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/marmot-30-f-mavericks-double-wide-sleeping-bag-square-in-golden-copper-dark-olive~p~21kmf_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/marmot-30-f-mavericks-double-wide-sleeping-bag-square~a~21kmf_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["LH"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Golden Copper/Dark Olive", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/21kmf-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/marmot-30-f-mavericks-double-wide-sleeping-bag-square-in-golden-copper-dark-olive~p~21kmf_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Designed to share with your special someone, this Marmot Mavericks double wide sleeping bag also zips apart to become two individual bags. Fortified with SpiraFil synthetic insulation for optimal warmth and comfort on chilly nights.", + "SuggestedRetailPrice": 212, + "Brand": { + "Id": "1308", + "Url": "/api/1.0/brand/1308/", + "ProductsUrl": "/api/1.0/products/marmot~b~1308/", + "LogoSrc": "https://i.stpost.com/marmot-30-f-mavericks-double-wide-sleeping-bag-square~b~1308~160x100.jpg", + "Name": "Marmot" + }, + "ListPrice": 149.99, + "FinalPrice": 149.99 + }, + { + "Id": "640GU", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/640gu/", + "WebUrl": "https://www.sierra.com/product/bounce/640gu/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/640gu/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/640gu/", + "ReviewCount": 1, + "AverageRating": 1 + }, + "NameWithoutBrand": "SpeedValve NeoAir® Camper SV Sleeping Pad - Inflatable, Extra-Large", + "Name": "Therm-a-Rest SpeedValve NeoAir® Camper SV Sleeping Pad - Inflatable, Extra-Large", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/therm-a-rest-speedvalve-neoair-camper-sv-sleeping-pad-inflatable-extra-large-in-blue~p~640gu_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/therm-a-rest-speedvalve-neoair-camper-sv-sleeping-pad-inflatable-extra-large-in-blue~p~640gu_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/therm-a-rest-speedvalve-neoair-camper-sv-sleeping-pad-inflatable-extra-large-in-blue~p~640gu_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/therm-a-rest-speedvalve-neoair-camper-sv-sleeping-pad-inflatable-extra-large-in-blue~p~640gu_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/640gu-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/therm-a-rest-speedvalve-neoair-camper-sv-sleeping-pad-inflatable-extra-large-in-blue~p~640gu_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Exceptionally compact, lightweight and with ultra-fast inflation and deflation, the Therm-A-Rest SpeedValve Camper SV sleeping pad is a deluxe base camp air mattress with NeoAir® construction for added warmth and stability.", + "SuggestedRetailPrice": 129.99, + "Brand": { + "Id": "3177", + "Url": "/api/1.0/brand/3177/", + "ProductsUrl": "/api/1.0/products/therm-a-rest~b~3177/", + "LogoSrc": "https://i.stpost.com/therm-a-rest-speedvalve-neoair-camper-sv-sleeping-pad-inflatable-extra-large~b~3177~160x100.jpg", + "Name": "Therm-a-Rest" + }, + "ListPrice": 49, + "FinalPrice": 49 + }, + { + "Id": "861PY", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/861py/", + "WebUrl": "https://www.sierra.com/product/bounce/861py/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/861py/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/861py/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "50°F Rambler Sleeping Bag - Semi-Rectangular (For Men and Women)", + "Name": "Kelty 50°F Rambler Sleeping Bag - Semi-Rectangular (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-green-apple~p~861py_03~80.jpg", + "PrimaryMedium": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-green-apple~p~861py_03~160.jpg", + "PrimaryLarge": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-green-apple~p~861py_03~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-green-apple~p~861py_03~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women~a~861py_2~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women~a~861py_3~600.3.jpg" + }, + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women~a~861py_4~600.2.jpg" + } + ] + }, + "SizesAvailable": { + "LENGTH": ["REG"], + "ZIPPER": ["R"] + }, + "Colors": [ + { + "ColorCode": "03", + "ColorName": "Green Apple", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/861py-03.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-green-apple~p~861py_03~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Fire Orange", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/861py-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-fire-orange~p~861py_02~160.jpg" + }, + { + "ColorCode": "04", + "ColorName": "Red Sand", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/861py-04.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-red-sand~p~861py_04~160.jpg" + }, + { + "ColorCode": "01", + "ColorName": "Paradise Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/861py-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-paradise-blue~p~861py_01~160.jpg" + }, + { + "ColorCode": "05", + "ColorName": "Sycamore/Fire Orange", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/861py-05.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women-in-sycamore-fire-orange~p~861py_05~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Kelty's 50°F Rambler sleeping bag features a semi-rectangular design that keeps you comfortably warm (or cool) in mild temperatures.", + "SuggestedRetailPrice": 50, + "Brand": { + "Id": "1105", + "Url": "/api/1.0/brand/1105/", + "ProductsUrl": "/api/1.0/products/kelty~b~1105/", + "LogoSrc": "https://i.stpost.com/kelty-50-f-rambler-sleeping-bag-semi-rectangular-for-men-and-women~b~1105~160x100.jpg", + "Name": "Kelty" + }, + "ListPrice": 34.99, + "FinalPrice": 34.99 + }, + { + "Id": "16PWY", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/16pwy/", + "WebUrl": "https://www.sierra.com/product/bounce/16pwy/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/16pwy/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/16pwy/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "Static V2 Sleeping Pad - Inflatable", + "Name": "Klymit Static V2 Sleeping Pad - Inflatable", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/klymit-static-v2-sleeping-pad-inflatable-in-green~p~16pwy_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/klymit-static-v2-sleeping-pad-inflatable-in-green~p~16pwy_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/klymit-static-v2-sleeping-pad-inflatable-in-green~p~16pwy_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/klymit-static-v2-sleeping-pad-inflatable-in-green~p~16pwy_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/klymit-static-v2-sleeping-pad-inflatable~a~16pwy_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Green", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/16pwy-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/klymit-static-v2-sleeping-pad-inflatable-in-green~p~16pwy_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Rest comfortably on the trail with Klymit's Static V2 sleeping pad, featuring a lightweight, compact design with ergonomic V-chambers that support your pressure points and maximize warmth.", + "SuggestedRetailPrice": 55, + "Brand": { + "Id": "4173", + "Url": "/api/1.0/brand/4173/", + "ProductsUrl": "/api/1.0/products/klymit~b~4173/", + "LogoSrc": "https://i.stpost.com/klymit-static-v2-sleeping-pad-inflatable~b~4173~160x100.jpg", + "Name": "Klymit" + }, + "ListPrice": 39.99, + "FinalPrice": 39.99 + }, + { + "Id": "14GVH", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/14gvh/", + "WebUrl": "https://www.sierra.com/product/bounce/14gvh/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/14gvh/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/14gvh/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "20°F Kenosha Down Sleeping Bag - 650 Fill Power, Mummy (For Men and Women)", + "Name": "Marmot 20°F Kenosha Down Sleeping Bag - 650 Fill Power, Mummy (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/marmot-20-f-kenosha-down-sleeping-bag-650-fill-power-mummy-for-men-and-women-in-green-lichen-green-gulch~p~14gvh_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/marmot-20-f-kenosha-down-sleeping-bag-650-fill-power-mummy-for-men-and-women-in-green-lichen-green-gulch~p~14gvh_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/marmot-20-f-kenosha-down-sleeping-bag-650-fill-power-mummy-for-men-and-women-in-green-lichen-green-gulch~p~14gvh_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/marmot-20-f-kenosha-down-sleeping-bag-650-fill-power-mummy-for-men-and-women-in-green-lichen-green-gulch~p~14gvh_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/marmot-20-f-kenosha-down-sleeping-bag-650-fill-power-mummy-for-men-and-women~a~14gvh_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Green Lichen/Green Gulch", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/14gvh-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/marmot-20-f-kenosha-down-sleeping-bag-650-fill-power-mummy-for-men-and-women-in-green-lichen-green-gulch~p~14gvh_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Sleep under the stars with Marmot's Kenosha sleeping bag, fortified with 650 fill power down insulation for ultimate comfort and warmth.", + "SuggestedRetailPrice": 260, + "Brand": { + "Id": "1308", + "Url": "/api/1.0/brand/1308/", + "ProductsUrl": "/api/1.0/products/marmot~b~1308/", + "LogoSrc": "https://i.stpost.com/marmot-20-f-kenosha-down-sleeping-bag-650-fill-power-mummy-for-men-and-women~b~1308~160x100.jpg", + "Name": "Marmot" + }, + "ListPrice": 189.99, + "FinalPrice": 189.99 + }, + { + "Id": "621CP", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/621cp/", + "WebUrl": "https://www.sierra.com/product/bounce/621cp/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/621cp/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/621cp/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "30°F Trestles Elite Sleeping Bag (For Women)", + "Name": "Marmot 30°F Trestles Elite Sleeping Bag (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/marmot-30-f-trestles-elite-sleeping-bag-for-women-in-turf-green-garden-green~p~621cp_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/marmot-30-f-trestles-elite-sleeping-bag-for-women-in-turf-green-garden-green~p~621cp_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/marmot-30-f-trestles-elite-sleeping-bag-for-women-in-turf-green-garden-green~p~621cp_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/marmot-30-f-trestles-elite-sleeping-bag-for-women-in-turf-green-garden-green~p~621cp_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": { + "HAND": ["LH"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Turf Green/Garden Green", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/621cp-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/marmot-30-f-trestles-elite-sleeping-bag-for-women-in-turf-green-garden-green~p~621cp_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Marmot's 30°F Trestles Elite sleeping bag promises to keep you toasty-warm in near-freezing weather with HL-ElixR® synthetic insulation that's a smart combination of three fibers to efficiently trap heat, maintain loft and feel soft and comfortable.", + "SuggestedRetailPrice": 104.99, + "Brand": { + "Id": "1308", + "Url": "/api/1.0/brand/1308/", + "ProductsUrl": "/api/1.0/products/marmot~b~1308/", + "LogoSrc": "https://i.stpost.com/marmot-30-f-trestles-elite-sleeping-bag-for-women~b~1308~160x100.jpg", + "Name": "Marmot" + }, + "ListPrice": 79.99, + "FinalPrice": 79.99 + }, + { + "Id": "10HGH", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/10hgh/", + "WebUrl": "https://www.sierra.com/product/bounce/10hgh/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/10hgh/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/10hgh/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "50°F Gormsson Sleeping Bag - Mummy, Long", + "Name": "Nordisk 50°F Gormsson Sleeping Bag - Mummy, Long", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/nordisk-50-f-gormsson-sleeping-bag-mummy-long-in-limoges-blue~p~10hgh_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/nordisk-50-f-gormsson-sleeping-bag-mummy-long-in-limoges-blue~p~10hgh_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/nordisk-50-f-gormsson-sleeping-bag-mummy-long-in-limoges-blue~p~10hgh_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/nordisk-50-f-gormsson-sleeping-bag-mummy-long-in-limoges-blue~p~10hgh_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/nordisk-50-f-gormsson-sleeping-bag-mummy-long~a~10hgh_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Limoges Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/10hgh-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/nordisk-50-f-gormsson-sleeping-bag-mummy-long-in-limoges-blue~p~10hgh_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. Recharge under the stars with Nordisk's 50°F Gormsson sleeping bag, made from smooth, water-resistant nylon with high-loft synthetic insulation and a roomy footbox for maximum comfort.", + "SuggestedRetailPrice": 190, + "Brand": { + "Id": "33133", + "Url": "/api/1.0/brand/33133/", + "ProductsUrl": "/api/1.0/products/nordisk~b~33133/", + "LogoSrc": "https://i.stpost.com/nordisk-50-f-gormsson-sleeping-bag-mummy-long~b~33133~160x100.jpg", + "Name": "Nordisk" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "14GVF", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/14gvf/", + "WebUrl": "https://www.sierra.com/product/bounce/14gvf/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/14gvf/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/14gvf/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "5°F Rampart Down Sleeping Bag - 650 Fill, Mummy (For Men and Women)", + "Name": "Marmot 5°F Rampart Down Sleeping Bag - 650 Fill, Mummy (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/marmot-5-f-rampart-down-sleeping-bag-650-fill-mummy-for-men-and-women-in-rusted-orange-mahogany~p~14gvf_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/marmot-5-f-rampart-down-sleeping-bag-650-fill-mummy-for-men-and-women-in-rusted-orange-mahogany~p~14gvf_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/marmot-5-f-rampart-down-sleeping-bag-650-fill-mummy-for-men-and-women-in-rusted-orange-mahogany~p~14gvf_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/marmot-5-f-rampart-down-sleeping-bag-650-fill-mummy-for-men-and-women-in-rusted-orange-mahogany~p~14gvf_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/marmot-5-f-rampart-down-sleeping-bag-650-fill-mummy-for-men-and-women~a~14gvf_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Rusted Orange/Mahogany", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/14gvf-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/marmot-5-f-rampart-down-sleeping-bag-650-fill-mummy-for-men-and-women-in-rusted-orange-mahogany~p~14gvf_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Sleep under the stars with Marmot's Rampart sleeping bag, fortified with 650 fill power down insulation for ultimate comfort and warmth.", + "SuggestedRetailPrice": 315, + "Brand": { + "Id": "1308", + "Url": "/api/1.0/brand/1308/", + "ProductsUrl": "/api/1.0/products/marmot~b~1308/", + "LogoSrc": "https://i.stpost.com/marmot-5-f-rampart-down-sleeping-bag-650-fill-mummy-for-men-and-women~b~1308~160x100.jpg", + "Name": "Marmot" + }, + "ListPrice": 229.99, + "FinalPrice": 229.99 + }, + { + "Id": "14HDK", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/14hdk/", + "WebUrl": "https://www.sierra.com/product/bounce/14hdk/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/14hdk/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/14hdk/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "45° F Traveler Sleeping Bag - Mummy (For Men and Women)", + "Name": "Marmot 45° F Traveler Sleeping Bag - Mummy (For Men and Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/marmot-45-f-traveler-sleeping-bag-mummy-for-men-and-women-in-redstone~p~14hdk_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/marmot-45-f-traveler-sleeping-bag-mummy-for-men-and-women-in-redstone~p~14hdk_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/marmot-45-f-traveler-sleeping-bag-mummy-for-men-and-women-in-redstone~p~14hdk_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/marmot-45-f-traveler-sleeping-bag-mummy-for-men-and-women-in-redstone~p~14hdk_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/marmot-45-f-traveler-sleeping-bag-mummy-for-men-and-women~a~14hdk_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Redstone", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/14hdk-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/marmot-45-f-traveler-sleeping-bag-mummy-for-men-and-women-in-redstone~p~14hdk_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. The super-packable design of Marmot's 45°F Traveler sleeping bag makes it perfect for world travel and bicycle touring. Highly compressible, yet lofty Spirafil® insulation retains warmth when wet.", + "SuggestedRetailPrice": 110, + "Brand": { + "Id": "1308", + "Url": "/api/1.0/brand/1308/", + "ProductsUrl": "/api/1.0/products/marmot~b~1308/", + "LogoSrc": "https://i.stpost.com/marmot-45-f-traveler-sleeping-bag-mummy-for-men-and-women~b~1308~160x100.jpg", + "Name": "Marmot" + }, + "ListPrice": 79.99, + "FinalPrice": 79.99 + }, + { + "Id": "10HKN", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/10hkn/", + "WebUrl": "https://www.sierra.com/product/bounce/10hkn/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/10hkn/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/10hkn/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "14°F Oscar Sleeping Bag - Mummy, Long", + "Name": "Nordisk 14°F Oscar Sleeping Bag - Mummy, Long", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/nordisk-14-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hkn_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/nordisk-14-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hkn_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/nordisk-14-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hkn_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/nordisk-14-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hkn_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/nordisk-14-f-oscar-sleeping-bag-mummy-long~a~10hkn_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Mustard", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/10hkn-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/nordisk-14-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hkn_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. Stay warm while camping in extreme conditions with Nordisk's 14°F Oscar sleeping bag, featuring a body-hugging mummy shape with Northguard S-Core insulation and an innovative tubic construction that traps air in for even heat distribution while pushing moisture out for maximum warmth and comfort.", + "SuggestedRetailPrice": 400, + "Brand": { + "Id": "33133", + "Url": "/api/1.0/brand/33133/", + "ProductsUrl": "/api/1.0/products/nordisk~b~33133/", + "LogoSrc": "https://i.stpost.com/nordisk-14-f-oscar-sleeping-bag-mummy-long~b~33133~160x100.jpg", + "Name": "Nordisk" + }, + "ListPrice": 279.99, + "FinalPrice": 279.99 + }, + { + "Id": "14GVG", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/14gvg/", + "WebUrl": "https://www.sierra.com/product/bounce/14gvg/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/14gvg/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/14gvg/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "20°F Sawatch Down Sleeping Bag - 650 Fill Power, Mummy (For Women)", + "Name": "Marmot 20°F Sawatch Down Sleeping Bag - 650 Fill Power, Mummy (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/marmot-20-f-sawatch-down-sleeping-bag-650-fill-power-mummy-for-women-in-ocean-sea-scape~p~14gvg_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/marmot-20-f-sawatch-down-sleeping-bag-650-fill-power-mummy-for-women-in-ocean-sea-scape~p~14gvg_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/marmot-20-f-sawatch-down-sleeping-bag-650-fill-power-mummy-for-women-in-ocean-sea-scape~p~14gvg_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/marmot-20-f-sawatch-down-sleeping-bag-650-fill-power-mummy-for-women-in-ocean-sea-scape~p~14gvg_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/marmot-20-f-sawatch-down-sleeping-bag-650-fill-power-mummy-for-women~a~14gvg_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Ocean/Sea Scape", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/14gvg-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/marmot-20-f-sawatch-down-sleeping-bag-650-fill-power-mummy-for-women-in-ocean-sea-scape~p~14gvg_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. Sleep under the stars with Marmot's Sawatch sleeping bag, fortified with 650 fill power down insulation for ultimate comfort and warmth.", + "SuggestedRetailPrice": 260, + "Brand": { + "Id": "1308", + "Url": "/api/1.0/brand/1308/", + "ProductsUrl": "/api/1.0/products/marmot~b~1308/", + "LogoSrc": "https://i.stpost.com/marmot-20-f-sawatch-down-sleeping-bag-650-fill-power-mummy-for-women~b~1308~160x100.jpg", + "Name": "Marmot" + }, + "ListPrice": 133, + "FinalPrice": 133 + }, + { + "Id": "16PWT", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/16pwt/", + "WebUrl": "https://www.sierra.com/product/bounce/16pwt/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/16pwt/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/16pwt/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "Cloud Sleeping Pad - Inflatable", + "Name": "PEAK SLUMBER Cloud Sleeping Pad - Inflatable", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/peak-slumber-cloud-sleeping-pad-inflatable-in-blue~p~16pwt_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/peak-slumber-cloud-sleeping-pad-inflatable-in-blue~p~16pwt_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/peak-slumber-cloud-sleeping-pad-inflatable-in-blue~p~16pwt_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/peak-slumber-cloud-sleeping-pad-inflatable-in-blue~p~16pwt_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/peak-slumber-cloud-sleeping-pad-inflatable~a~16pwt_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/16pwt-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/peak-slumber-cloud-sleeping-pad-inflatable-in-blue~p~16pwt_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Rest comfortably in the Great Outdoors with Peak Slumber's Cloud sleeping pad, made from durable ripstop fabric with a supportive, easy-to-inflate design.", + "SuggestedRetailPrice": 50, + "Brand": { + "Id": "39056", + "Url": "/api/1.0/brand/39056/", + "ProductsUrl": "/api/1.0/products/peak-slumber~b~39056/", + "LogoSrc": "https://i.stpost.com/peak-slumber-cloud-sleeping-pad-inflatable~b~39056~160x100.jpg", + "Name": "PEAK SLUMBER" + }, + "ListPrice": 34.99, + "FinalPrice": 34.99 + }, + { + "Id": "10HXY", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/10hxy/", + "WebUrl": "https://www.sierra.com/product/bounce/10hxy/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/10hxy/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/10hxy/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "-4°F Oscar Sleeping Bag - Mummy, Long", + "Name": "Nordisk -4°F Oscar Sleeping Bag - Mummy, Long", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/nordisk-4-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hxy_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/nordisk-4-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hxy_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/nordisk-4-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hxy_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/nordisk-4-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hxy_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/nordisk-4-f-oscar-sleeping-bag-mummy-long~a~10hxy_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Mustard", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/10hxy-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/nordisk-4-f-oscar-sleeping-bag-mummy-long-in-mustard~p~10hxy_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. Stay warm while camping in extreme conditions with Nordisk's -4°F Oscar sleeping bag, featuring a body-hugging mummy shape with Northguard S-Core insulation and an innovative tubic construction that traps air in for even heat distribution while pushing moisture out for maximum warmth and comfort.", + "SuggestedRetailPrice": 410, + "Brand": { + "Id": "33133", + "Url": "/api/1.0/brand/33133/", + "ProductsUrl": "/api/1.0/products/nordisk~b~33133/", + "LogoSrc": "https://i.stpost.com/nordisk-4-f-oscar-sleeping-bag-mummy-long~b~33133~160x100.jpg", + "Name": "Nordisk" + }, + "ListPrice": 279.99, + "FinalPrice": 279.99 + }, + { + "Id": "832UD", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/832ud/", + "WebUrl": "https://www.sierra.com/product/bounce/832ud/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/832ud/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/832ud/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "Insulated Static V Sleeping Pad - Inflatable", + "Name": "Klymit Insulated Static V Sleeping Pad - Inflatable", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/klymit-insulated-static-v-sleeping-pad-inflatable-in-kings-camo~p~832ud_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/klymit-insulated-static-v-sleeping-pad-inflatable-in-kings-camo~p~832ud_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/klymit-insulated-static-v-sleeping-pad-inflatable-in-kings-camo~p~832ud_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/klymit-insulated-static-v-sleeping-pad-inflatable-in-kings-camo~p~832ud_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Kings Camo", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/832ud-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/klymit-insulated-static-v-sleeping-pad-inflatable-in-kings-camo~p~832ud_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. With added R-value for top-drawer performance, Klymit‘s Insulated Static V sleeping pad harnesses four-season performance for unwinding under the stars on any night of the year. The body-mapped V-chambers limit air movement, and the ergonomic body mapping with dynamic side rails cradles your body all night long.", + "SuggestedRetailPrice": 110, + "Brand": { + "Id": "4173", + "Url": "/api/1.0/brand/4173/", + "ProductsUrl": "/api/1.0/products/klymit~b~4173/", + "LogoSrc": "https://i.stpost.com/klymit-insulated-static-v-sleeping-pad-inflatable~b~4173~160x100.jpg", + "Name": "Klymit" + }, + "ListPrice": 79.99, + "FinalPrice": 79.99 + }, + { + "Id": "16PWR", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/16pwr/", + "WebUrl": "https://www.sierra.com/product/bounce/16pwr/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/16pwr/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/16pwr/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "Static V Luxe Sleeping Pad - Inflatable", + "Name": "Klymit Static V Luxe Sleeping Pad - Inflatable", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-rootbeer~p~16pwr_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-rootbeer~p~16pwr_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-rootbeer~p~16pwr_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-rootbeer~p~16pwr_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable~a~16pwr_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Rootbeer", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/16pwr-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-rootbeer~p~16pwr_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Enjoy a comfortable night under the stars with Klymit's Static V Luxe sleeping pad, made from durable materials with ergonomic raised V-chambers that support pressure points and maximize warmth -- all in a wider, thicker design.", + "SuggestedRetailPrice": 100, + "Brand": { + "Id": "4173", + "Url": "/api/1.0/brand/4173/", + "ProductsUrl": "/api/1.0/products/klymit~b~4173/", + "LogoSrc": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable~b~4173~160x100.jpg", + "Name": "Klymit" + }, + "ListPrice": 69.99, + "FinalPrice": 69.99 + }, + { + "Id": "858YV", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/858yv/", + "WebUrl": "https://www.sierra.com/product/bounce/858yv/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/858yv/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/858yv/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "Core Sleeping Pad - 72x20x3.5”", + "Name": "ALPS Mountaineering Core Sleeping Pad - 72x20x3.5”", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/alps-mountaineering-core-sleeping-pad-72x20x35-in-tangerine~p~858yv_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/alps-mountaineering-core-sleeping-pad-72x20x35-in-tangerine~p~858yv_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/alps-mountaineering-core-sleeping-pad-72x20x35-in-tangerine~p~858yv_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/alps-mountaineering-core-sleeping-pad-72x20x35-in-tangerine~p~858yv_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Tangerine", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/858yv-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-core-sleeping-pad-72x20x35-in-tangerine~p~858yv_01~160.jpg" + }, + { + "ColorCode": "02", + "ColorName": "Gray", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/858yv-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-core-sleeping-pad-72x20x35-in-gray~p~858yv_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. With its ultralight weight, horizontal tube design and long-lasting ripstop nylon construction, the ALPS Mountaineering Core sleeping pad is a trusty companion for overnight ventures into the backcountry.", + "SuggestedRetailPrice": 80, + "Brand": { + "Id": "1156", + "Url": "/api/1.0/brand/1156/", + "ProductsUrl": "/api/1.0/products/alps-mountaineering~b~1156/", + "LogoSrc": "https://i.stpost.com/alps-mountaineering-core-sleeping-pad-72x20x35~b~1156~160x100.jpg", + "Name": "ALPS Mountaineering" + }, + "ListPrice": 39, + "FinalPrice": 39 + }, + { + "Id": "16PWX", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/16pwx/", + "WebUrl": "https://www.sierra.com/product/bounce/16pwx/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/16pwx/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/16pwx/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "Static V Luxe Sleeping Pad - Inflatable", + "Name": "Klymit Static V Luxe Sleeping Pad - Inflatable", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-stone-grey~p~16pwx_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-stone-grey~p~16pwx_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-stone-grey~p~16pwx_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-stone-grey~p~16pwx_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable~a~16pwx_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Stone Grey", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/16pwx-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable-in-stone-grey~p~16pwx_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Enjoy a comfortable night under the stars with Klymit's Static V Luxe sleeping pad, made from durable materials with ergonomic raised V-chambers that support pressure points and maximize warmth -- all in a wider, thicker design.", + "SuggestedRetailPrice": 100, + "Brand": { + "Id": "4173", + "Url": "/api/1.0/brand/4173/", + "ProductsUrl": "/api/1.0/products/klymit~b~4173/", + "LogoSrc": "https://i.stpost.com/klymit-static-v-luxe-sleeping-pad-inflatable~b~4173~160x100.jpg", + "Name": "Klymit" + }, + "ListPrice": 69.99, + "FinalPrice": 69.99 + }, + { + "Id": "843YW", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/843yw/", + "WebUrl": "https://www.sierra.com/product/bounce/843yw/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/843yw/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/843yw/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "20°F KSB Down Sleeping Bag - Mummy, 650 Fill Power", + "Name": "Klymit 20°F KSB Down Sleeping Bag - Mummy, 650 Fill Power", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/klymit-20-f-ksb-down-sleeping-bag-mummy-650-fill-power-in-black~p~843yw_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/klymit-20-f-ksb-down-sleeping-bag-mummy-650-fill-power-in-black~p~843yw_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/klymit-20-f-ksb-down-sleeping-bag-mummy-650-fill-power-in-black~p~843yw_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/klymit-20-f-ksb-down-sleeping-bag-mummy-650-fill-power-in-black~p~843yw_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/klymit-20-f-ksb-down-sleeping-bag-mummy-650-fill-power~a~843yw_2~600.1.jpg" + } + ] + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Black", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/843yw-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/klymit-20-f-ksb-down-sleeping-bag-mummy-650-fill-power-in-black~p~843yw_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. When the temps dip below freezing, Klymit's 20°F KSB down sleeping bag surrounds your entire body in supersoft, fluffy down to trap body heat while you snooze.", + "SuggestedRetailPrice": 250, + "Brand": { + "Id": "4173", + "Url": "/api/1.0/brand/4173/", + "ProductsUrl": "/api/1.0/products/klymit~b~4173/", + "LogoSrc": "https://i.stpost.com/klymit-20-f-ksb-down-sleeping-bag-mummy-650-fill-power~b~4173~160x100.jpg", + "Name": "Klymit" + }, + "ListPrice": 179.99, + "FinalPrice": 179.99 + }, + { + "Id": "10HPY", + "IsClearance": false, + "IsNew": true, + "Url": "/api/1.0/product/10hpy/", + "WebUrl": "https://www.sierra.com/product/bounce/10hpy/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/10hpy/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/10hpy/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "28°F Gorm Sleeping Bag - Mummy, Long", + "Name": "Nordisk 28°F Gorm Sleeping Bag - Mummy, Long", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/nordisk-28-f-gorm-sleeping-bag-mummy-long-in-limoges-blue~p~10hpy_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/nordisk-28-f-gorm-sleeping-bag-mummy-long-in-limoges-blue~p~10hpy_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/nordisk-28-f-gorm-sleeping-bag-mummy-long-in-limoges-blue~p~10hpy_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/nordisk-28-f-gorm-sleeping-bag-mummy-long-in-limoges-blue~p~10hpy_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/nordisk-28-f-gorm-sleeping-bag-mummy-long~a~10hpy_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["L"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Limoges Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/10hpy-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/nordisk-28-f-gorm-sleeping-bag-mummy-long-in-limoges-blue~p~10hpy_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Excess. Recharge on cold nights with Nordisk's 28°F Gorm sleeping bag, made from smooth nylon with warm, durable synthetic insulation and a wider shape for maximum comfort.", + "SuggestedRetailPrice": 240, + "Brand": { + "Id": "33133", + "Url": "/api/1.0/brand/33133/", + "ProductsUrl": "/api/1.0/products/nordisk~b~33133/", + "LogoSrc": "https://i.stpost.com/nordisk-28-f-gorm-sleeping-bag-mummy-long~b~33133~160x100.jpg", + "Name": "Nordisk" + }, + "ListPrice": 149.99, + "FinalPrice": 149.99 + }, + { + "Id": "985KF", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/985kf/", + "WebUrl": "https://www.sierra.com/product/bounce/985kf/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/985kf/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/985kf/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "20°F Guide Sleeping Bag - Mummy (For Women)", + "Name": "The North Face 20°F Guide Sleeping Bag - Mummy (For Women)", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/the-north-face-20-f-guide-sleeping-bag-mummy-for-women-in-high-rise-grey-hyper-blue~p~985kf_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/the-north-face-20-f-guide-sleeping-bag-mummy-for-women-in-high-rise-grey-hyper-blue~p~985kf_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/the-north-face-20-f-guide-sleeping-bag-mummy-for-women-in-high-rise-grey-hyper-blue~p~985kf_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/the-north-face-20-f-guide-sleeping-bag-mummy-for-women-in-high-rise-grey-hyper-blue~p~985kf_01~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-20-f-guide-sleeping-bag-mummy-for-women~a~985kf_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["R"] + }, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "High Rise Grey/Hyper Blue", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/985kf-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/the-north-face-20-f-guide-sleeping-bag-mummy-for-women-in-high-rise-grey-hyper-blue~p~985kf_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Get durable-yet-lightweight warmth for comfortable slumbers under the stars in The North Face's Guide sleeping bag, designed with toasty HeatSeeker® insulation in a water-resistant ripstop shell.", + "SuggestedRetailPrice": 209, + "Brand": { + "Id": "1440", + "Url": "/api/1.0/brand/1440/", + "ProductsUrl": "/api/1.0/products/the-north-face~b~1440/", + "LogoSrc": "https://i.stpost.com/the-north-face-20-f-guide-sleeping-bag-mummy-for-women~b~1440~160x100.jpg", + "Name": "The North Face" + }, + "ListPrice": 149.99, + "FinalPrice": 149.99 + }, + { + "Id": "985TP", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/985tp/", + "WebUrl": "https://www.sierra.com/product/bounce/985tp/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/985tp/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/985tp/", + "ReviewCount": 0, + "AverageRating": 0 + }, + "NameWithoutBrand": "20°F Dolomite Double Sleeping Bag - Rectangular", + "Name": "The North Face 20°F Dolomite Double Sleeping Bag - Rectangular", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/the-north-face-20-f-dolomite-double-sleeping-bag-rectangular-in-cosmic-blue-zinc-grey~p~985tp_02~80.jpg", + "PrimaryMedium": "https://i.stpost.com/the-north-face-20-f-dolomite-double-sleeping-bag-rectangular-in-cosmic-blue-zinc-grey~p~985tp_02~160.jpg", + "PrimaryLarge": "https://i.stpost.com/the-north-face-20-f-dolomite-double-sleeping-bag-rectangular-in-cosmic-blue-zinc-grey~p~985tp_02~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/the-north-face-20-f-dolomite-double-sleeping-bag-rectangular-in-cosmic-blue-zinc-grey~p~985tp_02~600.jpg", + "ExtraImages": [ + { + "Title": "Alternate View", + "Src": "https://i.stpost.com/the-north-face-20-f-dolomite-double-sleeping-bag-rectangular~a~985tp_2~600.1.jpg" + } + ] + }, + "SizesAvailable": { + "ZIPPER": ["RH"] + }, + "Colors": [ + { + "ColorCode": "02", + "ColorName": "Cosmic Blue/Zinc Grey", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/985tp-02.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/the-north-face-20-f-dolomite-double-sleeping-bag-rectangular-in-cosmic-blue-zinc-grey~p~985tp_02~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeout. Snuggle up with your special someone under the stars with The North Face's 20°F Dolomite double sleeping bag, featuring durable polyester ripstop construction, toasty HeatSeeker® Eco synthetic insulation and a roomy interior.", + "SuggestedRetailPrice": 159, + "Brand": { + "Id": "1440", + "Url": "/api/1.0/brand/1440/", + "ProductsUrl": "/api/1.0/products/the-north-face~b~1440/", + "LogoSrc": "https://i.stpost.com/the-north-face-20-f-dolomite-double-sleeping-bag-rectangular~b~1440~160x100.jpg", + "Name": "The North Face" + }, + "ListPrice": 129.99, + "FinalPrice": 129.99 + }, + { + "Id": "268GC", + "IsClearance": true, + "IsNew": false, + "Url": "/api/1.0/product/268gc/", + "WebUrl": "https://www.sierra.com/product/bounce/268gc/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/268gc/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/268gc/", + "ReviewCount": 1, + "AverageRating": 3 + }, + "NameWithoutBrand": "Trail King Sleeping Pad - Self-Inflating, Regular", + "Name": "Therm-a-Rest Trail King Sleeping Pad - Self-Inflating, Regular", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/therm-a-rest-trail-king-sleeping-pad-self-inflating-regular-in-yellow-green~p~268gc_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/therm-a-rest-trail-king-sleeping-pad-self-inflating-regular-in-yellow-green~p~268gc_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/therm-a-rest-trail-king-sleeping-pad-self-inflating-regular-in-yellow-green~p~268gc_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/therm-a-rest-trail-king-sleeping-pad-self-inflating-regular-in-yellow-green~p~268gc_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Yellow/Green", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/268gc-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/therm-a-rest-trail-king-sleeping-pad-self-inflating-regular-in-yellow-green~p~268gc_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "2nds. Designed to inflate in a matter of seconds, Therm-a-Rest's Trail King SV sleeping pad offers unprecedented ease-of-use. Backpackers will appreciate 2.5" of ultra-supportive loft and the auto-reversing SpeedValve that lets you deflate the mattress in a flash as well.", + "SuggestedRetailPrice": 129.95, + "Brand": { + "Id": "3177", + "Url": "/api/1.0/brand/3177/", + "ProductsUrl": "/api/1.0/products/therm-a-rest~b~3177/", + "LogoSrc": "https://i.stpost.com/therm-a-rest-trail-king-sleeping-pad-self-inflating-regular~b~3177~160x100.jpg", + "Name": "Therm-a-Rest" + }, + "ListPrice": 49, + "FinalPrice": 49 + }, + { + "Id": "665JR", + "IsClearance": false, + "IsNew": false, + "Url": "/api/1.0/product/665jr/", + "WebUrl": "https://www.sierra.com/product/bounce/665jr/?filterString=s~sleeping-bags%2F", + "AffiliateWebUrl": "https://www.sierra.com/product/bounce/665jr/?filterString=s~sleeping-bags%2F", + "Reviews": { + "ReviewsUrl": "/api/1.0/reviewsbyproduct/665jr/", + "ReviewCount": 1, + "AverageRating": 1 + }, + "NameWithoutBrand": "Regular 375 Foam Sleeping Pad", + "Name": "ALPS Mountaineering Regular 375 Foam Sleeping Pad", + "IsFamousBrand": false, + "Images": { + "PrimarySmall": "https://i.stpost.com/alps-mountaineering-regular-375-foam-sleeping-pad-in-green~p~665jr_01~80.jpg", + "PrimaryMedium": "https://i.stpost.com/alps-mountaineering-regular-375-foam-sleeping-pad-in-green~p~665jr_01~160.jpg", + "PrimaryLarge": "https://i.stpost.com/alps-mountaineering-regular-375-foam-sleeping-pad-in-green~p~665jr_01~320.jpg", + "PrimaryExtraLarge": "https://i.stpost.com/alps-mountaineering-regular-375-foam-sleeping-pad-in-green~p~665jr_01~600.jpg", + "ExtraImages": null + }, + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Green", + "ColorChipImageSrc": "https://s.stpost.com/eccstorefront/colorchip/665jr-01.jpg", + "ColorPreviewImageSrc": "https://i.stpost.com/alps-mountaineering-regular-375-foam-sleeping-pad-in-green~p~665jr_01~160.jpg" + } + ], + "DescriptionHtmlSimple": "Closeouts. ALPS Mountaineering Regular 375 sleeping pad is a dense, textured foam mat that protects and insulates against cold, uneven surfaces.", + "SuggestedRetailPrice": 16.99, + "Brand": { + "Id": "1156", + "Url": "/api/1.0/brand/1156/", + "ProductsUrl": "/api/1.0/products/alps-mountaineering~b~1156/", + "LogoSrc": "https://i.stpost.com/alps-mountaineering-regular-375-foam-sleeping-pad~b~1156~160x100.jpg", + "Name": "ALPS Mountaineering" + }, + "ListPrice": 12.99, + "FinalPrice": 12.99 + } + ] +} diff --git a/src/public/json/tents.json b/src/public/json/tents.json new file mode 100644 index 000000000..d24bd8bcb --- /dev/null +++ b/src/public/json/tents.json @@ -0,0 +1,137 @@ +[ + { + "Id": "880RR", + "NameWithoutBrand": "Ajax Tent - 3-Person, 3-Season", + "Name": "Marmot Ajax Tent - 3-Person, 3-Season", + "Image": "../images/tents/marmot-ajax-tent-3-person-3-season-in-pale-pumpkin-terracotta~p~880rr_01~320.jpg", + + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Pale Pumpkin/Terracotta" + } + ], + "DescriptionHtmlSimple": "Get out and enjoy nature with Marmot's Ajax tent, featuring a smart design with durable, waterproof construction and two doors for easy access.", + "SuggestedRetailPrice": 300.0, + "Brand": { + "Id": "1308", + "LogoSrc": "../images/logos/marmot-160x100.jpg", + "Name": "Marmot" + }, + "ListPrice": 199.99, + "FinalPrice": 199.99 + }, + { + "Id": "985RF", + "NameWithoutBrand": "Talus Tent - 4-Person, 3-Season", + "Name": "The North Face Talus Tent - 4-Person, 3-Season", + "Image": "../images/tents/the-north-face-talus-tent-4-person-3-season-in-golden-oak-saffron-yellow~p~985rf_01~320.jpg", + + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Golden Oak/Saffron Yellow" + } + ], + "DescriptionHtmlSimple": "Closeout. Enjoy a fun night under stars with your favorite people in The North Face's Talus four-person tent, featuring durable construction with a roomy interior, an advanced DAC Featherlite NSL pole system and an easy to pitch design.", + "SuggestedRetailPrice": 299.0, + "Brand": { + "Id": "1440", + "Name": "The North Face" + }, + "ListPrice": 199.99, + "FinalPrice": 199.99 + }, + { + "Id": "989CG", + "NameWithoutBrand": "Talus Tent - 3-Person, 3-Season", + "Name": "The North Face Talus Tent - 3-Person, 3-Season", + "Image": "../images/tents/the-north-face-talus-tent-3-person-3-season-in-golden-oak-saffron-yellow~p~989cg_01~320.jpg", + + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Golden Oak/Saffron Yellow" + } + ], + "DescriptionHtmlSimple": "Closeout. Enjoy a fun night under stars with your favorite people in The North Face's Talus three-person tent, featuring durable construction with a roomy interior, an advanced DAC Featherlite NSL pole system and an easy to pitch design.", + "SuggestedRetailPrice": 270.0, + "Brand": { + "Id": "1440", + "Name": "The North Face" + }, + "ListPrice": 179.99, + "FinalPrice": 179.99 + }, + { + "Id": "985PR", + "NameWithoutBrand": "Alpine Guide Tent - 3-Person, 4-Season", + "Name": "The North Face Alpine Guide Tent - 3-Person, 4-Season", + "Image": "../images/tents/the-north-face-alpine-guide-tent-3-person-4-season-in-canary-yellow-high-rise-grey~p~985pr_01~320.jpg", + + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Canary Yellow/High Rise Grey" + } + ], + "DescriptionHtmlSimple": "Closeout. Be ready for any outdoor adventure in low elevations and high-alpine environments alike with the hybrid design of The North Face's Alpine Guide four-season tent. It is made from durable, waterproof nylon ripstop with an advanced DAC® Featherlite NSL pole system and an easy to pitch design.", + "SuggestedRetailPrice": 489.0, + "Brand": { + "Id": "1440", + "Name": "The North Face" + }, + "ListPrice": 349.99, + "FinalPrice": 349.99 + }, + { + "Id": "880RT", + "NameWithoutBrand": "Ajax Tent - 2-Person, 3-Season", + "Name": "Marmot Ajax Tent - 2-Person, 3-Season", + "Image": "../images/tents/marmot-ajax-tent-2-person-3-season-in-pale-pumpkin-terracotta~p~880rt_01~320.jpg", + + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Pale Pumpkin/Terracotta" + } + ], + "DescriptionHtmlSimple": "Excess. Get out and enjoy nature with Marmot's Ajax tent, featuring a smart design with durable, waterproof construction and two doors for easy access.", + "SuggestedRetailPrice": 275.0, + "Brand": { + "Id": "1308", + "Name": "Marmot" + }, + "ListPrice": 179.99, + "FinalPrice": 179.99 + }, + + { + "Id": "344YJ", + "NameWithoutBrand": "Rimrock Tent - 2-Person, 3-Season", + "Name": "Cedar Ridge Rimrock Tent - 2-Person, 3-Season", + "IsFamousBrand": false, + "Image": "../images/tents/cedar-ridge-rimrock-tent-2-person-3-season-in-rust-clay~p~344yj_01~320.jpg", + + "SizesAvailable": {}, + "Colors": [ + { + "ColorCode": "01", + "ColorName": "Rust/Clay" + } + ], + "DescriptionHtmlSimple": "Closeouts. Lightweight and ready for adventure, this Cedar Ridge Rimrock tent boasts a weather-ready design that includes a tub-style floor and factory-sealed rain fly.", + "SuggestedRetailPrice": 89.99, + "Brand": { + "Id": "35027", + "Name": "Cedar Ridge" + }, + "ListPrice": 69.99, + "FinalPrice": 69.99 + } +] diff --git a/vite.config.js b/vite.config.js index df1fc32cd..b46fc89c3 100644 --- a/vite.config.js +++ b/vite.config.js @@ -10,20 +10,21 @@ export default defineConfig({ input: { main: resolve(__dirname, 'src/index.html'), cart: resolve(__dirname, 'src/cart/index.html'), - checkout: resolve(__dirname, 'src/checkout/index.html'), - product1: resolve( - __dirname, - 'src/product_pages/cedar-ridge-rimrock-2.html', - ), - product2: resolve(__dirname, 'src/product_pages/marmot-ajax-3.html'), - product3: resolve( - __dirname, - 'src/product_pages/northface-alpine-3.html', - ), - product4: resolve( - __dirname, - 'src/product_pages/northface-talus-4.html', - ), + product: resolve(__dirname, "src/product_pages/index.html") + //checkout: resolve(__dirname, 'src/checkout/index.html'), + // product1: resolve( + // __dirname, + // 'src/product_pages/cedar-ridge-rimrock-2.html', + // ), + // product2: resolve(__dirname, 'src/product_pages/marmot-ajax-3.html'), + // product3: resolve( + // __dirname, + // 'src/product_pages/northface-alpine-3.html', + // ), + // product4: resolve( + // __dirname, + // 'src/product_pages/northface-talus-4.html', + // ), }, }, }, From 67b5d828d38779c3965abbfd35e46f7b18bf5dc7 Mon Sep 17 00:00:00 2001 From: drspahr Date: Sat, 9 Mar 2024 15:27:12 -0600 Subject: [PATCH 23/52] Corrected Empty Card Error --- src/js/cart.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/js/cart.js b/src/js/cart.js index 5a8aaaf41..ada2764f3 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,12 +1,14 @@ import { getLocalStorage } from './utils.mjs'; function renderCartContents() { - const cartItems = getLocalStorage('so-cart'); - const htmlItems = cartItems.map((item) => cartItemTemplate(item)); - const total = getCartTotal(cartItems); - const cartTotalHTML = cartTotalTemplate(total); - document.querySelector('.product-list').innerHTML = htmlItems.join(''); - document.querySelector('section.products').insertAdjacentHTML('beforeend', cartTotalHTML); + if (localStorage.getItem('so-cart') !== null) { + const cartItems = getLocalStorage('so-cart'); + const htmlItems = cartItems.map((item) => cartItemTemplate(item)); + const total = getCartTotal(cartItems); + const cartTotalHTML = cartTotalTemplate(total); + document.querySelector('.product-list').innerHTML = htmlItems.join(''); + document.querySelector('section.products').insertAdjacentHTML('beforeend', cartTotalHTML); + } } function cartItemTemplate(item) { From 71a1e1cb28b31a6b99040cc48ed8044dc99e8fa9 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Sat, 9 Mar 2024 17:45:28 -0700 Subject: [PATCH 24/52] added remove from cart feature --- src/js/cart.js | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/js/cart.js b/src/js/cart.js index b6b1e0622..d47f9f5e9 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,4 +1,4 @@ -import { getLocalStorage } from './utils.mjs'; +import { getLocalStorage, setLocalStorage } from './utils.mjs'; function renderCartContents() { const cartItems = getLocalStorage('so-cart'); @@ -10,10 +10,17 @@ function renderCartContents() { totalDiv.classList.toggle('hide', total === 0); document.querySelector('.product-list').innerHTML = htmlItems.join(''); + document.querySelectorAll('.remove-from-cart').forEach((item, e)=>{ + item.addEventListener('click', (event)=>{ + console.log(event.target.dataset.id); + removeFromCart(event.target.dataset.id); + }); + }) } function cartItemTemplate(item) { const newItem = `
  • + X Your total is going to be: ${total} ` } +function removeFromCart(id){ + const cartItems = getLocalStorage('so-cart'); + for (let i = 0; i < cartItems.length; i++) { + if (cartItems[i].Id === id) { + cartItems.splice(i, 1); + break; + } + } + + setLocalStorage('so-cart',cartItems); + renderCartContents(); +} + renderCartContents(); + + From 674abb4a1966ddc6d18739e20c9c1e7dc8ce1742 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Sun, 10 Mar 2024 21:08:29 -0600 Subject: [PATCH 25/52] adding MSRP price to show discount --- src/css/style.css | 5 +++++ src/js/ProductDetails.mjs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/css/style.css b/src/css/style.css index 6875e41e5..77935a609 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -201,6 +201,11 @@ button { grid-row: 2; grid-column: 3; } +.product-msrp__price{ + font-size: small; + text-decoration: line-through; + color: var(--tertiary-color); +} .hide { display: none; diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs index a09e849bd..244629cca 100644 --- a/src/js/ProductDetails.mjs +++ b/src/js/ProductDetails.mjs @@ -11,7 +11,7 @@ function productDetailsTemplate(product){ src="${product.Image}" alt="${product.NameWithoutBrand}" /> - +

    MSRP: $${product.SuggestedRetailPrice}

    $${product.FinalPrice}

    ${product.Colors[0].ColorName}

    From c4cf76f34cf46c6104b4df23ce47cac1a6e0e8f7 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Sun, 10 Mar 2024 22:11:43 -0600 Subject: [PATCH 26/52] adding superscript to cart icon in header --- src/css/style.css | 13 +++++++++++++ src/js/ProductDetails.mjs | 3 ++- src/js/cart.js | 6 ++++-- src/js/main.js | 4 ++++ src/js/product.js | 4 ++-- src/js/utils.mjs | 17 +++++++++++++++++ 6 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/css/style.css b/src/css/style.css index 6875e41e5..907fcf0cd 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -223,3 +223,16 @@ footer { font-size: var(--small-font); padding: 1em; } +header .cart{ + position: relative; +} +.superscript{ + position:absolute; + top: 5px; + right: -5px; + font-size: x-small; + background-color: #ffffff; + border: 2px solid var(--primary-color); + border-radius: 50%; + padding: 3px 5px; +} \ No newline at end of file diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs index a09e849bd..da97ad8e0 100644 --- a/src/js/ProductDetails.mjs +++ b/src/js/ProductDetails.mjs @@ -1,4 +1,4 @@ -import { setLocalStorage, getLocalStorage } from "./utils.mjs"; +import { setLocalStorage, getLocalStorage, updateCountItemsInCart } from "./utils.mjs"; function productDetailsTemplate(product){ return `
    @@ -44,6 +44,7 @@ export default class ProductDetails { let cart = getLocalStorage('so-cart') || []; cart.push(this.product); setLocalStorage('so-cart', cart); + updateCountItemsInCart() } renderProductDetails(selector) { diff --git a/src/js/cart.js b/src/js/cart.js index 05b90e366..7921525f5 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,4 +1,4 @@ -import { getLocalStorage, setLocalStorage } from './utils.mjs'; +import { getLocalStorage, setLocalStorage, showCountItemsInCart, updateCountItemsInCart } from './utils.mjs'; function renderCartContents() { if (localStorage.getItem('so-cart') !== null) { @@ -64,8 +64,10 @@ function removeFromCart(id){ setLocalStorage('so-cart',cartItems); renderCartContents(); + updateCountItemsInCart() } -renderCartContents(); +renderCartContents(); +showCountItemsInCart(); diff --git a/src/js/main.js b/src/js/main.js index 135fc5730..90e37b4ec 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,7 +1,11 @@ import ProductData from './ProductData.mjs'; import ProductList from './ProductList.mjs'; +import {showCountItemsInCart} from './utils.mjs'; const dataSource = new ProductData('tents'); const element = document.querySelector('.product-list'); const productList = new ProductList('Tents', dataSource, element); productList.init(); + +showCountItemsInCart(); + diff --git a/src/js/product.js b/src/js/product.js index d1e9dd5f9..be6b4bdaf 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,4 +1,4 @@ -import { getParam } from './utils.mjs'; +import { getParam, showCountItemsInCart } from './utils.mjs'; import ProductData from './ProductData.mjs'; import ProductDetails from './ProductDetails.mjs'; @@ -7,5 +7,5 @@ const dataSource = new ProductData('tents'); const productId = getParam('product'); const product = new ProductDetails(productId, dataSource); product.init(); - +showCountItemsInCart(); diff --git a/src/js/utils.mjs b/src/js/utils.mjs index 101507fdf..18073256c 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -32,3 +32,20 @@ export function renderListWithTemplate(templateFn, parentElement, list, position if(clear) listTarget.clear(); parentElement.insertAdjacentHTML(position, htmlItems.join("")); } + +export function showCountItemsInCart(){ + let cartCount = getLocalStorage('so-cart').length; + if(cartCount > 0){ + let html = cartCountTemplate(cartCount); + let element = document.querySelector('header .cart'); + element.insertAdjacentHTML('afterbegin', html); + } +} +export function updateCountItemsInCart(){ + const cartItems = getLocalStorage('so-cart'); + let cartCount = cartItems.length; + document.querySelector('header .cart .superscript').innerHTML = cartCount; +} +function cartCountTemplate(cartCount){ + return `
    ${cartCount}
    `; +} \ No newline at end of file From 89d38204b9965b76464f36a7d213dc25590e4f80 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Wed, 13 Mar 2024 07:54:59 -0600 Subject: [PATCH 27/52] alerts --- src/css/style.css | 21 +++++++++++++++++++ src/js/Alert.js | 41 +++++++++++++++++++++++++++++++++++++ src/js/main.js | 3 +++ src/js/utils.mjs | 26 +++++++++++++++++++++++ src/public/json/alerts.json | 1 + 5 files changed, 92 insertions(+) create mode 100644 src/js/Alert.js create mode 100644 src/public/json/alerts.json diff --git a/src/css/style.css b/src/css/style.css index 6875e41e5..448443e02 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -223,3 +223,24 @@ footer { font-size: var(--small-font); padding: 1em; } + +header .cart{ + position: relative; +} +.superscript{ + position:absolute; + top: 5px; + right: -5px; + font-size: x-small; + background-color: #ffffff; + border: 2px solid var(--primary-color); + border-radius: 50%; + padding: 3px 5px; +} +.background-darkblue{ + background-color: #333399; +} +.foreground-white{ + color: #ffffff; +} + diff --git a/src/js/Alert.js b/src/js/Alert.js new file mode 100644 index 000000000..65f86bc57 --- /dev/null +++ b/src/js/Alert.js @@ -0,0 +1,41 @@ +import {convertToJson, renderListWithTemplate} from "./utils.mjs"; + +function alertTemplate(alert) { + return ` +

    ${alert.message}

    + `; +} + +//Alert class +export default class Alert { + constructor(message) { + this.message = message; + this.path = `../json/alerts.json`; + this.renderAlerts(); + } + async getData() { // Mark as async + return fetch(this.path) + .then(convertToJson) + .then((data) => data); + } + async getAlertsHtml() { // Mark as async + let alerts = await this.getData(); + let alertsHTML = ""; + if(alerts){ + + alerts.forEach((alert) => { + alertsHTML += alertTemplate(alert); + }); + } + return alertsHTML; + } + async renderAlerts(){ // Mark as async + const element = document.querySelector('main'); + let alertsHtml = await this.getAlertsHtml(); + let html = `
    `+alertsHtml+`
    `; // Fixed missing backtick + element.insertAdjacentHTML( + "afterBegin", + html + ); + } +} diff --git a/src/js/main.js b/src/js/main.js index 135fc5730..db951aa8d 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,7 +1,10 @@ +import Alert from './Alert'; import ProductData from './ProductData.mjs'; import ProductList from './ProductList.mjs'; +const alert = new Alert(); const dataSource = new ProductData('tents'); const element = document.querySelector('.product-list'); const productList = new ProductList('Tents', dataSource, element); + productList.init(); diff --git a/src/js/utils.mjs b/src/js/utils.mjs index 101507fdf..65d3f6374 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -32,3 +32,29 @@ export function renderListWithTemplate(templateFn, parentElement, list, position if(clear) listTarget.clear(); parentElement.insertAdjacentHTML(position, htmlItems.join("")); } + +export function showCountItemsInCart(){ + let cartCount = getLocalStorage('so-cart').length; + if(cartCount > 0){ + let html = cartCountTemplate(cartCount); + let element = document.querySelector('header .cart'); + element.insertAdjacentHTML('afterbegin', html); + } +} +export function updateCountItemsInCart(){ + const cartItems = getLocalStorage('so-cart'); + let cartCount = cartItems.length; + document.querySelector('header .cart .superscript').innerHTML = cartCount; +} +function cartCountTemplate(cartCount){ + return `
    ${cartCount}
    `; +} + +export function convertToJson(res) { + if (res.ok) { + return res.json(); + } else { + throw new Error("Bad Response"); + } +} + diff --git a/src/public/json/alerts.json b/src/public/json/alerts.json new file mode 100644 index 000000000..8921b866e --- /dev/null +++ b/src/public/json/alerts.json @@ -0,0 +1 @@ +[{"message": "This is only a test", "background": "darkblue", "color": "white"}] \ No newline at end of file From 5bde3ee8855beccbcd19c37f9ba0d754a7d5dd23 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 14 Mar 2024 17:00:42 -0600 Subject: [PATCH 28/52] product-listing and updates --- src/css/style.css | 16 ++++++ src/index.html | 51 +++++++++++++++++++ src/js/ProductData.mjs | 19 +++---- src/js/ProductDetails.mjs | 2 +- src/js/ProductList.mjs | 13 ++--- src/js/main.js | 6 --- src/js/product-listing.js | 9 ++++ src/js/utils.mjs | 26 ++++++++++ src/product-listing/index.html | 43 ++++++++++++++++ src/public/images/noun_Hammock_791143.svg | 3 ++ .../images/noun_Sleeping Bag_3544775.svg | 3 ++ src/public/images/noun_Tent_3544767.svg | 3 ++ .../images/noun_carrier bag_3544771.svg | 3 ++ vite.config.js | 1 + 14 files changed, 176 insertions(+), 22 deletions(-) create mode 100644 src/js/product-listing.js create mode 100644 src/product-listing/index.html create mode 100644 src/public/images/noun_Hammock_791143.svg create mode 100644 src/public/images/noun_Sleeping Bag_3544775.svg create mode 100644 src/public/images/noun_Tent_3544767.svg create mode 100644 src/public/images/noun_carrier bag_3544771.svg diff --git a/src/css/style.css b/src/css/style.css index 6875e41e5..b26dd33db 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -223,3 +223,19 @@ footer { font-size: var(--small-font); padding: 1em; } +.categories-list{ + display: flex; + flex-direction: row; + justify-content: space-evenly; + flex-wrap: wrap; +} +.categories-list li{ + list-style-type: none; + text-align: center; +} +.categories-list img{ + width: 200px; +} +section{ + padding: 9px; +} \ No newline at end of file diff --git a/src/index.html b/src/index.html index 1bcb9ed20..1a2d05992 100644 --- a/src/index.html +++ b/src/index.html @@ -6,6 +6,7 @@ Sleep Outside | Home +
    @@ -51,6 +52,56 @@ comfortably at an affordable price.

    +
    +

    Product Categories

    +
    +
    +
    +

    We spend too much time these days indoors...sitting usually.

    +

    No wonder we are a mess!

    +

    + What we really need is to get outside...in fact SLEEP outside. Our + mission is to provide you with everything you need to do this + comfortably at an affordable price. +

    +

    Top Products

      diff --git a/src/js/ProductData.mjs b/src/js/ProductData.mjs index 2361ff218..065ea4ce5 100644 --- a/src/js/ProductData.mjs +++ b/src/js/ProductData.mjs @@ -1,3 +1,4 @@ +const baseURL = import.meta.env.VITE_SERVER_URL; function convertToJson(res) { if (res.ok) { return res.json(); @@ -7,17 +8,17 @@ function convertToJson(res) { } export default class ProductData { - constructor(category) { - this.category = category; - this.path = `../json/${this.category}.json`; + constructor() { + } - getData() { - return fetch(this.path) - .then(convertToJson) - .then((data) => data); + async getData(category) { + const response = await fetch(baseURL + `products/search/${category}`); + const data = await convertToJson(response); + return data.Result; } async findProductById(id) { - const products = await this.getData(); - return products.find((item) => item.Id === id); + const response = await fetch(`${baseURL}product/${id}`); + const data = await convertToJson(response); + return data.Result; } } diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs index a09e849bd..5dcabf665 100644 --- a/src/js/ProductDetails.mjs +++ b/src/js/ProductDetails.mjs @@ -8,7 +8,7 @@ function productDetailsTemplate(product){ ${product.NameWithoutBrand} diff --git a/src/js/ProductList.mjs b/src/js/ProductList.mjs index 148977b96..54e37169b 100644 --- a/src/js/ProductList.mjs +++ b/src/js/ProductList.mjs @@ -3,13 +3,13 @@ import { renderListWithTemplate } from "./utils.mjs"; function productCardTemplate(product){ return `
    • - + ${product.Name}

      ${product.Brand.Name}

      -

      ${product.Name}

      +

      ${product.NameWithoutBrand}

      ${product.FinalPrice}

    • ` @@ -23,9 +23,10 @@ export default class ProductList{ this.listElement = listElement; } async init() { - const productList = await this.dataSource.getData(); - let filterList = this.filterProductList(productList) - this.renderList(filterList); + const list = await this.dataSource.getData(this.category); + //let filterList = this.filterProductList(list) + //this.renderList(filterList); + this.renderList(list); } renderList(productList){ renderListWithTemplate(productCardTemplate,this.listElement,productList); diff --git a/src/js/main.js b/src/js/main.js index 135fc5730..8b1378917 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,7 +1 @@ -import ProductData from './ProductData.mjs'; -import ProductList from './ProductList.mjs'; -const dataSource = new ProductData('tents'); -const element = document.querySelector('.product-list'); -const productList = new ProductList('Tents', dataSource, element); -productList.init(); diff --git a/src/js/product-listing.js b/src/js/product-listing.js new file mode 100644 index 000000000..fce80a9aa --- /dev/null +++ b/src/js/product-listing.js @@ -0,0 +1,9 @@ +import ProductData from './ProductData.mjs'; +import ProductList from './ProductList.mjs'; +import {getParam} from './utils.mjs' + +const category = getParam('category'); +const dataSource = new ProductData(); +const element = document.querySelector('.product-list'); +const productList = new ProductList(category, dataSource, element); +productList.init(); \ No newline at end of file diff --git a/src/js/utils.mjs b/src/js/utils.mjs index 101507fdf..65d3f6374 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -32,3 +32,29 @@ export function renderListWithTemplate(templateFn, parentElement, list, position if(clear) listTarget.clear(); parentElement.insertAdjacentHTML(position, htmlItems.join("")); } + +export function showCountItemsInCart(){ + let cartCount = getLocalStorage('so-cart').length; + if(cartCount > 0){ + let html = cartCountTemplate(cartCount); + let element = document.querySelector('header .cart'); + element.insertAdjacentHTML('afterbegin', html); + } +} +export function updateCountItemsInCart(){ + const cartItems = getLocalStorage('so-cart'); + let cartCount = cartItems.length; + document.querySelector('header .cart .superscript').innerHTML = cartCount; +} +function cartCountTemplate(cartCount){ + return `
      ${cartCount}
      `; +} + +export function convertToJson(res) { + if (res.ok) { + return res.json(); + } else { + throw new Error("Bad Response"); + } +} + diff --git a/src/product-listing/index.html b/src/product-listing/index.html new file mode 100644 index 000000000..ff0133946 --- /dev/null +++ b/src/product-listing/index.html @@ -0,0 +1,43 @@ + + + + + + Sleep Outside | Home + + + + + +
      + + +
      +
      +
      +

      Top Products

      +
        +
      +
      +
      +
      ©NOT a real business
      + + diff --git a/src/public/images/noun_Hammock_791143.svg b/src/public/images/noun_Hammock_791143.svg new file mode 100644 index 000000000..3601429bf --- /dev/null +++ b/src/public/images/noun_Hammock_791143.svg @@ -0,0 +1,3 @@ +Artboard Copy 2Created with Sketch. + + diff --git a/src/public/images/noun_Sleeping Bag_3544775.svg b/src/public/images/noun_Sleeping Bag_3544775.svg new file mode 100644 index 000000000..6ab95a6bd --- /dev/null +++ b/src/public/images/noun_Sleeping Bag_3544775.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/noun_Tent_3544767.svg b/src/public/images/noun_Tent_3544767.svg new file mode 100644 index 000000000..f437f0f9f --- /dev/null +++ b/src/public/images/noun_Tent_3544767.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/images/noun_carrier bag_3544771.svg b/src/public/images/noun_carrier bag_3544771.svg new file mode 100644 index 000000000..b95f0e0fd --- /dev/null +++ b/src/public/images/noun_carrier bag_3544771.svg @@ -0,0 +1,3 @@ + + + diff --git a/vite.config.js b/vite.config.js index 5e4ae87ef..bb79295e4 100644 --- a/vite.config.js +++ b/vite.config.js @@ -10,6 +10,7 @@ export default defineConfig({ main: resolve(__dirname, 'src/index.html'), cart: resolve(__dirname, 'src/cart/index.html'), checkout: resolve(__dirname, 'src/checkout/index.html'), + productListing: resolve(__dirname, 'src/product-listing/index.html'), product: resolve(__dirname, 'src/product_pages/index.html'), }, }, From 59acb61aef2967ed19ffbca455ef637565b309ef Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 14 Mar 2024 19:06:29 -0600 Subject: [PATCH 29/52] updated header and footer to partials for team assignment 3 --- src/cart/index.html | 83 +----------------- src/checkout/index.html | 53 +----------- src/index.html | 25 +----- src/js/main.js | 3 +- src/js/utils.mjs | 29 ++++++- src/product-listing/index.html | 24 +----- src/product_pages/cedar-ridge-rimrock-2.html | 87 ------------------- src/product_pages/index.html | 51 +----------- src/product_pages/marmot-ajax-3.html | 87 ------------------- src/product_pages/northface-alpine-3.html | 88 -------------------- src/product_pages/northface-talus-4.html | 88 -------------------- src/public/partials/footer.html | 1 + src/public/partials/header.html | 20 +++++ 13 files changed, 66 insertions(+), 573 deletions(-) delete mode 100644 src/product_pages/cedar-ridge-rimrock-2.html delete mode 100644 src/product_pages/marmot-ajax-3.html delete mode 100644 src/product_pages/northface-alpine-3.html delete mode 100644 src/product_pages/northface-talus-4.html create mode 100644 src/public/partials/footer.html create mode 100644 src/public/partials/header.html diff --git a/src/cart/index.html b/src/cart/index.html index 5d7a23907..316f0aa42 100644 --- a/src/cart/index.html +++ b/src/cart/index.html @@ -1,99 +1,24 @@ - - - Sleep Outside | Cart - - + - -
      - - - + -

      My Cart

      - -
        - +
      - -
      ©NOT a real business
      +
      diff --git a/src/checkout/index.html b/src/checkout/index.html index 7ce7715e5..d4fbd5653 100644 --- a/src/checkout/index.html +++ b/src/checkout/index.html @@ -1,67 +1,20 @@ - - - Sleep Outside | Checkout - + - -
      - - - + -

      Review & Place your Order

      - -
      ©NOT a real business
      +
      diff --git a/src/index.html b/src/index.html index 1a2d05992..a5dce50f6 100644 --- a/src/index.html +++ b/src/index.html @@ -9,27 +9,8 @@ -
      - - +
      @@ -108,6 +89,6 @@

      Top Products

    -
    ©NOT a real business
    +
    diff --git a/src/js/main.js b/src/js/main.js index 3f6f1a351..cf00965cf 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,8 +1,9 @@ import Alert from './Alert'; import ProductData from './ProductData.mjs'; import ProductList from './ProductList.mjs'; -import {showCountItemsInCart} from './utils.mjs'; +import {showCountItemsInCart, loadHeaderFooter} from './utils.mjs'; +await loadHeaderFooter(); const alert = new Alert(); const dataSource = new ProductData('tents'); const element = document.querySelector('.product-list'); diff --git a/src/js/utils.mjs b/src/js/utils.mjs index dee5824f5..701961bb1 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -29,10 +29,21 @@ export function getParam(param){ export function renderListWithTemplate(templateFn, parentElement, list, position='afterbegin', clear=false){ const htmlItems = list.map(templateFn); - if(clear) listTarget.clear(); + if(clear) parentElement.clear(); parentElement.insertAdjacentHTML(position, htmlItems.join("")); } +export function renderWithTemplate(template, parentElement, data = null, callback = null){ + //const html = templateFn(data); + //if(clear) parentElement.clear(); + parentElement.insertAdjacentHTML('afterbegin', template); + + //literally zero clue why this is being done, also data is never actually used in this function, so why pass it with the template???? + if(callback) { + callback(data); + } +} + export function showCountItemsInCart(){ let cartCount = getLocalStorage('so-cart').length; if(cartCount > 0){ @@ -56,4 +67,20 @@ export function convertToJson(res) { } else { throw new Error("Bad Response"); } +} +export async function loadHeaderFooter(){ + const headerTemplate = await loadTemplate('../partials/header.html'); + const footerTemplate = await loadTemplate('../partials/footer.html'); + const headerElem = document.getElementById("header"); + const footerElem = document.getElementById("footer"); + renderWithTemplate(headerTemplate, headerElem); + renderWithTemplate(footerTemplate, footerElem); + + +} + +async function loadTemplate(path) { + const result = await fetch(path); + const template = await result.text(); + return template; } \ No newline at end of file diff --git a/src/product-listing/index.html b/src/product-listing/index.html index ff0133946..77ce59ed9 100644 --- a/src/product-listing/index.html +++ b/src/product-listing/index.html @@ -9,27 +9,7 @@ -
    - - +
    @@ -38,6 +18,6 @@

    Top Products

    -
    ©NOT a real business
    +
    diff --git a/src/product_pages/cedar-ridge-rimrock-2.html b/src/product_pages/cedar-ridge-rimrock-2.html deleted file mode 100644 index 782252ae8..000000000 --- a/src/product_pages/cedar-ridge-rimrock-2.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - Sleep Outside | Cedar Ridge Rimrock 2-person tent - - - - - - - -
    - - - -
    - -
    -
    -

    Cedar Ridge

    - -

    Rimrock Tent - 2-Person, 3-Season

    - - Rimrock Tent - 2-Person, 3-Season - -

    $69.99

    - -

    Rust/Clay

    - -

    - Lightweight and ready for adventure, this Cedar Ridge Rimrock tent - boasts a weather-ready design that includes a tub-style floor and - factory-sealed rain fly -

    - -
    - -
    -
    -
    - -
    ©NOT a real business
    - - diff --git a/src/product_pages/index.html b/src/product_pages/index.html index 6d0df4084..2e4f6eff5 100644 --- a/src/product_pages/index.html +++ b/src/product_pages/index.html @@ -1,63 +1,18 @@ - - - Sleep Outside | Cedar Ridge Rimrock 2-person tent - - + - -
    - - - + -
    -
    - -
    ©NOT a real business
    +
    diff --git a/src/product_pages/marmot-ajax-3.html b/src/product_pages/marmot-ajax-3.html deleted file mode 100644 index 2a501ac01..000000000 --- a/src/product_pages/marmot-ajax-3.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - Sleep Outside | Marmot Ajax 3 person tent - - - - - - - -
    - - - -
    - -
    -
    -

    Marmot

    - -

    Ajax Tent - 3-Person, 3-Season

    - - Marmot Ajax tent - -

    $199.99

    - -

    Pale Pumpkin/Terracotta

    - -

    - Get out and enjoy nature with Marmot's Ajax tent, featuring a - smart design with durable, waterproof construction and two doors for - easy access. -

    - -
    - -
    -
    -
    - -
    ©NOT a real business
    - - diff --git a/src/product_pages/northface-alpine-3.html b/src/product_pages/northface-alpine-3.html deleted file mode 100644 index c512994ef..000000000 --- a/src/product_pages/northface-alpine-3.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - Sleep Outside | North Face Alpine Guide 3-person tent - - - - - - - -
    - - - -
    - -
    -
    -

    The North Face

    - -

    Alpine Guide Tent - 3-Person, 4-Season

    - - Alpine Guide Tent - 3-Person, 4-Season - -

    $349.99

    - -

    Canary Yellow/High Rise Grey

    - -

    - Be ready for any outdoor adventure in low elevations and high-alpine - environments alike with the hybrid design of The North Face's - Alpine Guide four-season tent. It is made from durable, waterproof - Featherlite NSL pole system and an easy to pitch design. -

    - -
    - -
    -
    -
    - -
    ©NOT a real business
    - - diff --git a/src/product_pages/northface-talus-4.html b/src/product_pages/northface-talus-4.html deleted file mode 100644 index 26ed18477..000000000 --- a/src/product_pages/northface-talus-4.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - Sleep Outside | North Face Talus 4-person tent - - - - - - - -
    - - - -
    - -
    -
    -

    The North Face

    - -

    Talus Tent - 4-Person, 3-Season

    - - Talus Tent - 4-Person, 3-Season - -

    $199.99

    - -

    Golden Oak/Saffron Yellow

    - -

    - Enjoy a fun night under stars with your favorite people in The North - Face's Talus four-person tent, featuring durable construction with - a roomy interior, an advanced DAC Featherlite NSL pole system and an - easy to pitch design. -

    - -
    - -
    -
    -
    - -
    ©NOT a real business
    - - diff --git a/src/public/partials/footer.html b/src/public/partials/footer.html new file mode 100644 index 000000000..495b91972 --- /dev/null +++ b/src/public/partials/footer.html @@ -0,0 +1 @@ +©NOT a real business \ No newline at end of file diff --git a/src/public/partials/header.html b/src/public/partials/header.html new file mode 100644 index 000000000..36939eff9 --- /dev/null +++ b/src/public/partials/header.html @@ -0,0 +1,20 @@ + + From a0b8ec3ac3098c3cd527a2d0d56fb99972a383a6 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 14 Mar 2024 19:16:59 -0600 Subject: [PATCH 30/52] lint fixes --- src/js/Alert.js | 8 ++++---- src/js/cart.js | 4 ++-- src/js/main.js | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/js/Alert.js b/src/js/Alert.js index 65f86bc57..d8414a876 100644 --- a/src/js/Alert.js +++ b/src/js/Alert.js @@ -1,4 +1,4 @@ -import {convertToJson, renderListWithTemplate} from "./utils.mjs"; +import {convertToJson} from './utils.mjs'; function alertTemplate(alert) { return ` @@ -20,7 +20,7 @@ export default class Alert { } async getAlertsHtml() { // Mark as async let alerts = await this.getData(); - let alertsHTML = ""; + let alertsHTML = ''; if(alerts){ alerts.forEach((alert) => { @@ -32,9 +32,9 @@ export default class Alert { async renderAlerts(){ // Mark as async const element = document.querySelector('main'); let alertsHtml = await this.getAlertsHtml(); - let html = `
    `+alertsHtml+`
    `; // Fixed missing backtick + let html = `
    ` + alertsHtml + `
    `; // Fixed missing backtick element.insertAdjacentHTML( - "afterBegin", + 'afterBegin', html ); } diff --git a/src/js/cart.js b/src/js/cart.js index 7921525f5..8c1865b07 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -11,9 +11,9 @@ function renderCartContents() { totalDiv.classList.toggle('hide', total === 0); document.querySelector('.product-list').innerHTML = htmlItems.join(''); - document.querySelectorAll('.remove-from-cart').forEach((item, e)=>{ + document.querySelectorAll('.remove-from-cart').forEach((item)=>{ item.addEventListener('click', (event)=>{ - console.log(event.target.dataset.id); + //console.log(event.target.dataset.id); removeFromCart(event.target.dataset.id); }); }) diff --git a/src/js/main.js b/src/js/main.js index cf00965cf..7a04c7e1d 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -3,7 +3,7 @@ import ProductData from './ProductData.mjs'; import ProductList from './ProductList.mjs'; import {showCountItemsInCart, loadHeaderFooter} from './utils.mjs'; -await loadHeaderFooter(); +loadHeaderFooter(); const alert = new Alert(); const dataSource = new ProductData('tents'); const element = document.querySelector('.product-list'); From 18db95c5ccbdc57216b2bbef47f7f5171378fcf3 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 14 Mar 2024 19:59:57 -0600 Subject: [PATCH 31/52] bug fixes --- src/index.html | 2 +- src/js/main.js | 2 +- src/js/utils.mjs | 12 +++++++----- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/index.html b/src/index.html index a5dce50f6..7c8da88d5 100644 --- a/src/index.html +++ b/src/index.html @@ -10,7 +10,7 @@
    diff --git a/src/js/main.js b/src/js/main.js index 7a04c7e1d..0aa138fd7 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -7,7 +7,7 @@ loadHeaderFooter(); const alert = new Alert(); const dataSource = new ProductData('tents'); const element = document.querySelector('.product-list'); -const productList = new ProductList('Tents', dataSource, element); +const productList = new ProductList('tents', dataSource, element); productList.init(); diff --git a/src/js/utils.mjs b/src/js/utils.mjs index 701961bb1..93460a2cb 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -45,11 +45,13 @@ export function renderWithTemplate(template, parentElement, data = null, callbac } export function showCountItemsInCart(){ - let cartCount = getLocalStorage('so-cart').length; - if(cartCount > 0){ - let html = cartCountTemplate(cartCount); - let element = document.querySelector('header .cart'); - element.insertAdjacentHTML('afterbegin', html); + let cart = getLocalStorage('so-cart'); + if(cart){ + if(cart.length > 0){ + let html = cartCountTemplate(cartCount); + let element = document.querySelector('header .cart'); + element.insertAdjacentHTML('afterbegin', html); + } } } export function updateCountItemsInCart(){ From 6aa3cd6a91819c02ffb09953f047d7c0a2ed2a01 Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 14 Mar 2024 20:09:36 -0600 Subject: [PATCH 32/52] bug fix --- src/js/utils.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/utils.mjs b/src/js/utils.mjs index 93460a2cb..b5d64df2a 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -48,7 +48,7 @@ export function showCountItemsInCart(){ let cart = getLocalStorage('so-cart'); if(cart){ if(cart.length > 0){ - let html = cartCountTemplate(cartCount); + let html = cartCountTemplate(cart.count); let element = document.querySelector('header .cart'); element.insertAdjacentHTML('afterbegin', html); } From 6c9f0a334d1376188125bf66fee582af9ce6217d Mon Sep 17 00:00:00 2001 From: kdhunt Date: Thu, 14 Mar 2024 20:22:08 -0600 Subject: [PATCH 33/52] bug fix --- src/cart/index.html | 1 - src/checkout/index.html | 1 - src/index.html | 2 +- src/js/cart.js | 4 ++-- src/js/product-listing.js | 4 ++-- src/js/product.js | 4 ++-- src/product-listing/index.html | 1 - src/product_pages/index.html | 1 - 8 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/cart/index.html b/src/cart/index.html index 316f0aa42..94bb063c7 100644 --- a/src/cart/index.html +++ b/src/cart/index.html @@ -5,7 +5,6 @@ Sleep Outside | Cart - diff --git a/src/checkout/index.html b/src/checkout/index.html index d4fbd5653..3a32c5649 100644 --- a/src/checkout/index.html +++ b/src/checkout/index.html @@ -5,7 +5,6 @@ Sleep Outside | Checkout -
    - - - - - - - - + + + + + + + +
    Payment - + - +
    diff --git a/src/js/CheckoutProcess.mjs b/src/js/CheckoutProcess.mjs index 3f1b387d6..43f154359 100644 --- a/src/js/CheckoutProcess.mjs +++ b/src/js/CheckoutProcess.mjs @@ -89,6 +89,11 @@ export default class CheckoutProcess { try { const res = await service.checkout(json); console.log(res); + + if(res.orderId) { + document.querySelector('.h2-thankyou').textContent = `Thank You!`; + document.querySelector('.form-checkout').innerHTML = `
    Your Order has successfully been placed. Order ID #${res.orderId}
    `; + } } catch (err) { console.log(err); } diff --git a/src/js/ExternalServices.mjs b/src/js/ExternalServices.mjs index ac6bb8f9b..619bcb9f0 100644 --- a/src/js/ExternalServices.mjs +++ b/src/js/ExternalServices.mjs @@ -1,4 +1,4 @@ -const baseURL = "http://server-nodejs.cit.byui.edu:3000/"; +const baseURL = import.meta.env.VITE_SERVER_URL; function convertToJson(res) { if (res.ok) { return res.json(); From 0bb05d7fd4a5b0ed1eaad30cf7286b309c58eb30 Mon Sep 17 00:00:00 2001 From: billybarnie Date: Thu, 21 Mar 2024 20:03:43 -0500 Subject: [PATCH 45/52] form issues --- src/css/style.css | 11 +++++++++++ src/js/CheckoutProcess.mjs | 10 ++++++++-- src/js/ExternalServices.mjs | 4 ++-- src/js/checkout.js | 18 +++++++++++++++++- src/js/utils.mjs | 22 ++++++++++++++++++++++ 5 files changed, 60 insertions(+), 5 deletions(-) diff --git a/src/css/style.css b/src/css/style.css index 9b0d4a9d9..39c038b23 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -215,6 +215,17 @@ button { margin-bottom: 10px; } +.alert { + display: flex; + align-items: center; + justify-content: space-between; + padding: 0.5em; + background-color: var(--primary-color); + border: 1px solid darkorange; +} +.alert > p { + margin: 0; +} @media screen and (min-width: 500px) { body { max-width: 1080px; diff --git a/src/js/CheckoutProcess.mjs b/src/js/CheckoutProcess.mjs index 43f154359..20a1e0f14 100644 --- a/src/js/CheckoutProcess.mjs +++ b/src/js/CheckoutProcess.mjs @@ -1,4 +1,4 @@ -import { getLocalStorage } from "./utils.mjs"; +import { alertMessage, getLocalStorage, removeAllAlerts } from "./utils.mjs"; import ExternalServices from "./ExternalServices.mjs"; const service = new ExternalServices(); @@ -76,6 +76,7 @@ export default class CheckoutProcess { async checkout() { const formElement = document.forms["checkout"]; + formElement.checkValidity(); const json = formDataToJSON(formElement); json.orderDate = new Date(); @@ -95,7 +96,12 @@ export default class CheckoutProcess { document.querySelector('.form-checkout').innerHTML = `
    Your Order has successfully been placed. Order ID #${res.orderId}
    `; } } catch (err) { + + removeAllAlerts(); + alertMessage(err.message); + console.log(err); - } + } } + } \ No newline at end of file diff --git a/src/js/ExternalServices.mjs b/src/js/ExternalServices.mjs index 619bcb9f0..89fcbcde2 100644 --- a/src/js/ExternalServices.mjs +++ b/src/js/ExternalServices.mjs @@ -1,9 +1,9 @@ const baseURL = import.meta.env.VITE_SERVER_URL; -function convertToJson(res) { +async function convertToJson(res) { if (res.ok) { return res.json(); } else { - throw new Error("Bad Response"); + throw new Error("A field has not been filled or there was an Invalid Response"); } } diff --git a/src/js/checkout.js b/src/js/checkout.js index e210cad22..ed4053114 100644 --- a/src/js/checkout.js +++ b/src/js/checkout.js @@ -16,8 +16,24 @@ document.querySelector("#checkSubmit").addEventListener("click", (e) => { myCheckout.checkout(); }); +function checkoutFormValidate() { + const formElement = document.querySelectorAll('.checkout input'); + let error = []; + + formElement.forEach((element) => { + if(element.value == null) { + error.push(element.name); + } + }) + return error; +} + document.forms['checkout'] .addEventListener('submit', (e) => { e.preventDefault(); - myCheckout.checkout(); + let errors = checkoutFormValidate(); + if(errors.length > 0) { + throw new Error('${errors[0]} Needs a value'); + } + myCheckout.checkout(); }); \ No newline at end of file diff --git a/src/js/utils.mjs b/src/js/utils.mjs index db136347e..9b6135520 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -96,4 +96,26 @@ async function loadTemplate(path) { const result = await fetch(path); const template = await result.text(); return template; +} + +export function alertMessage(message, scroll = true, duration = 3000) { + const alert = document.createElement("div"); + alert.classList.add("alert"); + alert.innerHTML = `

    ${message}

    X`; + + alert.addEventListener("click", function (e) { + if (e.target.tagName == "SPAN") { + main.removeChild(this); + } + }); + const main = document.querySelector("main"); + main.prepend(alert); + + if (scroll) window.scrollTo(0, 0); + +} + +export function removeAllAlerts() { + const alerts = document.querySelectorAll(".alert"); + alerts.forEach((alert) => document.querySelector("main").removeChild(alert)); } \ No newline at end of file From 6656c3338246ce4c2f659d3b416774d504e30793 Mon Sep 17 00:00:00 2001 From: billybarnie Date: Fri, 22 Mar 2024 20:03:10 -0500 Subject: [PATCH 46/52] this was frustrating --- src/js/CheckoutProcess.mjs | 7 ++++--- src/js/ExternalServices.mjs | 17 ++++++++--------- src/js/checkout.js | 21 ++------------------- src/js/utils.mjs | 2 +- 4 files changed, 15 insertions(+), 32 deletions(-) diff --git a/src/js/CheckoutProcess.mjs b/src/js/CheckoutProcess.mjs index 20a1e0f14..26ca0013c 100644 --- a/src/js/CheckoutProcess.mjs +++ b/src/js/CheckoutProcess.mjs @@ -1,4 +1,4 @@ -import { alertMessage, getLocalStorage, removeAllAlerts } from "./utils.mjs"; +import { getLocalStorage, alertMessage, removeAllAlerts } from "./utils.mjs"; import ExternalServices from "./ExternalServices.mjs"; const service = new ExternalServices(); @@ -98,8 +98,9 @@ export default class CheckoutProcess { } catch (err) { removeAllAlerts(); - alertMessage(err.message); - + for (let message in err.message) { + alertMessage(err.message[message]); + } console.log(err); } } diff --git a/src/js/ExternalServices.mjs b/src/js/ExternalServices.mjs index 89fcbcde2..ebd49faaa 100644 --- a/src/js/ExternalServices.mjs +++ b/src/js/ExternalServices.mjs @@ -1,17 +1,16 @@ const baseURL = import.meta.env.VITE_SERVER_URL; async function convertToJson(res) { - if (res.ok) { - return res.json(); - } else { - throw new Error("A field has not been filled or there was an Invalid Response"); - } + const data = await res.json(); + if (res.ok) { + return data; + } else { + throw { name: "servicesError", message: data }; + } } export default class ExternalServices { - constructor(category) { - //this.category = category; - //this.path = `../json/${this.category}.json`; - } + constructor() {} + async getDa(category) { const response = await fetch(baseURL + `products/search/${category}`); const data = await convertToJson(response); diff --git a/src/js/checkout.js b/src/js/checkout.js index ed4053114..7d6f9f485 100644 --- a/src/js/checkout.js +++ b/src/js/checkout.js @@ -1,4 +1,4 @@ -import { loadHeaderFooter } from "./utils.mjs"; +import { loadHeaderFooter, alertMessage } from "./utils.mjs"; import CheckoutProcess from "./CheckoutProcess.mjs"; loadHeaderFooter(); @@ -10,30 +10,13 @@ document .querySelector("#zipn") .addEventListener("blur", myCheckout.calculateOrderTotal.bind(myCheckout)); -document.querySelector("#checkSubmit").addEventListener("click", (e) => { +document.querySelector("#checkSubmit").addEventListener("click", async (e) => { e.preventDefault(); - myCheckout.checkout(); }); -function checkoutFormValidate() { - const formElement = document.querySelectorAll('.checkout input'); - let error = []; - - formElement.forEach((element) => { - if(element.value == null) { - error.push(element.name); - } - }) - return error; -} - document.forms['checkout'] .addEventListener('submit', (e) => { e.preventDefault(); - let errors = checkoutFormValidate(); - if(errors.length > 0) { - throw new Error('${errors[0]} Needs a value'); - } myCheckout.checkout(); }); \ No newline at end of file diff --git a/src/js/utils.mjs b/src/js/utils.mjs index 9b6135520..cb3ce6d53 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -117,5 +117,5 @@ export function alertMessage(message, scroll = true, duration = 3000) { export function removeAllAlerts() { const alerts = document.querySelectorAll(".alert"); - alerts.forEach((alert) => document.querySelector("main").removeChild(alert)); + alerts.forEach((alert) => alert.parentNode.removeChild(alert)); } \ No newline at end of file From d74d5fba568380120fd46087bb21f7edff7ca25c Mon Sep 17 00:00:00 2001 From: billybarnie Date: Sat, 23 Mar 2024 14:27:33 -0500 Subject: [PATCH 47/52] Trello card 4 task complete --- src/css/style.css | 17 +++++++++++++++++ src/js/CheckoutProcess.mjs | 2 +- src/js/cart.js | 29 +++++++++++++++++++++++++++-- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/src/css/style.css b/src/css/style.css index 39c038b23..a22f25c63 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -110,6 +110,23 @@ button { fill: gray; } +.cart svg.pop { + animation: popAnimation 0.3s ease-in-out forwards; +} + +@keyframes popAnimation { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.5); + } + 100% { + transform: scale(1); + } +} + + /* End cart icon styles */ .mission { diff --git a/src/js/CheckoutProcess.mjs b/src/js/CheckoutProcess.mjs index 26ca0013c..8dab4d5e4 100644 --- a/src/js/CheckoutProcess.mjs +++ b/src/js/CheckoutProcess.mjs @@ -50,7 +50,7 @@ export default class CheckoutProcess { const amounts = this.list.map((item) => item.FinalPrice); this.itemTotal = amounts.reduce((sum, item) => sum + item); - summary.innerText = "$" + this.itemTotal; + summary.innerText = "$" + this.itemTotal.toFixed(2); } calculateOrderTotal() { diff --git a/src/js/cart.js b/src/js/cart.js index 320e001e0..b5c8619ea 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -40,6 +40,30 @@ function renderCartContents() { window.location.href = '/checkout/index.html'; }); } + + setupAddToCartAnimation(); +} + +function setupAddToCartAnimation() { + + const addQuantityButtons = document.querySelectorAll('.addQuantity'); + + addQuantityButtons.forEach(button => { + button.addEventListener('click', () => { + + animateAddToCart(); + }); + }); +} + +function animateAddToCart() { + + const svgElement = document.querySelector('.cart svg'); + svgElement.classList.add('pop'); + + setTimeout(() => { + svgElement.classList.remove('pop'); + }, 1000); } function aggregateCartItemsWithQuantity(cartItems) { @@ -97,7 +121,7 @@ function removeFromCart(id){ for (let i = cartItems.length - 1; i >= 0; i--) { if (cartItems[i].Id === id) { cartItems.splice(i, 1); - + animateAddToCart(); } } @@ -110,7 +134,8 @@ function removeQuantityFromCart(id){ const cartItems = getLocalStorage('so-cart'); for (let i = cartItems.length - 1; i >= 0; i--) { if (cartItems[i].Id === id) { - cartItems.splice(i, 1); + cartItems.splice(i, 1); + animateAddToCart(); break; } } From 4e112cb77b635e368763ec3bf4362dc16e7de02e Mon Sep 17 00:00:00 2001 From: billybarnie Date: Sat, 23 Mar 2024 14:38:24 -0500 Subject: [PATCH 48/52] adding to the IB trello 4 task --- src/css/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/css/style.css b/src/css/style.css index a22f25c63..176bfbf41 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -119,7 +119,7 @@ button { transform: scale(1); } 50% { - transform: scale(1.5); + transform: scale(1.2); } 100% { transform: scale(1); From 22fb11713df70a3593801e6c9931206a031af064 Mon Sep 17 00:00:00 2001 From: billybarnie Date: Sat, 23 Mar 2024 21:58:24 -0500 Subject: [PATCH 49/52] not sure why this is happening --- src/js/ProductDetails.mjs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs index 1c659ffa0..a09e849bd 100644 --- a/src/js/ProductDetails.mjs +++ b/src/js/ProductDetails.mjs @@ -1,4 +1,4 @@ -import { setLocalStorage, getLocalStorage, updateCountItemsInCart } from "./utils.mjs"; +import { setLocalStorage, getLocalStorage } from "./utils.mjs"; function productDetailsTemplate(product){ return `
    @@ -8,10 +8,10 @@ function productDetailsTemplate(product){ ${product.NameWithoutBrand} -

    MSRP: $${product.SuggestedRetailPrice}

    +

    $${product.FinalPrice}

    ${product.Colors[0].ColorName}

    @@ -44,7 +44,6 @@ export default class ProductDetails { let cart = getLocalStorage('so-cart') || []; cart.push(this.product); setLocalStorage('so-cart', cart); - updateCountItemsInCart() } renderProductDetails(selector) { From 24f7093121b486532ef28de5836422cd90bddc82 Mon Sep 17 00:00:00 2001 From: billybarnie Date: Sat, 23 Mar 2024 22:01:58 -0500 Subject: [PATCH 50/52] reverting mismatched changes --- src/js/ProductDetails.mjs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs index a09e849bd..261b0d63f 100644 --- a/src/js/ProductDetails.mjs +++ b/src/js/ProductDetails.mjs @@ -1,4 +1,4 @@ -import { setLocalStorage, getLocalStorage } from "./utils.mjs"; +import { setLocalStorage, getLocalStorage, updateCountItemsInCart } from "./utils.mjs"; function productDetailsTemplate(product){ return `
    @@ -8,10 +8,10 @@ function productDetailsTemplate(product){ ${product.NameWithoutBrand} - +

    MSRP: $${product.SuggestedRetailPrice}

    $${product.FinalPrice}

    ${product.Colors[0].ColorName}

    @@ -44,6 +44,7 @@ export default class ProductDetails { let cart = getLocalStorage('so-cart') || []; cart.push(this.product); setLocalStorage('so-cart', cart); + updateCountItemsInCart() } renderProductDetails(selector) { From d67d66b19de0bb8812cde47e538e62db302689ef Mon Sep 17 00:00:00 2001 From: billybarnie Date: Sat, 23 Mar 2024 22:02:38 -0500 Subject: [PATCH 51/52] more mismatch reversions --- src/js/ProductDetails.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs index 261b0d63f..1c659ffa0 100644 --- a/src/js/ProductDetails.mjs +++ b/src/js/ProductDetails.mjs @@ -8,7 +8,7 @@ function productDetailsTemplate(product){ ${product.NameWithoutBrand}

    MSRP: $${product.SuggestedRetailPrice}

    From 1ae06e21f827ea00437ce32e7f031f826ab0f9ec Mon Sep 17 00:00:00 2001 From: drspahr Date: Sat, 23 Mar 2024 23:05:18 -0500 Subject: [PATCH 52/52] Add image carousel to images displayed on product pages that had extra images. --- src/css/style.css | 39 ++++++++++++++++++++++++++++++ src/js/ProductDetails.mjs | 51 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 86 insertions(+), 4 deletions(-) diff --git a/src/css/style.css b/src/css/style.css index 9b0d4a9d9..4899a1cce 100644 --- a/src/css/style.css +++ b/src/css/style.css @@ -315,4 +315,43 @@ header .cart{ } .headMenu .search input{ margin-top: 20px; +} +/* Carousel */ +.myImage { + display: none; +} +/* Next and Previous buttons */ +.previous, .next { + cursor: pointer; + position: absolute; + top: 50%; + width: auto; + margin-top: -10px; + padding: 16px; + color: black; + font-weight: bold; + font-size: 18px; + transition: 0.6s ease; + border-radius: 0 3px 3px 0; + user-select: none; +} + +.next { + right: 25%; + border-radius: 3px 0 0 3px; +} + +.previous { + left: 25%; +} + +.numTest { + font-size: 14px; + padding: 8px 12px; + text-align: center; +} + +.previous:hover, .next:hover { + background-color: rgba(0,0,0,0.8); + color: white; } \ No newline at end of file diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs index 1c659ffa0..2eed3c8ad 100644 --- a/src/js/ProductDetails.mjs +++ b/src/js/ProductDetails.mjs @@ -1,16 +1,20 @@ import { setLocalStorage, getLocalStorage, updateCountItemsInCart } from "./utils.mjs"; - +window.plusSlides = function(n) { + showSlides(slideIndex += n); +} function productDetailsTemplate(product){ return `

    ${product.Brand.Name}

    ${product.NameWithoutBrand}

    - - + ${renderImages(product)} + +

    MSRP: $${product.SuggestedRetailPrice}

    $${product.FinalPrice}

    @@ -26,6 +30,44 @@ function productDetailsTemplate(product){
    ` } + function renderImages (product) { + const numImages = product.Images.ExtraImages; + let div = ''; + if (numImages != null) { + for (let i = 0; i < numImages.length; i++) { + const imageSelect = ` +
    +
    ${i + 1}/${numImages.length}
    + ${numImages[i].Title} +
    ` + console.log(numImages); + div += imageSelect; + } + const arrowButtons = ` + + `; + div += arrowButtons; + } else { + return `