Workarea 3.2.0

Uses Rails' Time Zone to Display all Dates & Times

Displays dates and times in the Storefront and Admin using the time zone specified in Rails.application.config.time_zone.

Configure this time zone as appropriate for the retailer. If present, use the same value assigned to Workarea.config.analytics_timezone

This change is an expansion of the time zone changes introduced in Workarea 3.0.15, which added Workarea.config.analytics_timezone.

Dates and times are still stored in UTC, so no database changes are required, however, you must find and replace various Ruby API calls within your application to ensure the configured time zone is used for display. This article describes the necessary changes, but the specific changes listed in the article are also duplicated below.

Don't use:

Do use:

To summarize, you must set Rails.application.config.time_zone to the time zone desired by the retailer and also find and replace within your application code according to the rules above.

Issues

Pull Requests

Commits

Changes Password Requirements for Admins

In response to a PCI audit, changes password requirements for admin users. Within Workarea::User::Passwords, changes the required password strength for administrators to :strong. Updates administrator passwords throughout all seeds and tests to comply.

You will need to update admin passwords within your application code (seeds and tests) to conform to the new requirements. Production users are unaffected until their next password change, at which time the new rules will be enforced.

Issues

Pull Requests

Commits

Updates Ruby Dependencies

Updates various Ruby dependencies, which removes Fixnum deprecation warnings and provides the benefits of various library fixes and improvements.

Issues

Commits

Converts All Remaining Specs to Tests

Converts all remaining RSpec specs within the platform to Minitest tests.

This change will add a substantial number of tests to your application's test suite. If this is a burden for your application (perhaps due to extensive customization), skip or pass tests as necessary within your app.

Issues

Pull Requests

Commits

Adds Support for Split Shipping

Updates the base platform to support multiple shippings more completely, allowing plugins to more easily offer splitting the items of an order across multiple shipping addresses. Supports gifting functionality in plugins.

Issues

Pull Requests

Commits

Converts Admin Indexes to Tables

Continuing a change introduced in 3.1, uses tables instead of summaries within all Admin index pages.

Issues

Pull Requests

Commits

Adds Releases Index Page in Admin

Adds an Admin index page for releases, which takes over as the “landing page” for releases in the Admin (replacing the releases calendar in this role). The releases calendar and index link to each other.

Issues

Pull Requests

Commits

Adds Product Insights Content Block Type

Adds a new content block type, “Product Insights”, which displays a dynamically generated list of “Top Products” or “Trending Products”, derived from Workarea analytics for the application.

Issues

Pull Requests

Commits

Improves Presentation of Orders & User Management in Storefront

Applies various improvements to the Storefront views listed below. These changes improve the default display of these Storefront area so that fewer customizations are required. The changes also support other changes in Workarea 3.2 and various plugins.

In general, the changes improve the use of grids, tables, and headings, and make use of the new .box component. The following views are those most affected. Some additional changes are noted.

Notable API changes:

Issues

Pull Requests

Commits

Adds More Recommendations in the Storefront

Adds recommendations to Storefront empty cart, added-to-cart dialog, order confirmation, order summary, and account show.

Issues

Pull Requests

Commits

Improves Storefront & Admin Searches

Applies various improvements to Storefront and Admin searches.

These changes do not require you to re-index your application, but many of the improvements will not take effect until you do.

Summary of Storefront changes:

Summary of Admin changes:

Most significant API changes:

Issues

Pull Requests

Commits

Adds Configurations for Sending Emails

Restructures mailer abstractions and adds configurations to allow disabling all emails in unit tests and optionally disabling “transactional” emails when an email service provider is integrated with the application.

Issues

Pull Requests

Commits

Adds Taxonomy-Based Slug Generation to Creation Workflows

Generates unique taxonomy-based slugs for categories and content pages created through the corresponding workflows in the Admin.

For example, an administrator uses the “create page” Admin workflow to create a content page named “Locations”, and (during the workflow) places the page under the page “About Us” in the site's taxonomy. The slug stored on the new page will be 'about-us-locations', reflecting the page's position in the taxonomy.

Furthermore, the feature removes from those workflows the field to manually set a slug.

Issues

Pull Requests

Commits

Improves Mobile Filters UI in Storefront

Changes the mobile filters UI in the Storefront to a “drawer” to be consistent with the mobile navigation.

Issues

Pull Requests

Commits

Adds Email Unsubscribing in the Storefront

Adds support for unsubscribing to email in the Storefront account area. This change helps retailers comply with the GDPR.

Issues

Pull Requests

Commits

Adds Storefront “Back to Top” Buttons

Adds “Back to Top” functionality to categories show and searches show in the Storefront.

Issues

Pull Requests

Commits

Adds Rack Attack Protection for Promo Codes & User Accounts

Adds Rack Attack protection for promo code endpoints to prevent brute forcing of promo codes, and user account creation endpoints to prevent leaking email addresses.

Issues

Pull Requests

Commits

Improves Performance of Promo Code List Generation

Implements a unique index, allowing the removal of n+1 queries to check if a code exists.

Issues

Pull Requests

Commits

Moves Order Locking to Redis

Moves order locking persistence to Redis (from MongoDB) to improve performance.

Issues

Pull Requests

Commits

Improves Performance of Processing Product Recommendations

Modifies the workers that process product recommendations, increasing the number of documents loaded per query. Also makes these values configurable.

Issues

Pull Requests

Commits

Adds Performance Tests

Adds performance tests, which measure the performance of particular platform features and fail when performance drops beyond a given threshold after changes are made. These tests, currently for use by the base platform only, can identify platform changes that negatively impact performance (so they can be rolled back or improved). A future release of the platform will provide this feature for use by applications.

Issues

Pull Requests

Commits

Adds Support for Returns & OMS Features

Applies various improvements to support the Returns and OMS plugins.

Issues

Pull Requests

Commits

Adds Inventory Restocking

Adds Core APIs within the Inventory module to allow restocking of inventory. This change is added primarily to support the OMS plugin.

Issues

Pull Requests

Commits

Adds Low Inventory Alerts in Admin

Improves visibility of low inventory in Admin.

Issues

Pull Requests

Commits

Adds Payment Status for Orders Without Tenders

Adds a NotApplicable Payment::Status for use with orders that do not require tenders.

Issues

Pull Requests

Commits

Removes Deprecated Storefront Search Auto Filter Middleware

Removes from Workarea Core the file app/queries/workarea/search/storefront_search/auto_filter.rb, which defines Workarea::Search::StorefrontSearch::AutoFilter. This search middleware was deprecated in Workarea 3.1.

Pull Requests

Commits

Removes Deprecated Order-Fulfillment Status

Removes OrderFulfillmentStatus and similar logic within Admin::OrderViewModel, since the concept of combined order-fulfillment status was removed in Workarea 3.1.

Pull Requests

Commits

Improves Admin to Support Fulfillment Dashboard

Adds append points, sorts, and configuration to support the order fulfillment dashboard in the OMS plugin.

Issues

Pull Requests

Commits

Ensures Jobs to Publish & Undo Releases aren't Dropped

Adds the worker Workarea::VerifyScheduledReleases, which runs on a schedule and inspects the Sidekiq queue to ensure all jobs for publishing and undoing releases are present. If any are found missing, the worker adds the missing jobs to the queue.

Issues

Pull Requests

Commits

Ensures Saved Credit Cards are Stored on the Gateway

Modifies the Core payment models SavedCreditCard and StoreCreditCard to ensure saved credit cards are stored on the gateway.

Issues

Pull Requests

Commits

Adds Logic for Saving a Credit Card as the Default Card

Modifies the SaveUserOrderDetails worker to set the credit card being saved as the default credit card if there are no existing cards saved on the payment profile. The increases the likelihood a user has a default card, which is particularly useful for subscriptions.

Issues

Pull Requests

Commits

Improves Style Guides

Improves navigation and overall presentation of Admin and Storefront style guides.

Issues

Pull Requests

Commits

Improves Closing of Storefront Mobile Navigation

Modifies the Storefront mobile navigation to close when a user clicks outside the component.

Issues

Pull Requests

Commits

Adds Fieldset Renaming to Content Block DSL

Adds to the content block DSL the ability to change the name of a fieldset within an existing block type.

Issues

Pull Requests

Commits

Fixes Rails Generators for Plugins

Modifies the plugin template to fix Rails generators for new plugins. Existing plugins can apply this change manually to fix generators if desired.

Issues

Pull Requests

Commits

Adds a rel="noopener" attribute to all links that open in a new window. This is a recommendation from Google that improves performance and security.

Issues

Pull Requests

Commits

Adds Tracking & Display of Order “Source”

Adds a field on Order to save the “source” of a placed order. For example, the Storefront checkout sets the value to 'admin' when the current user is an administrator, or 'storefront' otherwise. The Admin displays this value for each order. Other user interfaces may set this field to other values as relevant.

Issues

Pull Requests

Commits

Adds Async Release Creation

Allows administrators to create a new release asynchronously when choosing which release to publish changes with.

Issues

Pull Requests

Commits

Adds Administration of Product Default Category

Allows administrators to set the default category for each product manually. Also displays the default category for each product in the Admin.

Issues

Pull Requests

Commits

Enforces Unique DOM IDs in the Admin

Adds a JavaScript module to enforce unique DOM IDs in the Admin in Test and Development environments. This change was applied to the Storefront in Workarea 3.1.

If this change is burdensome for your application, remove the following line from your Admin JavaScript manifest:

require_asset 'workarea/core/modules/duplicate_id'

Issues

Pull Requests

Commits

Adds Admin User Impersonation Indicator

Modifies Admin header to indicate when an administrator is impersonating another user.

Issues

Pull Requests

Commits

Adds Convenience Methods to Remove Appends

Adds the following methods to the Workarea::Plugin module for removing appends within your application or plugin configuration code. These methods mirror the existing methods for adding appends.

Issues

Pull Requests

Commits

Extracts Changelog Task to Core Library

Extracts the changelog Rake task to the Core library so it can be used by plugins and does not need to be duplicated.

Issues

Pull Requests

Commits

Adds Per-Plugin Test Runners

Adds an additional test runner for each installed plugin, enabling developers to easily run the tests from a particular plugin (including decorators in the application).

Issues

Pull Requests

Commits

Updates Statuses within Order Seeds

Updates orders seeds to capture and ship some of the items to provide a greater variety of statuses in the Admin.

Issues

Pull Requests

Commits

Adds Seed for “Internal Server Error”

Seeds a system content named “Internal Server Error” within core/app/seeds/workarea/customer_service_pages_seeds.rb. This page will be used when responding with a 500 error.

Issues

Pull Requests

Commits

Fixes create_placed_order Factory Failing Silently

Raises an exception when the create_placed_order factory fails to place the order. This change was requested to aid debugging.

Issues

Pull Requests

Commits

Adds Configuration & Setup for Headless Browser Window Size

Adds setup to system tests that resets the headless browser width and height to configured values. This ensures a consistent starting size for all system tests. Adds Workarea.config.capybara_browser_width and Workarea.config.capybara_browser_height to configure these values.

Commits

Improves Dialog Module to Allow Chaining

Updates WORKAREA.dialog.create() within the Storefront to return the jQuery collection representing the dialog. This change allows chaining.

Issues

Pull Requests

Commits

Adds Payment Processing Model Index

Adds a MongoDB index for the payment on payment processing models. This change supports queries performed in plugins.

Issues

Commits

Adds Client-Side Validation of Phone Number Format

Adds client-side validation to the phone number field within Storefront address forms to ensure only digits and dashes are used.

Issues

Pull Requests

Commits

Adds Email to Order Confirmation

Updates the Storefront order confirmation page to notify the customer a confirmation email was sent to their email address. This reassures customers and helps resolve issues with email typos.

Issues

Pull Requests

Commits

Improves “Disabled” State of Form Controls

Improves the default styling of the “disabled” state for form controls within the Admin and Storefront.

Issues

Pull Requests

Commits

Improves Payment Icons to Allow Issuer-Specific Styling

Adds modifiers for card issuers to the payment-icon components in the Admin and Storefront. This change allows targeting and styling the icon of a particular card issuer.

Issues

Pull Requests

Commits

Improves Presentation of Checkout Layout for Medium Viewports

Modifies the grid within the Storefront checkout layout to improve the presentation for medium viewports.

Issues

Pull Requests

Commits

Adds “Full” Text Box to Storefront

Adds a .text-box--full modifier in the Storefront.

Commits

Adds a Storefront link within the Admin for convenient navigation between the two UIs.

Issues

Commits

Adds Helper in Admin for Product Bulk Action Options

Adds the catalog_product_bulk_action_options helper in the Admin, which cleans up the products index view in the Admin and allows for easier extension of product bulk action options.

Pull Requests

Commits

Improves Generation of IDs for Copied Products

Modifies the “copy product” workflow in the Admin to encourage unique IDs for copied products. The previous implementation generated IDs that were very similar and caused issues with Workarea recommendations.

Issues

Pull Requests

Commits

Prevents Multiple Submissions of Image Upload Forms

Disables the buttons for adding product images and content assets in the Admin to prevent additional, unintentional form submissions.

Issues

Pull Requests

Commits

Improves Presentation of the Current Release “Reminder”

Improves the UI that is shown to remind an admin they have a current release selected in the Admin. Updates the UI to more closely match the overall look and feel of the Admin.

Issues

Pull Requests

Commits

Groups Categories within Product Admin

Improves the listing of categories on product Admin screens by grouping the categories by type (featured or rules-based).

Issues

Pull Requests

Commits

Improves New Block Button in Admin

Improves display of .new-block-button component in Admin and adds related inline help text.

Issues

Pull Requests

Commits

Adds Field to Refine Admin Searches

Adds a field to the Admin search results UI to refine the search terms.

Issues

Commits

Updates Display Order of Admin Order Items to Match Storefront

Updates the Admin order view model to display the order items “by newest”, which is how they are ordered in the Storefront.

Issues

Pull Requests

Commits

Adds Tracking & Display of User “Created By”

Stores the ID of the creating user on the created user when a user is created through the Admin. Lists “Created By” in the user attributes Admin screens when the ID is present.

Issues

Pull Requests

Commits

Adds Store Credit Field to “Create Customer” Workflow

Allows administrators to add store credit when creating a new customer account through the Admin.

Issues

Pull Requests

Commits

Adds a warning message to the featured products Admin screens when there is a current release, because featured products for a release do not show when previewing the release in the Storefront.

Issues

Pull Requests

Commits

Improves Consistency of Admin Cards' “Empty” State

Updates several Admin partials to display an “empty” state consistent with other Admin cards.

Issues

Pull Requests

Commits

Adds Confirmation to Delete Product Images

Adds a confirmation prompt to the delete action within the product images Admin index.

Issues

Pull Requests

Commits

Fixes Display of Pricing within Admin Data Pairs

Modifies styling of table cells within Admin data-pairs so that prices within these components are aligned as expected.

Issues

Commits

Fixes Bulk Action Exports Workflow Bar

Adds missing information to workflow bar for bulk action exports in the Admin.

Issues

Pull Requests

Commits

Ensures all links within Admin header components display with a “pointer” cursor style.

Issues

Pull Requests

Commits

Adds Testing of Checkout Price Updating

Adds test assertions to cover the updating of pricing in checkout.

Issues

Pull Requests

Commits

Removes Remaining References to Product Sharing

Removes vestigial references to product sharing, which was moved to a plugin in Workarea 3.0.

Issues

Pull Requests

Commits

Adds Append Points

Adds many append points for platform extension. Other changes listed in these release notes may also include the addition of append points. The changes listed here exist primarily to add append points.

Issues

Pull Requests

Commits