workarea 3.4.16 → 3.4.17

Sign up to get free protection for your applications and to get access to all the features.
Files changed (572) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +81 -0
  3. metadata +10 -579
  4. data/docs/Gemfile +0 -8
  5. data/docs/Gemfile.lock +0 -130
  6. data/docs/bin/middleman +0 -29
  7. data/docs/config.rb +0 -87
  8. data/docs/config.ru +0 -7
  9. data/docs/data/articles.yml +0 -157
  10. data/docs/package.json +0 -15
  11. data/docs/source/404.html.erb +0 -13
  12. data/docs/source/articles/access-routes-in-javascript.html.md +0 -33
  13. data/docs/source/articles/add-a-content-area.html.md +0 -169
  14. data/docs/source/articles/add-a-content-block-type.html.md +0 -334
  15. data/docs/source/articles/add-a-report.html.md +0 -202
  16. data/docs/source/articles/add-css-through-the-admin-ui.html.md +0 -30
  17. data/docs/source/articles/add-javascript-through-a-manifest.html.md +0 -367
  18. data/docs/source/articles/add-javascript-through-a-view.html.md +0 -80
  19. data/docs/source/articles/add-javascript-through-the-admin-ui.html.md +0 -30
  20. data/docs/source/articles/add-metrics.html.md +0 -58
  21. data/docs/source/articles/add-or-replace-a-pricing-calculator.html.md +0 -150
  22. data/docs/source/articles/add-remove-or-change-a-mongoid-validation.html.md +0 -147
  23. data/docs/source/articles/add-remove-or-change-a-product-template.html.md +0 -142
  24. data/docs/source/articles/add-remove-sort-and-group-storefront-search-filters.html.md +0 -483
  25. data/docs/source/articles/add-stylesheets-through-a-manifest.html.md +0 -276
  26. data/docs/source/articles/add-system-content.html.md +0 -138
  27. data/docs/source/articles/analytics-overview.html.md +0 -51
  28. data/docs/source/articles/analyze-storefront-search-results.html.md +0 -261
  29. data/docs/source/articles/api-overview.html.md +0 -35
  30. data/docs/source/articles/appending.html.md +0 -506
  31. data/docs/source/articles/application-document.html.md +0 -88
  32. data/docs/source/articles/automated-javascript-testing.html.md +0 -162
  33. data/docs/source/articles/b2b-overview.html.md +0 -64
  34. data/docs/source/articles/browser-and-device-support.html.md +0 -47
  35. data/docs/source/articles/change-product-placeholder-image.html.md +0 -39
  36. data/docs/source/articles/change-storefront-search-results.html.md +0 -283
  37. data/docs/source/articles/change-the-storefront-product-pricing-ui.html.md +0 -348
  38. data/docs/source/articles/change-the-storefront-search-filters-ui.html.md +0 -103
  39. data/docs/source/articles/checkout.html.md +0 -479
  40. data/docs/source/articles/commerce-model.html.md +0 -164
  41. data/docs/source/articles/configuration-for-hosting.html.md +0 -106
  42. data/docs/source/articles/configuration.html.md +0 -406
  43. data/docs/source/articles/configure-a-payment-gateway.html.md +0 -58
  44. data/docs/source/articles/configure-asset-storage.html.md +0 -29
  45. data/docs/source/articles/configure-asset-types.html.md +0 -18
  46. data/docs/source/articles/configure-contact-form-subjects-list.html.md +0 -24
  47. data/docs/source/articles/configure-imageoptim.html.md +0 -23
  48. data/docs/source/articles/configure-locales.html.md +0 -45
  49. data/docs/source/articles/configure-logins-and-authentication.html.md +0 -42
  50. data/docs/source/articles/configure-low-inventory-threshold.html.md +0 -26
  51. data/docs/source/articles/configure-product-image-sizes-and-processing.html.md +0 -28
  52. data/docs/source/articles/content.html.md +0 -554
  53. data/docs/source/articles/contentable.html.md +0 -41
  54. data/docs/source/articles/contribute-code.html.md +0 -69
  55. data/docs/source/articles/contribute-documentation.html.md +0 -60
  56. data/docs/source/articles/create-a-custom-discount.html.md +0 -234
  57. data/docs/source/articles/create-a-new-app.html.md +0 -131
  58. data/docs/source/articles/create-a-plugin.html.md +0 -19
  59. data/docs/source/articles/create-a-style-guide.html.md +0 -71
  60. data/docs/source/articles/create-a-theme.html.md +0 -134
  61. data/docs/source/articles/css-architectural-overview.html.md +0 -89
  62. data/docs/source/articles/customize-a-helper.html.md +0 -91
  63. data/docs/source/articles/decoration.html.md +0 -415
  64. data/docs/source/articles/define-and-configure-inventory-policies.html.md +0 -107
  65. data/docs/source/articles/documentation-style-guide.html.md +0 -48
  66. data/docs/source/articles/documentation.html.md +0 -54
  67. data/docs/source/articles/domain-modeling.html.md +0 -82
  68. data/docs/source/articles/error-pages.html.md.erb +0 -95
  69. data/docs/source/articles/extension-overview.html.md +0 -152
  70. data/docs/source/articles/favicon-support.html.md +0 -112
  71. data/docs/source/articles/feature-spec-helper-stylesheet.html.md +0 -25
  72. data/docs/source/articles/featurejs-and-feature-spec-helper.html.md +0 -20
  73. data/docs/source/articles/help-and-support.html.md +0 -34
  74. data/docs/source/articles/html-fragment-caching.html.md +0 -46
  75. data/docs/source/articles/http-caching.html.md +0 -43
  76. data/docs/source/articles/i18n.html.md +0 -35
  77. data/docs/source/articles/images-flow.html.md +0 -10
  78. data/docs/source/articles/index-storefront-search-documents.html.md +0 -104
  79. data/docs/source/articles/infrastructure.html.md +0 -46
  80. data/docs/source/articles/installing.html.md +0 -61
  81. data/docs/source/articles/integrate-a-payment-gateway.html.md +0 -124
  82. data/docs/source/articles/integrate-a-web-analytics-provider.html.md +0 -35
  83. data/docs/source/articles/integrate-an-inventory-management-system.html.md +0 -88
  84. data/docs/source/articles/integrating-with-other-software.html.md +0 -59
  85. data/docs/source/articles/inventory.html.md +0 -352
  86. data/docs/source/articles/javascript-coding-standards.html.md +0 -30
  87. data/docs/source/articles/javascript-modules.html.md +0 -174
  88. data/docs/source/articles/javascript-overview.html.md +0 -62
  89. data/docs/source/articles/javascript-reference-documentation.html.md +0 -51
  90. data/docs/source/articles/javascript-templates.html.md +0 -52
  91. data/docs/source/articles/low-level-caching.html.md +0 -25
  92. data/docs/source/articles/maintain-a-plugin.html.md +0 -12
  93. data/docs/source/articles/maintenance-policy.html.md +0 -79
  94. data/docs/source/articles/navigable.html.md +0 -51
  95. data/docs/source/articles/navigating-the-code.html.md +0 -149
  96. data/docs/source/articles/navigation.html.md +0 -386
  97. data/docs/source/articles/order-life-cycle.html.md +0 -546
  98. data/docs/source/articles/order-pricing.html.md +0 -389
  99. data/docs/source/articles/orders-and-items.html.md +0 -210
  100. data/docs/source/articles/orders.html.md +0 -66
  101. data/docs/source/articles/overriding.html.md +0 -155
  102. data/docs/source/articles/overview.html.md +0 -43
  103. data/docs/source/articles/plugins-overview.html.md +0 -12
  104. data/docs/source/articles/prerequisites-and-dependencies.html.md +0 -202
  105. data/docs/source/articles/products.html.md.erb +0 -1270
  106. data/docs/source/articles/progressive-web-application-support.html.md +0 -148
  107. data/docs/source/articles/rails-asset-manifests.html.md +0 -33
  108. data/docs/source/articles/rails-asset-view-helpers.html.md +0 -25
  109. data/docs/source/articles/reading-data.html.md +0 -10
  110. data/docs/source/articles/releasable.html.md +0 -37
  111. data/docs/source/articles/report-a-bug.html.md +0 -75
  112. data/docs/source/articles/ruby-coding-standards.html.md +0 -10
  113. data/docs/source/articles/run-sidekiq-in-a-local-environment.html.md +0 -40
  114. data/docs/source/articles/searching.html.md +0 -1005
  115. data/docs/source/articles/security-policy.html.md +0 -42
  116. data/docs/source/articles/seeds.html.md +0 -345
  117. data/docs/source/articles/shipping.html.md +0 -756
  118. data/docs/source/articles/sort-and-exclude-product-options.html.md +0 -47
  119. data/docs/source/articles/storefront-search-features.html.md +0 -568
  120. data/docs/source/articles/storefront-searches.html.md +0 -126
  121. data/docs/source/articles/style-guides.html.md +0 -21
  122. data/docs/source/articles/stylesheet-coding-standards.html.md +0 -24
  123. data/docs/source/articles/stylesheets-overview.html.md +0 -67
  124. data/docs/source/articles/swappable-list-data-structure.html.md +0 -81
  125. data/docs/source/articles/system-emails.html.md +0 -102
  126. data/docs/source/articles/taggable.html.md +0 -8
  127. data/docs/source/articles/test-a-credit-card-transaction.html.md +0 -16
  128. data/docs/source/articles/test-if-a-plugin-is-installed.html.md +0 -34
  129. data/docs/source/articles/testing.html.md +0 -914
  130. data/docs/source/articles/themes-overview.html.md +0 -155
  131. data/docs/source/articles/translate-administrable-content.html.md +0 -14
  132. data/docs/source/articles/translate-javascript-content.html.md +0 -16
  133. data/docs/source/articles/translate-or-customize-message-content.html.md +0 -29
  134. data/docs/source/articles/translate-or-customize-static-content.html.md +0 -30
  135. data/docs/source/articles/use-an-existing-workarea-app.html.md +0 -108
  136. data/docs/source/articles/view-models.html.md +0 -509
  137. data/docs/source/articles/views.html.md +0 -14
  138. data/docs/source/articles/workers.html.md +0 -613
  139. data/docs/source/articles/writing-data.html.md +0 -10
  140. data/docs/source/cli.html.md +0 -163
  141. data/docs/source/favicon.ico +0 -0
  142. data/docs/source/images/3-variants-1-option.png +0 -0
  143. data/docs/source/images/3-variants-3-options.png +0 -0
  144. data/docs/source/images/3-years-primary-image.png +0 -0
  145. data/docs/source/images/404-storefront-error-page.png +0 -0
  146. data/docs/source/images/404-system-content-admin.png +0 -0
  147. data/docs/source/images/404.jpg +0 -0
  148. data/docs/source/images/5-years-primary-image.png +0 -0
  149. data/docs/source/images/activity-dashboard.png +0 -0
  150. data/docs/source/images/activity-for-object.png +0 -0
  151. data/docs/source/images/activity-ui.png +0 -0
  152. data/docs/source/images/adding-captioned-image-block-custom-icon.png +0 -0
  153. data/docs/source/images/adding-captioned-image-block-default-icon.png +0 -0
  154. data/docs/source/images/admin-alerts-ui.png +0 -0
  155. data/docs/source/images/admin-category-range-filters.png +0 -0
  156. data/docs/source/images/admin-for-3-column-hero.png +0 -0
  157. data/docs/source/images/admin-help-index.png +0 -0
  158. data/docs/source/images/admin-help-ui.png +0 -0
  159. data/docs/source/images/admin-javascript.png +0 -0
  160. data/docs/source/images/admin-notification-for-deactivated-discount.png +0 -0
  161. data/docs/source/images/admin-notifications-ui.png +0 -0
  162. data/docs/source/images/admin-product-show-page.png +0 -0
  163. data/docs/source/images/admin-products-index-page.png +0 -0
  164. data/docs/source/images/admin-range-filters.png +0 -0
  165. data/docs/source/images/admin-style-guides-navigation.png +0 -0
  166. data/docs/source/images/after-re-seeding.png +0 -0
  167. data/docs/source/images/after-seeding-localhost-3000.png +0 -0
  168. data/docs/source/images/after-seeding.png +0 -0
  169. data/docs/source/images/arrow.svg +0 -1
  170. data/docs/source/images/arrow_white.svg +0 -1
  171. data/docs/source/images/aws-resource-map.png +0 -0
  172. data/docs/source/images/backordered-until-output-on-inventory-sku-card.png +0 -0
  173. data/docs/source/images/before-seeding-localhost-3000.png +0 -0
  174. data/docs/source/images/before-seeding.png +0 -0
  175. data/docs/source/images/browsing-workarea-versions-on-the-web.png +0 -0
  176. data/docs/source/images/bulk-asset-upload-on-assets-index-page.png +0 -0
  177. data/docs/source/images/bulk-asset-upload-while-editing-content.png +0 -0
  178. data/docs/source/images/bundle-show-workarea-core.png +0 -0
  179. data/docs/source/images/bundle-show-workarea.png +0 -0
  180. data/docs/source/images/calendar-for-backordered-until-field.png +0 -0
  181. data/docs/source/images/captioned-image-block-in-storefront.png +0 -0
  182. data/docs/source/images/captioned-image-content-block-storefront-component-style-guide.png +0 -0
  183. data/docs/source/images/cart-system-content-in-admin.png +0 -0
  184. data/docs/source/images/cart-system-content-in-storefront.png +0 -0
  185. data/docs/source/images/checkout-addresses-guest.png +0 -0
  186. data/docs/source/images/checkout-addresses-user.png +0 -0
  187. data/docs/source/images/checkout-confirmation.png +0 -0
  188. data/docs/source/images/checkout-flow-0.png +0 -0
  189. data/docs/source/images/checkout-flow-1.png +0 -0
  190. data/docs/source/images/checkout-flow-2.png +0 -0
  191. data/docs/source/images/checkout-flow-3.png +0 -0
  192. data/docs/source/images/checkout-flow-4.png +0 -0
  193. data/docs/source/images/checkout-payment-guest.png +0 -0
  194. data/docs/source/images/checkout-payment-user.png +0 -0
  195. data/docs/source/images/checkout-shipping.png +0 -0
  196. data/docs/source/images/color-picker-component-admin-style-guide.png +0 -0
  197. data/docs/source/images/color-picker-component-on-content-editing-screen.png +0 -0
  198. data/docs/source/images/commerce-model-carts-orders.png +0 -0
  199. data/docs/source/images/commerce-model-order-pricing.png +0 -0
  200. data/docs/source/images/commerce-model.png +0 -0
  201. data/docs/source/images/configuring-an-index-pattern-in-kibana.png +0 -0
  202. data/docs/source/images/content-block-presets.png +0 -0
  203. data/docs/source/images/content-search-customization.png +0 -0
  204. data/docs/source/images/country-with-region-data-in-address-form.png +0 -0
  205. data/docs/source/images/country-without-region-data-in-address-form.png +0 -0
  206. data/docs/source/images/create-content-block-preset-ui.png +0 -0
  207. data/docs/source/images/credit-card-icons.png +0 -0
  208. data/docs/source/images/css-added-through-admin.png +0 -0
  209. data/docs/source/images/css-admin-ui.png +0 -0
  210. data/docs/source/images/current-configuration-shown-in-admin-settings.png +0 -0
  211. data/docs/source/images/customer-impersonation-in-admin.png +0 -0
  212. data/docs/source/images/customer-impersonation-in-store-front.png +0 -0
  213. data/docs/source/images/date-filter-same-day.png +0 -0
  214. data/docs/source/images/developer-toolbar-in-store-front.png +0 -0
  215. data/docs/source/images/discounts-sorted-by-most-redeemed.png +0 -0
  216. data/docs/source/images/edit-help-article.png +0 -0
  217. data/docs/source/images/editing-content-for-search-customization.png +0 -0
  218. data/docs/source/images/editing-dynamic-captioned-image-block.png +0 -0
  219. data/docs/source/images/editing-product-fields-in-the-admin.png +0 -0
  220. data/docs/source/images/editing-search-system-content.png +0 -0
  221. data/docs/source/images/editing-static-captioned-image-block-custom-icon.png +0 -0
  222. data/docs/source/images/editing-static-captioned-image-block-default-icon.png +0 -0
  223. data/docs/source/images/external.svg +0 -1
  224. data/docs/source/images/favicon_16.png +0 -0
  225. data/docs/source/images/favicon_180.png +0 -0
  226. data/docs/source/images/favicon_32.png +0 -0
  227. data/docs/source/images/filters-all.png +0 -0
  228. data/docs/source/images/filters-control.png +0 -0
  229. data/docs/source/images/filters-custom.png +0 -0
  230. data/docs/source/images/filters-groups.png +0 -0
  231. data/docs/source/images/filters-material.png +0 -0
  232. data/docs/source/images/filters-omitted.png +0 -0
  233. data/docs/source/images/filters-pinned.png +0 -0
  234. data/docs/source/images/filters-range.png +0 -0
  235. data/docs/source/images/filters-sorted.png +0 -0
  236. data/docs/source/images/filters-wrapping-to-second-line-in-admin.png +0 -0
  237. data/docs/source/images/generic-product-template-images-no-options-selected.png +0 -0
  238. data/docs/source/images/generic-product-template-images-options-selected.png +0 -0
  239. data/docs/source/images/generic-template.png +0 -0
  240. data/docs/source/images/hosting.svg +0 -1
  241. data/docs/source/images/image-group-content-block-in-storefront.png +0 -0
  242. data/docs/source/images/images.svg +0 -1
  243. data/docs/source/images/import-export-screenshot.png +0 -0
  244. data/docs/source/images/invalid-display.png +0 -0
  245. data/docs/source/images/itcss.png +0 -0
  246. data/docs/source/images/kibana-dev-tools-console.png +0 -0
  247. data/docs/source/images/layout-content-admin-with-2-areas.png +0 -0
  248. data/docs/source/images/layout-content-admin-with-3-areas.png +0 -0
  249. data/docs/source/images/link-to-search-system-content.png +0 -0
  250. data/docs/source/images/logo.svg +0 -1
  251. data/docs/source/images/menu.svg +0 -2
  252. data/docs/source/images/mongo-replica-set.svg +0 -1
  253. data/docs/source/images/multi-column-hero-blocks.png +0 -0
  254. data/docs/source/images/option-selects-product-template-images-options-selected.png +0 -0
  255. data/docs/source/images/option-selects-template.png +0 -0
  256. data/docs/source/images/option-thumbnails-template.png +0 -0
  257. data/docs/source/images/order-item-total-price-diagram.png +0 -0
  258. data/docs/source/images/order-pricing-cart-example.png +0 -0
  259. data/docs/source/images/order-pricing-example-adjustments.png +0 -0
  260. data/docs/source/images/order-pricing-example-totals.png +0 -0
  261. data/docs/source/images/order-pricing-placed-order-example.png +0 -0
  262. data/docs/source/images/order-shipping-total-diagram.png +0 -0
  263. data/docs/source/images/order-show-with-multiple-tenders.png +0 -0
  264. data/docs/source/images/order-subtotal-price-diagram.png +0 -0
  265. data/docs/source/images/order-tax-total-diagram.png +0 -0
  266. data/docs/source/images/order-total-price-diagram.png +0 -0
  267. data/docs/source/images/order-total-value-diagram.png +0 -0
  268. data/docs/source/images/orders-dashboard-links.png +0 -0
  269. data/docs/source/images/oval.svg +0 -1
  270. data/docs/source/images/payment-icon-storefront-style-guide.png +0 -0
  271. data/docs/source/images/people-dashboard-links.png +0 -0
  272. data/docs/source/images/price-adjustments-diagram.png +0 -0
  273. data/docs/source/images/price-display-no-options.png +0 -0
  274. data/docs/source/images/price-display-options-selected.png +0 -0
  275. data/docs/source/images/pricing-calculators-diagram.png +0 -0
  276. data/docs/source/images/product-list-content-block-admin.png +0 -0
  277. data/docs/source/images/product-list-content-block-in-store-front.png +0 -0
  278. data/docs/source/images/promo-products-excluded-autocomplete-results-after.png +0 -0
  279. data/docs/source/images/promo-products-excluded-featured-category-results-after.png +0 -0
  280. data/docs/source/images/promo-products-excluded-recommendations-results-after.png +0 -0
  281. data/docs/source/images/promo-products-excluded-search-category-results-after.png +0 -0
  282. data/docs/source/images/promo-products-excluded-search-results-after.png +0 -0
  283. data/docs/source/images/promo-products-included-autocomplete-results-before.png +0 -0
  284. data/docs/source/images/promo-products-included-featured-category-results-before.png +0 -0
  285. data/docs/source/images/promo-products-included-recommendations-results-before.png +0 -0
  286. data/docs/source/images/promo-products-included-search-category-results-before.png +0 -0
  287. data/docs/source/images/promo-products-included-search-results-before.png +0 -0
  288. data/docs/source/images/rails-version-constraint.png +0 -0
  289. data/docs/source/images/re-enable-discount.png +0 -0
  290. data/docs/source/images/reading-data.svg +0 -1
  291. data/docs/source/images/readme-hero.png +0 -0
  292. data/docs/source/images/redesigned-customized-sort-for-search-results.png +0 -0
  293. data/docs/source/images/reviews-summary-above-share-buttons.png +0 -0
  294. data/docs/source/images/reviews-summary-below-product-name.png +0 -0
  295. data/docs/source/images/reviews-summary-below-share-buttons.png +0 -0
  296. data/docs/source/images/reviews-summary-removed.png +0 -0
  297. data/docs/source/images/rsa-fingerprint-for-stash.png +0 -0
  298. data/docs/source/images/ruby-version-constraint.png +0 -0
  299. data/docs/source/images/script-tag-added-through-admin.png +0 -0
  300. data/docs/source/images/search-analysis-admin-alternate-rendering.png +0 -0
  301. data/docs/source/images/search-analysis-admin.png +0 -0
  302. data/docs/source/images/search-quality-report.png +0 -0
  303. data/docs/source/images/search.svg +0 -1
  304. data/docs/source/images/searching-for-cart-system-content-in-admin.png +0 -0
  305. data/docs/source/images/searching-for-layout-system-content-in-admin.png +0 -0
  306. data/docs/source/images/seeded-admin.png +0 -0
  307. data/docs/source/images/seeds-from-plugins.png +0 -0
  308. data/docs/source/images/seo-metadata-automation-ui.png +0 -0
  309. data/docs/source/images/show-password-button.png +0 -0
  310. data/docs/source/images/storefront-autocomplete.png +0 -0
  311. data/docs/source/images/storefront-category-summary-content-block.png +0 -0
  312. data/docs/source/images/storefront-category.png +0 -0
  313. data/docs/source/images/storefront-product-after-overriding.png +0 -0
  314. data/docs/source/images/storefront-product-before-overriding.png +0 -0
  315. data/docs/source/images/storefront-product-browse-page.png +0 -0
  316. data/docs/source/images/storefront-product-recommendations.png +0 -0
  317. data/docs/source/images/storefront-product-show-page.png +0 -0
  318. data/docs/source/images/storefront-requests-and-search-requests.png +0 -0
  319. data/docs/source/images/storefront-search-request-handling.png +0 -0
  320. data/docs/source/images/storefront-search-response-creation.png +0 -0
  321. data/docs/source/images/storefront-search.png +0 -0
  322. data/docs/source/images/storefront-style-guides-navigation.png +0 -0
  323. data/docs/source/images/styles.css +0 -3
  324. data/docs/source/images/tax-categories-ui.png +0 -0
  325. data/docs/source/images/tax-rates-ui.png +0 -0
  326. data/docs/source/images/unpurchasable-product.png +0 -0
  327. data/docs/source/images/url-redirects-filtering.png +0 -0
  328. data/docs/source/images/utility-nav-area-in-admin.png +0 -0
  329. data/docs/source/images/utility-nav-area-in-storefront.png +0 -0
  330. data/docs/source/images/validation-message-in-storefront.png +0 -0
  331. data/docs/source/images/view-model-interface.png +0 -0
  332. data/docs/source/images/viewing-workarea-version-in-source.png +0 -0
  333. data/docs/source/images/workarea.svg +0 -1
  334. data/docs/source/images/worst-performing-searches-on-results-customization-page.png +0 -0
  335. data/docs/source/images/writing-data.svg +0 -1
  336. data/docs/source/index.html.erb +0 -166
  337. data/docs/source/javascripts/jquery.js +0 -2
  338. data/docs/source/javascripts/lunr.js +0 -7
  339. data/docs/source/javascripts/site.js +0 -299
  340. data/docs/source/javascripts/vendor/highlight.pack.js +0 -2
  341. data/docs/source/layouts/article.erb +0 -106
  342. data/docs/source/layouts/bare.erb +0 -46
  343. data/docs/source/layouts/layout.erb +0 -43
  344. data/docs/source/release-notes/workarea-3-0-0.html.md +0 -146
  345. data/docs/source/release-notes/workarea-3-0-1.html.md +0 -161
  346. data/docs/source/release-notes/workarea-3-0-10.html.md +0 -39
  347. data/docs/source/release-notes/workarea-3-0-11.html.md +0 -277
  348. data/docs/source/release-notes/workarea-3-0-12.html.md +0 -14
  349. data/docs/source/release-notes/workarea-3-0-13.html.md +0 -153
  350. data/docs/source/release-notes/workarea-3-0-14.html.md +0 -93
  351. data/docs/source/release-notes/workarea-3-0-15.html.md +0 -107
  352. data/docs/source/release-notes/workarea-3-0-16.html.md +0 -36
  353. data/docs/source/release-notes/workarea-3-0-17.html.md +0 -141
  354. data/docs/source/release-notes/workarea-3-0-18.html.md +0 -123
  355. data/docs/source/release-notes/workarea-3-0-19.html.md +0 -160
  356. data/docs/source/release-notes/workarea-3-0-2.html.md +0 -222
  357. data/docs/source/release-notes/workarea-3-0-20.html.md +0 -95
  358. data/docs/source/release-notes/workarea-3-0-21.html.md +0 -168
  359. data/docs/source/release-notes/workarea-3-0-22.html.md +0 -268
  360. data/docs/source/release-notes/workarea-3-0-23.html.md +0 -173
  361. data/docs/source/release-notes/workarea-3-0-24.html.md +0 -19
  362. data/docs/source/release-notes/workarea-3-0-25.html.md +0 -26
  363. data/docs/source/release-notes/workarea-3-0-26.html.md +0 -199
  364. data/docs/source/release-notes/workarea-3-0-27.html.md +0 -113
  365. data/docs/source/release-notes/workarea-3-0-28.html.md +0 -39
  366. data/docs/source/release-notes/workarea-3-0-29.html.md +0 -73
  367. data/docs/source/release-notes/workarea-3-0-3.html.md +0 -35
  368. data/docs/source/release-notes/workarea-3-0-30.html.md +0 -186
  369. data/docs/source/release-notes/workarea-3-0-31.html.md +0 -125
  370. data/docs/source/release-notes/workarea-3-0-32.html.md +0 -73
  371. data/docs/source/release-notes/workarea-3-0-33.html.md +0 -137
  372. data/docs/source/release-notes/workarea-3-0-34.html.md +0 -203
  373. data/docs/source/release-notes/workarea-3-0-35.html.md +0 -205
  374. data/docs/source/release-notes/workarea-3-0-36.html.md +0 -105
  375. data/docs/source/release-notes/workarea-3-0-37.html.md +0 -144
  376. data/docs/source/release-notes/workarea-3-0-38.html.md +0 -73
  377. data/docs/source/release-notes/workarea-3-0-39.html.md +0 -77
  378. data/docs/source/release-notes/workarea-3-0-4.html.md +0 -14
  379. data/docs/source/release-notes/workarea-3-0-40.html.md +0 -130
  380. data/docs/source/release-notes/workarea-3-0-41.html.md +0 -70
  381. data/docs/source/release-notes/workarea-3-0-42.html.md +0 -52
  382. data/docs/source/release-notes/workarea-3-0-43.html.md +0 -72
  383. data/docs/source/release-notes/workarea-3-0-44.html.md +0 -93
  384. data/docs/source/release-notes/workarea-3-0-45.html.md +0 -61
  385. data/docs/source/release-notes/workarea-3-0-46.html.md +0 -171
  386. data/docs/source/release-notes/workarea-3-0-47.html.md +0 -130
  387. data/docs/source/release-notes/workarea-3-0-48.html.md +0 -160
  388. data/docs/source/release-notes/workarea-3-0-49.html.md +0 -28
  389. data/docs/source/release-notes/workarea-3-0-5.html.md +0 -225
  390. data/docs/source/release-notes/workarea-3-0-50.html.md +0 -74
  391. data/docs/source/release-notes/workarea-3-0-51.html.md +0 -61
  392. data/docs/source/release-notes/workarea-3-0-52.html.md +0 -76
  393. data/docs/source/release-notes/workarea-3-0-53.html.md +0 -126
  394. data/docs/source/release-notes/workarea-3-0-54.html.md +0 -112
  395. data/docs/source/release-notes/workarea-3-0-55.html.md +0 -105
  396. data/docs/source/release-notes/workarea-3-0-56.html.md +0 -56
  397. data/docs/source/release-notes/workarea-3-0-57.html.md +0 -82
  398. data/docs/source/release-notes/workarea-3-0-58.html.md +0 -153
  399. data/docs/source/release-notes/workarea-3-0-59.html.md +0 -78
  400. data/docs/source/release-notes/workarea-3-0-6.html.md +0 -165
  401. data/docs/source/release-notes/workarea-3-0-60.html.md +0 -43
  402. data/docs/source/release-notes/workarea-3-0-61.html.md +0 -46
  403. data/docs/source/release-notes/workarea-3-0-62.html.md +0 -23
  404. data/docs/source/release-notes/workarea-3-0-63.html.md +0 -25
  405. data/docs/source/release-notes/workarea-3-0-64.html.md +0 -25
  406. data/docs/source/release-notes/workarea-3-0-65.html.md +0 -37
  407. data/docs/source/release-notes/workarea-3-0-7.html.md +0 -207
  408. data/docs/source/release-notes/workarea-3-0-8.html.md +0 -337
  409. data/docs/source/release-notes/workarea-3-0-9.html.md +0 -196
  410. data/docs/source/release-notes/workarea-3-1-0.html.md +0 -414
  411. data/docs/source/release-notes/workarea-3-1-1.html.md +0 -139
  412. data/docs/source/release-notes/workarea-3-1-10.html.md +0 -19
  413. data/docs/source/release-notes/workarea-3-1-11.html.md +0 -27
  414. data/docs/source/release-notes/workarea-3-1-12.html.md +0 -216
  415. data/docs/source/release-notes/workarea-3-1-13.html.md +0 -113
  416. data/docs/source/release-notes/workarea-3-1-14.html.md +0 -39
  417. data/docs/source/release-notes/workarea-3-1-15.html.md +0 -107
  418. data/docs/source/release-notes/workarea-3-1-16.html.md +0 -188
  419. data/docs/source/release-notes/workarea-3-1-17.html.md +0 -141
  420. data/docs/source/release-notes/workarea-3-1-18.html.md +0 -73
  421. data/docs/source/release-notes/workarea-3-1-19.html.md +0 -137
  422. data/docs/source/release-notes/workarea-3-1-2.html.md +0 -55
  423. data/docs/source/release-notes/workarea-3-1-20.html.md +0 -203
  424. data/docs/source/release-notes/workarea-3-1-21.html.md +0 -205
  425. data/docs/source/release-notes/workarea-3-1-22.html.md +0 -121
  426. data/docs/source/release-notes/workarea-3-1-23.html.md +0 -144
  427. data/docs/source/release-notes/workarea-3-1-24.html.md +0 -94
  428. data/docs/source/release-notes/workarea-3-1-25.html.md +0 -77
  429. data/docs/source/release-notes/workarea-3-1-26.html.md +0 -130
  430. data/docs/source/release-notes/workarea-3-1-27.html.md +0 -70
  431. data/docs/source/release-notes/workarea-3-1-28.html.md +0 -52
  432. data/docs/source/release-notes/workarea-3-1-29.html.md +0 -44
  433. data/docs/source/release-notes/workarea-3-1-3.html.md +0 -185
  434. data/docs/source/release-notes/workarea-3-1-30.html.md +0 -72
  435. data/docs/source/release-notes/workarea-3-1-31.html.md +0 -93
  436. data/docs/source/release-notes/workarea-3-1-32.html.md +0 -61
  437. data/docs/source/release-notes/workarea-3-1-33.html.md +0 -171
  438. data/docs/source/release-notes/workarea-3-1-34.html.md +0 -130
  439. data/docs/source/release-notes/workarea-3-1-35.html.md +0 -179
  440. data/docs/source/release-notes/workarea-3-1-36.html.md +0 -28
  441. data/docs/source/release-notes/workarea-3-1-37.html.md +0 -74
  442. data/docs/source/release-notes/workarea-3-1-38.html.md +0 -61
  443. data/docs/source/release-notes/workarea-3-1-39.html.md +0 -96
  444. data/docs/source/release-notes/workarea-3-1-4.html.md +0 -148
  445. data/docs/source/release-notes/workarea-3-1-40.html.md +0 -126
  446. data/docs/source/release-notes/workarea-3-1-41.html.md +0 -128
  447. data/docs/source/release-notes/workarea-3-1-42.html.md +0 -105
  448. data/docs/source/release-notes/workarea-3-1-43.html.md +0 -37
  449. data/docs/source/release-notes/workarea-3-1-44.html.md +0 -82
  450. data/docs/source/release-notes/workarea-3-1-45.html.md +0 -153
  451. data/docs/source/release-notes/workarea-3-1-46.html.md +0 -91
  452. data/docs/source/release-notes/workarea-3-1-47.html.md +0 -65
  453. data/docs/source/release-notes/workarea-3-1-48.html.md +0 -46
  454. data/docs/source/release-notes/workarea-3-1-49.html.md +0 -23
  455. data/docs/source/release-notes/workarea-3-1-5.html.md +0 -169
  456. data/docs/source/release-notes/workarea-3-1-50.html.md +0 -42
  457. data/docs/source/release-notes/workarea-3-1-51.html.md +0 -25
  458. data/docs/source/release-notes/workarea-3-1-52.html.md +0 -57
  459. data/docs/source/release-notes/workarea-3-1-6.html.md +0 -117
  460. data/docs/source/release-notes/workarea-3-1-7.html.md +0 -176
  461. data/docs/source/release-notes/workarea-3-1-8.html.md +0 -283
  462. data/docs/source/release-notes/workarea-3-1-9.html.md +0 -212
  463. data/docs/source/release-notes/workarea-3-2-0.html.md +0 -1705
  464. data/docs/source/release-notes/workarea-3-2-1.html.md +0 -216
  465. data/docs/source/release-notes/workarea-3-2-10.html.md +0 -237
  466. data/docs/source/release-notes/workarea-3-2-11.html.md +0 -121
  467. data/docs/source/release-notes/workarea-3-2-12.html.md +0 -145
  468. data/docs/source/release-notes/workarea-3-2-13.html.md +0 -138
  469. data/docs/source/release-notes/workarea-3-2-14.html.md +0 -77
  470. data/docs/source/release-notes/workarea-3-2-15.html.md +0 -130
  471. data/docs/source/release-notes/workarea-3-2-16.html.md +0 -111
  472. data/docs/source/release-notes/workarea-3-2-17.html.md +0 -52
  473. data/docs/source/release-notes/workarea-3-2-18.html.md +0 -44
  474. data/docs/source/release-notes/workarea-3-2-19.html.md +0 -72
  475. data/docs/source/release-notes/workarea-3-2-2.html.md +0 -145
  476. data/docs/source/release-notes/workarea-3-2-20.html.md +0 -93
  477. data/docs/source/release-notes/workarea-3-2-21.html.md +0 -61
  478. data/docs/source/release-notes/workarea-3-2-22.html.md +0 -154
  479. data/docs/source/release-notes/workarea-3-2-23.html.md +0 -130
  480. data/docs/source/release-notes/workarea-3-2-24.html.md +0 -200
  481. data/docs/source/release-notes/workarea-3-2-25.html.md +0 -28
  482. data/docs/source/release-notes/workarea-3-2-26.html.md +0 -94
  483. data/docs/source/release-notes/workarea-3-2-27.html.md +0 -61
  484. data/docs/source/release-notes/workarea-3-2-28.html.md +0 -96
  485. data/docs/source/release-notes/workarea-3-2-29.html.md +0 -126
  486. data/docs/source/release-notes/workarea-3-2-30.html.md +0 -112
  487. data/docs/source/release-notes/workarea-3-2-31.html.md +0 -105
  488. data/docs/source/release-notes/workarea-3-2-32.html.md +0 -56
  489. data/docs/source/release-notes/workarea-3-2-33.html.md +0 -82
  490. data/docs/source/release-notes/workarea-3-2-34.html.md +0 -153
  491. data/docs/source/release-notes/workarea-3-2-35.html.md +0 -91
  492. data/docs/source/release-notes/workarea-3-2-36.html.md +0 -118
  493. data/docs/source/release-notes/workarea-3-2-37.html.md +0 -46
  494. data/docs/source/release-notes/workarea-3-2-38.html.md +0 -23
  495. data/docs/source/release-notes/workarea-3-2-39.html.md +0 -42
  496. data/docs/source/release-notes/workarea-3-2-4.html.md +0 -109
  497. data/docs/source/release-notes/workarea-3-2-40.html.md +0 -25
  498. data/docs/source/release-notes/workarea-3-2-41.html.md +0 -90
  499. data/docs/source/release-notes/workarea-3-2-5.html.md +0 -186
  500. data/docs/source/release-notes/workarea-3-2-6.html.md +0 -173
  501. data/docs/source/release-notes/workarea-3-2-7.html.md +0 -89
  502. data/docs/source/release-notes/workarea-3-2-8.html.md +0 -137
  503. data/docs/source/release-notes/workarea-3-2-9.html.md +0 -219
  504. data/docs/source/release-notes/workarea-3-3-0.html.md +0 -1272
  505. data/docs/source/release-notes/workarea-3-3-1.html.md +0 -324
  506. data/docs/source/release-notes/workarea-3-3-10.html.md +0 -69
  507. data/docs/source/release-notes/workarea-3-3-11.html.md +0 -72
  508. data/docs/source/release-notes/workarea-3-3-12.html.md +0 -136
  509. data/docs/source/release-notes/workarea-3-3-13.html.md +0 -61
  510. data/docs/source/release-notes/workarea-3-3-14.html.md +0 -196
  511. data/docs/source/release-notes/workarea-3-3-15.html.md +0 -167
  512. data/docs/source/release-notes/workarea-3-3-16.html.md +0 -234
  513. data/docs/source/release-notes/workarea-3-3-17.html.md +0 -82
  514. data/docs/source/release-notes/workarea-3-3-18.html.md +0 -165
  515. data/docs/source/release-notes/workarea-3-3-19.html.md +0 -106
  516. data/docs/source/release-notes/workarea-3-3-2.html.md +0 -72
  517. data/docs/source/release-notes/workarea-3-3-20.html.md +0 -116
  518. data/docs/source/release-notes/workarea-3-3-21.html.md +0 -228
  519. data/docs/source/release-notes/workarea-3-3-22.html.md +0 -125
  520. data/docs/source/release-notes/workarea-3-3-23.html.md +0 -154
  521. data/docs/source/release-notes/workarea-3-3-24.html.md +0 -70
  522. data/docs/source/release-notes/workarea-3-3-25.html.md +0 -114
  523. data/docs/source/release-notes/workarea-3-3-26.html.md +0 -260
  524. data/docs/source/release-notes/workarea-3-3-27.html.md +0 -138
  525. data/docs/source/release-notes/workarea-3-3-28.html.md +0 -147
  526. data/docs/source/release-notes/workarea-3-3-29.html.md +0 -63
  527. data/docs/source/release-notes/workarea-3-3-3.html.md +0 -153
  528. data/docs/source/release-notes/workarea-3-3-30.html.md +0 -102
  529. data/docs/source/release-notes/workarea-3-3-31.html.md +0 -57
  530. data/docs/source/release-notes/workarea-3-3-32.html.md +0 -44
  531. data/docs/source/release-notes/workarea-3-3-33.html.md +0 -114
  532. data/docs/source/release-notes/workarea-3-3-34.html.md +0 -29
  533. data/docs/source/release-notes/workarea-3-3-4.html.md +0 -332
  534. data/docs/source/release-notes/workarea-3-3-5.html.md +0 -242
  535. data/docs/source/release-notes/workarea-3-3-6.html.md +0 -100
  536. data/docs/source/release-notes/workarea-3-3-7.html.md +0 -148
  537. data/docs/source/release-notes/workarea-3-3-8.html.md +0 -163
  538. data/docs/source/release-notes/workarea-3-3-9.html.md +0 -93
  539. data/docs/source/release-notes/workarea-3-4-0.html.md +0 -580
  540. data/docs/source/release-notes/workarea-3-4-1.html.md +0 -150
  541. data/docs/source/release-notes/workarea-3-4-10.html.md +0 -72
  542. data/docs/source/release-notes/workarea-3-4-11.html.md +0 -60
  543. data/docs/source/release-notes/workarea-3-4-12.html.md +0 -155
  544. data/docs/source/release-notes/workarea-3-4-15.html.md +0 -100
  545. data/docs/source/release-notes/workarea-3-4-16.html.md +0 -88
  546. data/docs/source/release-notes/workarea-3-4-2.html.md +0 -188
  547. data/docs/source/release-notes/workarea-3-4-3.html.md +0 -136
  548. data/docs/source/release-notes/workarea-3-4-4.html.md +0 -114
  549. data/docs/source/release-notes/workarea-3-4-5.html.md +0 -275
  550. data/docs/source/release-notes/workarea-3-4-6.html.md +0 -169
  551. data/docs/source/release-notes/workarea-3-4-7.html.md +0 -162
  552. data/docs/source/release-notes/workarea-3-4-8.html.md +0 -95
  553. data/docs/source/release-notes/workarea-3-4-9.html.md +0 -135
  554. data/docs/source/release-notes.html.md +0 -261
  555. data/docs/source/search.html.erb +0 -34
  556. data/docs/source/shared/_header.erb +0 -61
  557. data/docs/source/shared/_svgs.erb +0 -17
  558. data/docs/source/style_guide/index.html.erb +0 -382
  559. data/docs/source/stylesheets/_base.scss +0 -125
  560. data/docs/source/stylesheets/_components.scss +0 -669
  561. data/docs/source/stylesheets/_helpers.scss +0 -10
  562. data/docs/source/stylesheets/_opinions.scss +0 -42
  563. data/docs/source/stylesheets/_settings.scss +0 -56
  564. data/docs/source/stylesheets/_typography.scss +0 -119
  565. data/docs/source/stylesheets/site.css.scss +0 -14
  566. data/docs/source/stylesheets/vendor/_avalanche.scss +0 -328
  567. data/docs/source/stylesheets/vendor/_normalize.scss +0 -341
  568. data/docs/source/stylesheets/vendor/highlight/_tomorrow_night_blue.scss +0 -75
  569. data/docs/source/upgrade-guides/workarea-3-4-0.html.md +0 -152
  570. data/docs/source/upgrade-guides.html.md +0 -18
  571. data/docs/workarea_renderer.rb +0 -8
  572. data/docs/yarn.lock +0 -2522
@@ -1,82 +0,0 @@
1
- ---
2
- title: Domain Modeling
3
- excerpt: Here are a few key concepts related to domain modeling and how they are applied within the platform.
4
- ---
5
-
6
- # Domain Modeling
7
-
8
- Here are a few key concepts related to domain modeling and how they are applied within the platform.
9
-
10
- **Note:** It's important to keep in mind these are guidelines, and are not followed completely or religiously. Instead, think of them as heuristics when reading the code or extending elements of the platform.
11
-
12
- ## Bounded Contexts
13
-
14
- With large domains (ecommerce is certainly one of these), it becomes difficult to track the intricacies of how models relate to one another. Therefore, Workarea separates these models into different contexts as a way to break down the bigger picture into more manageable pieces. Each context addresses a single problem or set of problems within the larger system. This technique reduces coupling along domain lines and allows functionality to change independently.
15
-
16
- To see this in Workarea, look at how the `app/models` directory in Workarea Core is divided. Each subdirectory is a bounded context, such as the following:
17
-
18
- - `Catalog`
19
- - `Content`
20
- - `Fulfillment`
21
- - `Inventory`
22
- - `Navigation`
23
- - `Order`
24
- - `Payment`
25
- - `Pricing`
26
- - `Recommendation`
27
- - `Shipping`
28
- - `Tax`
29
- - `User`
30
-
31
- ### Orders Example
32
-
33
- From a customer's perspective, an "order" might contain the following elements:
34
-
35
- - Products
36
- - Prices
37
- - Shipping method
38
- - Credit card
39
-
40
- By handling these problems separately, the code/modeling/logic for each is much simpler and less coupled. For instance, logic around what shipping methods are available has no coupling to putting together the pricing for the order, even though shipping methods will always have and depend on a price.
41
-
42
- However, to present the order to the customer, Workarea pulls:
43
-
44
- - Some products from the `Catalog::Product` class
45
- - Pricing for the order items from the `Pricing` engine
46
- - Available shipping methods from the `Shipping::Method` class
47
- - A credit card from the `Payment`
48
-
49
- This is the responsibility of the view model layer (and one of the reasons it exists).
50
-
51
- ### Pricing Example
52
-
53
- In another example, pricing from a business user's perspective probably includes several elements:
54
-
55
- - SKU price
56
- - Discounts
57
- - Shipping costs
58
- - Taxes
59
-
60
- This can get quite complicated, so it is effective to break the problem apart:
61
-
62
- - SKU price - stored and calculated in the `Pricing` engine
63
- - Discounts - stored and calculated in the `Pricing` engine
64
- - Shipping costs - stored and calculated by the `Shipping` module and totalled by the `Pricing` engine
65
- - Taxes - rates are stored calculated by the `Tax` module, but applied by the `Pricing` engine
66
-
67
- This design makes it much easier to swap out how shipping or taxes are determined. These can be significant problems in their own right, and many implementations use third parties for these purposes.
68
-
69
- ## Shared Models
70
-
71
- There are some things that the contexts share. Changing these classes may/will require cooperation from a potentially broad range of classes, so it's a risky move.
72
-
73
- Examples of classes that are shared include:
74
-
75
- - `Address` - generically models an address
76
- - `PriceAdjustment` - represents an adjustment to price, used for tracking/calculating prices
77
- - `Region` and `Country` - models countries and subdivisions of countries
78
- - `ShippingOption` - models a shipping method selectable or selected by a user
79
-
80
- So `PriceAdjustment` is used by the `Pricing` engine to create the pricing on the `Order`, `Shipping::Shipment`, etc.
81
-
82
-
@@ -1,95 +0,0 @@
1
- ---
2
- title: Error Pages
3
- excerpt: Workarea Storefront provides an errors controller through which it routes all 404 and 500 errors, and an errors view, which it conditionally renders for HTML responses in place of the static 404 and 500 error pages provided by Rails.[1] Storefront err
4
- ---
5
-
6
- # Error Pages
7
-
8
- Workarea Storefront provides an errors controller through which it routes all 404 and 500 errors, and an errors view, which it conditionally renders for HTML responses in place of the static 404 and 500 error pages provided by Rails.<sup><a href="#notes" id="note-1-context">[1]</a></sup> Storefront error pages provide several advantages over the Rails defaults.
9
-
10
- - Each error page renders with administrable system content, specific to the error type (404 or 500)
11
- - The error pages use the Storefront layout, providing a consistent look and feel, as well as global functionality such as search and navigation
12
- - The errors view is a standard Workarea view, which you can [override](overriding.html) to extend as necessary
13
-
14
- For these reasons, **Workarea 3.3 changes error page rendering to _always_ use Workarea error pages instead of the Rails defaults**.
15
-
16
- ## Use Workarea Error Pages
17
-
18
- To use the Storefront errors view with administrable content in place of the default Rails error pages, ensure [system contents](content.html#system-content) with the following names exist within each environment:
19
-
20
- - `'Not Found'` for 404 pages
21
- - `'Internal Server Error'` for 500 pages
22
-
23
- (Since Workarea 3.3, the errors controller creates these contents on demand, so it isn't necessary to create them in advance. However, you should create them if the retailer would like to customize the content for these pages.)
24
-
25
- The default customer service pages [seeds](seeds.html) create these system contents within development environments. For all other environments, create these contents through any Ruby interface to which you have access (e.g.&nbsp;Rails console/runner/task). Refer to the example in Listing 1.
26
-
27
- <!-- <figure id="listing-1">
28
- <figcaption>
29
- <p>Listing 1: Excerpt from <i>workarea-core-3.2.4/app/seeds/workarea/customer_service_pages_seeds.rb</i></p>
30
- </figcaption> -->
31
-
32
- Listing 1: Excerpt from _workarea-core-3.2.4/app/seeds/workarea/customer\_service\_pages\_seeds.rb_
33
-
34
- ```ruby
35
- module Workarea
36
- class CustomerServicePagesSeeds
37
- def perform
38
- puts 'Adding auxiliary pages...'
39
-
40
- <var># …</var>
41
-
42
- internal_error_page = Content.for('Internal Server Error')
43
- internal_error_page.save!
44
-
45
- not_found_content = Content.for('Not Found')
46
- not_found_content.blocks.build(
47
- type: :html,
48
- data: {
49
- html: '<p>Try searching or <a href="/">start at the home page</a>.</p>'
50
- }
51
- )
52
- not_found_content.save!
53
- end
54
- end
55
- end
56
- ```
57
- <!-- </figure> -->
58
-
59
- Next, edit the content for these pages within each environment and view the results.
60
-
61
- <figure id="figure-1">
62
- <figcaption>
63
- <p>Figure 1: Administration of the 404 system content</p>
64
- </figcaption>
65
- <p><%= image_tag "images/404-system-content-admin.png", alt: "The admin for 404 system content" %></p>
66
- </figure><figure id="figure-2">
67
- <figcaption>
68
- <p>Figure 2: A Storefront 404 error page in a development environment</p>
69
- </figcaption>
70
- <p><%= image_tag "images/404-storefront-error-page.png", alt: "A 404 page in the Storefront" %></p>
71
- </figure>
72
-
73
- ## View Production Error Pages in Development
74
-
75
- By default, Rails responds to an error in development with a debugging page. To view production error pages in development, you must change this behavior. Modify your application’s development configuration as shown in the following patch:
76
-
77
- ```
78
- --- config/environments/development.rb.old 2018-03-20 15:37:21.000000000 -0400
79
- +++ config/environments/development.rb 2018-03-20 15:37:04.000000000 -0400
80
- @@ -14,7 +14,7 @@
81
- config.eager_load = false
82
-
83
- # Show full error reports.
84
- - config.consider_all_requests_local = true
85
- + config.consider_all_requests_local = false
86
-
87
- # Enable/disable caching. By default caching is disabled.
88
- if Rails.root.join('tmp/caching-dev.txt').exist?
89
- ```
90
-
91
- After changing your configuration, restart the application.
92
-
93
- ## Notes
94
-
95
- [1] Specifically, the paths `'/404'` and `'/500'` (regardless of HTTP method) are routed to the `not_found` and `internal` actions of the `Storefront::ErrorsController`, each of which conditionally renders the _workarea/storefront/errors/show.html.haml_ view.
@@ -1,152 +0,0 @@
1
- ---
2
- title: Extension
3
- excerpt: Extension is the process of adding, modifying, or even removing Workarea platform functionality from within a Workarea application or plugin. Workarea plugins extend the platform in ways that are re-usable across applications, while individual applica
4
- ---
5
-
6
- # Extension
7
-
8
- <dfn>Extension</dfn> is the process of adding, modifying, or even removing Workarea platform functionality from within a Workarea application or plugin. Workarea plugins extend the platform in ways that are re-usable across applications, while individual applications extend the platform further to meet the specific needs of a retailer or other stakeholders. While administration allows for platform customization through a UI, extension allows for deeper customization via code changes.
9
-
10
- The code changes performed for extension may conflict with the platform's own code changes between versions. When upgrading to a new version of Workarea, application and plugin developers must resolve these conflicts. Developers must therefore consider the long term cost of extension. Another concern is the initial implementation cost of an extension.
11
-
12
- This document provides an overview of extension techniques for easier comparison, while other guides describe various techniques in greater detail.
13
-
14
- ## Augmentation
15
-
16
- One form of extension is simple <dfn>augmentation</dfn>—adding new code within the Workarea namespace. For example, your application may require a calendar of events. Such a feature is entirely new and does not overlap with any existing platform functionality. However, to provide consistent user and developer experiences, it makes sense to add your new code (such as models, views, and controllers) within the Workarea namespace. It also makes sense to leverage Workarea patterns, such as the use of additional object types (e.g. view models, workers), and to follow Workarea conventions (e.g. file naming and structuring).
17
-
18
- ## Domain-Specific Extension
19
-
20
- Workarea provides various _designed_ points of extension that employ conventions, inheritance, DSLs, and other techniques to reduce cost during the initial implementation, and potentially at upgrade time. These techniques are domain-specific, so within this documentation, I cover each where that particular domain aspect is covered. Examples of these extension points are listed below.&nbsp;<sup><a href="#notes" id="note-1-context">[1]</a></sup>
21
-
22
- - Catalog customizations
23
- - [Content block types](add-a-content-block-type.html)
24
- - [Discount types](create-a-custom-discount.html)
25
- - Inventory policies
26
- - [Payment gateways](integrate-a-payment-gateway.html)
27
- - [Pricing calculators](customize-pricing.html)
28
- - Product templates
29
- - Seeds
30
- - Shipping carriers
31
- - Storefront search middlewares
32
-
33
- ## Generic Extension
34
-
35
- Workarea also provides generic extension techniques that apply across domain boundaries and allow for extensions beyond those specifically designed into the platform.
36
-
37
- ### Configuration
38
-
39
- [Configuration](configuration.html) allows developers to customize specific programmatic values in Ruby and JavaScript.
40
-
41
- #### Summary
42
-
43
- - Allows applications and plugins to customize configuration values defined by the core platform and plugins
44
- - Allows plugins to define their own configuration values to be customized by applications and other plugins
45
- - Applications and plugins write configuration code within their own Ruby and JavaScript configuration files
46
- - Configuration can affect any aspect of the platform, from the number of products to show in a content block to the list of calculators used to calculate pricing
47
-
48
- #### Limitations
49
-
50
- - Configuration is limited to specific values defined as configurable by the core platform and plugins
51
- - Most configuration values are simple values (often integers) or collections/lists of those values
52
-
53
- #### Test Considerations
54
-
55
- - The scope/reach of a configuration tends to be limited, however, configuration may break tests or create the need for new tests
56
- - After configuring your app or plugin, write new tests or decorate existing tests as necessary
57
-
58
- #### Upgrade Considerations
59
-
60
- - When Workarea makes configuration changes between versions, those changes are generally applied seamlessly to your application or plugin when you upgrade your Workarea version
61
- - However, if Workarea has changed any config values that you have replaced with your own, you will need to apply those changes manually if necessary
62
- - When customizing config values that represent collections, mutate the collection (prepend, append, delete member, etc) rather than replacing it to ensure Workarea's changes to the collection are applied when upgrading
63
- - For example, if adding a product template, append your custom value to the existing list of templates instead of replacing the entire list
64
-
65
- ### Decoration
66
-
67
- [Decoration](decoration.html) allows developers to customize Ruby classes.
68
-
69
- #### Summary
70
-
71
- - Allows applications and plugins to customize Ruby classes defined by the core platform and plugins
72
- - Within these customizations, developers may add new instance and class methods, modify existing instance and class methods (with access to the pre-customized implementation via `super`), and execute class macros or other code as if inside the original class definition
73
- - Decoration allows for extensive customization of Ruby code, going far beyond the extension points designed into the platform
74
- - Because test cases are Ruby classes, decoration also allows for customization of the test suite
75
-
76
- #### Limitations
77
-
78
- - Decoration allows for the customization of Ruby classes only—modules are not supported at this time
79
- - Decoration cannot be used to customize code written using other language or file types (such as JavaScript and other UI code)
80
-
81
- #### Test Considerations
82
-
83
- - Decoration is likely to break existing tests or create the need for additional tests
84
- - When using decoration to customize functionality, write new tests or decorate existing tests as necessary
85
-
86
- #### Upgrade Considerations
87
-
88
- - When Workarea changes Ruby code between versions, those changes are generally applied seamlessly to your application or plugin when you upgrade your Workarea version
89
- - However, if Workarea has changed methods you have replaced with your own implementations, you will need to apply those changes manually if necessary
90
- - When decorating classes, change only the aspects of the class necessary for your requirements, and use `super` to maintain original method implementations where possible
91
-
92
- ### Appending
93
-
94
- [Appending](appending.html) allows developers to inject their own views and assets into existing user interfaces.
95
-
96
- #### Summary
97
-
98
- - Allows plugins and applications to render their own (new) partials within existing platform views at designated positions
99
- - Allows plugins and applications to include their own (new) assets within existing platform asset manifests
100
- - Plugins and apps create their own partials and assets, and assign these to platform append points within an initializer or other configuration file
101
-
102
- #### Limitations
103
-
104
- - This technique is limited in scope/reach as it allows only for the injection of new UI code
105
- - Appending generally provides little control over position and display
106
- - New code may be injected into only the designated append points provided by the platform
107
- - There are no formal APIs to remove files from append points or re-order files within append points
108
- - Without also leveraging overriding, you cannot change the position of an append point within a view
109
-
110
- #### Test Considerations
111
-
112
- - Appending is likely to break existing tests or create the need for additional tests
113
- - When appending files, write new tests or decorate existing tests as necessary
114
-
115
- #### Upgrade Considerations
116
-
117
- - Appending is a simple way of introducing new code into the platform and therefore has few upgrade concerns
118
- - Unlike other extension techniques, appending is not used to customize existing code; it therefore avoids many of the concerns affecting other extension techniques
119
-
120
- ### Overriding
121
-
122
- [Overriding](overriding.html) allows developers to replace user interface files such as views and assets with their own customized copies of the files.
123
-
124
- #### Summary
125
-
126
- - Allows applications (and in rare cases, plugins) to completely replace existing platform views and assets
127
- - Applications copy the views and assets into their own source and customize the files as needed
128
- - Overriding allows developers to completely replace all HTML and assets served by the application, allowing UI customization that goes far beyond any specifically designed extension points
129
-
130
- #### Limitations
131
-
132
- - Overriding affects only views, layouts, partials, and files served by the asset pipeline (UI customization)
133
- - Except in rare cases, plugins should not use overrides (see [Overriding](overriding.html) for more on this)
134
-
135
- #### Test Considerations
136
-
137
- - Overriding is likely to break existing tests or create the need for additional tests
138
- - When overriding, write new tests or decorate existing tests as necessary
139
-
140
- #### Upgrade Considerations
141
-
142
- - Overriding completely replaces platform files with your own copies
143
- - When Workarea changes views and assets between versions, these changes will not appear in your application if you are overriding the affected files
144
- - You must apply these changes manually to your own copies of the files
145
- - While overriding is necessary for UI customization, try to override only the files necessary for your requirements
146
- - Where possible, use appending instead of overriding to reduce upgrade cost
147
-
148
- ## Notes
149
-
150
- [1] Much of the domain-specific documentation is still forthcoming. I will continue to cross reference these extension points as coverage is added.
151
-
152
-
@@ -1,112 +0,0 @@
1
- ---
2
- title: Favicon Support
3
- excerpt: Learn how Workarea manages favicons and how they are output in your application
4
- ---
5
-
6
- # Favicon Support
7
-
8
- Favicons are a collection of images used by browsers and mobile devices to visually represent a site within their user interfaces. Due to the variation between browsers and mobile devices, favicons are typically supplied in a variety of sizes and via a number of delivery methods.
9
-
10
- Suffice it to say that long passed are the days of simply dropping a `favicon.ico` file in your site's root directory.
11
-
12
- The good news is that Workarea provides a way to set and automate the creation and linking of these assets without developer intervention through the Admin.
13
-
14
- ## Setting an asset as a favicon
15
-
16
- Within the Admin, a user may use an Asset's <em>tags</em> field to denote that the Asset should be used as a favicon.
17
-
18
- <!-- TODO v3.4 mention the visual indicator -->
19
-
20
- For a single Asset to be used as the site's favicon the Admin user may simply add the `favicon` tag to the chosen Asset. Once this is done, the platform will create, output, and link all necessary files automatically.
21
-
22
- For more granular control over each generated favicon, an Admin user may apply tags to the chosen Asset in the following format: `favicon-SIZE`. For example, if the chosen Asset does not scale well and is visually unintelligible when scaled down to 16 pixels (the smallest required favicon size), the user may choose another, smaller Asset to replace this size by applying the `favicon-16x16` tag to the Asset.
23
-
24
- The majority of the generated favicons will be of type `.png`, though a fallback `favicon.ico` file is still generated for canonical posterity and for use with older browsers. To manually override this icon, a user may simply denote an Asset as the `.ico` fallback by applying the `favicon-ico` tag to the Asset. Since tagging supports multiple, comma-delimited values, an Asset can carry more than one favicon tag at a time.
25
-
26
- <!-- TODO v3.4 mention the favicon placeholder fallback -->
27
-
28
- It should be noted that favicons are intended to be square images.
29
-
30
- ## Favicon asset and manifest automation
31
-
32
- The markup necessary for rendering the generated favicons is added to each Storefront layout via methods found within `Workarea::Storefront::FaviconsHelper`. This helper renders the `workarea/storefront/favicons/tags` partial, where the following is generated:
33
-
34
- <!-- TODO v3.4 remove web manifest? -->
35
-
36
- * A link to a 180x180 pixel Apple Touch icon
37
- * A link to a 32x32 pixel .png icon
38
- * A link to a 16x16 pixel .ico icon
39
- * A link to a web manifest file
40
- * A meta tag providing the URL to a browserconfig file
41
- * A meta tag to specify the tile color for use in the Microsoft Windows Metro UI
42
- * A meta tag to specify the color of the browser's "theme", a feature available on some devices
43
-
44
- The color-specific settings are output as the aforementioned meta tags in addition to appearing as entries within the web manifest and browserconfig files. These settings are configurable via:
45
-
46
- ```ruby
47
- Workarea.config.web_manifest.tile_color
48
- Workarea.config.web_manifest.theme_color
49
- ```
50
-
51
- URLs for each linked icon are provided by the following `FaviconsHelper` methods:
52
-
53
- * `Workarea::Storefront::FaviconsHelper#favicons_path` generates a URL to a dynamically sized `.png` file
54
- * `Workarea::Storefront::FaviconsHelper#favicon_path` generates a URL to the `favicon.ico` file
55
-
56
- Each favicon is dynamically generated on demand using Dragonfly. The following custom dragonfly processors defined within `core/config/initializers/07_dragonfly.rb`:
57
-
58
- * `:favicon` handles the resizing of a file to the passed size.
59
- * `:favicon_ico` handles the conversion to the `.ico` format.
60
-
61
- <!-- TODO v3.4 remove below -->
62
- Lastly, if there is no Asset tagged as a favicon, the system will not generate any of the above.
63
-
64
- ## Favicon URLs
65
-
66
- Storefront routes are provided to handle requests for an icon of a particular size and the `favicon.ico` file itself. These routes are:
67
-
68
- * `dynamic_favicon` which takes no parameters, returning the `favicon.ico` and serving the file from `https://domain.com/favicon.ico`
69
- * `dynamic_favicons` which takes a size parameter, returns a `.png` version and serving the file from, for example, `https://domain.com/favicons/32x32.png` if the requested size parameter is set to `32x32`.
70
-
71
- Both of these routes are Dragonfly endpoints which handle the favicon rendering within `Workarea::AssetEndpoints::Favicons`. This class has two methods to match the provided routes:
72
-
73
- * `result` handles the dynamic_favicons request, restricting sizes to those defined within `Workarea.config.favicon_allowed_sizes`, preventing DDOS attacks that may try to request many varying sizes at once.
74
- * `ico` handles the generation of the `favicon.ico` file by finding the appropriate Asset and running it through the `:favicon_ico` Dragonfly processor.
75
-
76
- ## The Web Manifest
77
-
78
- <!-- TODO v3.4 explain repurposing for PWA apps -->
79
-
80
- The rendered favicon tags in the layout link each page to a web manifest.
81
-
82
- A web manifest is a file that can inform devices how to style particular elements of the client UI when accessing the site. In addition to favicon settings, it provides further configuration for theme coloring and other basic meta information for the site. Further information can be found on the following sites:
83
-
84
- * [https://developer.mozilla.org/en-US/docs/Web/Manifest](https://developer.mozilla.org/en-US/docs/Web/Manifest)
85
- * [https://developers.google.com/web/fundamentals/web-app-manifest/](https://developers.google.com/web/fundamentals/web-app-manifest/)
86
-
87
- The Workarea platform automatically generates this file from `Storefront::PagesController#web_manifest` via a route which serves the file from `https://domain.com/site.webmanifest`. The file itself is in JSON format and lives at `storefront/pages/web_manifest.json.jbuilder` in the views directory and will be cached by Rack cache.
88
-
89
- This template contains a mix of favicon images and configuration values to provide a basic web manifest which can be expanded upon to suit your client's needs. Out of the box it provides:
90
-
91
- * **name** using `Workarea.config.site_name`
92
- * **short_name** also using `Workarea.config.site_name`
93
- * **icons** containing
94
- * a 192x192 `.png` icon
95
- * a 512x512 `.png` icon
96
- * **theme_color** using `Workarea.config.web_manifest.theme_color`
97
- * **background_color** using `Workarea.config.web_manifest.background_color`
98
- * **start_url** using `'/?utm_source=homescreen'`
99
- * **display** using `Workarea.config.web_manifest.display_mode`
100
-
101
- ## Browserconfig
102
-
103
- The rendered favicon tags in the layout also link each page to a browserconfig file.
104
-
105
- A browserconfig file informs Microsoft Windows devices on how they should present and style their UI elements when accessing the site. This file is similar to the web manifest in many regards. The main difference is that this file is in XML format.
106
-
107
- Like the web manifest, the Workarea platform automatically generates this file from `Storefront::PagesController#browser_config` via a route which serves the file from `https://domain.com/browserconfig.xml`. The file itself is in XML format and lives at `storefront/pages/browser_config.xml.builder` in the views directory and will be cached by Rack cache.
108
-
109
- Also like the web manifest, this template contains a mix of favicon iamges and configuration values which can further be expanded upon to suit your client's needs. By default it offers:
110
-
111
- * **square150x150logo** which is dynamically generated
112
- * **TileColor** defined by `Workarea.config.web_manifest.tile_color`, for use in the Windows Metro UI
@@ -1,25 +0,0 @@
1
- ---
2
- title: Feature Test Helper Stylesheet
3
- excerpt: 'In a test environment, the application stylesheet manifest includes the following style rules:'
4
- ---
5
-
6
- # Feature Test Helper Stylesheet
7
-
8
- In a test environment, the application stylesheet manifest includes the following style rules:
9
-
10
- ```
11
- /**
12
- * "Disable" transitions and animations in the test environment
13
- */
14
-
15
- * {
16
- transition: none !important;
17
- animation: none !important;
18
- }
19
- ```
20
-
21
- These rules effectively disable CSS transitions and animations in the test environment.
22
-
23
- Workarea applies these styles to allow for more reliable full stack automated tests. If you are not running any of Workarea's tests, you may remove this code if you prefer.
24
-
25
-
@@ -1,20 +0,0 @@
1
- ---
2
- title: Feature.js & Feature Test Helper
3
- excerpt: Feature.js provides browser feature detection for developers. It is loaded in its entirety in the Storefront's head manifest. Out of the box it provides JavaScript methods and root HTML element classes that represent which features are available to th
4
- ---
5
-
6
- # Feature.js & Feature Test Helper
7
-
8
- ## Feature.js
9
-
10
- [Feature.js](http://featurejs.com) provides browser feature detection for developers. It is loaded in its entirety in the Storefront's head manifest. Out of the box it provides JavaScript methods and root HTML element classes that represent which features are available to the developer to program against.
11
-
12
- ## Feature Test Helper
13
-
14
- After Feature.js does all that hard work to set up the features above, Workarea's feature test helper file works equally hard (at least I like to think so) to undo a portion of it. However, it only does this if the Rails environment is `test`.
15
-
16
- Some styles, particularly CSS animations and transitions, interfere with full stack testing and make it difficult to write reliable tests. Workarea therefore applies additional styles in the test environment to effectively disable all animations and transitions.
17
-
18
- However, Feature.js is not aware of this and still reports those features as supported. The feature test helper updates the class values on the html element to report animations and transitions as not supported overwrites the corresponding properties on the `Feature.js` object to do the same.
19
-
20
-
@@ -1,34 +0,0 @@
1
- ---
2
- title: Help & Support
3
- excerpt: In addition to these guides, Workarea provides the following resources for help and support.
4
- ---
5
-
6
- # Help & Support
7
-
8
- In addition to these guides, Workarea provides the following resources for help and support.
9
-
10
- ## Slack
11
-
12
- Workarea has a public Slack, where we hang out, mostly during EST business hours. [Signup and chat with us!](https://workarea-community.slack.com)
13
-
14
- Use Slack to:
15
-
16
- - Read and post announcements about new Workarea releases, plugins, and documentation (from the core team and the community)
17
- - Report bugs or inquire if certain behavior is a bug
18
- - Ask the community about or share known solutions to problems to reduce implementation time
19
- - Ask the community how to use a feature or how it's expected to work
20
- - Ask the community about what to learn or how to learn, or suggest resource to others to learn more about Workarea and its dependencies
21
-
22
- ## Workarea Support
23
-
24
- The Workarea Support team provides support and training services to merchants and partners. Visit [https://support.workarea.com] (https://support.workarea.com) to open an issue or contact us for support.
25
-
26
- ### Submit an Incident Report
27
- Go to [https://support.workarea.com] (https://support.workarea.com) and submit an [Incident Report] (https://jira.tools.weblinc.com/servicedesk/customer/portal/16/create/248) detailing the observed issue. Provide as much detail as possible (screen shots, error codes, steps to reproduce, etc.) to reduce the need to further diagnose and resolve more quickly.
28
-
29
- Please include your Solution Partner primary contact on all incidents and requests, so communication can be facilitated as needed.
30
-
31
- Alternatively, email [support@workarea.com] (mailto:support@workarea.com) and include your priority in the subject of the email.
32
-
33
- ### After Hours Escalation
34
- To escalate the issue after Hours of Support, call __[+1 (215) 398-7814] (tel:+1-215-398-7814)__ and leave a message for on-call support and request a call back.
@@ -1,46 +0,0 @@
1
- ---
2
- title: HTML Fragment Caching
3
- excerpt: After HTTP caching The next level of caching happens in the Rails views. The Workarea system does this fragment caching in the conventional Rails way, so if you've worked with caching on Rails systems before this will be familar to you.
4
- ---
5
-
6
- # HTML Fragment Caching
7
-
8
- After [HTTP caching](http-caching.html) The next level of caching happens in the Rails views. The Workarea system does this fragment caching in the conventional Rails way, so if you've worked with caching on Rails systems before this will be familiar to you.
9
-
10
- storefront/app/views/workarea/storefront/categories/show.html.haml:
11
-
12
- ```
13
- - cache "#{@category.cache_key}/head", expires_in: Workarea.config.cache_expirations.categories_fragment_cache do
14
- = append_partial('admin.category_head', category: @category)
15
-
16
- - if @category.first_page?
17
- %link{ href: category_url(@category), rel: 'canonical' }
18
- - unless @category.last_page?
19
- %link{ href: url_for(page: @category.next_page, only_path: false), rel: 'next' }
20
- - unless @category.first_page?
21
- %link{ href: url_for(page: @category.prev_page, only_path: false), rel: 'prev' }
22
- - unless @category.meta_keywords.blank?
23
- %meta{ name: :keywords, content: @category.meta_keywords }
24
- - unless @category.meta_description.blank?
25
- %meta{ name: :description, content: @category.meta_description }
26
-
27
- %meta{ property: 'og:url', content: url_for(only_path: false) }
28
- %meta{ property: 'og:title', content: page_title }
29
- %meta{ property: 'og:type', content: 'website' }
30
- %meta{ property: 'og:image', content: image_path('workarea/storefront/logo.png') }
31
- %meta{ property: 'og:image:secure_url', content: image_path('workarea/storefront/logo.png') }
32
- ```
33
-
34
- In the Rails views, a chunk of HTML is wrapped in a `cache` block. When that `cache` block is hit, Rails fetches the key from the cache store and returns the value. If the key doesn't exist or is expired, the code in the `cache` block will be run, and the result is saved in the cache store. Examples of fragment caches include:
35
-
36
- - Primary navigation menus
37
- - Secondary navigation menus
38
- - Product summaries (shown on browse pages and recommendations)
39
- - Browse results
40
-
41
- When defining any fragment caches, keep in mind cache expiration. The simplest way to handle this is to use the updated\_at timestamp of the correlating model to ensure this cache will be expired when the model is updated.
42
-
43
- ## Resources on Fragment Caching
44
-
45
- - [Rails Guide: Fragment Caching](http://guides.rubyonrails.org/caching_with_rails.html#fragment-caching)
46
- - [Heroku: Fragment Caching](https://devcenter.heroku.com/articles/caching-strategies#fragment-caching)
@@ -1,43 +0,0 @@
1
- ---
2
- title: HTTP Caching
3
- excerpt: All major content, browse, and search pages are cached for a short and configurable duration by an HTTP cache. This allows the system to serve a large number of requests in a short period of time.
4
- ---
5
-
6
- # HTTP Caching
7
-
8
- All major content, browse, and search pages are cached for a short and configurable duration by an HTTP cache. This allows the system to serve a large number of requests in a short period of time.
9
-
10
- storefront/app/controllers/workarea/storefront/pages\_controller.rb:
11
-
12
- ```
13
- module Workarea
14
- class Storefront::PagesController < Storefront::ApplicationController
15
- before_filter :cache_page
16
- # ...
17
- end
18
- end
19
- ```
20
-
21
- Controller/actions which enable this include:
22
-
23
- - `Workarea::Storefront::CategoriesController#show`
24
- - `Workarea::Storefront::PagesController#show`
25
- - `Workarea::Storefront::PagesController#home_page`
26
- - `Workarea::Storefront::ProductsController#show`
27
- - `Workarea::Storefront::SearchesController#show`
28
-
29
- This creates a major complication for any data on the page with user or session specific. Examples include login status, cart count, and personalized product recommendations. Workarea solves this problem by loading this content asynchronously via Javascript. Make sure you review any customized functionality to ensure you won't be caching pages with session-specific data.
30
-
31
- **Note:** [Rack::Cache](http://rtomayko.github.io/rack-cache/) is a simple way to achieve the caching advantage explained above without the configuration and hosting burden of a more robust HTTP cache like [Varnish](https://www.varnish-cache.org).
32
-
33
- ## Customizing the Rack::Cache Key
34
-
35
- There are scenarios where it becomes necessary to vary `Rack::Cache` entries, like geolocated content blocks or segmentation-based navigation. In these cases, Workarea provides a relatively straight-forward way to add to the cache key. Refer to [the documentation in the code for Workarea::Cache::Varies](https://github.com/workarea-commerce/workarea/blob/master/core/lib/workarea/cache.rb) for more information.
36
-
37
- **Note:** Using `Workarea::Cache::Varies` can have a _very_ adverse affect on application performance, and is not encouraged. Make sure this is what you need, and feel free to reach out on [Slack](https://workarea-community.slack.com) to see if there may be a better way to achieve your goals.
38
-
39
- ## Resources on HTTP Caching
40
-
41
- - [W3 Spec](http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html)
42
- - [Web Fundamentals: HTTP caching](https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching?hl=en)
43
- - [HTTP Caching in Ruby with Rails](https://devcenter.heroku.com/articles/http-caching-ruby-rails)
@@ -1,35 +0,0 @@
1
- ---
2
- title: I18n
3
- excerpt: Internationalization/localization features in Workarea allow for translation/customization of static content (including message content and JavaScript content) and translation of administrable content.
4
- ---
5
-
6
- # I18n
7
-
8
- Internationalization/localization features in Workarea allow for [translation/customization of static content](translate-or-customize-static-content.html) (including [message content](translate-or-customize-message-content.html) and [JavaScript content](translate-javascript-content.html)) and [translation of administrable content](translate-administrable-content.html).
9
-
10
- **Note:** Internationalization/localization in Workarea relies heavily on [Rails I18n](http://guides.rubyonrails.org/i18n.html) and [Mongoid Localization](https://docs.mongodb.org/ecosystem/tutorial/ruby-mongoid-tutorial/#localized-fields). The preceding links provide excellent explanations of those features, so they are recommended reading.
11
-
12
- ## Customizing Text
13
-
14
- Rails I18n features are useful even if your app has only a single locale. Use I18n to customize static text strings, such as [the content of success, failure, and warning messages](translate-or-customize-message-content.html).
15
-
16
- ## Translating Text
17
-
18
- Of course, your app may also use multiple locales to provide [static content translations](translate-or-customize-static-content.html) and [translation of administrable content](translate-administrable-content.html).
19
-
20
- To use multiple locales, start by [configuring locales](configure-locales.html).
21
-
22
- ## Determining the Current Locale
23
-
24
- Workarea determines the current locale by looking for a locale prefix in the request URL.
25
-
26
- Given an app with en (default), es, and de locales, the following table demonstrates how each URL maps to a locale.
27
-
28
- | URL | Locale |
29
- | --- | --- |
30
- | http://example.com/categories/sale | en (default) |
31
- | http://example.com/en/categories/sale | en |
32
- | http://example.com/es/categories/sale | es |
33
- | http://example.com/de/categories/sale | de |
34
-
35
-