@salesforce/retail-react-app 1.0.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/.eslintignore +7 -0
  2. package/.eslintrc.js +25 -0
  3. package/.prettierignore +4 -0
  4. package/.prettierrc.yaml +7 -0
  5. package/CHANGELOG.md +173 -0
  6. package/LICENSE +14 -0
  7. package/README.md +48 -0
  8. package/app/assets/svg/account.svg +3 -0
  9. package/app/assets/svg/alert.svg +3 -0
  10. package/app/assets/svg/basket.svg +3 -0
  11. package/app/assets/svg/brand-logo.svg +10 -0
  12. package/app/assets/svg/cc-amex.svg +7 -0
  13. package/app/assets/svg/cc-cvv.svg +8 -0
  14. package/app/assets/svg/cc-discover.svg +14 -0
  15. package/app/assets/svg/cc-mastercard.svg +8 -0
  16. package/app/assets/svg/cc-visa.svg +11 -0
  17. package/app/assets/svg/check-circle.svg +3 -0
  18. package/app/assets/svg/check.svg +3 -0
  19. package/app/assets/svg/chevron-down.svg +3 -0
  20. package/app/assets/svg/chevron-left.svg +3 -0
  21. package/app/assets/svg/chevron-right.svg +3 -0
  22. package/app/assets/svg/chevron-up.svg +3 -0
  23. package/app/assets/svg/close.svg +3 -0
  24. package/app/assets/svg/dashboard.svg +4 -0
  25. package/app/assets/svg/figma-logo.svg +14 -0
  26. package/app/assets/svg/file.svg +3 -0
  27. package/app/assets/svg/filter.svg +3 -0
  28. package/app/assets/svg/flag-ca.svg +5 -0
  29. package/app/assets/svg/flag-cn.svg +19 -0
  30. package/app/assets/svg/flag-fr.svg +19 -0
  31. package/app/assets/svg/flag-gb.svg +16 -0
  32. package/app/assets/svg/flag-it.svg +29 -0
  33. package/app/assets/svg/flag-jp.svg +10 -0
  34. package/app/assets/svg/flag-us.svg +7 -0
  35. package/app/assets/svg/github-logo.svg +40 -0
  36. package/app/assets/svg/hamburger.svg +8 -0
  37. package/app/assets/svg/heart-solid.svg +7 -0
  38. package/app/assets/svg/heart.svg +3 -0
  39. package/app/assets/svg/info.svg +3 -0
  40. package/app/assets/svg/like.svg +4 -0
  41. package/app/assets/svg/location.svg +3 -0
  42. package/app/assets/svg/lock.svg +3 -0
  43. package/app/assets/svg/paypal.svg +19 -0
  44. package/app/assets/svg/plug.svg +3 -0
  45. package/app/assets/svg/plus.svg +3 -0
  46. package/app/assets/svg/receipt.svg +3 -0
  47. package/app/assets/svg/search.svg +8 -0
  48. package/app/assets/svg/signout.svg +3 -0
  49. package/app/assets/svg/social-facebook.svg +3 -0
  50. package/app/assets/svg/social-instagram.svg +3 -0
  51. package/app/assets/svg/social-pinterest.svg +4 -0
  52. package/app/assets/svg/social-twitter.svg +3 -0
  53. package/app/assets/svg/social-youtube.svg +3 -0
  54. package/app/assets/svg/user.svg +3 -0
  55. package/app/assets/svg/visibility-off.svg +5 -0
  56. package/app/assets/svg/visibility.svg +3 -0
  57. package/app/components/_app/index.jsx +401 -0
  58. package/app/components/_app/index.test.js +85 -0
  59. package/app/components/_app/partials/above-header.jsx +10 -0
  60. package/app/components/_app-config/index.jsx +125 -0
  61. package/app/components/_app-config/index.test.js +77 -0
  62. package/app/components/_error/index.jsx +142 -0
  63. package/app/components/_error/index.test.js +25 -0
  64. package/app/components/action-card/index.jsx +75 -0
  65. package/app/components/address-display/index.jsx +30 -0
  66. package/app/components/basic-tile/index.jsx +65 -0
  67. package/app/components/basic-tile/index.test.js +23 -0
  68. package/app/components/breadcrumb/index.jsx +67 -0
  69. package/app/components/breadcrumb/index.test.js +30 -0
  70. package/app/components/confirmation-modal/index.jsx +111 -0
  71. package/app/components/confirmation-modal/index.test.js +98 -0
  72. package/app/components/drawer-menu/index.jsx +405 -0
  73. package/app/components/drawer-menu/index.test.js +33 -0
  74. package/app/components/dynamic-image/index.jsx +56 -0
  75. package/app/components/field/index.jsx +161 -0
  76. package/app/components/footer/index.jsx +269 -0
  77. package/app/components/footer/index.test.js +22 -0
  78. package/app/components/forms/address-fields.jsx +49 -0
  79. package/app/components/forms/credit-card-fields.jsx +149 -0
  80. package/app/components/forms/form-action-buttons.jsx +55 -0
  81. package/app/components/forms/login-fields.jsx +31 -0
  82. package/app/components/forms/password-requirements.jsx +99 -0
  83. package/app/components/forms/post-checkout-registration-fields.jsx +43 -0
  84. package/app/components/forms/profile-fields.jsx +36 -0
  85. package/app/components/forms/promo-code-fields.jsx +43 -0
  86. package/app/components/forms/registration-fields.jsx +42 -0
  87. package/app/components/forms/reset-password-fields.jsx +31 -0
  88. package/app/components/forms/state-province-options.jsx +75 -0
  89. package/app/components/forms/update-password-fields.jsx +49 -0
  90. package/app/components/forms/useAddressFields.jsx +196 -0
  91. package/app/components/forms/useCreditCardFields.jsx +146 -0
  92. package/app/components/forms/useLoginFields.jsx +52 -0
  93. package/app/components/forms/useProfileFields.jsx +95 -0
  94. package/app/components/forms/usePromoCodeFields.jsx +39 -0
  95. package/app/components/forms/useRegistrationFields.jsx +136 -0
  96. package/app/components/forms/useResetPasswordFields.jsx +40 -0
  97. package/app/components/forms/useUpdatePasswordFields.jsx +89 -0
  98. package/app/components/header/index.jsx +290 -0
  99. package/app/components/header/index.test.js +217 -0
  100. package/app/components/hero/index.jsx +84 -0
  101. package/app/components/hero/index.test.js +40 -0
  102. package/app/components/icons/index.jsx +158 -0
  103. package/app/components/icons/index.test.js +20 -0
  104. package/app/components/image-gallery/index.jsx +176 -0
  105. package/app/components/image-gallery/index.test.js +485 -0
  106. package/app/components/item-variant/index.jsx +33 -0
  107. package/app/components/item-variant/item-attributes.jsx +107 -0
  108. package/app/components/item-variant/item-image.jsx +73 -0
  109. package/app/components/item-variant/item-name.jsx +28 -0
  110. package/app/components/item-variant/item-price.jsx +117 -0
  111. package/app/components/link/index.jsx +32 -0
  112. package/app/components/link/index.test.js +72 -0
  113. package/app/components/links-list/index.jsx +89 -0
  114. package/app/components/links-list/index.test.js +62 -0
  115. package/app/components/list-menu/index.jsx +280 -0
  116. package/app/components/list-menu/index.test.js +44 -0
  117. package/app/components/loading-spinner/index.jsx +46 -0
  118. package/app/components/locale-selector/index.jsx +124 -0
  119. package/app/components/locale-selector/index.test.js +37 -0
  120. package/app/components/locale-text/index.jsx +97 -0
  121. package/app/components/locale-text/index.test.js +36 -0
  122. package/app/components/login/index.jsx +96 -0
  123. package/app/components/nested-accordion/index.jsx +185 -0
  124. package/app/components/nested-accordion/index.test.js +98 -0
  125. package/app/components/offline-banner/index.jsx +40 -0
  126. package/app/components/offline-banner/index.test.js +15 -0
  127. package/app/components/offline-boundary/index.jsx +104 -0
  128. package/app/components/offline-boundary/index.test.js +123 -0
  129. package/app/components/order-summary/index.jsx +331 -0
  130. package/app/components/page-action-placeholder/index.jsx +50 -0
  131. package/app/components/pagination/index.jsx +134 -0
  132. package/app/components/pagination/index.test.js +25 -0
  133. package/app/components/product-item/index.jsx +146 -0
  134. package/app/components/product-item/index.test.js +38 -0
  135. package/app/components/product-scroller/index.jsx +172 -0
  136. package/app/components/product-scroller/index.test.js +98 -0
  137. package/app/components/product-tile/index.jsx +195 -0
  138. package/app/components/product-tile/index.test.js +96 -0
  139. package/app/components/product-view/index.jsx +538 -0
  140. package/app/components/product-view/index.test.js +224 -0
  141. package/app/components/product-view-modal/index.jsx +48 -0
  142. package/app/components/product-view-modal/index.test.js +72 -0
  143. package/app/components/promo-code/index.jsx +162 -0
  144. package/app/components/promo-popover/index.jsx +83 -0
  145. package/app/components/quantity-picker/index.jsx +58 -0
  146. package/app/components/radio-card/index.jsx +75 -0
  147. package/app/components/recommended-products/index.jsx +227 -0
  148. package/app/components/register/index.jsx +114 -0
  149. package/app/components/reset-password/index.jsx +87 -0
  150. package/app/components/responsive/index.jsx +29 -0
  151. package/app/components/scroll-to-top/index.jsx +24 -0
  152. package/app/components/scroll-to-top/index.test.js +46 -0
  153. package/app/components/search/index.jsx +279 -0
  154. package/app/components/search/index.test.js +127 -0
  155. package/app/components/search/partials/recent-searches.jsx +76 -0
  156. package/app/components/search/partials/search-suggestions.jsx +45 -0
  157. package/app/components/search/partials/suggestions.jsx +43 -0
  158. package/app/components/section/index.jsx +68 -0
  159. package/app/components/seo/index.jsx +33 -0
  160. package/app/components/social-icons/index.jsx +101 -0
  161. package/app/components/social-icons/index.test.js +30 -0
  162. package/app/components/swatch-group/index.jsx +77 -0
  163. package/app/components/swatch-group/index.test.js +136 -0
  164. package/app/components/swatch-group/swatch.jsx +94 -0
  165. package/app/components/toggle-card/index.jsx +97 -0
  166. package/app/components/with-registration/index.jsx +58 -0
  167. package/app/components/with-registration/index.test.js +85 -0
  168. package/app/constants.js +109 -0
  169. package/app/contexts/index.js +92 -0
  170. package/app/hooks/einstein-mock-data.js +916 -0
  171. package/app/hooks/index.js +17 -0
  172. package/app/hooks/use-add-to-cart-modal.js +344 -0
  173. package/app/hooks/use-add-to-cart-modal.test.js +625 -0
  174. package/app/hooks/use-auth-modal.js +337 -0
  175. package/app/hooks/use-auth-modal.test.js +365 -0
  176. package/app/hooks/use-currency.js +20 -0
  177. package/app/hooks/use-currency.test.js +41 -0
  178. package/app/hooks/use-current-basket.js +39 -0
  179. package/app/hooks/use-current-customer.js +29 -0
  180. package/app/hooks/use-derived-product.js +77 -0
  181. package/app/hooks/use-derived-product.test.js +69 -0
  182. package/app/hooks/use-einstein.js +512 -0
  183. package/app/hooks/use-einstein.test.js +224 -0
  184. package/app/hooks/use-intersection-observer.js +64 -0
  185. package/app/hooks/use-limit-urls.js +31 -0
  186. package/app/hooks/use-limit-urls.test.js +40 -0
  187. package/app/hooks/use-multi-site.js +36 -0
  188. package/app/hooks/use-multi-site.test.js +53 -0
  189. package/app/hooks/use-navigation.js +37 -0
  190. package/app/hooks/use-navigation.test.js +109 -0
  191. package/app/hooks/use-page-urls.js +35 -0
  192. package/app/hooks/use-page-urls.test.js +39 -0
  193. package/app/hooks/use-pdp-search-params.js +16 -0
  194. package/app/hooks/use-pdp-search-params.test.js +52 -0
  195. package/app/hooks/use-previous.js +17 -0
  196. package/app/hooks/use-product-view-modal.js +93 -0
  197. package/app/hooks/use-product-view-modal.test.js +172 -0
  198. package/app/hooks/use-search-params.js +96 -0
  199. package/app/hooks/use-search-params.test.js +91 -0
  200. package/app/hooks/use-sort-urls.js +33 -0
  201. package/app/hooks/use-sort-urls.test.js +42 -0
  202. package/app/hooks/use-toast.js +68 -0
  203. package/app/hooks/use-toast.test.js +58 -0
  204. package/app/hooks/use-variant.js +32 -0
  205. package/app/hooks/use-variant.test.js +81 -0
  206. package/app/hooks/use-variation-attributes.js +138 -0
  207. package/app/hooks/use-variation-attributes.test.js +119 -0
  208. package/app/hooks/use-variation-params.js +31 -0
  209. package/app/hooks/use-variation-params.test.js +73 -0
  210. package/app/hooks/use-wish-list.js +42 -0
  211. package/app/main.jsx +14 -0
  212. package/app/mocks/basket-with-suit.js +146 -0
  213. package/app/mocks/empty-basket.js +39 -0
  214. package/app/mocks/mock-data.js +5632 -0
  215. package/app/mocks/product-set-winter-lookM.js +1224 -0
  216. package/app/mocks/searchResults.js +144 -0
  217. package/app/mocks/variant-750518699578M.js +434 -0
  218. package/app/page-designer/README.md +102 -0
  219. package/app/page-designer/assets/image-tile/index.jsx +51 -0
  220. package/app/page-designer/assets/image-tile/index.test.js +30 -0
  221. package/app/page-designer/assets/image-with-text/index.jsx +140 -0
  222. package/app/page-designer/assets/image-with-text/index.test.js +38 -0
  223. package/app/page-designer/assets/index.js +9 -0
  224. package/app/page-designer/index.js +10 -0
  225. package/app/page-designer/layouts/carousel/index.jsx +222 -0
  226. package/app/page-designer/layouts/carousel/index.test.js +43 -0
  227. package/app/page-designer/layouts/index.js +14 -0
  228. package/app/page-designer/layouts/mobileGrid1r1c/index.jsx +36 -0
  229. package/app/page-designer/layouts/mobileGrid1r1c/index.test.js +35 -0
  230. package/app/page-designer/layouts/mobileGrid2r1c/index.jsx +37 -0
  231. package/app/page-designer/layouts/mobileGrid2r1c/index.test.js +47 -0
  232. package/app/page-designer/layouts/mobileGrid2r2c/index.jsx +37 -0
  233. package/app/page-designer/layouts/mobileGrid2r2c/index.test.js +71 -0
  234. package/app/page-designer/layouts/mobileGrid2r3c/index.jsx +37 -0
  235. package/app/page-designer/layouts/mobileGrid2r3c/index.test.js +95 -0
  236. package/app/page-designer/layouts/mobileGrid3r1c/index.jsx +37 -0
  237. package/app/page-designer/layouts/mobileGrid3r1c/index.test.js +59 -0
  238. package/app/page-designer/layouts/mobileGrid3r2c/index.jsx +37 -0
  239. package/app/page-designer/layouts/mobileGrid3r2c/index.test.js +95 -0
  240. package/app/page-designer/utils.js +14 -0
  241. package/app/pages/account/addresses.jsx +382 -0
  242. package/app/pages/account/addresses.test.js +120 -0
  243. package/app/pages/account/constant.js +57 -0
  244. package/app/pages/account/index.jsx +237 -0
  245. package/app/pages/account/index.test.js +188 -0
  246. package/app/pages/account/order-detail.jsx +397 -0
  247. package/app/pages/account/order-history.jsx +264 -0
  248. package/app/pages/account/orders.jsx +30 -0
  249. package/app/pages/account/orders.test.js +95 -0
  250. package/app/pages/account/profile.jsx +357 -0
  251. package/app/pages/account/wishlist/index.jsx +195 -0
  252. package/app/pages/account/wishlist/index.mock.js +1481 -0
  253. package/app/pages/account/wishlist/index.test.js +56 -0
  254. package/app/pages/account/wishlist/partials/wishlist-primary-action.jsx +170 -0
  255. package/app/pages/account/wishlist/partials/wishlist-primary-action.mock.js +1623 -0
  256. package/app/pages/account/wishlist/partials/wishlist-primary-action.test.js +99 -0
  257. package/app/pages/account/wishlist/partials/wishlist-secondary-button-group.jsx +120 -0
  258. package/app/pages/account/wishlist/partials/wishlist-secondary-button-group.test.js +391 -0
  259. package/app/pages/cart/index.jsx +476 -0
  260. package/app/pages/cart/index.test.js +481 -0
  261. package/app/pages/cart/partials/cart-cta.jsx +46 -0
  262. package/app/pages/cart/partials/cart-secondary-button-group.jsx +135 -0
  263. package/app/pages/cart/partials/cart-secondary-button-group.test.js +103 -0
  264. package/app/pages/cart/partials/cart-skeleton.jsx +93 -0
  265. package/app/pages/cart/partials/cart-title.jsx +27 -0
  266. package/app/pages/cart/partials/empty-cart.jsx +86 -0
  267. package/app/pages/checkout/confirmation.jsx +541 -0
  268. package/app/pages/checkout/confirmation.mock.js +450 -0
  269. package/app/pages/checkout/confirmation.test.js +114 -0
  270. package/app/pages/checkout/index.jsx +169 -0
  271. package/app/pages/checkout/index.test.js +582 -0
  272. package/app/pages/checkout/partials/cc-radio-group.jsx +122 -0
  273. package/app/pages/checkout/partials/checkout-footer.jsx +140 -0
  274. package/app/pages/checkout/partials/checkout-footer.test.js +16 -0
  275. package/app/pages/checkout/partials/checkout-header.jsx +54 -0
  276. package/app/pages/checkout/partials/checkout-header.test.js +16 -0
  277. package/app/pages/checkout/partials/checkout-skeleton.jsx +52 -0
  278. package/app/pages/checkout/partials/contact-info.jsx +251 -0
  279. package/app/pages/checkout/partials/contact-info.test.js +43 -0
  280. package/app/pages/checkout/partials/payment-form.jsx +97 -0
  281. package/app/pages/checkout/partials/payment.jsx +276 -0
  282. package/app/pages/checkout/partials/shipping-address-selection.jsx +377 -0
  283. package/app/pages/checkout/partials/shipping-address.jsx +132 -0
  284. package/app/pages/checkout/partials/shipping-options.jsx +232 -0
  285. package/app/pages/checkout/util/checkout-context.js +94 -0
  286. package/app/pages/home/data.js +134 -0
  287. package/app/pages/home/index.jsx +301 -0
  288. package/app/pages/home/index.test.js +23 -0
  289. package/app/pages/login/index.jsx +123 -0
  290. package/app/pages/login/index.test.js +229 -0
  291. package/app/pages/login-redirect/index.jsx +23 -0
  292. package/app/pages/login-redirect/index.test.js +16 -0
  293. package/app/pages/page-not-found/index.jsx +90 -0
  294. package/app/pages/page-not-found/index.test.js +31 -0
  295. package/app/pages/product-detail/index.jsx +394 -0
  296. package/app/pages/product-detail/index.mock.js +197 -0
  297. package/app/pages/product-detail/index.test.js +162 -0
  298. package/app/pages/product-detail/partials/information-accordion.jsx +121 -0
  299. package/app/pages/product-list/index.jsx +735 -0
  300. package/app/pages/product-list/index.test.js +180 -0
  301. package/app/pages/product-list/partials/above-page-header.jsx +10 -0
  302. package/app/pages/product-list/partials/checkbox-refinements.jsx +41 -0
  303. package/app/pages/product-list/partials/checkbox-refinements.test.js +53 -0
  304. package/app/pages/product-list/partials/color-refinements.jsx +88 -0
  305. package/app/pages/product-list/partials/empty-results.jsx +118 -0
  306. package/app/pages/product-list/partials/link-refinements.jsx +38 -0
  307. package/app/pages/product-list/partials/page-header.jsx +42 -0
  308. package/app/pages/product-list/partials/radio-refinements.jsx +60 -0
  309. package/app/pages/product-list/partials/refinements.jsx +144 -0
  310. package/app/pages/product-list/partials/selected-refinements.jsx +100 -0
  311. package/app/pages/product-list/partials/size-refinements.jsx +55 -0
  312. package/app/pages/registration/index.jsx +87 -0
  313. package/app/pages/registration/index.test.jsx +132 -0
  314. package/app/pages/reset-password/index.jsx +112 -0
  315. package/app/pages/reset-password/index.test.jsx +141 -0
  316. package/app/request-processor.js +118 -0
  317. package/app/request-processor.test.js +23 -0
  318. package/app/routes.jsx +111 -0
  319. package/app/routes.test.js +13 -0
  320. package/app/ssr.js +70 -0
  321. package/app/static/ico/favicon.ico +0 -0
  322. package/app/static/img/global/app-icon-192.png +0 -0
  323. package/app/static/img/global/app-icon-512.png +0 -0
  324. package/app/static/img/global/apple-touch-icon.png +0 -0
  325. package/app/static/img/hero.png +0 -0
  326. package/app/static/manifest.json +19 -0
  327. package/app/static/robots.txt +2 -0
  328. package/app/theme/components/base/accordion.js +21 -0
  329. package/app/theme/components/base/alert.js +17 -0
  330. package/app/theme/components/base/badge.js +25 -0
  331. package/app/theme/components/base/button.js +77 -0
  332. package/app/theme/components/base/checkbox.js +30 -0
  333. package/app/theme/components/base/container.js +17 -0
  334. package/app/theme/components/base/drawer.js +26 -0
  335. package/app/theme/components/base/formLabel.js +13 -0
  336. package/app/theme/components/base/icon.js +13 -0
  337. package/app/theme/components/base/input.js +44 -0
  338. package/app/theme/components/base/modal.js +11 -0
  339. package/app/theme/components/base/popover.js +61 -0
  340. package/app/theme/components/base/radio.js +33 -0
  341. package/app/theme/components/base/select.js +15 -0
  342. package/app/theme/components/base/skeleton.js +12 -0
  343. package/app/theme/components/base/tooltip.js +19 -0
  344. package/app/theme/components/project/_app.js +25 -0
  345. package/app/theme/components/project/breadcrumb.js +25 -0
  346. package/app/theme/components/project/checkout-footer.js +35 -0
  347. package/app/theme/components/project/drawer-menu.js +66 -0
  348. package/app/theme/components/project/footer.js +84 -0
  349. package/app/theme/components/project/header.js +84 -0
  350. package/app/theme/components/project/image-gallery.js +59 -0
  351. package/app/theme/components/project/links-list.js +43 -0
  352. package/app/theme/components/project/list-menu.js +91 -0
  353. package/app/theme/components/project/locale-selector.js +42 -0
  354. package/app/theme/components/project/nested-accordion.js +26 -0
  355. package/app/theme/components/project/offline-banner.js +25 -0
  356. package/app/theme/components/project/pagination.js +22 -0
  357. package/app/theme/components/project/product-tile.js +32 -0
  358. package/app/theme/components/project/social-icons.js +52 -0
  359. package/app/theme/components/project/swatch-group.js +115 -0
  360. package/app/theme/foundations/colors.js +170 -0
  361. package/app/theme/foundations/gradients.js +9 -0
  362. package/app/theme/foundations/layerStyles.js +41 -0
  363. package/app/theme/foundations/shadows.js +9 -0
  364. package/app/theme/foundations/sizes.js +18 -0
  365. package/app/theme/foundations/space.js +9 -0
  366. package/app/theme/foundations/styles.js +21 -0
  367. package/app/theme/index.js +104 -0
  368. package/app/utils/cc-utils.js +112 -0
  369. package/app/utils/cc-utils.test.js +41 -0
  370. package/app/utils/image-groups-utils.js +62 -0
  371. package/app/utils/image-groups-utils.test.js +65 -0
  372. package/app/utils/locale.js +78 -0
  373. package/app/utils/locale.test.js +112 -0
  374. package/app/utils/password-utils.js +21 -0
  375. package/app/utils/phone-utils.js +22 -0
  376. package/app/utils/phone-utils.test.js +15 -0
  377. package/app/utils/product-utils.js +35 -0
  378. package/app/utils/product-utils.test.js +51 -0
  379. package/app/utils/responsive-image.js +198 -0
  380. package/app/utils/responsive-image.test.js +170 -0
  381. package/app/utils/routes-utils.js +111 -0
  382. package/app/utils/routes-utils.test.js +291 -0
  383. package/app/utils/site-utils.js +222 -0
  384. package/app/utils/site-utils.test.js +376 -0
  385. package/app/utils/test-utils.js +257 -0
  386. package/app/utils/url.js +291 -0
  387. package/app/utils/url.test.js +421 -0
  388. package/app/utils/utils.js +201 -0
  389. package/app/utils/utils.test.js +182 -0
  390. package/babel.config.js +7 -0
  391. package/cache-hash-config.json +8 -0
  392. package/config/default.js +64 -0
  393. package/config/mocks/default.js +131 -0
  394. package/config/sites.js +78 -0
  395. package/jest-setup.js +191 -0
  396. package/jest.config.js +50 -0
  397. package/jsconfig.json +13 -0
  398. package/package.json +105 -0
  399. package/scripts/extract-default-messages.js +92 -0
  400. package/tests/lighthouserc.js +37 -0
  401. package/translations/README.md +127 -0
  402. package/translations/compiled/de-DE.json +3212 -0
  403. package/translations/compiled/en-GB.json +3212 -0
  404. package/translations/compiled/en-US.json +3212 -0
  405. package/translations/compiled/en-XA.json +6948 -0
  406. package/translations/compiled/es-MX.json +3216 -0
  407. package/translations/compiled/fr-FR.json +3216 -0
  408. package/translations/compiled/it-IT.json +3188 -0
  409. package/translations/compiled/ja-JP.json +3200 -0
  410. package/translations/compiled/ko-KR.json +3180 -0
  411. package/translations/compiled/pt-BR.json +3220 -0
  412. package/translations/compiled/zh-CN.json +3212 -0
  413. package/translations/compiled/zh-TW.json +3208 -0
  414. package/translations/de-DE.json +1417 -0
  415. package/translations/en-GB.json +1417 -0
  416. package/translations/en-US.json +1417 -0
  417. package/translations/es-MX.json +1417 -0
  418. package/translations/fr-FR.json +1417 -0
  419. package/translations/it-IT.json +1417 -0
  420. package/translations/ja-JP.json +1417 -0
  421. package/translations/ko-KR.json +1417 -0
  422. package/translations/pt-BR.json +1417 -0
  423. package/translations/zh-CN.json +1417 -0
  424. package/translations/zh-TW.json +1417 -0
  425. package/worker/main.js +36 -0
@@ -0,0 +1,1224 @@
1
+ /*
2
+ * Copyright (c) 2023, Salesforce, Inc.
3
+ * All rights reserved.
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ * For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/BSD-3-Clause
6
+ */
7
+
8
+ export default {
9
+ currency: 'GBP',
10
+ id: 'winter-lookM',
11
+ imageGroups: [
12
+ {
13
+ images: [
14
+ {
15
+ alt: 'Winter Look, , large',
16
+ disBaseLink:
17
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg',
18
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg',
19
+ title: 'Winter Look, '
20
+ }
21
+ ],
22
+ viewType: 'large'
23
+ },
24
+ {
25
+ images: [
26
+ {
27
+ alt: 'Winter Look, , medium',
28
+ disBaseLink:
29
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg',
30
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg',
31
+ title: 'Winter Look, '
32
+ }
33
+ ],
34
+ viewType: 'medium'
35
+ },
36
+ {
37
+ images: [
38
+ {
39
+ alt: 'Winter Look, , small',
40
+ disBaseLink:
41
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg',
42
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg',
43
+ title: 'Winter Look, '
44
+ }
45
+ ],
46
+ viewType: 'small'
47
+ }
48
+ ],
49
+ longDescription: '<p>Jacket</p>\r\n<p>Pant</p>\r\n<p>Shoes</p>',
50
+ minOrderQuantity: 1,
51
+ name: 'Winter Look',
52
+ price: 44.16,
53
+ priceMax: 71.03,
54
+ pricePerUnit: 44.16,
55
+ pricePerUnitMax: 71.03,
56
+ primaryCategoryId: 'womens-outfits',
57
+ setProducts: [
58
+ {
59
+ currency: 'GBP',
60
+ id: '25518447M',
61
+ imageGroups: [
62
+ {
63
+ images: [
64
+ {
65
+ alt: 'Quilted Jacket, , large',
66
+ disBaseLink:
67
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg',
68
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg',
69
+ title: 'Quilted Jacket, '
70
+ },
71
+ {
72
+ alt: 'Quilted Jacket, , large',
73
+ disBaseLink:
74
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg',
75
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg',
76
+ title: 'Quilted Jacket, '
77
+ }
78
+ ],
79
+ viewType: 'large'
80
+ },
81
+ {
82
+ images: [
83
+ {
84
+ alt: 'Quilted Jacket, royal, large',
85
+ disBaseLink:
86
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg',
87
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwe1c4cd52/images/large/PG.10205921.JJ5FUXX.PZ.jpg',
88
+ title: 'Quilted Jacket, royal'
89
+ },
90
+ {
91
+ alt: 'Quilted Jacket, royal, large',
92
+ disBaseLink:
93
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg',
94
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwb2158085/images/large/PG.10205921.JJ5FUXX.BZ.jpg',
95
+ title: 'Quilted Jacket, royal'
96
+ }
97
+ ],
98
+ variationAttributes: [
99
+ {
100
+ id: 'color',
101
+ values: [
102
+ {
103
+ value: 'JJ5FUXX'
104
+ }
105
+ ]
106
+ }
107
+ ],
108
+ viewType: 'large'
109
+ },
110
+ {
111
+ images: [
112
+ {
113
+ alt: 'Quilted Jacket, , medium',
114
+ disBaseLink:
115
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg',
116
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg',
117
+ title: 'Quilted Jacket, '
118
+ },
119
+ {
120
+ alt: 'Quilted Jacket, , medium',
121
+ disBaseLink:
122
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg',
123
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg',
124
+ title: 'Quilted Jacket, '
125
+ }
126
+ ],
127
+ viewType: 'medium'
128
+ },
129
+ {
130
+ images: [
131
+ {
132
+ alt: 'Quilted Jacket, royal, medium',
133
+ disBaseLink:
134
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg',
135
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw07f25517/images/medium/PG.10205921.JJ5FUXX.PZ.jpg',
136
+ title: 'Quilted Jacket, royal'
137
+ },
138
+ {
139
+ alt: 'Quilted Jacket, royal, medium',
140
+ disBaseLink:
141
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg',
142
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw34fd2ab3/images/medium/PG.10205921.JJ5FUXX.BZ.jpg',
143
+ title: 'Quilted Jacket, royal'
144
+ }
145
+ ],
146
+ variationAttributes: [
147
+ {
148
+ id: 'color',
149
+ values: [
150
+ {
151
+ value: 'JJ5FUXX'
152
+ }
153
+ ]
154
+ }
155
+ ],
156
+ viewType: 'medium'
157
+ },
158
+ {
159
+ images: [
160
+ {
161
+ alt: 'Quilted Jacket, , small',
162
+ disBaseLink:
163
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg',
164
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg',
165
+ title: 'Quilted Jacket, '
166
+ },
167
+ {
168
+ alt: 'Quilted Jacket, , small',
169
+ disBaseLink:
170
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg',
171
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg',
172
+ title: 'Quilted Jacket, '
173
+ }
174
+ ],
175
+ viewType: 'small'
176
+ },
177
+ {
178
+ images: [
179
+ {
180
+ alt: 'Quilted Jacket, royal, small',
181
+ disBaseLink:
182
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg',
183
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwab300645/images/small/PG.10205921.JJ5FUXX.PZ.jpg',
184
+ title: 'Quilted Jacket, royal'
185
+ },
186
+ {
187
+ alt: 'Quilted Jacket, royal, small',
188
+ disBaseLink:
189
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg',
190
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwbb5eb9b1/images/small/PG.10205921.JJ5FUXX.BZ.jpg',
191
+ title: 'Quilted Jacket, royal'
192
+ }
193
+ ],
194
+ variationAttributes: [
195
+ {
196
+ id: 'color',
197
+ values: [
198
+ {
199
+ value: 'JJ5FUXX'
200
+ }
201
+ ]
202
+ }
203
+ ],
204
+ viewType: 'small'
205
+ },
206
+ {
207
+ images: [
208
+ {
209
+ alt: 'Quilted Jacket, royal, swatch',
210
+ disBaseLink:
211
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5dea9b57/images/swatch/PG.10205921.JJ5FUXX.CP.jpg',
212
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5dea9b57/images/swatch/PG.10205921.JJ5FUXX.CP.jpg',
213
+ title: 'Quilted Jacket, royal'
214
+ }
215
+ ],
216
+ variationAttributes: [
217
+ {
218
+ id: 'color',
219
+ values: [
220
+ {
221
+ value: 'JJ5FUXX'
222
+ }
223
+ ]
224
+ }
225
+ ],
226
+ viewType: 'swatch'
227
+ }
228
+ ],
229
+ inventory: {
230
+ ats: 400,
231
+ backorderable: false,
232
+ id: 'inventory_m',
233
+ orderable: true,
234
+ preorderable: false,
235
+ stockLevel: 400
236
+ },
237
+ longDescription:
238
+ 'A classic quilted car coat looks new again. Add a great Commerce Cloud Store top for a perfect look.',
239
+ master: {
240
+ masterId: '25518447M',
241
+ orderable: true,
242
+ price: 71.03
243
+ },
244
+ minOrderQuantity: 1,
245
+ name: 'Quilted Jacket',
246
+ pageDescription:
247
+ 'A classic quilted car coat looks new again. Add a great Commerce Cloud Store top for a perfect look.',
248
+ pageTitle: 'Quilted Jacket',
249
+ price: 71.03,
250
+ pricePerUnit: 71.03,
251
+ primaryCategoryId: 'womens-clothing-jackets',
252
+ recommendations: [
253
+ {
254
+ recommendationType: {
255
+ displayValue: 'Product Detail Page - Cross Sell',
256
+ value: 1
257
+ },
258
+ recommendedItemId: '22951021M'
259
+ },
260
+ {
261
+ recommendationType: {
262
+ displayValue: 'Product Detail Page - Cross Sell',
263
+ value: 1
264
+ },
265
+ recommendedItemId: '25518397M'
266
+ }
267
+ ],
268
+ shortDescription:
269
+ 'A classic quilted car coat looks new again. Add a great Commerce Cloud Store top for a perfect look.',
270
+ stepQuantity: 1,
271
+ type: {
272
+ master: true
273
+ },
274
+ validFrom: {
275
+ default: '2010-10-21T04:00:00.000Z'
276
+ },
277
+ variants: [
278
+ {
279
+ orderable: true,
280
+ price: 71.03,
281
+ productId: '701642853695M',
282
+ variationValues: {
283
+ color: 'JJ5FUXX',
284
+ size: '9LG'
285
+ }
286
+ },
287
+ {
288
+ orderable: true,
289
+ price: 71.03,
290
+ productId: '701642853718M',
291
+ variationValues: {
292
+ color: 'JJ5FUXX',
293
+ size: '9SM'
294
+ }
295
+ },
296
+ {
297
+ orderable: true,
298
+ price: 71.03,
299
+ productId: '701642853725M',
300
+ variationValues: {
301
+ color: 'JJ5FUXX',
302
+ size: '9XL'
303
+ }
304
+ },
305
+ {
306
+ orderable: true,
307
+ price: 71.03,
308
+ productId: '701642853701M',
309
+ variationValues: {
310
+ color: 'JJ5FUXX',
311
+ size: '9MD'
312
+ }
313
+ }
314
+ ],
315
+ variationAttributes: [
316
+ {
317
+ id: 'color',
318
+ name: 'Colour',
319
+ values: [
320
+ {
321
+ name: 'royal',
322
+ orderable: true,
323
+ value: 'JJ5FUXX'
324
+ }
325
+ ]
326
+ },
327
+ {
328
+ id: 'size',
329
+ name: 'Size',
330
+ values: [
331
+ {
332
+ name: 'S',
333
+ orderable: true,
334
+ value: '9SM'
335
+ },
336
+ {
337
+ name: 'M',
338
+ orderable: true,
339
+ value: '9MD'
340
+ },
341
+ {
342
+ name: 'L',
343
+ orderable: true,
344
+ value: '9LG'
345
+ },
346
+ {
347
+ name: 'XL',
348
+ orderable: true,
349
+ value: '9XL'
350
+ }
351
+ ]
352
+ }
353
+ ],
354
+ c_isNewtest: true,
355
+ c_isSale: true
356
+ },
357
+ {
358
+ currency: 'GBP',
359
+ id: '25518704M',
360
+ imageGroups: [
361
+ {
362
+ images: [
363
+ {
364
+ alt: 'Pull On Pant, , large',
365
+ disBaseLink:
366
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg',
367
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg',
368
+ title: 'Pull On Pant, '
369
+ },
370
+ {
371
+ alt: 'Pull On Pant, , large',
372
+ disBaseLink:
373
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg',
374
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg',
375
+ title: 'Pull On Pant, '
376
+ }
377
+ ],
378
+ viewType: 'large'
379
+ },
380
+ {
381
+ images: [
382
+ {
383
+ alt: 'Pull On Pant, Grey Heather, large',
384
+ disBaseLink:
385
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg',
386
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw018b9798/images/large/PG.10218785.JJ2XNXX.PZ.jpg',
387
+ title: 'Pull On Pant, Grey Heather'
388
+ },
389
+ {
390
+ alt: 'Pull On Pant, Grey Heather, large',
391
+ disBaseLink:
392
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg',
393
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5303e0ee/images/large/PG.10218785.JJ2XNXX.BZ.jpg',
394
+ title: 'Pull On Pant, Grey Heather'
395
+ }
396
+ ],
397
+ variationAttributes: [
398
+ {
399
+ id: 'color',
400
+ values: [
401
+ {
402
+ value: 'JJ2XNXX'
403
+ }
404
+ ]
405
+ }
406
+ ],
407
+ viewType: 'large'
408
+ },
409
+ {
410
+ images: [
411
+ {
412
+ alt: 'Pull On Pant, , medium',
413
+ disBaseLink:
414
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg',
415
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg',
416
+ title: 'Pull On Pant, '
417
+ },
418
+ {
419
+ alt: 'Pull On Pant, , medium',
420
+ disBaseLink:
421
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg',
422
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg',
423
+ title: 'Pull On Pant, '
424
+ }
425
+ ],
426
+ viewType: 'medium'
427
+ },
428
+ {
429
+ images: [
430
+ {
431
+ alt: 'Pull On Pant, Grey Heather, medium',
432
+ disBaseLink:
433
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg',
434
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwba195443/images/medium/PG.10218785.JJ2XNXX.PZ.jpg',
435
+ title: 'Pull On Pant, Grey Heather'
436
+ },
437
+ {
438
+ alt: 'Pull On Pant, Grey Heather, medium',
439
+ disBaseLink:
440
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg',
441
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw8119e7a0/images/medium/PG.10218785.JJ2XNXX.BZ.jpg',
442
+ title: 'Pull On Pant, Grey Heather'
443
+ }
444
+ ],
445
+ variationAttributes: [
446
+ {
447
+ id: 'color',
448
+ values: [
449
+ {
450
+ value: 'JJ2XNXX'
451
+ }
452
+ ]
453
+ }
454
+ ],
455
+ viewType: 'medium'
456
+ },
457
+ {
458
+ images: [
459
+ {
460
+ alt: 'Pull On Pant, , small',
461
+ disBaseLink:
462
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg',
463
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg',
464
+ title: 'Pull On Pant, '
465
+ },
466
+ {
467
+ alt: 'Pull On Pant, , small',
468
+ disBaseLink:
469
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg',
470
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg',
471
+ title: 'Pull On Pant, '
472
+ }
473
+ ],
474
+ viewType: 'small'
475
+ },
476
+ {
477
+ images: [
478
+ {
479
+ alt: 'Pull On Pant, Grey Heather, small',
480
+ disBaseLink:
481
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg',
482
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw19377146/images/small/PG.10218785.JJ2XNXX.PZ.jpg',
483
+ title: 'Pull On Pant, Grey Heather'
484
+ },
485
+ {
486
+ alt: 'Pull On Pant, Grey Heather, small',
487
+ disBaseLink:
488
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg',
489
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw912e293d/images/small/PG.10218785.JJ2XNXX.BZ.jpg',
490
+ title: 'Pull On Pant, Grey Heather'
491
+ }
492
+ ],
493
+ variationAttributes: [
494
+ {
495
+ id: 'color',
496
+ values: [
497
+ {
498
+ value: 'JJ2XNXX'
499
+ }
500
+ ]
501
+ }
502
+ ],
503
+ viewType: 'small'
504
+ },
505
+ {
506
+ images: [
507
+ {
508
+ alt: 'Pull On Pant, Grey Heather, swatch',
509
+ disBaseLink:
510
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dedffb4/images/swatch/PG.10218785.JJ2XNXX.CP.jpg',
511
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dedffb4/images/swatch/PG.10218785.JJ2XNXX.CP.jpg',
512
+ title: 'Pull On Pant, Grey Heather'
513
+ }
514
+ ],
515
+ variationAttributes: [
516
+ {
517
+ id: 'color',
518
+ values: [
519
+ {
520
+ value: 'JJ2XNXX'
521
+ }
522
+ ]
523
+ }
524
+ ],
525
+ viewType: 'swatch'
526
+ }
527
+ ],
528
+ inventory: {
529
+ ats: 500,
530
+ backorderable: false,
531
+ id: 'inventory_m',
532
+ orderable: true,
533
+ preorderable: false,
534
+ stockLevel: 500
535
+ },
536
+ longDescription:
537
+ 'Meet a Commerce Cloud Store new wardrobe favorite - a knit pant that works perfectly 12 months a year!',
538
+ master: {
539
+ masterId: '25518704M',
540
+ orderable: true,
541
+ price: 44.16
542
+ },
543
+ minOrderQuantity: 1,
544
+ name: 'Pull On Pant',
545
+ pageDescription:
546
+ 'Meet a Commerce Cloud Store new wardrobe favorite - a knit pant that works perfectly 12 months a year!',
547
+ pageTitle: 'Pull On Pant',
548
+ price: 44.16,
549
+ pricePerUnit: 44.16,
550
+ primaryCategoryId: 'womens-clothing-bottoms',
551
+ shortDescription:
552
+ 'Meet a Commerce Cloud Store new wardrobe favorite - a knit pant that works perfectly 12 months a year!',
553
+ stepQuantity: 1,
554
+ type: {
555
+ master: true
556
+ },
557
+ validFrom: {
558
+ default: '2010-10-21T04:00:00.000Z'
559
+ },
560
+ variants: [
561
+ {
562
+ orderable: true,
563
+ price: 44.16,
564
+ productId: '701642867098M',
565
+ variationValues: {
566
+ color: 'JJ2XNXX',
567
+ size: '9LG'
568
+ }
569
+ },
570
+ {
571
+ orderable: true,
572
+ price: 44.16,
573
+ productId: '701642867111M',
574
+ variationValues: {
575
+ color: 'JJ2XNXX',
576
+ size: '9SM'
577
+ }
578
+ },
579
+ {
580
+ orderable: true,
581
+ price: 44.16,
582
+ productId: '701642867104M',
583
+ variationValues: {
584
+ color: 'JJ2XNXX',
585
+ size: '9MD'
586
+ }
587
+ },
588
+ {
589
+ orderable: true,
590
+ price: 44.16,
591
+ productId: '701642867128M',
592
+ variationValues: {
593
+ color: 'JJ2XNXX',
594
+ size: '9XL'
595
+ }
596
+ },
597
+ {
598
+ orderable: true,
599
+ price: 44.16,
600
+ productId: '701642867135M',
601
+ variationValues: {
602
+ color: 'JJ2XNXX',
603
+ size: '9XS'
604
+ }
605
+ }
606
+ ],
607
+ variationAttributes: [
608
+ {
609
+ id: 'color',
610
+ name: 'Colour',
611
+ values: [
612
+ {
613
+ name: 'Grey Heather',
614
+ orderable: true,
615
+ value: 'JJ2XNXX'
616
+ }
617
+ ]
618
+ },
619
+ {
620
+ id: 'size',
621
+ name: 'Size',
622
+ values: [
623
+ {
624
+ name: 'XS',
625
+ orderable: true,
626
+ value: '9XS'
627
+ },
628
+ {
629
+ name: 'S',
630
+ orderable: true,
631
+ value: '9SM'
632
+ },
633
+ {
634
+ name: 'M',
635
+ orderable: true,
636
+ value: '9MD'
637
+ },
638
+ {
639
+ name: 'L',
640
+ orderable: true,
641
+ value: '9LG'
642
+ },
643
+ {
644
+ name: 'XL',
645
+ orderable: true,
646
+ value: '9XL'
647
+ }
648
+ ]
649
+ }
650
+ ],
651
+ c_isNewtest: true
652
+ },
653
+ {
654
+ currency: 'GBP',
655
+ id: '25772717M',
656
+ imageGroups: [
657
+ {
658
+ images: [
659
+ {
660
+ alt: 'Zerrick, , large',
661
+ disBaseLink:
662
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg',
663
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg',
664
+ title: 'Zerrick, '
665
+ },
666
+ {
667
+ alt: 'Zerrick, , large',
668
+ disBaseLink:
669
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg',
670
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg',
671
+ title: 'Zerrick, '
672
+ }
673
+ ],
674
+ viewType: 'large'
675
+ },
676
+ {
677
+ images: [
678
+ {
679
+ alt: 'Zerrick, Black, large',
680
+ disBaseLink:
681
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg',
682
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw25b9c8eb/images/large/PG.CJZERRICK.BLACKLE.PZ.jpg',
683
+ title: 'Zerrick, Black'
684
+ },
685
+ {
686
+ alt: 'Zerrick, Black, large',
687
+ disBaseLink:
688
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg',
689
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw42769ff1/images/large/PG.CJZERRICK.BLACKLE.BZ.jpg',
690
+ title: 'Zerrick, Black'
691
+ }
692
+ ],
693
+ variationAttributes: [
694
+ {
695
+ id: 'color',
696
+ values: [
697
+ {
698
+ value: 'BLACKLE'
699
+ }
700
+ ]
701
+ }
702
+ ],
703
+ viewType: 'large'
704
+ },
705
+ {
706
+ images: [
707
+ {
708
+ alt: 'Zerrick, Taupe, large',
709
+ disBaseLink:
710
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw08fba265/images/large/PG.CJZERRICK.TAUPETX.PZ.jpg',
711
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw08fba265/images/large/PG.CJZERRICK.TAUPETX.PZ.jpg',
712
+ title: 'Zerrick, Taupe'
713
+ },
714
+ {
715
+ alt: 'Zerrick, Taupe, large',
716
+ disBaseLink:
717
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw20ceacbb/images/large/PG.CJZERRICK.TAUPETX.BZ.jpg',
718
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw20ceacbb/images/large/PG.CJZERRICK.TAUPETX.BZ.jpg',
719
+ title: 'Zerrick, Taupe'
720
+ }
721
+ ],
722
+ variationAttributes: [
723
+ {
724
+ id: 'color',
725
+ values: [
726
+ {
727
+ value: 'TAUPETX'
728
+ }
729
+ ]
730
+ }
731
+ ],
732
+ viewType: 'large'
733
+ },
734
+ {
735
+ images: [
736
+ {
737
+ alt: 'Zerrick, , medium',
738
+ disBaseLink:
739
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg',
740
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg',
741
+ title: 'Zerrick, '
742
+ },
743
+ {
744
+ alt: 'Zerrick, , medium',
745
+ disBaseLink:
746
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg',
747
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg',
748
+ title: 'Zerrick, '
749
+ }
750
+ ],
751
+ viewType: 'medium'
752
+ },
753
+ {
754
+ images: [
755
+ {
756
+ alt: 'Zerrick, Black, medium',
757
+ disBaseLink:
758
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg',
759
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0ae06682/images/medium/PG.CJZERRICK.BLACKLE.PZ.jpg',
760
+ title: 'Zerrick, Black'
761
+ },
762
+ {
763
+ alt: 'Zerrick, Black, medium',
764
+ disBaseLink:
765
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg',
766
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw025c3d0d/images/medium/PG.CJZERRICK.BLACKLE.BZ.jpg',
767
+ title: 'Zerrick, Black'
768
+ }
769
+ ],
770
+ variationAttributes: [
771
+ {
772
+ id: 'color',
773
+ values: [
774
+ {
775
+ value: 'BLACKLE'
776
+ }
777
+ ]
778
+ }
779
+ ],
780
+ viewType: 'medium'
781
+ },
782
+ {
783
+ images: [
784
+ {
785
+ alt: 'Zerrick, Taupe, medium',
786
+ disBaseLink:
787
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0019f83a/images/medium/PG.CJZERRICK.TAUPETX.PZ.jpg',
788
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw0019f83a/images/medium/PG.CJZERRICK.TAUPETX.PZ.jpg',
789
+ title: 'Zerrick, Taupe'
790
+ },
791
+ {
792
+ alt: 'Zerrick, Taupe, medium',
793
+ disBaseLink:
794
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ac76531/images/medium/PG.CJZERRICK.TAUPETX.BZ.jpg',
795
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw2ac76531/images/medium/PG.CJZERRICK.TAUPETX.BZ.jpg',
796
+ title: 'Zerrick, Taupe'
797
+ }
798
+ ],
799
+ variationAttributes: [
800
+ {
801
+ id: 'color',
802
+ values: [
803
+ {
804
+ value: 'TAUPETX'
805
+ }
806
+ ]
807
+ }
808
+ ],
809
+ viewType: 'medium'
810
+ },
811
+ {
812
+ images: [
813
+ {
814
+ alt: 'Zerrick, , small',
815
+ disBaseLink:
816
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg',
817
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg',
818
+ title: 'Zerrick, '
819
+ },
820
+ {
821
+ alt: 'Zerrick, , small',
822
+ disBaseLink:
823
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg',
824
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg',
825
+ title: 'Zerrick, '
826
+ }
827
+ ],
828
+ viewType: 'small'
829
+ },
830
+ {
831
+ images: [
832
+ {
833
+ alt: 'Zerrick, Black, small',
834
+ disBaseLink:
835
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg',
836
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwfa0a6275/images/small/PG.CJZERRICK.BLACKLE.PZ.jpg',
837
+ title: 'Zerrick, Black'
838
+ },
839
+ {
840
+ alt: 'Zerrick, Black, small',
841
+ disBaseLink:
842
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg',
843
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw47a9b12f/images/small/PG.CJZERRICK.BLACKLE.BZ.jpg',
844
+ title: 'Zerrick, Black'
845
+ }
846
+ ],
847
+ variationAttributes: [
848
+ {
849
+ id: 'color',
850
+ values: [
851
+ {
852
+ value: 'BLACKLE'
853
+ }
854
+ ]
855
+ }
856
+ ],
857
+ viewType: 'small'
858
+ },
859
+ {
860
+ images: [
861
+ {
862
+ alt: 'Zerrick, Taupe, small',
863
+ disBaseLink:
864
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwabc944c5/images/small/PG.CJZERRICK.TAUPETX.PZ.jpg',
865
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwabc944c5/images/small/PG.CJZERRICK.TAUPETX.PZ.jpg',
866
+ title: 'Zerrick, Taupe'
867
+ },
868
+ {
869
+ alt: 'Zerrick, Taupe, small',
870
+ disBaseLink:
871
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5b4e54ad/images/small/PG.CJZERRICK.TAUPETX.BZ.jpg',
872
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw5b4e54ad/images/small/PG.CJZERRICK.TAUPETX.BZ.jpg',
873
+ title: 'Zerrick, Taupe'
874
+ }
875
+ ],
876
+ variationAttributes: [
877
+ {
878
+ id: 'color',
879
+ values: [
880
+ {
881
+ value: 'TAUPETX'
882
+ }
883
+ ]
884
+ }
885
+ ],
886
+ viewType: 'small'
887
+ },
888
+ {
889
+ images: [
890
+ {
891
+ alt: 'Zerrick, Black, swatch',
892
+ disBaseLink:
893
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcc030b86/images/swatch/PG.CJZERRICK.BLACKLE.CP.jpg',
894
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dwcc030b86/images/swatch/PG.CJZERRICK.BLACKLE.CP.jpg',
895
+ title: 'Zerrick, Black'
896
+ }
897
+ ],
898
+ variationAttributes: [
899
+ {
900
+ id: 'color',
901
+ values: [
902
+ {
903
+ value: 'BLACKLE'
904
+ }
905
+ ]
906
+ }
907
+ ],
908
+ viewType: 'swatch'
909
+ },
910
+ {
911
+ images: [
912
+ {
913
+ alt: 'Zerrick, Taupe, swatch',
914
+ disBaseLink:
915
+ 'https://edge.disstg.commercecloud.salesforce.com/dw/image/v2/ZZRF_001/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dc4320e/images/swatch/PG.CJZERRICK.TAUPETX.CP.jpg',
916
+ link: 'https://zzrf-001.dx.commercecloud.salesforce.com/on/demandware.static/-/Sites-apparel-m-catalog/default/dw9dc4320e/images/swatch/PG.CJZERRICK.TAUPETX.CP.jpg',
917
+ title: 'Zerrick, Taupe'
918
+ }
919
+ ],
920
+ variationAttributes: [
921
+ {
922
+ id: 'color',
923
+ values: [
924
+ {
925
+ value: 'TAUPETX'
926
+ }
927
+ ]
928
+ }
929
+ ],
930
+ viewType: 'swatch'
931
+ }
932
+ ],
933
+ inventory: {
934
+ ats: 1498,
935
+ backorderable: false,
936
+ id: 'inventory_m',
937
+ orderable: true,
938
+ preorderable: false,
939
+ stockLevel: 1498
940
+ },
941
+ longDescription: 'The perfect pump for any outfit!',
942
+ master: {
943
+ masterId: '25772717M',
944
+ orderable: true,
945
+ price: 63.36
946
+ },
947
+ minOrderQuantity: 1,
948
+ name: 'Zerrick',
949
+ pageDescription: 'The perfect pump for any outfit!',
950
+ pageTitle: 'Zerrick',
951
+ price: 63.36,
952
+ pricePerUnit: 63.36,
953
+ primaryCategoryId: 'womens-accessories-shoes',
954
+ recommendations: [
955
+ {
956
+ recommendationType: {
957
+ displayValue: 'Product Detail Page - Cross Sell',
958
+ value: 1
959
+ },
960
+ recommendedItemId: '25593254M'
961
+ },
962
+ {
963
+ recommendationType: {
964
+ displayValue: 'Product Detail Page - Cross Sell',
965
+ value: 1
966
+ },
967
+ recommendedItemId: '25720050M'
968
+ }
969
+ ],
970
+ shortDescription: 'The perfect pump for any outfit!',
971
+ stepQuantity: 1,
972
+ type: {
973
+ master: true
974
+ },
975
+ validFrom: {
976
+ default: '2011-03-01T05:00:00.000Z'
977
+ },
978
+ variants: [
979
+ {
980
+ orderable: true,
981
+ price: 63.36,
982
+ productId: '740357357531M',
983
+ variationValues: {
984
+ color: 'BLACKLE',
985
+ size: '065',
986
+ width: 'M'
987
+ }
988
+ },
989
+ {
990
+ orderable: true,
991
+ price: 63.36,
992
+ productId: '740357358095M',
993
+ variationValues: {
994
+ color: 'TAUPETX',
995
+ size: '065',
996
+ width: 'M'
997
+ }
998
+ },
999
+ {
1000
+ orderable: true,
1001
+ price: 63.36,
1002
+ productId: '740357357623M',
1003
+ variationValues: {
1004
+ color: 'BLACKLE',
1005
+ size: '110',
1006
+ width: 'M'
1007
+ }
1008
+ },
1009
+ {
1010
+ orderable: true,
1011
+ price: 63.36,
1012
+ productId: '740357357609M',
1013
+ variationValues: {
1014
+ color: 'BLACKLE',
1015
+ size: '100',
1016
+ width: 'M'
1017
+ }
1018
+ },
1019
+ {
1020
+ orderable: true,
1021
+ price: 63.36,
1022
+ productId: '740357358156M',
1023
+ variationValues: {
1024
+ color: 'TAUPETX',
1025
+ size: '095',
1026
+ width: 'M'
1027
+ }
1028
+ },
1029
+ {
1030
+ orderable: true,
1031
+ price: 63.36,
1032
+ productId: '740357358132M',
1033
+ variationValues: {
1034
+ color: 'TAUPETX',
1035
+ size: '085',
1036
+ width: 'M'
1037
+ }
1038
+ },
1039
+ {
1040
+ orderable: true,
1041
+ price: 63.36,
1042
+ productId: '740357358101M',
1043
+ variationValues: {
1044
+ color: 'TAUPETX',
1045
+ size: '070',
1046
+ width: 'M'
1047
+ }
1048
+ },
1049
+ {
1050
+ orderable: true,
1051
+ price: 63.36,
1052
+ productId: '740357357562M',
1053
+ variationValues: {
1054
+ color: 'BLACKLE',
1055
+ size: '080',
1056
+ width: 'M'
1057
+ }
1058
+ },
1059
+ {
1060
+ orderable: true,
1061
+ price: 63.36,
1062
+ productId: '740357357548M',
1063
+ variationValues: {
1064
+ color: 'BLACKLE',
1065
+ size: '070',
1066
+ width: 'M'
1067
+ }
1068
+ },
1069
+ {
1070
+ orderable: true,
1071
+ price: 63.36,
1072
+ productId: '740357358187M',
1073
+ variationValues: {
1074
+ color: 'TAUPETX',
1075
+ size: '110',
1076
+ width: 'M'
1077
+ }
1078
+ },
1079
+ {
1080
+ orderable: true,
1081
+ price: 63.36,
1082
+ productId: '740357357593M',
1083
+ variationValues: {
1084
+ color: 'BLACKLE',
1085
+ size: '095',
1086
+ width: 'M'
1087
+ }
1088
+ },
1089
+ {
1090
+ orderable: true,
1091
+ price: 63.36,
1092
+ productId: '740357357555M',
1093
+ variationValues: {
1094
+ color: 'BLACKLE',
1095
+ size: '075',
1096
+ width: 'M'
1097
+ }
1098
+ },
1099
+ {
1100
+ orderable: true,
1101
+ price: 63.36,
1102
+ productId: '740357357524M',
1103
+ variationValues: {
1104
+ color: 'BLACKLE',
1105
+ size: '060',
1106
+ width: 'M'
1107
+ }
1108
+ },
1109
+ {
1110
+ orderable: true,
1111
+ price: 63.36,
1112
+ productId: '740357358149M',
1113
+ variationValues: {
1114
+ color: 'TAUPETX',
1115
+ size: '090',
1116
+ width: 'M'
1117
+ }
1118
+ },
1119
+ {
1120
+ orderable: true,
1121
+ price: 63.36,
1122
+ productId: '740357358088M',
1123
+ variationValues: {
1124
+ color: 'TAUPETX',
1125
+ size: '060',
1126
+ width: 'M'
1127
+ }
1128
+ }
1129
+ ],
1130
+ variationAttributes: [
1131
+ {
1132
+ id: 'color',
1133
+ name: 'Colour',
1134
+ values: [
1135
+ {
1136
+ name: 'Black',
1137
+ orderable: true,
1138
+ value: 'BLACKLE'
1139
+ },
1140
+ {
1141
+ name: 'Taupe',
1142
+ orderable: true,
1143
+ value: 'TAUPETX'
1144
+ }
1145
+ ]
1146
+ },
1147
+ {
1148
+ id: 'size',
1149
+ name: 'Size',
1150
+ values: [
1151
+ {
1152
+ name: '6',
1153
+ orderable: true,
1154
+ value: '060'
1155
+ },
1156
+ {
1157
+ name: '6.5',
1158
+ orderable: true,
1159
+ value: '065'
1160
+ },
1161
+ {
1162
+ name: '7',
1163
+ orderable: true,
1164
+ value: '070'
1165
+ },
1166
+ {
1167
+ name: '7.5',
1168
+ orderable: true,
1169
+ value: '075'
1170
+ },
1171
+ {
1172
+ name: '8',
1173
+ orderable: true,
1174
+ value: '080'
1175
+ },
1176
+ {
1177
+ name: '8.5',
1178
+ orderable: true,
1179
+ value: '085'
1180
+ },
1181
+ {
1182
+ name: '9',
1183
+ orderable: true,
1184
+ value: '090'
1185
+ },
1186
+ {
1187
+ name: '9.5',
1188
+ orderable: true,
1189
+ value: '095'
1190
+ },
1191
+ {
1192
+ name: '10',
1193
+ orderable: true,
1194
+ value: '100'
1195
+ },
1196
+ {
1197
+ name: '11',
1198
+ orderable: true,
1199
+ value: '110'
1200
+ }
1201
+ ]
1202
+ },
1203
+ {
1204
+ id: 'width',
1205
+ name: 'Width',
1206
+ values: [
1207
+ {
1208
+ name: 'M',
1209
+ orderable: true,
1210
+ value: 'M'
1211
+ }
1212
+ ]
1213
+ }
1214
+ ]
1215
+ }
1216
+ ],
1217
+ shortDescription: 'Look for Winter',
1218
+ slugUrl:
1219
+ 'https://zzrf-001.dx.commercecloud.salesforce.com/s/RefArchGlobal/womens/clothing/outfits/winter-lookM.html?lang=en_GB',
1220
+ stepQuantity: 1,
1221
+ type: {
1222
+ set: true
1223
+ }
1224
+ }