diff --git a/package-lock.json b/package-lock.json index bb9385f0b..0cb67f9d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "eslint-plugin-import": "^2.29.1", "jest": "^29.7.0", "prettier": "^3.2.5", - "vite": "^5.0.12" + "vite": "^5.4.7" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -671,13 +671,14 @@ "dev": true }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -687,13 +688,14 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -703,13 +705,14 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -719,13 +722,14 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -735,13 +739,14 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -751,13 +756,14 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -767,13 +773,14 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -783,13 +790,14 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -799,13 +807,14 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -815,13 +824,14 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -831,13 +841,14 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -847,13 +858,14 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "cpu": [ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -863,13 +875,14 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "cpu": [ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -879,13 +892,14 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -895,13 +909,14 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -911,13 +926,14 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -927,13 +943,14 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -943,13 +960,14 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -959,13 +977,14 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -975,13 +994,14 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -991,13 +1011,14 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1007,13 +1028,14 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1023,13 +1045,14 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1597,169 +1620,224 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -1831,10 +1909,11 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/graceful-fs": { "version": "4.1.9", @@ -2787,11 +2866,12 @@ } }, "node_modules/esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -2799,29 +2879,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "node_modules/escalade": { @@ -4876,6 +4956,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -5149,10 +5230,11 @@ "dev": true }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -5240,9 +5322,9 @@ } }, "node_modules/postcss": { - "version": "8.4.34", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz", - "integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "funding": [ { @@ -5258,10 +5340,11 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12 || >=14" @@ -5489,12 +5572,13 @@ } }, "node_modules/rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -5504,19 +5588,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", "fsevents": "~2.3.2" } }, @@ -5683,10 +5770,11 @@ } }, "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -6113,14 +6201,15 @@ } }, "node_modules/vite": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", - "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", "dev": true, + "license": "MIT", "dependencies": { - "esbuild": "^0.19.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" }, "bin": { "vite": "bin/vite.js" @@ -6139,6 +6228,7 @@ "less": "*", "lightningcss": "^1.21.0", "sass": "*", + "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.4.0" @@ -6156,6 +6246,9 @@ "sass": { "optional": true }, + "sass-embedded": { + "optional": true + }, "stylus": { "optional": true }, @@ -6812,163 +6905,163 @@ "dev": true }, "@esbuild/aix-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", - "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", "dev": true, "optional": true }, "@esbuild/android-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", - "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", "dev": true, "optional": true }, "@esbuild/android-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", - "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", "dev": true, "optional": true }, "@esbuild/android-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", - "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", "dev": true, "optional": true }, "@esbuild/darwin-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", - "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", "dev": true, "optional": true }, "@esbuild/darwin-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", - "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", - "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", "dev": true, "optional": true }, "@esbuild/freebsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", - "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", "dev": true, "optional": true }, "@esbuild/linux-arm": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", - "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", "dev": true, "optional": true }, "@esbuild/linux-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", - "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", "dev": true, "optional": true }, "@esbuild/linux-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", - "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", "dev": true, "optional": true }, "@esbuild/linux-loong64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", - "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", "dev": true, "optional": true }, "@esbuild/linux-mips64el": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", - "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", "dev": true, "optional": true }, "@esbuild/linux-ppc64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", - "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", "dev": true, "optional": true }, "@esbuild/linux-riscv64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", - "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", "dev": true, "optional": true }, "@esbuild/linux-s390x": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", - "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", "dev": true, "optional": true }, "@esbuild/linux-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", - "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", "dev": true, "optional": true }, "@esbuild/netbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", - "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", "dev": true, "optional": true }, "@esbuild/openbsd-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", - "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", "dev": true, "optional": true }, "@esbuild/sunos-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", - "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", "dev": true, "optional": true }, "@esbuild/win32-arm64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", - "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", "dev": true, "optional": true }, "@esbuild/win32-ia32": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", - "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", "dev": true, "optional": true }, "@esbuild/win32-x64": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", - "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", "dev": true, "optional": true }, @@ -7402,93 +7495,114 @@ } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.6.tgz", - "integrity": "sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.6.tgz", - "integrity": "sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.6.tgz", - "integrity": "sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.6.tgz", - "integrity": "sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.6.tgz", - "integrity": "sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.6.tgz", - "integrity": "sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.6.tgz", - "integrity": "sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.6.tgz", - "integrity": "sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.6.tgz", - "integrity": "sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.6.tgz", - "integrity": "sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.6.tgz", - "integrity": "sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.6.tgz", - "integrity": "sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz", - "integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", "dev": true, "optional": true }, @@ -7558,9 +7672,9 @@ } }, "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "@types/graceful-fs": { @@ -8264,34 +8378,34 @@ } }, "esbuild": { - "version": "0.19.12", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", - "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", - "dev": true, - "requires": { - "@esbuild/aix-ppc64": "0.19.12", - "@esbuild/android-arm": "0.19.12", - "@esbuild/android-arm64": "0.19.12", - "@esbuild/android-x64": "0.19.12", - "@esbuild/darwin-arm64": "0.19.12", - "@esbuild/darwin-x64": "0.19.12", - "@esbuild/freebsd-arm64": "0.19.12", - "@esbuild/freebsd-x64": "0.19.12", - "@esbuild/linux-arm": "0.19.12", - "@esbuild/linux-arm64": "0.19.12", - "@esbuild/linux-ia32": "0.19.12", - "@esbuild/linux-loong64": "0.19.12", - "@esbuild/linux-mips64el": "0.19.12", - "@esbuild/linux-ppc64": "0.19.12", - "@esbuild/linux-riscv64": "0.19.12", - "@esbuild/linux-s390x": "0.19.12", - "@esbuild/linux-x64": "0.19.12", - "@esbuild/netbsd-x64": "0.19.12", - "@esbuild/openbsd-x64": "0.19.12", - "@esbuild/sunos-x64": "0.19.12", - "@esbuild/win32-arm64": "0.19.12", - "@esbuild/win32-ia32": "0.19.12", - "@esbuild/win32-x64": "0.19.12" + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "requires": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" } }, "escalade": { @@ -10001,9 +10115,9 @@ "dev": true }, "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", "dev": true }, "picomatch": { @@ -10067,14 +10181,14 @@ } }, "postcss": { - "version": "8.4.34", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz", - "integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==", + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, "requires": { "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" } }, "prelude-ls": { @@ -10215,25 +10329,28 @@ } }, "rollup": { - "version": "4.9.6", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz", - "integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.9.6", - "@rollup/rollup-android-arm64": "4.9.6", - "@rollup/rollup-darwin-arm64": "4.9.6", - "@rollup/rollup-darwin-x64": "4.9.6", - "@rollup/rollup-linux-arm-gnueabihf": "4.9.6", - "@rollup/rollup-linux-arm64-gnu": "4.9.6", - "@rollup/rollup-linux-arm64-musl": "4.9.6", - "@rollup/rollup-linux-riscv64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-gnu": "4.9.6", - "@rollup/rollup-linux-x64-musl": "4.9.6", - "@rollup/rollup-win32-arm64-msvc": "4.9.6", - "@rollup/rollup-win32-ia32-msvc": "4.9.6", - "@rollup/rollup-win32-x64-msvc": "4.9.6", - "@types/estree": "1.0.5", + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } }, @@ -10350,9 +10467,9 @@ "dev": true }, "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, "source-map-support": { @@ -10662,15 +10779,15 @@ } }, "vite": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz", - "integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==", + "version": "5.4.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", + "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", "dev": true, "requires": { - "esbuild": "^0.19.3", + "esbuild": "^0.21.3", "fsevents": "~2.3.3", - "postcss": "^8.4.32", - "rollup": "^4.2.0" + "postcss": "^8.4.43", + "rollup": "^4.20.0" } }, "walker": { diff --git a/src/index.html b/src/index.html index 35ac63ce6..0a366a2ff 100644 --- a/src/index.html +++ b/src/index.html @@ -1,33 +1,14 @@ - + - Sleep Outside | Home + Sleep Outside | Home mx + -
- -
- - - - - - - - - - - - - -
+
@@ -37,7 +18,7 @@ alt="image of a high mountain lake" />
@@ -53,54 +34,9 @@

Top Products

- + diff --git a/src/js/Alert.js b/src/js/Alert.js new file mode 100644 index 000000000..a9316df05 --- /dev/null +++ b/src/js/Alert.js @@ -0,0 +1,62 @@ +export default class Alert { + constructor(jsonPath) { + this.path = jsonPath; + } + + async getData() { + try { + const response = await fetch(this.path); + if (!response.ok) throw new Error("Bad Response"); + + const result = await response.json(); + return result; + } catch (error) { + console.error("Alert request error: ", error); + return false; + } + } + + async show(elementOrSelector) { + const alerts = await this.getData(); + if (!alerts || alerts.length === 0) return; + + const section = document.createElement("section"); + section.classList.add("alert-list"); + section.innerHTML = alerts + .map( + (alert) => ` +

${alert.message}

+ `, + ) + .join(""); + + let alertParent; + if (typeof elementOrSelector === "string") { + alertParent = document.querySelector(elementOrSelector); + } else if (elementOrSelector instanceof Element) { + alertParent = elementOrSelector; + } + + const htmlEl = document.querySelector("html"); + const modalActiveClass = "modal-active"; + htmlEl.classList.add(modalActiveClass); + alertParent.appendChild(section); + + const top = ( + window.innerHeight / 2 - + section.offsetHeight / 2 + + window.scrollY + ).toFixed(); + const left = (window.innerWidth / 2 - section.offsetWidth / 2).toFixed(); + section.style = `left: ${left}px; top: ${top}px; opacity: 1;`; + + htmlEl.addEventListener("click", function listenerFunc(e) { + if (e.target === alertParent || alertParent.contains(e.target)) { + return; + } + + htmlEl.classList.remove(modalActiveClass); + htmlEl.removeEventListener("click", listenerFunc); + }); + } +} diff --git a/src/js/ProductData.mjs b/src/js/ProductData.mjs index 2361ff218..41afbdf9a 100644 --- a/src/js/ProductData.mjs +++ b/src/js/ProductData.mjs @@ -6,18 +6,31 @@ function convertToJson(res) { } } -export default class ProductData { +export async function findProductById(id) { + const products = await getData(); + return products.find((item) => item.Id === id); +} + +export function getData(category = "tents") { + return fetch(`../json/${category}.json`) + .then(convertToJson) + .then((data) => data); +} + + +export default class ProductData { constructor(category) { this.category = category; this.path = `../json/${this.category}.json`; } - getData() { + getData() { return fetch(this.path) + //.then(convertToJson).then((data) => data); .then(convertToJson) - .then((data) => data); + .then((data) => data.filter((item) => item.Id != '989CG' && item.Id != '880RT')); } async findProductById(id) { - const products = await this.getData(); + const products = await this.getData() return products.find((item) => item.Id === id); } -} +} \ No newline at end of file diff --git a/src/js/ProductDetails.mjs b/src/js/ProductDetails.mjs new file mode 100644 index 000000000..af0687041 --- /dev/null +++ b/src/js/ProductDetails.mjs @@ -0,0 +1,51 @@ +import { setLocalStorage, getLocalStorage } from "./utils.mjs"; +import { findProductById } from "./ProductData.mjs"; +import { qs, setContent } from "./utils.mjs"; + +function productDetailsTemplate(product) { + return `

${product.Brand.Name}

+

${product.NameWithoutBrand}

+ ${product.NameWithoutBrand} +

$${product.FinalPrice}

+

${product.Colors[0].ColorName}

+

+ ${product.DescriptionHtmlSimple} +

+
+ +
`; +} + +export default class ProductDetails { + constructor(productId, dataSource) { + this.productId = productId; + this.product = {}; + this.dataSource = dataSource; + } + async init() { + // use our datasource to get the details for the current product. findProductById will return a promise! use await or .then() to process it + this.product = await this.dataSource.findProductById(this.productId); + // once we have the product details we can render out the HTML + this.renderProductDetails("main"); + // once the HTML is rendered we can add a listener to Add to Cart button + // Notice the .bind(this). Our callback will not work if we don't include that line. Review the readings from this week on 'this' to understand why. + document + .getElementById("addToCart") + .addEventListener("click", this.addToCart.bind(this)); + } + addToCart() { + setLocalStorage("so-cart", this.product); + } + renderProductDetails(selector) { + const element = document.querySelector(selector); + element.insertAdjacentHTML( + "afterBegin", + productDetailsTemplate(this.product) + ); + } +} + diff --git a/src/js/ProductList.mjs b/src/js/ProductList.mjs new file mode 100644 index 000000000..32533d2a4 --- /dev/null +++ b/src/js/ProductList.mjs @@ -0,0 +1,102 @@ +// ProductList.mjs + +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) { + // We passed in this information to make our class as reusable as possible. + // Being able to define these things when we use the class will make it very flexible + this.category = category; + this.dataSource = dataSource; + this.listElement = listElement; + } + + + async init() { + // our dataSource will return a Promise...so we can use await to resolve it. + const list = await this.dataSource.getData(); + + // render the list + this.renderList(list); + } + // render after doing the first stretch + renderList(list) { + renderListWithTemplate(productCardTemplate, this.listElement, list); + } +} + + /* + async init() { + try { + this.products = await this.getData(); + this.render(); + } catch (error) { + console.error('Error fetching product data:', error); + } + } + */ + + /* + + async getData() { + const response = await fetch(this.dataSource); + if (!response.ok) { + throw new Error("Network response was not ok"); + } + const data = await response.json(); + return data.filter(product => product.category === this.category); + } + + render() { + this.listElement.innerHTML = ""; // Clear previous content + this.products.forEach(product => { + const card = this.createProductCard(product); + this.listElement.appendChild(card); + }); + } + + createProductCard(product) { + const card = document.createElement("div"); + card.className = "product-card"; + card.innerHTML = ` +

    ${product.name}

    +

    ${product.description}

    + $${product.price} + `; + return card; + } +} +*/ + + + +/* +export default class ProductListing { + constructor(category, dataSource, listElement) { + // We passed in this information to make our class as reusable as possible. + // Being able to define these things when we use the class will make it very flexible + this.category = category; + this.dataSource = dataSource; + this.listElement = listElement; + } + + async init() { + // our dataSource will return a Promise...so we can use await to resolve it. + const list = await this.dataSource.getData(); + // render the list - to be completed + } + } +*/ \ No newline at end of file diff --git a/src/js/cart.js b/src/js/cart.js index a2fb3d8ef..93b40c593 100644 --- a/src/js/cart.js +++ b/src/js/cart.js @@ -1,7 +1,7 @@ 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(""); } diff --git a/src/js/main.js b/src/js/main.js index e69de29bb..6b665bb8e 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -0,0 +1,37 @@ +import { loadHeaderFooter } from "./utils.mjs"; + +import ProductData from "./ProductData.mjs"; +import ProductList from "./ProductList.mjs"; + +loadHeaderFooter(); + +const dataSource = new ProductData("tents"); +const element = document.querySelector(".product-list"); +const listing = new ProductList("Tents", dataSource, element); + +listing.init(); + + +/* +import ProductData from "./ProductDetails.mjs"; +import ProductListing from "./ProductList.mjs"; + +// Create an instance of ProductData +const productDataInstance = new ProductData(); + + + +// estruturando ProductListing + +// Select the HTML element where the product list will be rendered +const listElement = document.getElementById("product-list"); + +// Specify the URL for your product data (JSON format) +const productDataUrl = "path/to/your/product-data.json"; // Adjust as necessary + +// Create an instance of ProductListing for a specific category (e.g., 'electronics') +const productListing = new ProductListing("your-categor", productDataUrl, listElement); + +// Initialize the product listing to fetch and display products +productListing.init(); +*/ \ No newline at end of file diff --git a/src/js/product.js b/src/js/product.js index 0b8d0aa67..8df4bea14 100644 --- a/src/js/product.js +++ b/src/js/product.js @@ -1,18 +1,22 @@ -import { setLocalStorage } from "./utils.mjs"; -import ProductData from "./ProductData.mjs"; +import { setLocalStorage, getLocalStorage } from "./utils.mjs"; +import { findProductById } from "./ProductData.mjs"; -const dataSource = new ProductData("tents"); - -function addProductToCart(product) { - setLocalStorage("so-cart", product); -} -// add to cart button event handler -async function addToCartHandler(e) { - const product = await dataSource.findProductById(e.target.dataset.id); - addProductToCart(product); -} - -// add listener to Add to Cart button -document - .getElementById("addToCart") - .addEventListener("click", addToCartHandler); + //const dataSource = new ProductData("tents"); + + function addProductToCart(product) { + // TODO product should be an array + const currentCart = getLocalStorage("so-cart") || []; + currentCart.push(product); + setLocalStorage("so-cart", currentCart); + } + + // add to cart button event handler + async function addToCartHandler(e) { + const product = await findProductById(e.target.dataset.id); + addProductToCart(product); + } + + // add listener to Add to Cart button + document + .getElementById("addToCart") + .addEventListener("click", addToCartHandler); diff --git a/src/js/utils.mjs b/src/js/utils.mjs index 1a04d87ff..c16ebbd64 100644 --- a/src/js/utils.mjs +++ b/src/js/utils.mjs @@ -9,10 +9,41 @@ export function qs(selector, parent = document) { export function getLocalStorage(key) { return JSON.parse(localStorage.getItem(key)); } + // save data to local storage export function setLocalStorage(key, data) { localStorage.setItem(key, JSON.stringify(data)); } + + +export function setContent(selector, content) { + qs(selector).innerHTML = content; +} + +// helper to get parameter strings +export function getParam(param) { + const queryString = window.location.search; + const urlParams = new URLSearchParams(queryString); + const product = urlParams.get(param); + return product; +} + +// function to take a list of objects and a template and insert the objects as HTML into the DOM +export function renderListWithTemplate( + templateFn, + parentElement, + list, + position = "afterbegin", + clear = false +) { + const htmlStrings = list.map(templateFn); + // if clear is true we need to clear out the contents of the parent. + if (clear) { + parentElement.innerHTML = ""; + } + parentElement.insertAdjacentHTML(position, htmlStrings.join("")); +} + // set a listener for both touchend and click export function setClick(selector, callback) { qs(selector).addEventListener("touchend", (event) => { @@ -21,3 +52,28 @@ export function setClick(selector, callback) { }); qs(selector).addEventListener("click", callback); } + +async function loadTemplate(path) { + const res = await fetch(path); + const template = await res.text(); + return template; +} + +// dynamically load header and footer into page +export async function loadHeaderFooter() { + const headerTemplate = await loadTemplate("../public/partials/header.html"); + const headerElement = document.querySelector("#main-header"); + const footerTemplate = await loadTemplate("../public/partials/footer.html"); + const footerElement = document.querySelector("#main-footer"); + + renderWithTemplate(headerTemplate, headerElement); + renderWithTemplate(footerTemplate, footerElement); +} + +export function renderWithTemplate(template, parentElement, data, callback) { + parentElement.insertAdjacentHTML("afterbegin", template); + //if callback... call it and pass data + if (callback) { + callback(data); + } +} \ No newline at end of file diff --git a/src/product_pages/index.html b/src/product_pages/index.html new file mode 100644 index 000000000..7cddb54cf --- /dev/null +++ b/src/product_pages/index.html @@ -0,0 +1,19 @@ + + + + + + Sleep Outside | Home + + + + +
    +
    +
    +
    +
    +
    + + + diff --git a/src/public/images/banner-sm.jpg b/src/public/images/banner-sm.jpg new file mode 100644 index 000000000..c65f8fa25 Binary files /dev/null and b/src/public/images/banner-sm.jpg differ diff --git a/src/public/images/banner.jpg b/src/public/images/banner.jpg new file mode 100644 index 000000000..074730fd6 Binary files /dev/null and b/src/public/images/banner.jpg differ diff --git a/src/public/images/logos/marmot-160x100.jpg b/src/public/images/logos/marmot-160x100.jpg new file mode 100644 index 000000000..82fce4153 Binary files /dev/null and b/src/public/images/logos/marmot-160x100.jpg differ diff --git a/src/public/images/noun_Backpack_2389275.svg b/src/public/images/noun_Backpack_2389275.svg new file mode 100644 index 000000000..130441586 --- /dev/null +++ b/src/public/images/noun_Backpack_2389275.svg @@ -0,0 +1 @@ +backpack \ 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 000000000..ad93493ce Binary files /dev/null and b/src/public/images/tents/cedar-ridge-rimrock-tent-2-person-3-season-in-rust-clay~p~344yj_01~320.jpg differ 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 000000000..4bf019c8b Binary files /dev/null and b/src/public/images/tents/marmot-ajax-tent-3-person-3-season-in-pale-pumpkin-terracotta~p~880rr_01~320.jpg differ 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 000000000..894c6057b Binary files /dev/null and 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 differ 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 000000000..10a3a845a Binary files /dev/null and b/src/public/images/tents/the-north-face-talus-tent-4-person-3-season-in-golden-oak-saffron-yellow~p~985rf_01~320.jpg differ diff --git a/src/public/json/alerts.json b/src/public/json/alerts.json new file mode 100644 index 000000000..0ec190c6d --- /dev/null +++ b/src/public/json/alerts.json @@ -0,0 +1,17 @@ +[ + { + "message": "This is only a test", + "background": "darkblue", + "color": "white" + }, + { + "message": "This is another test", + "background": "skyblue", + "color": "black" + }, + { + "message": "This is a third test", + "background": "gray", + "color": "black" + } +] 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/src/public/partials/footer.html b/src/public/partials/footer.html new file mode 100644 index 000000000..dbd307f5f --- /dev/null +++ b/src/public/partials/footer.html @@ -0,0 +1 @@ +©NOT a real business WDD project. \ 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..7343b8edb --- /dev/null +++ b/src/public/partials/header.html @@ -0,0 +1,31 @@ + +
    + + + + + + + + + + + + +
    \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index 4a5eef384..9e045ab9f 100644 --- a/vite.config.js +++ b/vite.config.js @@ -10,21 +10,10 @@ export default defineConfig({ input: { main: resolve(__dirname, "src/index.html"), cart: resolve(__dirname, "src/cart/index.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" - ), }, }, }, -}); +}); \ No newline at end of file